Browse Source

补齐采购SKU

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

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

@ -496,7 +496,7 @@ namespace BBWYB.Server.Business
IList<string> purchaseAccountIdList = request.AssociationPurchaseOrderList.Select(x => string.IsNullOrEmpty(x.PurchaseAccountId) ? IList<string> purchaseAccountIdList = request.AssociationPurchaseOrderList.Select(x => string.IsNullOrEmpty(x.PurchaseAccountId) ?
x.PurchaseAccountName : x.PurchaseAccountName :
x.PurchaseAccountId).Distinct().ToList(); x.PurchaseAccountId).Distinct().ToList();
IList<PurchaseSchemeResponse> purchaseSchemeList = null; IList<PurchaseSchemeProductSku> purchaseSchemeSkuList = null;
IList<Purchaseaccount> dbPurchaseAccountList = null; IList<Purchaseaccount> dbPurchaseAccountList = null;
foreach (var purchaseOrder in request.AssociationPurchaseOrderList) foreach (var purchaseOrder in request.AssociationPurchaseOrderList)
{ {
@ -508,11 +508,7 @@ namespace BBWYB.Server.Business
} }
if (schemeIdList.Count() > 0) if (schemeIdList.Count() > 0)
{ {
purchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest() purchaseSchemeSkuList = fsql.Select<PurchaseSchemeProductSku>().Where(pss => schemeIdList.Contains(pss.SkuPurchaseSchemeId)).ToList();
{
ShopId = request.ShopId,
SchemeIdList = schemeIdList
});
} }
if (purchaseAccountIdList.Count() > 0) if (purchaseAccountIdList.Count() > 0)
{ {
@ -554,7 +550,7 @@ namespace BBWYB.Server.Business
throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId}缺少采购方案"); throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId}缺少采购方案");
#endregion #endregion
#region 验证采购方案和订单详情是否完整 #region 补齐采购SKU
var purchaseAccount = dbPurchaseAccountList.FirstOrDefault(pa => pa.Id == purchaseOrder.PurchaseAccountId || var purchaseAccount = dbPurchaseAccountList.FirstOrDefault(pa => pa.Id == purchaseOrder.PurchaseAccountId ||
pa.AccountName == purchaseOrder.PurchaseAccountName); pa.AccountName == purchaseOrder.PurchaseAccountName);
if (purchaseAccount == null) if (purchaseAccount == null)
@ -569,31 +565,61 @@ namespace BBWYB.Server.Business
OrderId = purchaseOrder.PurchaseOrderId OrderId = purchaseOrder.PurchaseOrderId
}); });
foreach (var purchaseOrderSku in purchaseOrderSimpleInfo.ItemList)
{
var orderPurchaseSkuInfo = new OrderPurchaseSkuInfo()
{
Id = purchaseOrderSku.OrderSkuId,
CreateTime = DateTime.Now,
OrderId = request.OrderId,
PurchaseOrderId = purchaseOrder.PurchaseOrderId,
PurchaseProductId = purchaseOrderSku.ProductId,
PurchaseSkuId = purchaseOrderSku.SkuId,
ShopId = request.ShopId
};
insertOrderPurchaseSkuInfoList.Add(orderPurchaseSkuInfo);
}
#endregion
#region 补齐采购关系
foreach (var assOrderCostDetail in purchaseOrder.AssocationOrderCostDetailList)
{
var currentPurchaseSchemeSkuList = purchaseSchemeSkuList.Where(x => x.SkuId == assOrderCostDetail.SkuId).ToList();
if (currentPurchaseSchemeSkuList == null || currentPurchaseSchemeSkuList.Count() == 0)
throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId} Sku{assOrderCostDetail.SkuId}缺少采购方案");
var dbOrderSku = dbOrderSkuList.FirstOrDefault(osku => osku.SkuId == assOrderCostDetail.SkuId);
foreach (var currentPurchaseSchemeSku in currentPurchaseSchemeSkuList)
{
var purchaseSkuFromApi = purchaseOrderSimpleInfo.ItemList.FirstOrDefault(x => x.SkuId == currentPurchaseSchemeSku.PurchaseSkuId);
if (purchaseSkuFromApi == null)
{
throw new BusinessException($"Sku{assOrderCostDetail.SkuId}使用了采购方案{currentPurchaseSchemeSku.SkuPurchaseSchemeId}下的采购Sku{currentPurchaseSchemeSku.PurchaseSkuId},而且在采购单{purchaseOrder.PurchaseOrderId}的商品明细中没有找到该采购sku");
}
var orderPurchaseRelationInfo = new OrderPurchaseRelationInfo()
{
Id = idGenerator.NewLong(),
BelongSkuId = assOrderCostDetail.SkuId,
CreateTime = DateTime.Now,
OrderId = assOrderCostDetail.OrderId,
PurchaseOrderId = purchaseOrder.PurchaseOrderId,
PurchaseSkuId = currentPurchaseSchemeSku.PurchaseSkuId,
PurchaseProductId = currentPurchaseSchemeSku.PurchaseProductId,
PurchaseSpecId = currentPurchaseSchemeSku.PurchaseSkuSpecId,
SchemeId = currentPurchaseSchemeSku.SkuPurchaseSchemeId,
Quantity = assOrderCostDetail.PurchaseQuantity,
SourceSkuId = dbOrderSku.BelongSkuId
};
insertOrderPurchaseRelationInfoList.Add(orderPurchaseRelationInfo);
}
}
#endregion #endregion
} }
dbPurchaserOrder = new OrderPurchaseInfo() #region 订单成本明细
{
Id = idGenerator.NewLong(),
OrderId = request.OrderId,
PurchaseAccountId = purchaseOrder.PurchaseAccountId,
PurchaseAccountName = purchaseOrder.PurchaseAccountName,
IsEnabled = true,
BelongSkuIds = string.Join(",", purchaseOrder.AssocationOrderCostDetailList.Select(x => x.SkuId)),
CreateTime = DateTime.Now,
PurchaseMethod = Enums.PurchaseMethod.,
PurchaseOrderId = purchaseOrder.PurchaseOrderId,
PurchasePlatform = purchaseOrder.PurchasePlatform,
PurchaserId = purchaseOrder.PurchaserId,
PurchaserName = purchaseOrder.PurchaserName,
ShopId = request.ShopId
};
insertOrderPurchaseInfoList.Add(dbPurchaserOrder);
foreach (var assOrderCostDetail in purchaseOrder.AssocationOrderCostDetailList) foreach (var assOrderCostDetail in purchaseOrder.AssocationOrderCostDetailList)
{ {
#region 订单成本
var dbOrderSku = dbOrderSkuList.FirstOrDefault(osku => osku.SkuId == assOrderCostDetail.SkuId); var dbOrderSku = dbOrderSkuList.FirstOrDefault(osku => osku.SkuId == assOrderCostDetail.SkuId);
var purchaseFreight = purchaseOrder.PurchaseFreight * (1.0M * assOrderCostDetail.PurchaseQuantity / totalQuantity); var purchaseFreight = purchaseOrder.PurchaseFreight * (1.0M * assOrderCostDetail.PurchaseQuantity / totalQuantity);
var orderCostDetail = new OrderCostDetail() var orderCostDetail = new OrderCostDetail()
@ -615,8 +641,28 @@ namespace BBWYB.Server.Business
0M, 0M,
0M); 0M);
insertOrderCostDetailList.Add(orderCostDetail); insertOrderCostDetailList.Add(orderCostDetail);
#endregion
} }
#endregion
#region 采购单
dbPurchaserOrder = new OrderPurchaseInfo()
{
Id = idGenerator.NewLong(),
OrderId = request.OrderId,
PurchaseAccountId = purchaseOrder.PurchaseAccountId,
PurchaseAccountName = purchaseOrder.PurchaseAccountName,
IsEnabled = true,
BelongSkuIds = string.Join(",", purchaseOrder.AssocationOrderCostDetailList.Select(x => x.SkuId)),
CreateTime = DateTime.Now,
PurchaseMethod = Enums.PurchaseMethod.,
PurchaseOrderId = purchaseOrder.PurchaseOrderId,
PurchasePlatform = purchaseOrder.PurchasePlatform,
PurchaserId = purchaseOrder.PurchaserId,
PurchaserName = purchaseOrder.PurchaserName,
ShopId = request.ShopId
};
insertOrderPurchaseInfoList.Add(dbPurchaserOrder);
#endregion
} }
else else
{ {

Loading…
Cancel
Save