diff --git a/BBWY.Client/Models/Order/OrderDropShipping.cs b/BBWY.Client/Models/Order/OrderDropShipping.cs index c0d0f082..3a5def49 100644 --- a/BBWY.Client/Models/Order/OrderDropShipping.cs +++ b/BBWY.Client/Models/Order/OrderDropShipping.cs @@ -74,7 +74,9 @@ namespace BBWY.Client.Models public object Clone() { - return this.MemberwiseClone(); + // return this.MemberwiseClone(); + var json = JsonConvert.SerializeObject(this); + return JsonConvert.DeserializeObject(json); } public IList RelationPurchaseOrderSkuList { get; set; } diff --git a/BBWY.Client/Views/Order/RelationPurchaseOrder.xaml.cs b/BBWY.Client/Views/Order/RelationPurchaseOrder.xaml.cs index 1dad14bb..b0fcb86d 100644 --- a/BBWY.Client/Views/Order/RelationPurchaseOrder.xaml.cs +++ b/BBWY.Client/Views/Order/RelationPurchaseOrder.xaml.cs @@ -68,7 +68,7 @@ namespace BBWY.Client.Views.Order ods1.PurchaseFreightStr = ods1.PurchaseFreight.ToString(); var currentOdsSkuList = relationPurchaseOrderSkuList.Where(rsku => rsku.OrderDropShippingId == ods1.Id); foreach (var rsku in currentOdsSkuList) - ods.RelationPurchaseOrderSkuList.Add(rsku); + ods1.RelationPurchaseOrderSkuList.Add(rsku); OrderDropShippingList.Add(ods1); ods1.OnPurchaseAmountChanged = OnPurchaseAmountChanged; diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 6540b26a..bc43c98f 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -913,7 +913,7 @@ namespace BBWY.Server.Business relationPurchaseOrderRequestV2.PlatformCommissionRatio = 0.05M; List insertOrderDropShippingList = new List(); - List updateOrderDropShippingList = new List(); + List> updateOrderDropShippingList = new List>(); IInsert insertOrderCost = null; IUpdate updateOrderCost = null; IDelete deletePurchaseOrder = null; @@ -928,9 +928,10 @@ namespace BBWY.Server.Business deletePurchaseOrder = fsql.Delete().Where(po => oldPourchaseIdList.Contains(po.Id)); deleteOrderCostDetail = fsql.Delete().Where(ocd => ocd.OrderId == dbOrder.Id); - foreach (var orderDropShipping in relationPurchaseOrderRequestV2.OrderDropShippingList) + foreach (var odsRequest in relationPurchaseOrderRequestV2.OrderDropShippingList) { #region 代发信息表 + var orderDropShipping = odsRequest.Map(); if (orderDropShipping.Id == 0) { orderDropShipping.Id = idGenerator.NewLong(); @@ -940,11 +941,11 @@ namespace BBWY.Server.Business } else { - updateOrderDropShippingList.Add(orderDropShipping); + updateOrderDropShippingList.Add(fsql.Update().SetSource(orderDropShipping).IgnoreColumns(new string[] { "CreateTime", "ShopId" })); } #endregion - foreach (var relationOrderSku in orderDropShipping.RelationPurchaseOrderSkuList) + foreach (var relationOrderSku in odsRequest.RelationPurchaseOrderSkuList) { #region OrderSku var updateOrderSku = fsql.Update().Set(osku => osku.OrderDropShippingId, orderDropShipping.Id) @@ -960,15 +961,15 @@ namespace BBWY.Server.Business ProductId = relationOrderSku.ProductId, PurchaseMethod = Enums.PurchaseMethod.线下采购, StorageType = Enums.StorageType.代发, - PurchaseOrderId = orderDropShipping.PurchaseOrderId, - PurchasePlatform = orderDropShipping.PurchasePlatform, + PurchaseOrderId = odsRequest.PurchaseOrderId, + PurchasePlatform = odsRequest.PurchasePlatform, PurchaseQuantity = relationOrderSku.Quantity, RemainingQuantity = 0, ShopId = dbOrder.ShopId, SkuId = relationOrderSku.SkuId, SingleConsumableAmount = 0, SingleFirstFreight = 0, - SingleFreight = orderDropShipping.PurchaseFreight / orderDropShipping.RelationPurchaseOrderSkuList.Count() / relationOrderSku.Quantity, + SingleFreight = odsRequest.PurchaseFreight / odsRequest.RelationPurchaseOrderSkuList.Count() / relationOrderSku.Quantity, SingleOperationAmount = 0, SingleStorageAmount = 0, SingleSkuAmount = relationOrderSku.SingleSkuAmount, @@ -989,11 +990,11 @@ namespace BBWY.Server.Business OperationAmount = 0, OrderId = dbOrder.Id, ProductId = relationOrderSku.ProductId, - PurchaseFreight = orderDropShipping.PurchaseFreight / orderDropShipping.RelationPurchaseOrderSkuList.Count(), + PurchaseFreight = odsRequest.PurchaseFreight / odsRequest.RelationPurchaseOrderSkuList.Count(), SkuAmount = relationOrderSku.SingleSkuAmount * relationOrderSku.Quantity, SkuId = relationOrderSku.SkuId, StorageAmount = 0, - TotalCost = relationOrderSku.SingleSkuAmount * relationOrderSku.Quantity + orderDropShipping.PurchaseFreight / orderDropShipping.RelationPurchaseOrderSkuList.Count(), + TotalCost = relationOrderSku.SingleSkuAmount * relationOrderSku.Quantity + odsRequest.PurchaseFreight / odsRequest.RelationPurchaseOrderSkuList.Count(), UnitCost = purchaseOrder.UnitCost, PurchaseOrderPKId = purchaseOrder.Id }); @@ -1065,11 +1066,8 @@ namespace BBWY.Server.Business if (updateOrderDropShippingList.Count() > 0) { foreach (var update in updateOrderDropShippingList) - { - fsql.Update().SetSource(update).IgnoreColumns(new string[] { "CreateTime", "ShopId" }); - } + update.ExecuteAffrows(); } - if (dbOrder.StorageType != Enums.StorageType.代发) { fsql.Update(dbOrder.Id)