Browse Source

关联订单

updatebug
shanji 2 years ago
parent
commit
faba31818a
  1. 52
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

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

@ -350,7 +350,8 @@ namespace BBWYB.Server.Business
IsManualEdited = false,
PlatformCommissionRatio = 0,
PreferentialAmount = 0,
PurchaseAmount = totalPurchaseAmount
PurchaseAmount = totalPurchaseAmount,
TotalCost = totalPurchaseAmount
};
//orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio;
orderCost.Profit = dbOrder.OrderTotalPrice -
@ -450,6 +451,8 @@ namespace BBWYB.Server.Business
var dbPurchaseOrderList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == request.OrderId).ToList();
var dbOrderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == request.OrderId).ToList();
var dbOrderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == request.OrderId).ToList();
var dbOrderCost = fsql.Select<OrderCost>(request.OrderId).ToOne();
var dbOrder = fsql.Select<Order>(request.OrderId).ToOne();
List<OrderPurchaseInfo> insertOrderPurchaseInfoList = new List<OrderPurchaseInfo>();
IList<IUpdate<OrderPurchaseInfo>> updateOrderPurchaseInfoList = new List<IUpdate<OrderPurchaseInfo>>();
@ -523,9 +526,54 @@ namespace BBWYB.Server.Business
}
}
fsql.Transaction(() =>
var totalPurchaseAmount = request.AssociationPurchaseOrderList.Sum(p => p.PurchaseAmount + p.PurchaseFreight);
var profit = dbOrder.OrderTotalPrice - totalPurchaseAmount - (dbOrderCost?.DeliveryExpressFreight ?? 0); // -orderCost.PlatformCommissionAmount
if (dbOrderCost == null)
{
dbOrderCost = new OrderCost()
{
OrderId = request.OrderId,
DeliveryExpressFreight = 0,
IsManualEdited = false,
PlatformCommissionAmount = 0,
PlatformCommissionRatio = 0,
PreferentialAmount = 0,
CreateTime = DateTime.Now,
PurchaseAmount = totalPurchaseAmount,
TotalCost = totalPurchaseAmount,
Profit = profit
};
insertOrderCost = fsql.Insert(dbOrderCost);
}
else
{
dbOrderCost.PurchaseAmount = totalPurchaseAmount;
dbOrderCost.Profit = profit;
updateOrderCost = fsql.Update<OrderCost>(request.OrderId).Set(oc => oc.PurchaseAmount, totalPurchaseAmount)
.Set(oc => oc.TotalCost, totalPurchaseAmount)
.Set(oc => oc.Profit, profit);
}
fsql.Transaction(() =>
{
if (insertOrderPurchaseInfoList.Count() > 0)
fsql.Insert(insertOrderPurchaseInfoList).ExecuteAffrows();
if (updateOrderPurchaseInfoList.Count() > 0)
{
foreach (var update in updateOrderPurchaseInfoList)
update.ExecuteAffrows();
}
if (insertOrderCostDetailList.Count() > 0)
fsql.Insert(insertOrderCostDetailList).ExecuteAffrows();
if (updateOrderCostDetailList.Count() > 0)
{
foreach (var update in updateOrderCostDetailList)
update.ExecuteAffrows();
}
insertOrderCost?.ExecuteAffrows();
updateOrderCost?.ExecuteAffrows();
});
}

Loading…
Cancel
Save