diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 3a7effa..de9ed2e 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -506,29 +506,38 @@ namespace BBWYB.Server.Business #endregion } - #region 更新采购方案 + #region 更新采购方案/配件 { var allCargoParamList = new List(); - request.CargoParamGroupList.ForEach(x => allCargoParamList.AddRange(x.CargoParamList)); - var cargoParamGroupsBySchemeList = allCargoParamList.GroupBy(c => c.SchemeId); - foreach (var cargoParamGroupsByScheme in cargoParamGroupsBySchemeList) - { - var schemeId = cargoParamGroupsByScheme.Key; - var skuId = cargoParamGroupsByScheme.FirstOrDefault().BelongSkuId; - - var lastPurchasePriceCost = cargoParamGroupsByScheme.Sum(cargoParam => createdPurchaseOrderItemList.Where(x => x.SkuId == cargoParam.SkuId) - .Select(x => x.Price * (cargoParam.PurchaseRatio ?? 1)) - .DefaultIfEmpty(0M) - .First()); - var purchasedAmount = insertOrderCostDetails.Where(ocd => ocd.SkuId == skuId).Sum(ocd => ocd.SkuAmount); - var update = fsql.Update(schemeId).Set(ps => ps.LastPurchaseTime, DateTime.Now) - .Set(ps => ps.LastPurchasePriceCost, lastPurchasePriceCost) - .Set(ps => ps.PurchasedCount + 1) - .Set(ps => ps.PurchasedAmount + purchasedAmount); - updatePurchaseSchemeList.Add(update); + #region 更新采购方案 + { + var cargoParamGroupsBySchemeList = allCargoParamList.GroupBy(c => c.SchemeId); + foreach (var cargoParamGroupsByScheme in cargoParamGroupsBySchemeList) + { + var schemeId = cargoParamGroupsByScheme.Key; + var skuId = cargoParamGroupsByScheme.FirstOrDefault().BelongSkuId; + var skuItemCount = orderSkus.FirstOrDefault(osku => osku.SkuId == skuId)?.ItemTotal ?? 0; + + var lastPurchasePriceCost = cargoParamGroupsByScheme.Sum(cargoParam => createdPurchaseOrderItemList.Where(x => x.SkuId == cargoParam.SkuId) + .Select(x => x.Price * (cargoParam.PurchaseRatio ?? 1)) + .DefaultIfEmpty(0M) + .First()); + var purchasedAmount = insertOrderCostDetails.Where(ocd => ocd.SkuId == skuId).Sum(ocd => ocd.SkuAmount); + var update = fsql.Update(schemeId).Set(ps => ps.LastPurchaseTime, DateTime.Now) + .Set(ps => ps.LastPurchasePriceCost, lastPurchasePriceCost) + .Set(ps => ps.PurchasedCount + 1) + .Set(ps => ps.PurchasedItemCount + skuItemCount) + .Set(ps => ps.PurchasedAmount + purchasedAmount); + updatePurchaseSchemeList.Add(update); + } } + #endregion + + #region 更新采购配件 + + #endregion } #endregion diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs index b9679e5..59c320b 100644 --- a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs +++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs @@ -103,6 +103,11 @@ namespace BBWYB.Server.Model /// 最近议价日期 /// public DateTime? LastBargainingTime { get; set; } + + /// + /// 采购件数 + /// + public int? PurchasedItemCount { get; set; } = 0; } }