tangdi 2 лет назад
Родитель
Сommit
d5016cf53b

+ 11 - 11
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -1613,18 +1613,18 @@ namespace Business.ResourceExamineManagement
             srm_Pr.pr_purchasename = supplier.supplier_name;//供应商名称
             srm_Pr.pr_purchaser = supplier.order_rector_name;//采购员
             srm_Pr.pr_purchaser_num = supplier.order_rector_num;//采购员工号(采购信息表)
-            decimal qty = lack_qty;
-            //数量圆整 按最小包装量向上圆整
-            if (supplier.packaging_qty.GetValueOrDefault() != 0)
-            {
-                decimal count = Math.Ceiling(lack_qty / supplier.packaging_qty.GetValueOrDefault());
-                qty = count * supplier.packaging_qty.GetValueOrDefault();
-            }
-            //判断最小起订量
-            qty = qty > supplier.qty_min.GetValueOrDefault() ? qty : supplier.qty_min.GetValueOrDefault();
+            //decimal qty = lack_qty;
+            ////数量圆整 按最小包装量向上圆整
+            //if (supplier.packaging_qty.GetValueOrDefault() != 0)
+            //{
+            //    decimal count = Math.Ceiling(lack_qty / supplier.packaging_qty.GetValueOrDefault());
+            //    qty = count * supplier.packaging_qty.GetValueOrDefault();
+            //}
+            ////判断最小起订量
+            //qty = qty > supplier.qty_min.GetValueOrDefault() ? qty : supplier.qty_min.GetValueOrDefault();
             srm_Pr.pr_rqty = lack_qty;//需求数量
-            srm_Pr.pr_aqty = qty;//申请数量
-            srm_Pr.pr_sqty = qty;//建议数量
+            srm_Pr.pr_aqty = lack_qty;//申请数量
+            srm_Pr.pr_sqty = lack_qty;//建议数量
             srm_Pr.icitem_id = returnlist.item_id;//物料id
             srm_Pr.icitem_name = returnlist.item_name;//物料名称
             srm_Pr.num = returnlist.num;

+ 35 - 2
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -1161,7 +1161,7 @@ namespace Business.ResourceExamineManagement
             List<ic_item> ic_Items = _mysql_ic_item.GetListAsync(s => s.company_id.ToString() == companyid && alllist.Select(c => c.icitem_id).Distinct().Contains(s.Id)).Result;
 
             var occupylist = _mysql_srm_po_occupy.GetListAsync(s => alllist.Select(c => c.Id).Contains(s.polist_id.GetValueOrDefault()) && s.company_id.ToString() == companyid && s.IsDeleted == false).Result;
-
+            var purList = _mysql_srm_purchase.GetListAsync(x => x.company_id.ToString() == companyid).Result;
             List<srm_pr_main> insetAllList = new List<srm_pr_main>();
             List<srm_pr_main> updateAllList = new List<srm_pr_main>();
 
@@ -1184,13 +1184,15 @@ namespace Business.ResourceExamineManagement
                         //有多条才进行合并
                         var ilist = prlist.Where(s => s.pr_purchaseid == pr.pr_purchaseid && s.icitem_id == pr.icitem_id && s.IsRequireGoods == pr.IsRequireGoods && s.supplier_type == pr.supplier_type && (s.sentry_id == null) == bl).ToList();
                         //var ilist = prlist.Where(s => s.pr_purchaseid == pr.pr_purchaseid && s.icitem_id == pr.icitem_id).ToList();
+                        var pur = purList.Find(x => x.icitem_id == pr.icitem_id && x.supplier_id == pr.pr_purchaseid);
                         if (ilist.Count > 1)
                         {
                             var icitem = ic_Items.Find(s => s.Id == pr.icitem_id);
                             var prRefoccupy = occupylist.Where(s => s.polist_id == pr.Id).ToList();
                             newPr = help.DeepCopy(pr);
                             newPr.GenerateNewId(help.NextId());
-                            prRefoccupy.ForEach(a => {
+                            prRefoccupy.ForEach(a =>
+                            {
                                 a.polist_id = newPr.Id;
                             });
                             newPr.pr_billno = Nbr.ToString();//pr单号
@@ -1199,6 +1201,20 @@ namespace Business.ResourceExamineManagement
                             newPr.pr_aqty = ilist.Sum(s => s.pr_aqty);//申请数量
                             newPr.pr_sqty = ilist.Sum(s => s.pr_sqty);//建议数量
 
+                            decimal qty = newPr.pr_rqty.GetValueOrDefault();
+                            if (pur != null && pur.quota_rate.GetValueOrDefault() == 100)
+                            {
+                                //数量圆整 按最小包装量向上圆整
+                                if (pur.packaging_qty.GetValueOrDefault() != 0)
+                                {
+                                    decimal count = Math.Ceiling(qty / pur.packaging_qty.GetValueOrDefault());
+                                    qty = count * pur.packaging_qty.GetValueOrDefault();
+                                }
+                                //判断最小起订量
+                                qty = qty > pur.qty_min.GetValueOrDefault() ? qty : pur.qty_min.GetValueOrDefault();
+                                newPr.pr_aqty = qty;//申请数量
+                                newPr.pr_sqty = qty;//建议数量
+                            }
                             newPr.pr_ssend_date = ilist.Min(s => s.pr_ssend_date);//系统建议下单日期
                             newPr.pr_sarrive_date = ilist.Min(s => s.pr_sarrive_date);//系统建议到达日期(建议到货日期)
                             /*            newPr.pr_psend_date = ilist.Min(s => s.pr_psend_date);//计划下单日期
@@ -1213,6 +1229,23 @@ namespace Business.ResourceExamineManagement
                             updatePrList.AddRange(ilist);
                             Nbr++;
                         }
+                        else {
+                            decimal qty = pr.pr_rqty.GetValueOrDefault();
+                            if (pur != null && pur.quota_rate.GetValueOrDefault() == 100)
+                            {
+                                //数量圆整 按最小包装量向上圆整
+                                if (pur.packaging_qty.GetValueOrDefault() != 0)
+                                {
+                                    decimal count = Math.Ceiling(qty / pur.packaging_qty.GetValueOrDefault());
+                                    qty = count * pur.packaging_qty.GetValueOrDefault();
+                                }
+                                //判断最小起订量
+                                qty = qty > pur.qty_min.GetValueOrDefault() ? qty : pur.qty_min.GetValueOrDefault();
+                                pr.pr_aqty = qty;//申请数量
+                                pr.pr_sqty = qty;//建议数量
+                            }
+
+                        }
                     }
                 }
                 insetAllList.AddRange(insetPrList);