tangdi пре 2 година
родитељ
комит
fdec6ea6a1

+ 63 - 68
MicroServices/Business/Business.Application/ResourceExamineManagement/CalcBomViewAppService.cs

@@ -1225,87 +1225,82 @@ namespace Business.ResourceExamineManagement
         private SRMPRDto CreateSRMPR(BomChildExamineDto returnlist, long? companyId, long factoryid, long bangId, int orderType, List<ICItemLeadTimeDto> iCItemLeadTimes, List<mo_srm_purchase> supplierList, List<mo_ic_item> planList, crm_seorderentry sentrys)
         {
             SRMPRDto sRMPR = new SRMPRDto();
-            var supplier = supplierList.OrderBy(s=>s.quota_priority).ToList();//默认取配额优先级
+            var supplier = supplierList.OrderBy(s => s.quota_priority).FirstOrDefault();//默认取配额优先级
             var plan = planList.Find(x => x.mysql_id == returnlist.item_id);
-            sRMPR.srm_Pr_Main = new List<mo_srm_pr_main>(); 
-            if (!supplier.Any() || plan == null)
+            sRMPR.srm_Pr_Main = new List<mo_srm_pr_main>();
+            if (supplier == null || plan == null)
             {
                 sRMPR.lastStartTmie = DateTime.Now.AddDays(7);//默认采购提前期
                 return sRMPR;
                 //throw new NotImplementedException("未找到物料ic_factory_details或ic_item_pur或ic_plan信息!");
             }
-
-            supplier.ForEach(x =>
+            mo_srm_pr_main srm_Pr = new mo_srm_pr_main();
+            srm_Pr.GenerateNewId(help.NextId());
+            srm_Pr.mysql_id = help.NextId();
+            srm_Pr.pr_billno = returnlist.erp_cls == 2 ? getOrderNum("WWPR") : getOrderNum("PR");//pr单号
+            if (mes_morder != null)
             {
-                mo_srm_pr_main srm_Pr = new mo_srm_pr_main();
-                srm_Pr.GenerateNewId(help.NextId());
-                srm_Pr.mysql_id = help.NextId();
-                srm_Pr.pr_billno = returnlist.erp_cls == 2 ? getOrderNum("WWPR") : getOrderNum("PR");//pr单号
-                if (mes_morder != null)
-                {
-                    srm_Pr.pr_mono = mes_morder.morder_no;//关联工单号
-                    srm_Pr.entity_id = 1;//工单行号
-                }
-                srm_Pr.IsRequireGoods = x.IsRequireGoods;
-                srm_Pr.pr_purchaseid = x.supplier_id;//供应商id  
-                srm_Pr.pr_purchasenumber = x.supplier_number;//供应商编码
-                srm_Pr.pr_purchasename = x.supplier_name;//供应商名称
-                srm_Pr.pr_purchaser = x.purcher;//采购员
-                srm_Pr.pr_purchaser_num = "";//采购员工号(采购信息表)
-                //数量圆整 按最小包装量向上圆整
-                decimal qty = Math.Ceiling(returnlist.lack_qty / (x.packaging_qty.GetValueOrDefault() == 0 ? 1 : x.packaging_qty.GetValueOrDefault()));
-                //判断最小起订量
-                qty = qty > x.qty_min ? qty : x.qty_min.GetValueOrDefault();
-                srm_Pr.pr_rqty = returnlist.lack_qty;//需求数量
-                srm_Pr.pr_aqty = qty;//申请数量
-                srm_Pr.pr_sqty = qty;//建议数量
-                srm_Pr.icitem_id = returnlist.item_id;//物料id
-                srm_Pr.icitem_name = returnlist.item_name;//物料名称
-                srm_Pr.num = returnlist.num;
-                var tomorrow = DateTime.Now.Date.AddDays(1);
-                srm_Pr.pr_order_type = 1;//单据类型
-                srm_Pr.pr_ssend_date = tomorrow;//系统建议下单日期
-                srm_Pr.pr_sarrive_date = DateTime.Now.AddDays((double)plan.order_leadtime).AddDays((double)plan.transportation_leadtime);//系统建议到达日期(建议到货日期)
-                srm_Pr.pr_psend_date = tomorrow;//计划下单日期
-                srm_Pr.pr_parrive_date = DateTime.Now.AddDays((double)plan.order_leadtime).AddDays((double)plan.transportation_leadtime);//计划到达日期
-                srm_Pr.pr_rarrive_date = DateTime.Now.AddDays((double)plan.order_leadtime).AddDays((double)plan.transportation_leadtime);//需求到货日期
-                srm_Pr.pr_sysprice = x.order_price;//系统价格(含税)
-                srm_Pr.pr_orderprice = qty * x.order_price;//订单价格(含税)
-                srm_Pr.pr_price = x.netpurchase_price;//采购净价(不含税)
-                /*srm_Pr.pr_sysprice = qty * x.netpurchase_price * (1 + x.taxrate);//系统价格(含税)
-                srm_Pr.pr_orderprice = qty * x.netpurchase_price * (1 + x.taxrate);//订单价格(含税)
-                srm_Pr.pr_price = x.netpurchase_price;//采购净价(不含税)*/
-                srm_Pr.pr_rate = x.taxrate;//税率
-                srm_Pr.pr_unit = returnlist.unit;//单位
-                srm_Pr.state = 1;//状态
-                srm_Pr.old_apply_aqty = 0;//已申请数量
-                srm_Pr.pr_type = orderType;//申请类型
-                srm_Pr.currencytype = x.currency_type == null ? 1 : x.currency_type.Value;//币种
-                srm_Pr.secInv_ratio = plan.secinv_ratio;//安全库存触发采购比例
-                srm_Pr.tenant_id = companyId.GetValueOrDefault();
-                srm_Pr.company_id = companyId;
-                srm_Pr.factory_id = factoryid;
-                srm_Pr.bang_id = bangId;
-                if (sentrys != null)
-                {
-                    srm_Pr.sentry_id = sentrys.Id;
-                }
-                //_srm_pr_main.InsertOne(srm_Pr);
-                decimal? totalLeadTime = plan.transportation_leadtime + plan.stock_leadtime + plan.production_leadtime + plan.order_leadtime;
-                srm_Pr.totalLeadTime= totalLeadTime;
-                srm_Pr.create_time = DateTime.Now;
-                srm_Pr.create_by_name = "admin";
-                srm_Pr.update_time = DateTime.Now;
-                srm_Pr.update_by_name = "admin";
-                sRMPR.srm_Pr_Main.Add(srm_Pr);
-            });
+                srm_Pr.pr_mono = mes_morder.morder_no;//关联工单号
+                srm_Pr.entity_id = 1;//工单行号
+            }
+            srm_Pr.IsRequireGoods = supplier.IsRequireGoods;
+            srm_Pr.pr_purchaseid = supplier.supplier_id;//供应商id  
+            srm_Pr.pr_purchasenumber = supplier.supplier_number;//供应商编码
+            srm_Pr.pr_purchasename = supplier.supplier_name;//供应商名称
+            srm_Pr.pr_purchaser = supplier.purcher;//采购员
+            srm_Pr.pr_purchaser_num = "";//采购员工号(采购信息表)
+                                         //数量圆整 按最小包装量向上圆整
+            decimal qty = Math.Ceiling(returnlist.lack_qty / (supplier.packaging_qty.GetValueOrDefault() == 0 ? 1 : supplier.packaging_qty.GetValueOrDefault()));
+            //判断最小起订量
+            qty = qty > supplier.qty_min ? qty : supplier.qty_min.GetValueOrDefault();
+            srm_Pr.pr_rqty = returnlist.lack_qty;//需求数量
+            srm_Pr.pr_aqty = qty;//申请数量
+            srm_Pr.pr_sqty = qty;//建议数量
+            srm_Pr.icitem_id = returnlist.item_id;//物料id
+            srm_Pr.icitem_name = returnlist.item_name;//物料名称
+            srm_Pr.num = returnlist.num;
+            var tomorrow = DateTime.Now.Date.AddDays(1);
+            srm_Pr.pr_order_type = 1;//单据类型
+            srm_Pr.pr_ssend_date = tomorrow;//系统建议下单日期
+            srm_Pr.pr_sarrive_date = DateTime.Now.AddDays((double)plan.order_leadtime).AddDays((double)plan.transportation_leadtime);//系统建议到达日期(建议到货日期)
+            srm_Pr.pr_psend_date = tomorrow;//计划下单日期
+            srm_Pr.pr_parrive_date = DateTime.Now.AddDays((double)plan.order_leadtime).AddDays((double)plan.transportation_leadtime);//计划到达日期
+            srm_Pr.pr_rarrive_date = DateTime.Now.AddDays((double)plan.order_leadtime).AddDays((double)plan.transportation_leadtime);//需求到货日期
+            srm_Pr.pr_sysprice = supplier.order_price;//系统价格(含税)
+            srm_Pr.pr_orderprice = qty * supplier.order_price;//订单价格(含税)
+            srm_Pr.pr_price = supplier.netpurchase_price;//采购净价(不含税)
+            /*srm_Pr.pr_sysprice = qty * x.netpurchase_price * (1 + x.taxrate);//系统价格(含税)
+            srm_Pr.pr_orderprice = qty * x.netpurchase_price * (1 + x.taxrate);//订单价格(含税)
+            srm_Pr.pr_price = x.netpurchase_price;//采购净价(不含税)*/
+            srm_Pr.pr_rate = supplier.taxrate;//税率
+            srm_Pr.pr_unit = returnlist.unit;//单位
+            srm_Pr.state = 1;//状态
+            srm_Pr.old_apply_aqty = 0;//已申请数量
+            srm_Pr.pr_type = orderType;//申请类型
+            srm_Pr.currencytype = supplier.currency_type == null ? 1 : supplier.currency_type.Value;//币种
+            srm_Pr.secInv_ratio = plan.secinv_ratio;//安全库存触发采购比例
+            srm_Pr.tenant_id = companyId.GetValueOrDefault();
+            srm_Pr.company_id = companyId;
+            srm_Pr.factory_id = factoryid;
+            srm_Pr.bang_id = bangId;
+            if (sentrys != null)
+            {
+                srm_Pr.sentry_id = sentrys.Id;
+            }
+            decimal? totalLeadTime = plan.transportation_leadtime + plan.stock_leadtime + plan.production_leadtime + plan.order_leadtime;
+            srm_Pr.totalLeadTime = totalLeadTime;
+            srm_Pr.create_time = DateTime.Now;
+            srm_Pr.create_by_name = "admin";
+            srm_Pr.update_time = DateTime.Now;
+            srm_Pr.update_by_name = "admin";
+            sRMPR.srm_Pr_Main.Add(srm_Pr);
             if (sRMPR.srm_Pr_Main.Any())
             {
                 sRMPR.srm_Pr_Main.OrderBy(x => x.totalLeadTime.GetValueOrDefault()).ThenBy(x => x.pr_orderprice.GetValueOrDefault()).First().isbestoptions = true;
             }
             sRMPR.item_no = returnlist.num;
             sRMPR.orderentry_id = returnlist.sentry_id;
-            sRMPR.lastStartTmie = DateTime.Now.AddDays((double)(sRMPR.srm_Pr_Main.MinBy(x=>x.totalLeadTime).totalLeadTime.GetValueOrDefault()+plan.clean_leadtime.GetValueOrDefault()));//加上提前期和备料期,得到齐套时间
+            sRMPR.lastStartTmie = DateTime.Now.AddDays((double)(sRMPR.srm_Pr_Main.MinBy(x => x.totalLeadTime).totalLeadTime.GetValueOrDefault() + plan.clean_leadtime.GetValueOrDefault()));//加上提前期和备料期,得到齐套时间
             return sRMPR;
         }
         // 生成订单编号 字母+年月日+8位随机数+时间戳