|
|
@ -466,7 +466,10 @@ namespace BBWYB.Server.Business |
|
|
|
if (request.AssociationPurchaseOrderList == null || request.AssociationPurchaseOrderList.Count() == 0) |
|
|
|
throw new BusinessException("缺少采购单信息"); |
|
|
|
|
|
|
|
var dbPurchaseOrderList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == request.OrderId && opi.IsEnabled == true).ToList(); |
|
|
|
|
|
|
|
var dbPurchaseOrderList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == request.OrderId).ToList(); |
|
|
|
var dbInvalidPurchaseOrderIdList = dbPurchaseOrderList.Where(opi => !opi.IsEnabled).Select(opi => opi.PurchaseOrderId).ToList(); |
|
|
|
|
|
|
|
var dbOrderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == request.OrderId).ToList(); |
|
|
|
var dbOrderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == request.OrderId && ocd.IsEnabled == true).ToList(); |
|
|
|
var dbOrderCost = fsql.Select<OrderCost>(request.OrderId).ToOne(); |
|
|
@ -481,6 +484,9 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
foreach (var purchaseOrder in request.AssociationPurchaseOrderList) |
|
|
|
{ |
|
|
|
if (dbInvalidPurchaseOrderIdList.Contains(purchaseOrder.PurchaserOrderId)) |
|
|
|
continue; |
|
|
|
|
|
|
|
var avgFreight = purchaseOrder.PurchaseFreight / purchaseOrder.AssocationOrderCostDetailList.Count(); |
|
|
|
var dbPurchaserOrder = dbPurchaseOrderList.FirstOrDefault(x => x.PurchaseOrderId == purchaseOrder.PurchaserOrderId); |
|
|
|
if (dbPurchaserOrder == null) |
|
|
@ -543,8 +549,8 @@ namespace BBWYB.Server.Business |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var totalPurchaseAmount = request.AssociationPurchaseOrderList.Sum(p => p.PurchaseAmount + p.PurchaseFreight); |
|
|
|
var totalPurchaseAmount = request.AssociationPurchaseOrderList.Where(x => !dbInvalidPurchaseOrderIdList.Contains(x.PurchaserOrderId)) |
|
|
|
.Sum(p => p.PurchaseAmount + p.PurchaseFreight); |
|
|
|
var profit = dbOrder.OrderTotalPrice - totalPurchaseAmount - (dbOrderCost?.DeliveryExpressFreight ?? 0); // -orderCost.PlatformCommissionAmount
|
|
|
|
|
|
|
|
if (dbOrderCost == null) |
|
|
@ -594,6 +600,44 @@ namespace BBWYB.Server.Business |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
public void SetHistoryPurchaseOrder(SetHistoryPurchaseOrderRequest request) |
|
|
|
{ |
|
|
|
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(); |
|
|
|
|
|
|
|
var invalidCost = dbOrderCostDetailList.Sum(ocd => ocd.SkuAmount + ocd.PurchaseFreight); |
|
|
|
|
|
|
|
//orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio;
|
|
|
|
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
|
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
|
fsql.Update<OrderPurchaseInfo>() |
|
|
|
.Set(opi => opi.IsEnabled, false) |
|
|
|
.Where(opi => opi.PurchaseOrderId == request.PurchaseOrderId) |
|
|
|
.ExecuteAffrows(); |
|
|
|
|
|
|
|
fsql.Update<OrderCostDetail>() |
|
|
|
.Set(ocd => ocd.IsEnabled, false) |
|
|
|
.Where(ocd => ocd.PurchaseOrderId == request.PurchaseOrderId) |
|
|
|
.ExecuteAffrows(); |
|
|
|
|
|
|
|
fsql.Update<OrderCost>().SetSource(dbOrderCost).ExecuteAffrows(); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
#region 1688CallBack
|
|
|
|
public void CallbackFrom1688(string jsonStr) |
|
|
|
{ |
|
|
|