|
@ -235,12 +235,10 @@ namespace BBWYB.Server.Business |
|
|
Platform = (AdapterEnums.PlatformType)purchaseAccount.PurchasePlatformId, |
|
|
Platform = (AdapterEnums.PlatformType)purchaseAccount.PurchasePlatformId, |
|
|
PurchaseMode = (AdapterEnums.PurchaseMode)request.PurchaseOrderMode, |
|
|
PurchaseMode = (AdapterEnums.PurchaseMode)request.PurchaseOrderMode, |
|
|
Extensions = extJson.Value<string>("OrderTradeTypeCode"), |
|
|
Extensions = extJson.Value<string>("OrderTradeTypeCode"), |
|
|
Remark = request.Remark, |
|
|
Remark = !string.IsNullOrEmpty(cargoParamGroup.Remark) ? cargoParamGroup.Remark : request.Remark, |
|
|
OrderProductParamList = orderProductParamList |
|
|
OrderProductParamList = orderProductParamList |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var purchaseOrderSimpleInfo = client.QueryOrderDetail(new PP_QueryOrderDetailRequest() |
|
|
var purchaseOrderSimpleInfo = client.QueryOrderDetail(new PP_QueryOrderDetailRequest() |
|
|
{ |
|
|
{ |
|
|
AppKey = purchaseAccount.AppKey, |
|
|
AppKey = purchaseAccount.AppKey, |
|
@ -331,7 +329,8 @@ namespace BBWYB.Server.Business |
|
|
PurchaserName = cargoParamGroup.PurchaserName, |
|
|
PurchaserName = cargoParamGroup.PurchaserName, |
|
|
ShopId = request.ShopId, |
|
|
ShopId = request.ShopId, |
|
|
BelongSkuIds = string.Join(",", belongSkuGroups.Select(bsg => bsg.Key)), |
|
|
BelongSkuIds = string.Join(",", belongSkuGroups.Select(bsg => bsg.Key)), |
|
|
IsEnabled = true |
|
|
IsEnabled = true, |
|
|
|
|
|
Remark = !string.IsNullOrEmpty(cargoParamGroup.Remark) ? cargoParamGroup.Remark : request.Remark |
|
|
}; |
|
|
}; |
|
|
insertOrderPurchaseInfos.Add(orderPurchaserInfo); |
|
|
insertOrderPurchaseInfos.Add(orderPurchaserInfo); |
|
|
#endregion
|
|
|
#endregion
|
|
@ -474,7 +473,7 @@ namespace BBWYB.Server.Business |
|
|
var dbPurchaseOrderList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == request.OrderId).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 dbInvalidPurchaseOrderIdList = dbPurchaseOrderList.Where(opi => !opi.IsEnabled).Select(opi => opi.PurchaseOrderId).ToList(); |
|
|
|
|
|
|
|
|
if (request.AssociationPurchaseOrderList.Any(x => dbInvalidPurchaseOrderIdList.Contains(x.PurchaserOrderId))) |
|
|
if (request.AssociationPurchaseOrderList.Any(x => dbInvalidPurchaseOrderIdList.Contains(x.PurchaseOrderId))) |
|
|
throw new BusinessException("关联采购单时不能包含历史采购单"); |
|
|
throw new BusinessException("关联采购单时不能包含历史采购单"); |
|
|
|
|
|
|
|
|
var dbOrderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == request.OrderId).ToList(); |
|
|
var dbOrderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == request.OrderId).ToList(); |
|
@ -491,11 +490,11 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
|
foreach (var purchaseOrder in request.AssociationPurchaseOrderList) |
|
|
foreach (var purchaseOrder in request.AssociationPurchaseOrderList) |
|
|
{ |
|
|
{ |
|
|
if (dbInvalidPurchaseOrderIdList.Contains(purchaseOrder.PurchaserOrderId)) |
|
|
if (dbInvalidPurchaseOrderIdList.Contains(purchaseOrder.PurchaseOrderId)) |
|
|
continue; |
|
|
continue; |
|
|
|
|
|
|
|
|
var avgFreight = purchaseOrder.PurchaseFreight / purchaseOrder.AssocationOrderCostDetailList.Count(); |
|
|
var avgFreight = purchaseOrder.PurchaseFreight / purchaseOrder.AssocationOrderCostDetailList.Count(); |
|
|
var dbPurchaserOrder = dbPurchaseOrderList.FirstOrDefault(x => x.PurchaseOrderId == purchaseOrder.PurchaserOrderId); |
|
|
var dbPurchaserOrder = dbPurchaseOrderList.FirstOrDefault(x => x.PurchaseOrderId == purchaseOrder.PurchaseOrderId); |
|
|
if (dbPurchaserOrder == null) |
|
|
if (dbPurchaserOrder == null) |
|
|
{ |
|
|
{ |
|
|
dbPurchaserOrder = new OrderPurchaseInfo() |
|
|
dbPurchaserOrder = new OrderPurchaseInfo() |
|
@ -508,7 +507,7 @@ namespace BBWYB.Server.Business |
|
|
BelongSkuIds = string.Join(",", purchaseOrder.AssocationOrderCostDetailList.Select(x => x.SkuId)), |
|
|
BelongSkuIds = string.Join(",", purchaseOrder.AssocationOrderCostDetailList.Select(x => x.SkuId)), |
|
|
CreateTime = DateTime.Now, |
|
|
CreateTime = DateTime.Now, |
|
|
PurchaseMethod = Enums.PurchaseMethod.关联外部单, |
|
|
PurchaseMethod = Enums.PurchaseMethod.关联外部单, |
|
|
PurchaseOrderId = purchaseOrder.PurchaserOrderId, |
|
|
PurchaseOrderId = purchaseOrder.PurchaseOrderId, |
|
|
PurchasePlatform = purchaseOrder.PurchasePlatform, |
|
|
PurchasePlatform = purchaseOrder.PurchasePlatform, |
|
|
PurchaserId = purchaseOrder.PurchaserId, |
|
|
PurchaserId = purchaseOrder.PurchaserId, |
|
|
PurchaserName = purchaseOrder.PurchaserName, |
|
|
PurchaserName = purchaseOrder.PurchaserName, |
|
@ -531,7 +530,7 @@ namespace BBWYB.Server.Business |
|
|
SkuAmount = assOrderCostDetail.SkuAmount, |
|
|
SkuAmount = assOrderCostDetail.SkuAmount, |
|
|
PurchaseFreight = avgFreight, |
|
|
PurchaseFreight = avgFreight, |
|
|
TotalCost = assOrderCostDetail.SkuAmount + avgFreight, |
|
|
TotalCost = assOrderCostDetail.SkuAmount + avgFreight, |
|
|
PurchaseOrderId = purchaseOrder.PurchaserOrderId |
|
|
PurchaseOrderId = purchaseOrder.PurchaseOrderId |
|
|
}; |
|
|
}; |
|
|
insertOrderCostDetailList.Add(orderCostDetail); |
|
|
insertOrderCostDetailList.Add(orderCostDetail); |
|
|
} |
|
|
} |
|
@ -548,17 +547,40 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
|
foreach (var assOrderCostDetail in purchaseOrder.AssocationOrderCostDetailList) |
|
|
foreach (var assOrderCostDetail in purchaseOrder.AssocationOrderCostDetailList) |
|
|
{ |
|
|
{ |
|
|
var dbOrderCostDetail = dbOrderCostDetailList.FirstOrDefault(ocd => ocd.SkuId == assOrderCostDetail.SkuId); |
|
|
var dbOrderCostDetail = dbOrderCostDetailList.FirstOrDefault(ocd => ocd.SkuId == assOrderCostDetail.SkuId && |
|
|
dbOrderCostDetail.SkuAmount = assOrderCostDetail.SkuAmount; |
|
|
ocd.PurchaseOrderId == purchaseOrder.PurchaseOrderId); |
|
|
dbOrderCostDetail.DeductionQuantity = assOrderCostDetail.PurchaseQuantity; |
|
|
if (dbOrderCostDetail == null) |
|
|
dbOrderCostDetail.PurchaseFreight = avgFreight; |
|
|
{ |
|
|
dbOrderCostDetail.TotalCost = assOrderCostDetail.SkuAmount + avgFreight; |
|
|
var dbOrderSku = dbOrderSkuList.FirstOrDefault(osku => osku.SkuId == assOrderCostDetail.SkuId); |
|
|
updateOrderCostDetailList.Add(fsql.Update<OrderCostDetail>().SetSource(dbOrderCostDetail)); |
|
|
dbOrderCostDetail = new OrderCostDetail() |
|
|
|
|
|
{ |
|
|
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
|
|
CreateTime = DateTime.Now, |
|
|
|
|
|
DeductionQuantity = assOrderCostDetail.PurchaseQuantity, |
|
|
|
|
|
IsEnabled = true, |
|
|
|
|
|
OrderId = request.OrderId, |
|
|
|
|
|
ProductId = dbOrderSku.ProductId, |
|
|
|
|
|
SkuId = assOrderCostDetail.SkuId, |
|
|
|
|
|
SkuAmount = assOrderCostDetail.SkuAmount, |
|
|
|
|
|
PurchaseFreight = avgFreight, |
|
|
|
|
|
TotalCost = assOrderCostDetail.SkuAmount + avgFreight, |
|
|
|
|
|
PurchaseOrderId = purchaseOrder.PurchaseOrderId |
|
|
|
|
|
}; |
|
|
|
|
|
insertOrderCostDetailList.Add(dbOrderCostDetail); |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
dbOrderCostDetail.SkuAmount = assOrderCostDetail.SkuAmount; |
|
|
|
|
|
dbOrderCostDetail.DeductionQuantity = assOrderCostDetail.PurchaseQuantity; |
|
|
|
|
|
dbOrderCostDetail.PurchaseFreight = avgFreight; |
|
|
|
|
|
dbOrderCostDetail.TotalCost = assOrderCostDetail.SkuAmount + avgFreight; |
|
|
|
|
|
updateOrderCostDetailList.Add(fsql.Update<OrderCostDetail>().SetSource(dbOrderCostDetail)); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
var totalPurchaseAmount = request.AssociationPurchaseOrderList.Where(x => !dbInvalidPurchaseOrderIdList.Contains(x.PurchaserOrderId)) |
|
|
var totalPurchaseAmount = request.AssociationPurchaseOrderList.Where(x => !dbInvalidPurchaseOrderIdList.Contains(x.PurchaseOrderId)) |
|
|
.Sum(p => p.PurchaseAmount + p.PurchaseFreight); |
|
|
.Sum(p => p.PurchaseAmount + p.PurchaseFreight); |
|
|
var profit = dbOrder.OrderTotalPrice - totalPurchaseAmount - (dbOrderCost?.DeliveryExpressFreight ?? 0); // -orderCost.PlatformCommissionAmount
|
|
|
var profit = dbOrder.OrderTotalPrice - totalPurchaseAmount - (dbOrderCost?.DeliveryExpressFreight ?? 0); // -orderCost.PlatformCommissionAmount
|
|
|
|
|
|
|
|
|