Преглед на файлове

Merge branch 'dev' of http://123.60.180.165:4647/ZZYDOP/DOPCore into dev

tangdi преди 2 години
родител
ревизия
0b12e902b2
променени са 1 файла, в които са добавени 11 реда и са изтрити 5 реда
  1. 11 5
      MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

+ 11 - 5
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -6350,7 +6350,7 @@ namespace Business.Replenishment
         {
             string Msg = "OK|交货单生成成功";
             //获取已发布且净需求数量大于0的交货计划数据
-            var demandplans = _icdemandschedule.GetListAsync(p=>p.factory_id.ToString() == domain && p.status.ToUpper() == "P" && p.tosechedqty > 0 && !p.IsDeleted).Result;
+            var demandplans = _icdemandschedule.GetListAsync(p => p.factory_id.ToString() == domain && p.status.ToUpper() == "P" && p.tosechedqty > 0 && !p.IsDeleted).Result.OrderBy(p => p.arrivaldate).ToList();
             //获取已以生成交货单的交货计划
             var alreadys = _srmpolistds.Select(p => p.domain == domain && demandplans.Select(m => m.Id).Contains(p.icdsid) && p.isactive == 1).ToList();
             if (alreadys.Any())
@@ -6382,7 +6382,8 @@ namespace Business.Replenishment
                 return Msg;
             }
             //获取采购明细数据:未关闭,且未交货数量(需求数量-已收数量)>0
-            List<PurOrdDetail> purOrdDetails = _PurOrdDetail.Select(p => p.Domain == domain && itemnums.Contains(p.ItemNum) && p.Status.ToUpper() != "C" && (p.QtyOrded - p.RctQty)>0).OrderBy(p=>p.DueDate).ToList();
+            //DateTime endTime = Convert.ToDateTime("2024-01-01 00:00:00.000");
+            List<PurOrdDetail> purOrdDetails = _PurOrdDetail.Select(p => p.Domain == domain && itemnums.Contains(p.ItemNum) && p.Status.ToUpper() != "C" && (p.QtyOrded - p.RctQty) > 0).OrderBy(p => p.DueDate).ToList();
             if (!purOrdDetails.Any())
             {
                 Msg = "NO|没有可用的采购单";
@@ -6497,6 +6498,10 @@ namespace Business.Replenishment
                 //存在货源清单,采购单明细可用数量满足当前交货计划,则先计算供应商配额,计算当前供应商对应的采购明细是否满足配额,若满足则占用采购单明细可用数量
                 foreach (var pch in curChaes)
                 {
+                    if (pch.quota_rate.GetValueOrDefault() == 0)
+                    {
+                        continue;
+                    }
                     //如果交货计划已分配数量>=交货计划净需求数量,则终止
                     if (allQty >= item.tosechedqty)
                     {
@@ -6505,12 +6510,13 @@ namespace Business.Replenishment
                     //供应商占用数量置0
                     sumNeedQty = 0m;
                     //计算当前供应商分配数量
-                    needQty = item.tosechedqty * pch.quota_rate.GetValueOrDefault() / 100.00m;
+                    needQty = Math.Ceiling(item.tosechedqty * pch.quota_rate.GetValueOrDefault() / 100.00m);
                     //如果交货计划剩余数量小于按照供应商配额计算的数量,则当前供应商需分配数量为交货计划剩余数量
                     if (item.tosechedqty - allQty < needQty)
                     {
                         needQty = item.tosechedqty - allQty;
                     }
+                    //以下为供应商是采购申请场景
                     //获取当前供应商对应的采购单明细数据,按照交货日期从小到大开始占用
                     var pchPurMsts = curPurMsts.Where(p => p.Supp == pch.supplier_number).ToList();
                     if (!pchPurMsts.Any())
@@ -6521,7 +6527,7 @@ namespace Business.Replenishment
                         info.Icdsid = item.Id;
                         info.ItemNum = item.itemnum;
                         info.CreateTime = DateTime.Now;
-                        info.Remark = "物料[" + item.itemnum + "]对应供应商["+ pch.supplier_name + "]没有可用采购明细,无法转交货单";
+                        info.Remark = "交货计划[" + item.itemnum + ":" + item.requestdate.ToString("yyyy-MM-dd") + "]对应供应商[" + pch.supplier_name + "]没有可用采购明细,无法转交货单";
                         info.OptTime = optime;
                         exceptions.Add(info);
 
@@ -6561,7 +6567,7 @@ namespace Business.Replenishment
                         info.Icdsid = item.Id;
                         info.ItemNum = item.itemnum;
                         info.CreateTime = DateTime.Now;
-                        info.Remark = "物料[" + item.itemnum + "]对应供应商[" + pch.supplier_name + "]采购明细可用数量不足,无法转交货单";
+                        info.Remark = "交货计划[" + item.itemnum + ":" + item.requestdate.ToString("yyyy-MM-dd") + "]对应供应商[" + pch.supplier_name + "]采购明细可用数量不足,无法转交货单";
                         info.OptTime = optime;
                         exceptions.Add(info);