shanji 2 years ago
parent
commit
1d2a7d09a1
  1. 40
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

40
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -992,25 +992,38 @@ namespace BBWYB.Server.Business
/// <param name="request"></param> /// <param name="request"></param>
public void SetHistoryPurchaseOrder(SetHistoryPurchaseOrderRequest request) public void SetHistoryPurchaseOrder(SetHistoryPurchaseOrderRequest request)
{ {
var dbOrderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == request.OrderId).ToList(); var dbOrderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == request.OrderId &&
ocd.PurchaseOrderId != request.PurchaseOrderId).ToList();
var dbOrderCost = fsql.Select<OrderCost>(request.OrderId).ToOne(); var dbOrderCost = fsql.Select<OrderCost>(request.OrderId).ToOne();
var dbOrder = fsql.Select<Order>(request.OrderId).ToOne(); var dbOrder = fsql.Select<Order>(request.OrderId).ToOne();
try //try
{ //{
dbOrderCost.PurchaseAmount = dbOrderCostDetailList.Where(ocd => ocd.PurchaseOrderId != request.PurchaseOrderId).Sum(ocd => ocd.TotalCost); // dbOrderCost.PurchaseAmount = dbOrderCostDetailList.Where(ocd => ocd.PurchaseOrderId != request.PurchaseOrderId).Sum(ocd => ocd.TotalCost);
} //}
catch //catch
{ //{
dbOrderCost.PurchaseAmount = 0; // dbOrderCost.PurchaseAmount = 0;
} //}
dbOrderCost.Profit = dbOrder.OrderTotalPrice - //dbOrderCost.Profit = dbOrder.OrderTotalPrice -
dbOrderCost.PurchaseAmount - // dbOrderCost.PurchaseAmount -
dbOrderCost.DeliveryExpressFreight; // -orderCost.PlatformCommissionAmount // 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<OrderPurchaseInfo>().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.Transaction(() =>
{ {
fsql.Update<OrderPurchaseInfo>() fsql.Update<OrderPurchaseInfo>(historyPurchaseOrder.Id)
.Set(opi => opi.IsEnabled, false) .Set(opi => opi.IsEnabled, false)
.Set(opi => opi.OrderState, Enums.PurchaseOrderState.) .Set(opi => opi.OrderState, Enums.PurchaseOrderState.)
.Where(opi => opi.PurchaseOrderId == request.PurchaseOrderId) .Where(opi => opi.PurchaseOrderId == request.PurchaseOrderId)
@ -1026,6 +1039,7 @@ namespace BBWYB.Server.Business
fsql.Delete<PurchaseExpressOrder>().Where(peo => peo.PurchaseOrderId == request.PurchaseOrderId).ExecuteAffrows(); fsql.Delete<PurchaseExpressOrder>().Where(peo => peo.PurchaseOrderId == request.PurchaseOrderId).ExecuteAffrows();
fsql.Update<OrderCost>().SetSource(dbOrderCost).ExecuteAffrows(); fsql.Update<OrderCost>().SetSource(dbOrderCost).ExecuteAffrows();
fsql.Update<Order>(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState).ExecuteAffrows();
}); });
} }

Loading…
Cancel
Save