|
|
@@ -5012,10 +5012,21 @@ namespace Business.Replenishment
|
|
|
var prAddList = AlignmentCalcList.Where(x => x.DifferenceQty > 0).ToList();
|
|
|
//需要减少PR的集合
|
|
|
var prDelList = AlignmentCalcList.Where(x => x.DifferenceQty < 0).ToList();
|
|
|
- var dbPurchaseList = _srm_purchase.GetListAsync(x => AlignmentCalcList.Select(c => c.ItemNum).Contains(x.number)).Result;
|
|
|
+ var dbPurchaseList = _mysql_srm_purchase.GetListAsync(x => x.factory_id == param.factoryId && x.quota_rate.GetValueOrDefault() > 0 && AlignmentCalcList.Select(c => c.ItemNum).Contains(x.number)).Result;
|
|
|
//获取需要新增的PR
|
|
|
+ var sysSet = _generalizedCodeMaster.Select(s => s.FldName == "SystemConfig" && s.Val == "ScheduleAgreement" && s.Domain == factoryId.ToString()).ToList();
|
|
|
+ int ScheduleAgreement = 0;//计划协议 0不启用,1启用
|
|
|
+ if (sysSet.Any())
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrEmpty(sysSet[0].Ufld1))
|
|
|
+ {
|
|
|
+ int.TryParse(sysSet[0].Ufld1, out ScheduleAgreement);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
//数据库需要减少的PR集合
|
|
|
+ CalcPrDel(prDelList, dbPurchaseList, ic_items, DBprmainList.Where(x=>x.state==1).ToList());//只取新增状态的PR,可以做删除或者修改
|
|
|
}
|
|
|
|
|
|
using (var unitOfWork = _unitOfWorkManager.Begin(false, true))
|
|
|
@@ -5116,6 +5127,27 @@ namespace Business.Replenishment
|
|
|
return rtn;
|
|
|
}
|
|
|
|
|
|
+ public void CalcPrDel(List<AlignmentCalcDto> prDelList,List<srm_purchase> purchase,List<ic_item> ic_items, List<srm_pr_main> dbPrlist)
|
|
|
+ {
|
|
|
+ prDelList.ForEach(dto => {
|
|
|
+ var itemPurList = purchase.Where(x => x.number == dto.ItemNum).ToList();
|
|
|
+ var icitem = ic_items.Find(x => x.number == dto.ItemNum);
|
|
|
+ if (itemPurList.Any() && icitem!=null)
|
|
|
+ {
|
|
|
+ decimal minQty = 999999999;
|
|
|
+ var itemPrs = dbPrlist.Where(x => x.icitem_id == icitem.Id).ToList();
|
|
|
+ itemPurList.ForEach(c => {
|
|
|
+ decimal diffQty = Math.Floor(Math.Abs(dto.DifferenceQty) * c.quota_rate.GetValueOrDefault() / 100);
|
|
|
+ if (diffQty < minQty)
|
|
|
+ {
|
|
|
+ diffQty = minQty;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
public async Task ExamineResultInsertDBAsync(List<ExamineResult> examines)
|
|
|
{
|
|
|
//检查结果写入数据库
|