diff --git a/FruitBank.Common/Entities/EkaerHistory.cs b/FruitBank.Common/Entities/EkaerHistory.cs new file mode 100644 index 00000000..70fba14a --- /dev/null +++ b/FruitBank.Common/Entities/EkaerHistory.cs @@ -0,0 +1,58 @@ +using AyCode.Core.Serializers.Attributes; +using AyCode.Core.Serializers.Toons; +using AyCode.Interfaces.TimeStampInfo; +using LinqToDB.Mapping; +using Mango.Nop.Core.Entities; + +namespace FruitBank.Common.Entities; + +[AcBinarySerializable(false, true, false, true, false, false)] +//[ToonDescription("Business partner with address and tax information", Purpose = "Represents an external legal entity, specifically a Supplier who provides goods or a business partner involved in the procurement chain")] +[Table(Name = FruitBankConstClient.EkaerHistoryDbTableName)] +[System.ComponentModel.DataAnnotations.Schema.Table(FruitBankConstClient.EkaerHistoryDbTableName)] + +public abstract class EkaerHistory: MgEntityBase, ITimeStampInfo +{ + public int ForeignKey { get; set; } + public bool IsOutgoing { get; set; } + + public DateTime Created { get; set; } + public DateTime Modified { get; set; } +} + +//public sealed class EkaerHistoryShipping : EkaerHistoryBase +//{ +// public int ShippingId +// { +// get => ForeignItemId; +// set => ForeignItemId = value; +// } + +// [Association(ThisKey = nameof(ShippingId), OtherKey = nameof(Shipping.Id), CanBeNull = true)] +// public Shipping? Shipping { get; set; } +//} + +//public sealed class EkaerHistoryOrder : EkaerHistoryBase +//{ +// public int ShippingId +// { +// get => ForeignItemId; +// set => ForeignItemId = value; +// } + +// [Association(ThisKey = nameof(ShippingId), OtherKey = nameof(Shipping.Id), CanBeNull = true)] +// public Shipping? Shipping { get; set; } +//} + +//public abstract class EkaerHistoryBase : MgEntityBase, ITimeStampInfo +//{ +// [NotColumn] +// protected int ForeignItemId; + +// [NotColumn] +// [ToonDescription(BusinessRule = "get => ForeignItemId", Constraints = "[#SmartTypeConstraints]")] +// public int ForeignKey => ForeignItemId; + +// public DateTime Created { get; set; } +// public DateTime Modified { get; set; } +//} \ No newline at end of file diff --git a/FruitBank.Common/Entities/Partner.cs b/FruitBank.Common/Entities/Partner.cs index f4793dee..0acd2457 100644 --- a/FruitBank.Common/Entities/Partner.cs +++ b/FruitBank.Common/Entities/Partner.cs @@ -2,7 +2,6 @@ using AyCode.Core.Serializers.Toons; using FruitBank.Common.Interfaces; using LinqToDB.Mapping; -using Mango.Nop.Core.Entities; namespace FruitBank.Common.Entities; diff --git a/FruitBank.Common/Entities/PartnerDepot.cs b/FruitBank.Common/Entities/PartnerDepot.cs new file mode 100644 index 00000000..94f91a41 --- /dev/null +++ b/FruitBank.Common/Entities/PartnerDepot.cs @@ -0,0 +1,38 @@ +using AyCode.Core.Interfaces; +using AyCode.Core.Serializers.Attributes; +using AyCode.Interfaces.TimeStampInfo; +using LinqToDB.Mapping; +using Mango.Nop.Core.Entities; +using System.ComponentModel.DataAnnotations.Schema; +using System.Text.Json.Serialization; + +namespace FruitBank.Common.Entities; + +[AcBinarySerializable(false, true, false, true, false, false)] +//[ToonDescription("Business partner with address and tax information", Purpose = "Represents an external legal entity, specifically a Supplier who provides goods or a business partner involved in the procurement chain")] +[LinqToDB.Mapping.Table(Name = FruitBankConstClient.PartnerDepotDbTableName)] +[System.ComponentModel.DataAnnotations.Schema.Table(FruitBankConstClient.PartnerDepotDbTableName)] +public sealed class PartnerDepot : MgEntityBase, ITimeStampInfo, ICompanyInfoBase +{ + public int PartnerId { get; set; } + + public string Name { get; set;} + + [NotColumn, NotMapped, Newtonsoft.Json.JsonIgnore, JsonIgnore] + public string? TaxId => Partner?.TaxId; + + public string CountryCode { get; set; } + public string PostalCode { get; set;} + public string City { get; set;} + public string Street { get; set;} + + [NotColumn, NotMapped, Newtonsoft.Json.JsonIgnore, JsonIgnore] + public string FullAddress => this.ComposeFullAddress() ?? string.Empty; + + [Association(ThisKey = nameof(PartnerId), OtherKey = nameof(Partner.Id), CanBeNull = true)] + public Partner? Partner { get; set; } + + [SkipValuesOnUpdate] + public DateTime Created { get; set; } + public DateTime Modified { get; set; } +} \ No newline at end of file diff --git a/FruitBank.Common/FruitBankConstClient.cs b/FruitBank.Common/FruitBankConstClient.cs index 74958298..e608f89c 100644 --- a/FruitBank.Common/FruitBankConstClient.cs +++ b/FruitBank.Common/FruitBankConstClient.cs @@ -30,6 +30,9 @@ public static class FruitBankConstClient public const string PalletDbTableName = "fbPallet"; public const string FilesDbTableName = "fbFiles"; public const string PartnerDbTableName = "fbPartner"; + public const string PartnerDepotDbTableName = "fbPartnerDepot"; + + public const string EkaerHistoryDbTableName = "fbEkaerHistory"; public const string OrderItemPalletDbTableName = "fbOrderItemPallet"; diff --git a/FruitBank.Common/SignalRs/SignalRTags.cs b/FruitBank.Common/SignalRs/SignalRTags.cs index 298ca2ef..f49ba450 100644 --- a/FruitBank.Common/SignalRs/SignalRTags.cs +++ b/FruitBank.Common/SignalRs/SignalRTags.cs @@ -112,6 +112,17 @@ public class SignalRTags : AcSignalRTags public const int GetStockTakingItemsByStockTakingId = 178; public const int AddOrUpdateMeasuredStockTakingItemPallet = 179; + public const int GetPartnerDepots = 180; + public const int GetPartnerDepotById = 181; + public const int GetPartnerDepotsByPartnerId = 182; + public const int AddPartnerDepot = 183; + public const int UpdatePartnerDepot = 184; + + public const int GetEkaerHistories = 185; + public const int GetEkaerHistoryById = 186; + //public const int GetEkaerHistoriesByForeignKey = 187; + public const int AddEkaerHistory = 188; + public const int UpdateEkaerHistory = 189; public const int AuthenticateUser = 195; public const int RefreshToken = 200; diff --git a/SqlSchemaCompare_Dev_to_Prod.scmp b/SqlSchemaCompare_Dev_to_Prod.scmp index f22fcf7e..29d855b1 100644 --- a/SqlSchemaCompare_Dev_to_Prod.scmp +++ b/SqlSchemaCompare_Dev_to_Prod.scmp @@ -3,12 +3,12 @@ 10 - Data Source=195.26.231.218;Initial Catalog=FruitBank_DEV;Integrated Security=False;Persist Security Info=False;User ID=sa;Pooling=False;Multiple Active Result Sets=False;Trust Server Certificate=True + Data Source=100.73.220.50;Initial Catalog=FruitBank_DEV;Integrated Security=False;Persist Security Info=False;User ID=sa;Pooling=False;Trust Server Certificate=True - Data Source=195.26.231.218;Initial Catalog=FruitBank_PROD;Integrated Security=False;Persist Security Info=False;User ID=sa;Pooling=False;Multiple Active Result Sets=False;Trust Server Certificate=True + Data Source=100.73.220.50;Initial Catalog=FruitBank_PROD;Integrated Security=False;Persist Security Info=False;User ID=sa;Pooling=False;Trust Server Certificate=True @@ -357,7 +357,7 @@ TargetConnectionString - Data Source=195.26.231.218;Initial Catalog=FruitBank_PROD;Integrated Security=False;Persist Security Info=False;User ID=sa;Pooling=False;Multiple Active Result Sets=False;Trust Server Certificate=True;Application Name="Microsoft SQL Server Data Tools, Schema Compare" + Data Source=100.73.220.50;Initial Catalog=FruitBank_PROD;Integrated Security=False;Persist Security Info=False;User ID=sa;Pooling=False;Multiple Active Result Sets=False;Trust Server Certificate=True;Application Name="Microsoft SQL Server Data Tools, Schema Compare" TreatVerificationErrorsAsWarnings @@ -1002,17 +1002,13 @@ dbo PK_AvalaraItemClassification - - dbo - FacebookPixelConfiguration - dbo PK_FacebookPixelConfiguration dbo - GoogleAuthenticatorRecord + FacebookPixelConfiguration dbo @@ -1020,12 +1016,16 @@ dbo - TaxTransactionLog + GoogleAuthenticatorRecord dbo PK_TaxTransactionLog + + dbo + TaxTransactionLog + dbo vOrder