|
@@ -6850,8 +6850,7 @@ namespace Business.Replenishment
|
|
|
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();
|
|
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();
|
|
|
List<string> purOrds = purOrdDetails.Select(p => p.PurOrd).Distinct().ToList();
|
|
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();
|
|
|
|
|
- List<scm_shdzb> shdzbs = _scm_shdzb.Select(p => purOrds.Contains(p.po_bill) && itemnums.Contains(p.sh_material_code)).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();
|
|
|
//获取采购单数据
|
|
//获取采购单数据
|
|
|
List<PurOrdMaster> purOrdMasters = _PurOrdMaster.Select(p => p.Domain == domain && purOrds.Contains(p.PurOrd)).ToList();
|
|
List<PurOrdMaster> purOrdMasters = _PurOrdMaster.Select(p => p.Domain == domain && purOrds.Contains(p.PurOrd)).ToList();
|
|
|
//获取占用可用PO明细的交货单
|
|
//获取占用可用PO明细的交货单
|
|
@@ -6996,19 +6995,14 @@ namespace Business.Replenishment
|
|
|
//获取当前供应商对应的采购单明细数据,按照交货日期从小到大开始占用
|
|
//获取当前供应商对应的采购单明细数据,按照交货日期从小到大开始占用
|
|
|
var pchPurMsts = curPurMsts.Where(p => p.Supp == curChaes[j].supplier_number).ToList();
|
|
var pchPurMsts = curPurMsts.Where(p => p.Supp == curChaes[j].supplier_number).ToList();
|
|
|
var pchPurDtls = curPurDtls.Where(p => pchPurMsts.Select(m => m.PurOrd).Contains(p.PurOrd)).ToList();
|
|
var pchPurDtls = curPurDtls.Where(p => pchPurMsts.Select(m => m.PurOrd).Contains(p.PurOrd)).ToList();
|
|
|
- //交货单占用数量:交货单的剩余需要采购数量,如果交货单关联了送货单,那么取送货单的送货数量参与计算
|
|
|
|
|
- var pchDbOccupys = curDbOccupys.Where(p => pchPurDtls.Select(m => m.PurOrd).Contains(p.ponumber)).ToList();
|
|
|
|
|
//送货单占用数量
|
|
//送货单占用数量
|
|
|
- //var pchShds = curShds.Where(p => pchPurMsts.Select(m => m.PurOrd).Contains(p.po_bill)).ToList();
|
|
|
|
|
- var pchShds = curShds.Where(p => pchPurMsts.Select(m => m.PurOrd).Contains(p.po_bill) && !pchDbOccupys.Select(m=>m.dsnum).Contains(p.jhdbh)).ToList();
|
|
|
|
|
|
|
+ var pchShds = curShds.Where(p => pchPurMsts.Select(m => m.PurOrd).Contains(p.po_bill)).ToList();
|
|
|
//校验当前供应商的采购明细剩余可用数量是否满足供应商的配额
|
|
//校验当前供应商的采购明细剩余可用数量是否满足供应商的配额
|
|
|
//采购单明细剩余可用数量
|
|
//采购单明细剩余可用数量
|
|
|
sumRestQty = pchPurDtls.Sum(p => p.QtyOrded) - pchShds.Sum(p=>p.sh_delivery_quantity);
|
|
sumRestQty = pchPurDtls.Sum(p => p.QtyOrded) - pchShds.Sum(p=>p.sh_delivery_quantity);
|
|
|
- //生成了送货单
|
|
|
|
|
- var yShd = curShds.Where(p => pchDbOccupys.Select(m => m.dsnum).Contains(p.jhdbh)).ToList();
|
|
|
|
|
- //没有生成送货单
|
|
|
|
|
- var nShd = pchDbOccupys.Where(p => !curShds.Select(m => m.jhdbh).Contains(p.dsnum)).ToList();
|
|
|
|
|
- sumDbOccupy = yShd.Sum(p=>p.sh_delivery_quantity) + nShd.Where(p=>p.status.ToUpper() == "C").Sum(p => p.sentqty) + nShd.Where(p => p.status.ToUpper() != "C").Sum(p => p.schedqty);
|
|
|
|
|
|
|
+ //交货单占用数量:交货单的剩余需要采购数量
|
|
|
|
|
+ var pchDbOccupys = curDbOccupys.Where(p => pchPurDtls.Select(m => m.PurOrd).Contains(p.ponumber)).ToList();
|
|
|
|
|
+ sumDbOccupy = pchDbOccupys.Where(p=>p.status.ToUpper() == "C").Sum(p=>p.sentqty) + pchDbOccupys.Where(p => p.status.ToUpper() != "C").Sum(p => p.schedqty);
|
|
|
//本次计算交货单占用数量:本次计算交货单的需求数量
|
|
//本次计算交货单占用数量:本次计算交货单的需求数量
|
|
|
sumCurOccupy = curCalcOccupys.Where(p => pchPurDtls.Select(m => m.PurOrd).Contains(p.ponumber)).Sum(p => p.schedqty);
|
|
sumCurOccupy = curCalcOccupys.Where(p => pchPurDtls.Select(m => m.PurOrd).Contains(p.ponumber)).Sum(p => p.schedqty);
|
|
|
//剩余可用数量
|
|
//剩余可用数量
|
|
@@ -7093,15 +7087,11 @@ namespace Business.Replenishment
|
|
|
//当前供应商配额以满足,循环下一个供应商
|
|
//当前供应商配额以满足,循环下一个供应商
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
|
|
+ //当前采购明细剩余数量=订单数量-送货单数量(不是由交货单转的送货单)
|
|
|
|
|
+ decimal syQty = pchPurDtls[k].QtyOrded - pchShds.Where(p => p.po_bill == pchPurDtls[k].PurOrd && p.po_billline == pchPurDtls[k].Line.ToString()).Sum(p => p.sh_delivery_quantity);
|
|
|
//当前采购明细被占用数量(已占用数量)
|
|
//当前采购明细被占用数量(已占用数量)
|
|
|
var occupy = pchDbOccupys.Where(p => p.ponumber == pchPurDtls[k].PurOrd && p.itemnum == pchPurDtls[k].ItemNum && p.poline == pchPurDtls[k].Line).ToList();
|
|
var occupy = pchDbOccupys.Where(p => p.ponumber == pchPurDtls[k].PurOrd && p.itemnum == pchPurDtls[k].ItemNum && p.poline == pchPurDtls[k].Line).ToList();
|
|
|
- //当前采购明细剩余数量=订单数量-送货单数量(不是由交货单转的送货单)
|
|
|
|
|
- decimal syQty = pchPurDtls[k].QtyOrded - pchShds.Where(p => p.po_bill == pchPurDtls[k].PurOrd && p.po_billline == pchPurDtls[k].Line.ToString()).Sum(p=>p.sh_delivery_quantity);
|
|
|
|
|
- //生成了送货单
|
|
|
|
|
- var pyShd = curShds.Where(p => occupy.Select(m => m.dsnum).Contains(p.jhdbh)).ToList();
|
|
|
|
|
- //没有生成送货单
|
|
|
|
|
- var pnShd = occupy.Where(p => !curShds.Select(m => m.jhdbh).Contains(p.dsnum)).ToList();
|
|
|
|
|
- decimal yzyQty = pyShd.Sum(p=>p.sh_delivery_quantity) + pnShd.Where(p=>p.status.ToUpper() == "C").Sum(p => p.sentqty) + pnShd.Where(p=>p.status.ToUpper() != "C").Sum(p=>p.schedqty);
|
|
|
|
|
|
|
+ decimal yzyQty = occupy.Where(p=>p.status.ToUpper() == "C").Sum(p=>p.sentqty) + occupy.Where(p=>p.status.ToUpper() != "C").Sum(p=>p.schedqty);
|
|
|
//当前计算中采购明细被占用数量(本次计算占用数量)
|
|
//当前计算中采购明细被占用数量(本次计算占用数量)
|
|
|
var calcs = inserts.Where(p => p.ponumber == pchPurDtls[k].PurOrd && p.itemnum == pchPurDtls[k].ItemNum && p.poline == pchPurDtls[k].Line).ToList();
|
|
var calcs = inserts.Where(p => p.ponumber == pchPurDtls[k].PurOrd && p.itemnum == pchPurDtls[k].ItemNum && p.poline == pchPurDtls[k].Line).ToList();
|
|
|
decimal bzyQty = calcs.Sum(p => p.schedqty);
|
|
decimal bzyQty = calcs.Sum(p => p.schedqty);
|