diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs index 006ed26..374319d 100644 --- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs +++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs @@ -395,7 +395,9 @@ namespace BBWYB.Server.Business } } var psupdate = fsql.Update(schemeId) - .Set(ps => ps.DefaultCost, defaultCost); + .Set(ps => ps.DefaultCost, defaultCost) + .Set(ps => ps.HYSchemeId, psReq.HYSchemeId) + .Set(ps => ps.HYBDId, psReq.HYBDId); updatePurchaseSchemeList.Add(psupdate); } } @@ -943,6 +945,12 @@ namespace BBWYB.Server.Business var scheme = schemeList[0]; var defaultCost = 0M; long? pssId = null; + + IDelete deletePss = null; + IDelete deletePsp = null; + IUpdate updatePs = null; + + foreach (var schemeProduct in scheme.PurchaseSchemeProductList) { var tartegtPurchaseProductSku = schemeProduct.PurchaseSchemeProductSkuList.FirstOrDefault(pss => pss.SkuId == request.SkuId && @@ -950,8 +958,13 @@ namespace BBWYB.Server.Business if (tartegtPurchaseProductSku != null) { if (schemeProduct.PurchaseSchemeProductSkuList.Count() == 1) - throw new BusinessException("最后一个采购sku不能被移除"); + { + if (scheme.PurchaseSchemeProductList.Count() == 1) + throw new BusinessException("最后一个采购sku不能被移除"); + deletePsp = fsql.Delete(schemeProduct.Id); + } pssId = tartegtPurchaseProductSku.Id; + deletePss = fsql.Delete(pssId); } defaultCost += schemeProduct.PurchaseSchemeProductSkuList.Where(pss => !(pss.SkuId == request.SkuId && pss.PurchaseSkuId == request.PurchaseSkuId)) @@ -960,10 +973,12 @@ namespace BBWYB.Server.Business if (pssId == null) throw new BusinessException("未找到需要移除的采购sku"); + updatePs = fsql.Update(request.SchemeId).Set(ps => ps.DefaultCost, defaultCost); fsql.Transaction(() => { - fsql.Update(request.SchemeId).Set(ps => ps.DefaultCost, defaultCost).ExecuteAffrows(); - fsql.Delete(pssId.Value).ExecuteAffrows(); + updatePs?.ExecuteAffrows(); + deletePsp?.ExecuteAffrows(); + deletePss?.ExecuteAffrows(); }); return defaultCost; }