|
|
@@ -6846,7 +6846,8 @@ 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<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) && 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<PurOrdMaster> purOrdMasters = _PurOrdMaster.Select(p => p.Domain == domain && purOrds.Contains(p.PurOrd)).ToList();
|
|
|
//获取占用可用PO明细的交货单
|
|
|
@@ -6992,13 +6993,18 @@ namespace Business.Replenishment
|
|
|
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 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)).ToList();
|
|
|
+ var pchShds = curShds.Where(p => pchPurMsts.Select(m => m.PurOrd).Contains(p.po_bill) && string.IsNullOrEmpty(p.jhdbh)).ToList();
|
|
|
//校验当前供应商的采购明细剩余可用数量是否满足供应商的配额
|
|
|
//采购单明细剩余可用数量
|
|
|
sumRestQty = pchPurDtls.Sum(p => p.QtyOrded) - pchShds.Sum(p=>p.sh_delivery_quantity);
|
|
|
- //交货单占用数量:交货单的剩余需要采购数量
|
|
|
+ //交货单占用数量:交货单的剩余需要采购数量,如果交货单关联了送货单,那么取送货单的送货数量参与计算
|
|
|
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);
|
|
|
+ //生成了送货单
|
|
|
+ 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);
|
|
|
//本次计算交货单占用数量:本次计算交货单的需求数量
|
|
|
sumCurOccupy = curCalcOccupys.Where(p => pchPurDtls.Select(m => m.PurOrd).Contains(p.ponumber)).Sum(p => p.schedqty);
|
|
|
//剩余可用数量
|
|
|
@@ -7087,7 +7093,11 @@ namespace Business.Replenishment
|
|
|
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();
|
|
|
- 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 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);
|
|
|
//当前计算中采购明细被占用数量(本次计算占用数量)
|
|
|
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);
|