diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 6d40972..a6e6344 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -992,25 +992,38 @@ namespace BBWYB.Server.Business /// public void SetHistoryPurchaseOrder(SetHistoryPurchaseOrderRequest request) { - var dbOrderCostDetailList = fsql.Select().Where(ocd => ocd.OrderId == request.OrderId).ToList(); + var dbOrderCostDetailList = fsql.Select().Where(ocd => ocd.OrderId == request.OrderId && + ocd.PurchaseOrderId != request.PurchaseOrderId).ToList(); var dbOrderCost = fsql.Select(request.OrderId).ToOne(); var dbOrder = fsql.Select(request.OrderId).ToOne(); - try - { - dbOrderCost.PurchaseAmount = dbOrderCostDetailList.Where(ocd => ocd.PurchaseOrderId != request.PurchaseOrderId).Sum(ocd => ocd.TotalCost); - } - catch - { - dbOrderCost.PurchaseAmount = 0; - } - dbOrderCost.Profit = dbOrder.OrderTotalPrice - - dbOrderCost.PurchaseAmount - - dbOrderCost.DeliveryExpressFreight; // -orderCost.PlatformCommissionAmount + //try + //{ + // dbOrderCost.PurchaseAmount = dbOrderCostDetailList.Where(ocd => ocd.PurchaseOrderId != request.PurchaseOrderId).Sum(ocd => ocd.TotalCost); + //} + //catch + //{ + // dbOrderCost.PurchaseAmount = 0; + //} + //dbOrderCost.Profit = dbOrder.OrderTotalPrice - + // dbOrderCost.PurchaseAmount - + // dbOrderCost.DeliveryExpressFreight; // -orderCost.PlatformCommissionAmount + var purchaseProductAmount = dbOrderCostDetailList.Count() == 0 ? 0M : dbOrderCostDetailList.Sum(ocd => ocd.SkuAmount) ?? 0M; + var purchaseFreight = dbOrderCostDetailList.Count() == 0 ? 0M : dbOrderCostDetailList.Sum(ocd => ocd.PurchaseFreight) ?? 0M; + var outPackAmount = dbOrderCostDetailList.Count() == 0 ? 0M : dbOrderCostDetailList.Sum(ocd => ocd.OutPackAmount) ?? 0M; + dbOrderCost.CalculationOrderCostCostAndProfit(dbOrder.OrderTotalPrice.Value, purchaseProductAmount, purchaseFreight, outPackAmount, 0M); + + + var orderPurchaseInfoList = fsql.Select().Where(opi => opi.OrderId == request.OrderId && opi.IsEnabled == true).ToList(); + var historyPurchaseOrder = orderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == request.PurchaseOrderId); + if (historyPurchaseOrder == null) + throw new BusinessException("未查询到采购单"); + orderPurchaseInfoList.Remove(historyPurchaseOrder); + dbOrder.CalculationOrderState(fsql, orderPurchaseInfoList: orderPurchaseInfoList); fsql.Transaction(() => { - fsql.Update() + fsql.Update(historyPurchaseOrder.Id) .Set(opi => opi.IsEnabled, false) .Set(opi => opi.OrderState, Enums.PurchaseOrderState.已取消) .Where(opi => opi.PurchaseOrderId == request.PurchaseOrderId) @@ -1026,6 +1039,7 @@ namespace BBWYB.Server.Business fsql.Delete().Where(peo => peo.PurchaseOrderId == request.PurchaseOrderId).ExecuteAffrows(); fsql.Update().SetSource(dbOrderCost).ExecuteAffrows(); + fsql.Update(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState).ExecuteAffrows(); }); }