|
|
@@ -1,4 +1,5 @@
|
|
|
-using Business.Core.Enum;
|
|
|
+using Amazon.Runtime.Internal.Util;
|
|
|
+using Business.Core.Enum;
|
|
|
using Business.Core.Utilities;
|
|
|
using Business.Domain;
|
|
|
using Business.Dto;
|
|
|
@@ -6699,7 +6700,6 @@ 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 && string.IsNullOrEmpty(p.ishistoryversion)).Result.OrderBy(p => p.arrivaldate).ToList();
|
|
|
- //var demandplans = _icdemandschedule.GetListAsync(p => p.factory_id.ToString() == domain && p.status.ToUpper() == "P" && p.Id == 1858630771946815625 && 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();
|
|
|
List<ic_demandschedule> newPlans = new List<ic_demandschedule>();
|
|
|
@@ -6751,8 +6751,10 @@ namespace Business.Replenishment
|
|
|
Msg = "OK|物料需求计划中没有采购件,不需要生成交货单";
|
|
|
return Msg;
|
|
|
}
|
|
|
- //获取货源清单数据
|
|
|
List<string> itemnums = demandplans.Select(p => p.itemnum).ToList();
|
|
|
+ //获取物料主数据
|
|
|
+ var icitems = _mysql_ic_item.GetListAsync(a => itemnums.Contains(a.number) && a.factory_id.ToString() == domain && !a.IsDeleted).Result.ToList();
|
|
|
+ //获取货源清单数据
|
|
|
var purchases = _srmPurchase.GetListAsync(p => p.factory_id.ToString() == domain && p.is_active == "否" && itemnums.Contains(p.number) && !p.IsDeleted).Result;
|
|
|
if (!purchases.Any())
|
|
|
{
|
|
|
@@ -6761,11 +6763,6 @@ namespace Business.Replenishment
|
|
|
}
|
|
|
//获取采购明细数据:未关闭,且未交货数量(需求数量-已收数量)>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();
|
|
|
- if (!purOrdDetails.Any())
|
|
|
- {
|
|
|
- Msg = "NO|没有可用的采购单";
|
|
|
- return Msg;
|
|
|
- }
|
|
|
List<string> purOrds = purOrdDetails.Select(p => p.PurOrd).Distinct().ToList();
|
|
|
//获取送货单子表数据
|
|
|
List<scm_shdzb> shdzbs = _scm_shdzb.Select(p=> purOrds.Contains(p.po_bill) && itemnums.Contains(p.sh_material_code) && string.IsNullOrEmpty(p.jhdbh)).ToList();
|
|
|
@@ -6789,19 +6786,26 @@ namespace Business.Replenishment
|
|
|
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();
|
|
|
|
|
|
+ //获取系统级参数:是否启用计划协议(0不启用,1启用)
|
|
|
+ var sysSet = _generalizedCodeMaster.Select(s => s.FldName == "SystemConfig" && s.Val == "ScheduleAgreement" && s.Domain == param.factoryId.ToString()).ToList();
|
|
|
+ int ScheduleAgreement = 0;
|
|
|
+ if (sysSet.Any())
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrEmpty(sysSet[0].Ufld1))
|
|
|
+ {
|
|
|
+ int.TryParse(sysSet[0].Ufld1, out ScheduleAgreement);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//生成交货单
|
|
|
srm_polist_ds entity;
|
|
|
List<srm_polist_ds> inserts = new List<srm_polist_ds>();
|
|
|
- //当前交货计划转交货单数据
|
|
|
- List<srm_polist_ds> curInserts = new List<srm_polist_ds>();
|
|
|
+ //新生成的PR
|
|
|
+ srm_pr_main srm_Pr = new srm_pr_main();
|
|
|
+ List<srm_pr_main> prInserts = new List<srm_pr_main>();
|
|
|
//交货单异常记录
|
|
|
List<DeliveryExceptionMaster> exceptions = new List<DeliveryExceptionMaster>();
|
|
|
DeliveryExceptionMaster info = new DeliveryExceptionMaster();
|
|
|
@@ -6818,51 +6822,52 @@ namespace Business.Replenishment
|
|
|
demandplans = demandplans.OrderBy(p => p.requestdate).ToList();
|
|
|
for (int i = 0; i < demandplans.Count; i++)
|
|
|
{
|
|
|
- curInserts = new List<srm_polist_ds>();
|
|
|
- //获取当前交货计划物料对应的货源清单
|
|
|
- var curChaes = purchases.Where(p => p.number == demandplans[i].itemnum).OrderByDescending(p => p.quota_rate).ToList();
|
|
|
- //校验1:如果当前物料没有维护货源清单,则跳过
|
|
|
- if (!curChaes.Any())
|
|
|
+ //物料数据
|
|
|
+ var curItem = icitems.FirstOrDefault(p=>p.number == demandplans[i].itemnum);
|
|
|
+ if (curItem == null)
|
|
|
{
|
|
|
+ //添加异常记录
|
|
|
info = new DeliveryExceptionMaster();
|
|
|
info.Domain = domain;
|
|
|
info.Icdsid = demandplans[i].Id;
|
|
|
info.ItemNum = demandplans[i].itemnum;
|
|
|
info.CreateTime = DateTime.Now;
|
|
|
- info.Remark = "物料需求计划[" + demandplans[i].itemnum + ":" + demandplans[i].requestdate.ToString("yyyy-MM-dd") + "]没有维护货源清单,无法转交货单";
|
|
|
+ info.Remark = "物料需求计划[" + demandplans[i].itemnum + ":" + demandplans[i].requestdate.ToString("yyyy-MM-dd") + "]物料尚未同步到ic_item表,请同步后再生成交货单";
|
|
|
+ info.NeedQty = 0;
|
|
|
info.OptTime = optime;
|
|
|
exceptions.Add(info);
|
|
|
continue;
|
|
|
}
|
|
|
- //校验2:如果当前物料对应货源清单的供应商配额之和不为100%,则跳过
|
|
|
- if (curChaes.Sum(p => p.quota_rate.GetValueOrDefault()) != 100)
|
|
|
+ //获取当前交货计划物料对应的货源清单
|
|
|
+ var curChaes = purchases.Where(p => p.number == demandplans[i].itemnum).OrderByDescending(p => p.quota_rate).ToList();
|
|
|
+ //校验1:如果当前物料没有维护货源清单,则跳过
|
|
|
+ if (!curChaes.Any())
|
|
|
{
|
|
|
info = new DeliveryExceptionMaster();
|
|
|
info.Domain = domain;
|
|
|
info.Icdsid = demandplans[i].Id;
|
|
|
info.ItemNum = demandplans[i].itemnum;
|
|
|
info.CreateTime = DateTime.Now;
|
|
|
- info.Remark = "物料需求计划[" + demandplans[i].itemnum + ":" + demandplans[i].requestdate.ToString("yyyy-MM-dd") + "]的货源清单供应商配额之和不为100%,无法转交货单";
|
|
|
+ info.Remark = "物料需求计划[" + demandplans[i].itemnum + ":" + demandplans[i].requestdate.ToString("yyyy-MM-dd") + "]没有维护货源清单,无法转交货单";
|
|
|
info.OptTime = optime;
|
|
|
exceptions.Add(info);
|
|
|
continue;
|
|
|
}
|
|
|
- //获取当前交货计划物料对应的可用采购单明细数据
|
|
|
- var curPurDtls = purOrdDetails.Where(p => p.ItemNum == demandplans[i].itemnum).OrderBy(p => p.DueDate).ToList();
|
|
|
- //校验3:如果当前物料没有可用的采购明细,则跳过
|
|
|
- if (!curPurDtls.Any())
|
|
|
+ //校验2:如果当前物料对应货源清单的供应商配额之和不为100%,则跳过
|
|
|
+ if (curChaes.Sum(p => p.quota_rate.GetValueOrDefault()) != 100)
|
|
|
{
|
|
|
info = new DeliveryExceptionMaster();
|
|
|
info.Domain = domain;
|
|
|
info.Icdsid = demandplans[i].Id;
|
|
|
info.ItemNum = demandplans[i].itemnum;
|
|
|
info.CreateTime = DateTime.Now;
|
|
|
- info.Remark = "物料需求计划[" + demandplans[i].itemnum + ":" + demandplans[i].requestdate.ToString("yyyy-MM-dd") + "]没有可占用的采购明细,无法转交货单";
|
|
|
- info.NeedQty = demandplans[i].tosechedqty;
|
|
|
+ info.Remark = "物料需求计划[" + demandplans[i].itemnum + ":" + demandplans[i].requestdate.ToString("yyyy-MM-dd") + "]的货源清单供应商配额之和不为100%,无法转交货单";
|
|
|
info.OptTime = optime;
|
|
|
exceptions.Add(info);
|
|
|
continue;
|
|
|
}
|
|
|
+ //获取当前交货计划物料对应的可用采购单明细数据
|
|
|
+ var curPurDtls = purOrdDetails.Where(p => p.ItemNum == demandplans[i].itemnum).OrderBy(p => p.DueDate).ToList();
|
|
|
//当前采购明细对应的采购单
|
|
|
var curPurMsts = purOrdMasters.Where(p => curPurDtls.Select(m => m.PurOrd).Distinct().Contains(p.PurOrd)).ToList();
|
|
|
//当前采购明细对应的送货单
|
|
|
@@ -6871,30 +6876,7 @@ namespace Business.Replenishment
|
|
|
var curDbOccupys = dbPolistds.Where(p => curPurDtls.Select(m => m.PurOrd).Contains(p.ponumber) && p.itemnum == demandplans[i].itemnum).ToList();
|
|
|
//本次计算中采购单明细被交货单占用情况
|
|
|
var curCalcOccupys = inserts.Where(p => curPurDtls.Select(m => m.PurOrd).Contains(p.ponumber) && p.itemnum == demandplans[i].itemnum).ToList();
|
|
|
- //校验4:如果当前物料对应的采购明细可用数量不满足,则跳过
|
|
|
- //采购单明细的剩余未交数量:采购明细的需求数量-送货单需求数量(不是交货单转的送货单)
|
|
|
- sumRestQty = curPurDtls.Sum(p => p.QtyOrded) - curShds.Sum(p=>p.sh_delivery_quantity);
|
|
|
- //交货单占用数量:交货单的需求数量
|
|
|
- sumDbOccupy = curDbOccupys.Where(p=>p.status.ToUpper() == "C").Sum(p => p.sentqty) + curDbOccupys.Where(p=>p.status.ToUpper() != "C").Sum(p=>p.schedqty);
|
|
|
- //本次计算交货单占用数量:本次计算交货单的需求数量
|
|
|
- sumCurOccupy = curCalcOccupys.Sum(p => p.schedqty);
|
|
|
- //剩余可用数量
|
|
|
- restQty = sumRestQty - sumDbOccupy - sumCurOccupy;
|
|
|
- if (restQty < demandplans[i].tosechedqty)
|
|
|
- {
|
|
|
- info = new DeliveryExceptionMaster();
|
|
|
- info.Domain = domain;
|
|
|
- info.Icdsid = demandplans[i].Id;
|
|
|
- info.ItemNum = demandplans[i].itemnum;
|
|
|
- info.CreateTime = DateTime.Now;
|
|
|
- info.Remark = "物料需求计划[" + demandplans[i].itemnum + ":" + demandplans[i].requestdate.ToString("yyyy-MM-dd") + "]的采购明细不足,无法转交货单";
|
|
|
- info.NeedQty = demandplans[i].tosechedqty - restQty;
|
|
|
- info.OptTime = optime;
|
|
|
- exceptions.Add(info);
|
|
|
- continue;
|
|
|
- }
|
|
|
- //标志位
|
|
|
- bool flag = false;
|
|
|
+
|
|
|
//当前交货计划已分配数量
|
|
|
decimal allQty = 0m;
|
|
|
//当前供应商分配数量
|
|
|
@@ -6925,42 +6907,9 @@ namespace Business.Replenishment
|
|
|
{
|
|
|
needQty = demandplans[i].tosechedqty - allQty;
|
|
|
}
|
|
|
- //以下为供应商是采购申请场景
|
|
|
//获取当前供应商对应的采购单明细数据,按照交货日期从小到大开始占用
|
|
|
var pchPurMsts = curPurMsts.Where(p => p.Supp == curChaes[j].supplier_number).ToList();
|
|
|
- if (!pchPurMsts.Any())
|
|
|
- {
|
|
|
- //当前供应商没有可用采购单,则当前交货计划无法转交货单
|
|
|
- info = new DeliveryExceptionMaster();
|
|
|
- info.Domain = domain;
|
|
|
- info.Icdsid = demandplans[i].Id;
|
|
|
- info.ItemNum = demandplans[i].itemnum;
|
|
|
- info.CreateTime = DateTime.Now;
|
|
|
- info.Remark = "物料需求计划[" + demandplans[i].itemnum + ":" + demandplans[i].requestdate.ToString("yyyy-MM-dd") + "]对应供应商[" + curChaes[j].supplier_name + "]没有可用"+ (curChaes[j].IsRequireGoods == 0 ?"采购申请":"要货令") +",无法转交货单";
|
|
|
- info.NeedQty = needQty;
|
|
|
- info.OptTime = optime;
|
|
|
- exceptions.Add(info);
|
|
|
-
|
|
|
- flag = true;
|
|
|
- break;
|
|
|
- }
|
|
|
var pchPurDtls = curPurDtls.Where(p => pchPurMsts.Select(m => m.PurOrd).Contains(p.PurOrd)).ToList();
|
|
|
- if (!pchPurDtls.Any())
|
|
|
- {
|
|
|
- //当前供应商没有可用采购单明细,则当前交货计划无法转交货单
|
|
|
- info = new DeliveryExceptionMaster();
|
|
|
- info.Domain = domain;
|
|
|
- info.Icdsid = demandplans[i].Id;
|
|
|
- info.ItemNum = demandplans[i].itemnum;
|
|
|
- info.CreateTime = DateTime.Now;
|
|
|
- info.Remark = "物料[" + demandplans[i].itemnum + "]对应供应商[" + curChaes[j].supplier_name + "]没有可用" + (curChaes[j].IsRequireGoods == 0 ? "采购申请" : "要货令") + ",无法转交货单";
|
|
|
- info.NeedQty = needQty;
|
|
|
- info.OptTime = optime;
|
|
|
- exceptions.Add(info);
|
|
|
-
|
|
|
- flag = true;
|
|
|
- break;
|
|
|
- }
|
|
|
//送货单占用数量
|
|
|
var pchShds = curShds.Where(p => pchPurMsts.Select(m => m.PurOrd).Contains(p.po_bill)).ToList();
|
|
|
//校验当前供应商的采购明细剩余可用数量是否满足供应商的配额
|
|
|
@@ -6973,25 +6922,76 @@ namespace Business.Replenishment
|
|
|
sumCurOccupy = curCalcOccupys.Where(p => pchPurDtls.Select(m => m.PurOrd).Contains(p.ponumber)).Sum(p => p.schedqty);
|
|
|
//剩余可用数量
|
|
|
restQty = sumRestQty - sumDbOccupy - sumCurOccupy;
|
|
|
+ restQty = restQty < 0 ? 0 : restQty;
|
|
|
if (restQty < needQty)
|
|
|
{
|
|
|
- //当前供应商可用采购单明细不足,则当前交货计划无法转交货单
|
|
|
+ //当前供应商可用采购单明细不足,生成新的pr,记录异常日志
|
|
|
+ srm_Pr = new srm_pr_main();
|
|
|
+ srm_Pr.GenerateNewId(help.NextId());
|
|
|
+ srm_Pr.pr_order_type = curItem.erp_cls == 2 ? "L" : "";//单据类型
|
|
|
+ srm_Pr.supplier_type = curChaes[j].supplier_type;
|
|
|
+ srm_Pr.IsRequireGoods = curChaes[j].IsRequireGoods;
|
|
|
+ if (curChaes[j].supplier_type == "VMI")
|
|
|
+ {
|
|
|
+ srm_Pr.IsRequireGoods = 1;
|
|
|
+ srm_Pr.pr_order_type = "K";
|
|
|
+ }
|
|
|
+ srm_Pr.pr_purchaseid = curChaes[j].supplier_id;//供应商id
|
|
|
+ srm_Pr.pr_purchasenumber = curChaes[j].supplier_number;//供应商编码
|
|
|
+ srm_Pr.pr_purchasename = curChaes[j].supplier_name;//供应商名称
|
|
|
+ srm_Pr.pr_purchaser = curChaes[j].order_rector_name;//采购员
|
|
|
+ srm_Pr.pr_purchaser_num = curChaes[j].order_rector_num;//采购员工号(采购信息表)
|
|
|
+ srm_Pr.pr_rqty = needQty - restQty;//需求数量
|
|
|
+ srm_Pr.pr_aqty = srm_Pr.pr_rqty;//申请数量
|
|
|
+ srm_Pr.pr_sqty = srm_Pr.pr_rqty;//建议数量
|
|
|
+ srm_Pr.icitem_id = curItem.Id;//物料id
|
|
|
+ srm_Pr.icitem_name = curItem.name;//物料名称
|
|
|
+ if (ScheduleAgreement == 1)
|
|
|
+ {
|
|
|
+ srm_Pr.pr_ssend_date = demandplans[i].arrivaldate.AddDays((double)(-7));//系统建议下单日期
|
|
|
+ srm_Pr.pr_sarrive_date = demandplans[i].arrivaldate;//系统建议到达日期(建议到货日期)
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ srm_Pr.pr_ssend_date = demandplans[i].arrivaldate.AddDays((double)(-1 * curChaes[j].lead_time.GetValueOrDefault()));//系统建议下单日期
|
|
|
+ srm_Pr.pr_sarrive_date = demandplans[i].arrivaldate;
|
|
|
+ }
|
|
|
+ srm_Pr.pr_sysprice = curChaes[j].order_price;//系统价格(含税)
|
|
|
+ srm_Pr.pr_orderprice = srm_Pr.pr_rqty * curChaes[j].order_price;//订单价格(含税)
|
|
|
+ srm_Pr.pr_price = curChaes[j].netpurchase_price;//采购净价(不含税)
|
|
|
+ srm_Pr.pr_rate = curChaes[j].taxrate;//税率
|
|
|
+ srm_Pr.pr_unit = curItem.unit;//单位
|
|
|
+ srm_Pr.state = 1;//状态
|
|
|
+ srm_Pr.old_apply_aqty = 0;//已申请数量
|
|
|
+ srm_Pr.pr_type = curItem.erp_cls == 2 ? 2 : 3;//申请类型
|
|
|
+ srm_Pr.currencytype = curChaes[j].currency_type == null ? 1 : curChaes[j].currency_type.Value;//币种
|
|
|
+ srm_Pr.secInv_ratio = curItem.secinv_ratio;//安全库存触发采购比例
|
|
|
+ srm_Pr.tenant_id = param.company_id;
|
|
|
+ srm_Pr.company_id = param.company_id;
|
|
|
+ srm_Pr.factory_id = param.factoryId;
|
|
|
+ srm_Pr.create_time = DateTime.Now;
|
|
|
+ srm_Pr.create_by_name = user;
|
|
|
+ srm_Pr.update_time = DateTime.Now;
|
|
|
+ srm_Pr.update_by_name = user;
|
|
|
+ prInserts.Add(srm_Pr);
|
|
|
+
|
|
|
+ //处理总数量,需求数量
|
|
|
+ allQty += needQty - restQty;
|
|
|
+ needQty -= restQty;
|
|
|
+
|
|
|
+ //添加异常记录
|
|
|
info = new DeliveryExceptionMaster();
|
|
|
info.Domain = domain;
|
|
|
info.Icdsid = demandplans[i].Id;
|
|
|
info.ItemNum = demandplans[i].itemnum;
|
|
|
info.CreateTime = DateTime.Now;
|
|
|
- info.Remark = "物料需求计划[" + demandplans[i].itemnum + ":" + demandplans[i].requestdate.ToString("yyyy-MM-dd") + "]对应供应商[" + curChaes[j].supplier_name + "]"+ (curChaes[j].IsRequireGoods == 0 ? "采购申请" : "要货令") + "不足,无法转交货单";
|
|
|
+ info.Remark = "物料需求计划[" + demandplans[i].itemnum + ":" + demandplans[i].requestdate.ToString("yyyy-MM-dd") + "]对应供应商[" + curChaes[j].supplier_name + "]"+ (curChaes[j].IsRequireGoods == 0 ? "采购申请" : "要货令") + "不足,已生成采购申请,请转采购订单后再生成交货单";
|
|
|
info.NeedQty = needQty - restQty;
|
|
|
info.OptTime = optime;
|
|
|
exceptions.Add(info);
|
|
|
-
|
|
|
- flag = true;
|
|
|
- break;
|
|
|
}
|
|
|
|
|
|
//采购单明细优先级:先PO,按照交货日期从早到晚占用;再DO,按照交货日期从早到晚占用
|
|
|
- //pchPurDtls = pchPurDtls.OrderBy(p => p.DueDate).ToList();
|
|
|
pchPurDtls = CalcPurDetailPriority(pchPurDtls);
|
|
|
for (int k = 0; k < pchPurDtls.Count; k++)
|
|
|
{
|
|
|
@@ -7061,7 +7061,7 @@ namespace Business.Replenishment
|
|
|
entity.createuser = user;
|
|
|
entity.remarks = "";
|
|
|
entity.isactive = 1;
|
|
|
- curInserts.Add(entity);
|
|
|
+ inserts.Add(entity);
|
|
|
|
|
|
//当前交货计划已分配数量累加
|
|
|
allQty += xqQty;
|
|
|
@@ -7069,17 +7069,10 @@ namespace Business.Replenishment
|
|
|
sumNeedQty += xqQty;
|
|
|
}
|
|
|
}
|
|
|
- //标志位为true,则当前交货计划无法转交货单
|
|
|
- if (flag)
|
|
|
- {
|
|
|
- continue;
|
|
|
- }
|
|
|
- inserts.AddRange(curInserts);
|
|
|
}
|
|
|
if (inserts.Any())
|
|
|
{
|
|
|
//获取交货单号
|
|
|
- List<string> GenerateMoList = new List<string>();
|
|
|
var nbrlist = _serialNumberAppService.GetBillNo(domain, "M8", inserts.Count, "", 1);
|
|
|
if (!nbrlist.Any() || nbrlist.Count != inserts.Count)
|
|
|
{
|
|
|
@@ -7097,6 +7090,26 @@ namespace Business.Replenishment
|
|
|
inserts[i].dsnum = nbrlist[i].NbrResult;
|
|
|
}
|
|
|
}
|
|
|
+ if (prInserts.Any())
|
|
|
+ {
|
|
|
+ //获取Pr单号
|
|
|
+ var prlist = _serialNumberAppService.GetBillNo(domain, "M8", prInserts.Count, "", 1);
|
|
|
+ if (!prlist.Any() || prlist.Count != prInserts.Count)
|
|
|
+ {
|
|
|
+ Msg = "NO|采购申请单号生成失败";
|
|
|
+ return Msg;
|
|
|
+ }
|
|
|
+ prInserts = prInserts.OrderBy(p => p.create_time).ToList();
|
|
|
+ for (int i = 0; i < prInserts.Count; i++)
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(prlist[i].NbrResult))
|
|
|
+ {
|
|
|
+ Msg = "NO|采购申请单号生成失败";
|
|
|
+ return Msg;
|
|
|
+ }
|
|
|
+ prInserts[i].pr_billno = prlist[i].NbrResult;
|
|
|
+ }
|
|
|
+ }
|
|
|
//数据插入
|
|
|
using (var unitOfWork = _unitOfWorkManager.Begin(false, true))
|
|
|
{
|
|
|
@@ -7107,6 +7120,11 @@ namespace Business.Replenishment
|
|
|
{
|
|
|
_srmpolistds.Insert(inserts);
|
|
|
}
|
|
|
+ //插入Pr
|
|
|
+ if (prInserts.Any())
|
|
|
+ {
|
|
|
+ _businessDbContext.BulkInsert(prInserts);
|
|
|
+ }
|
|
|
//插入异常记录
|
|
|
if (exceptions.Any())
|
|
|
{
|