diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 1c0e8d0c..8897270e 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -519,6 +519,7 @@ namespace BBWY.Server.Business SkuAmount = purchaseOrder.SingleSkuAmount * deductionQuantity, StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity }; + orderCostDetail.SkuGrossProfit = orderSku.Price.Value * deductionQuantity - (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight); insertOrderCostDetailList.Add(orderCostDetail); } } @@ -593,6 +594,12 @@ namespace BBWY.Server.Business IUpdate updateOrderCost = null; IInsert insertOrderCost = null; List insertOrderCostDetailList = new List(); + var orderSkuList = fsql.Select().Where(osku => osku.OrderId == manualCalculationCostRequest.OrderId).ToList(osku => new + { + osku.SkuId, + osku.Price, + osku.ItemTotal + }); var dbAfterSaleOrderList = fsql.Select().Where(aso => aso.OrderId == manualCalculationCostRequest.OrderId).ToList(); if (manualCalculationCostRequest.IsSetStorageType) @@ -605,6 +612,13 @@ namespace BBWY.Server.Business orderCostDetail.CreateTime = DateTime.Now; orderCostDetail.OrderId = manualCalculationCostRequest.OrderId; orderCostDetail.PurchaseOrderPKId = 0; + + var osku = orderSkuList.FirstOrDefault(o => o.SkuId == orderCostDetail.SkuId); + if (osku != null) + { + orderCostDetail.SkuGrossProfit = osku.Price.Value * orderCostDetail.DeductionQuantity - + (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight); + } } var totalPurchaseCost = insertOrderCostDetailList.Sum(ocd => ocd.TotalCost); diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 834bef12..00c637ba 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -461,6 +461,7 @@ namespace BBWY.Server.Business { var orderSkuId = orderSkuJToken.Value("skuId"); var itemTotal = orderSkuJToken.Value("itemTotal"); //sku购买数量 + var itemPrice = orderSkuJToken.Value("jdPrice"); //sku单价 var isReduceMultiTimes = false; //是否多次扣减库存 while (itemTotal != 0) { @@ -510,8 +511,11 @@ namespace BBWY.Server.Business OutStorageAmount = purchaseOrder.SingleOutStorageAmount * deductionQuantity, PurchaseFreight = purchaseOrder.SingleFreight * deductionQuantity, SkuAmount = purchaseOrder.SingleSkuAmount * deductionQuantity, - StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity + StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity, + IsEnabled = true }; + orderCostDetail.SkuGrossProfit = itemPrice * deductionQuantity - + (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight); insertOrderCostDetailList.Add(orderCostDetail); } } diff --git a/BBWY.Server.Model/Db/Order/OrderCostDetail.cs b/BBWY.Server.Model/Db/Order/OrderCostDetail.cs index 8e23704e..19f8b9a8 100644 --- a/BBWY.Server.Model/Db/Order/OrderCostDetail.cs +++ b/BBWY.Server.Model/Db/Order/OrderCostDetail.cs @@ -99,7 +99,11 @@ namespace BBWY.Server.Model.Db [Column(DbType = "bit")] public bool IsEnabled { get; set; } = true; - + /// + /// sku毛利 + /// + [Column(DbType = "decimal(20,2)")] + public decimal SkuGrossProfit { get; set; } = 0.00M; /// /// 总计 ///