|
|
@@ -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);
|