Просмотр исходного кода

生成交货单时只占用采购组为110,106的PO,以及供应类别为标准的DO

heteng 2 лет назад
Родитель
Сommit
b1c1d0326a

+ 23 - 0
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -6768,6 +6768,29 @@ namespace Business.Replenishment
             //获取占用可用PO明细的交货单
             //获取占用可用PO明细的交货单
             List<srm_polist_ds> dbPolistds = _srmpolistds.Select(p => purOrds.Contains(p.ponumber) && p.isactive == 1).ToList();
             List<srm_polist_ds> dbPolistds = _srmpolistds.Select(p => purOrds.Contains(p.ponumber) && p.isactive == 1).ToList();
 
 
+            //过滤PO、DO:
+            //1、PO只有采购组为110,160的采购订单能使用
+            //2、DO只有供应类别为"标准的才能使用"
+            List<PurOrdMaster> newPurMasters = new List<PurOrdMaster>();
+            var kyPoList = purOrdMasters.Where(p => !p.PurOrd.StartsWith("DO") && (p.Buyer == "110" || p.Buyer == "160")).ToList();
+            if (kyPoList.Any())
+            {
+                newPurMasters.AddRange(kyPoList);
+            }
+            var kyDoList = purOrdMasters.Where(p => p.PurOrd.StartsWith("DO") && p.USAGE == "标准").ToList();
+            if (kyDoList.Any())
+            {
+                newPurMasters.AddRange(kyDoList);
+            }
+            purOrdMasters = newPurMasters;
+            if (!purOrdMasters.Any())
+            {
+                Msg = "NO|没有可用的采购单";
+                return Msg;
+            }
+            //过滤采购单明细
+            purOrdDetails = purOrdDetails.Where(p => purOrdMasters.Select(m => m.PurOrd).Contains(p.PurOrd)).ToList();
+
             //生成交货单
             //生成交货单
             srm_polist_ds entity;
             srm_polist_ds entity;
             List<srm_polist_ds> inserts = new List<srm_polist_ds>();
             List<srm_polist_ds> inserts = new List<srm_polist_ds>();