Sfoglia il codice sorgente

生成交货单调整代码合并冲突

heteng 2 anni fa
parent
commit
049952c25b

+ 0 - 158
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -6975,162 +6975,6 @@ namespace Business.Replenishment
                         sumNeedQty += xqQty;
                     }
                 }
-
-                foreach (var pch in curChaes)
-                {
-                    if (pch.quota_rate.GetValueOrDefault() == 0)
-                    {
-                        continue;
-                    }
-                    //如果交货计划已分配数量>=交货计划净需求数量,则终止
-                    if (allQty >= demandplans[i].tosechedqty)
-                    {
-                        break;
-                    }
-                    //供应商占用数量置0
-                    sumNeedQty = 0m;
-                    //计算当前供应商分配数量
-                    needQty = Math.Ceiling(demandplans[i].tosechedqty * pch.quota_rate.GetValueOrDefault() / 100.00m);
-                    //如果交货计划剩余数量小于按照供应商配额计算的数量,则当前供应商需分配数量为交货计划剩余数量
-                    if (demandplans[i].tosechedqty - allQty < needQty)
-                    {
-                        needQty = demandplans[i].tosechedqty - allQty;
-                    }
-                    //以下为供应商是采购申请场景
-                    //获取当前供应商对应的采购单明细数据,按照交货日期从小到大开始占用
-                    var pchPurMsts = curPurMsts.Where(p => p.Supp == pch.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") + "]对应供应商[" + pch.supplier_name + "]没有可用采购明细,无法转交货单";
-                        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 + "]对应供应商[" + pch.supplier_name + "]没有可用采购明细,无法转交货单";
-                        info.OptTime = optime;
-                        exceptions.Add(info);
-
-                        flag = true;
-                        break;
-                    }
-                    //校验当前供应商的采购明细剩余可用数量是否满足供应商的配额
-                    //采购单明细剩余可用数量
-                    sumRestQty = pchPurDtls.Sum(p => p.QtyOrded - p.RctQty);
-                    //交货单占用数量:交货单的剩余需要采购数量
-                    sumDbOccupy = curDbOccupys.Where(p => pchPurDtls.Select(m => m.PurOrd).Contains(p.ponumber)).Sum(p => p.restqty);
-                    //本次计算交货单占用数量:本次计算交货单的需求数量
-                    sumCurOccupy = curCalcOccupys.Where(p => pchPurDtls.Select(m => m.PurOrd).Contains(p.ponumber)).Sum(p => p.schedqty);
-                    //剩余可用数量
-                    restQty = sumRestQty - sumDbOccupy - sumCurOccupy;
-                    if (restQty < needQty)
-                    {
-                        //当前供应商可用采购单明细不足,则当前交货计划无法转交货单
-                        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") + "]对应供应商[" + pch.supplier_name + "]采购明细可用数量不足,无法转交货单";
-                        info.OptTime = optime;
-                        exceptions.Add(info);
-
-                        flag = true;
-                        break;
-                    }
-
-                    foreach (var pud in pchPurDtls)
-                    {
-                        if (sumNeedQty >= needQty)
-                        {
-                            //当前供应商配额以满足,循环下一个供应商
-                            break;
-                        }
-                        //当前采购明细剩余数量=订单数量-已收数量
-                        decimal syQty = pud.QtyOrded - pud.RctQty;
-                        //当前采购明细被占用数量(已占用数量)
-                        var occupy = curDbOccupys.Where(p => p.ponumber == pud.PurOrd && p.itemnum == pud.ItemNum && p.poline == pud.Line).ToList();
-                        decimal yzyQty = occupy.Sum(p => p.restqty);
-                        //当前计算中采购明细被占用数量(本次计算占用数量)
-                        var calcs = inserts.Where(p => p.ponumber == pud.PurOrd && p.itemnum == pud.ItemNum && p.poline == pud.Line).ToList();
-                        decimal bzyQty = calcs.Sum(p => p.schedqty);
-
-                        //当前采购明细可用数量
-                        decimal kyQty = syQty - yzyQty - bzyQty;
-                        //剩余需要分配数量
-                        remainQty = needQty - sumNeedQty;
-                        //当前采购明细已被全部占用,循环下一条采购明细
-                        if (kyQty == 0)
-                        {
-                            continue;
-                        }
-                        decimal xqQty = 0m;
-                        //当前采购明细的可用数量不满足交货单剩余需要分配数量
-                        if (kyQty < remainQty)
-                        {
-                            //占用当前采购明细剩余可用数量
-                            xqQty = kyQty;
-                        }
-                        else
-                        {
-                            xqQty = remainQty;
-                            //按照最小包装量圆整:最小包装量为0,则不需要圆整
-                            decimal yzQty = pch.packaging_qty.GetValueOrDefault() == 0 ? remainQty : Math.Ceiling(remainQty / pch.packaging_qty.GetValueOrDefault()) * pch.packaging_qty.GetValueOrDefault();
-                            //如果可用数量大于圆整数量
-                            if (kyQty >= yzQty)
-                            {
-                                xqQty = yzQty;
-                            }
-                        }
-                        //生成实体
-                        entity = new srm_polist_ds();
-                        entity.Id = help.NextId();
-                        entity.domain = domain;
-                        entity.icdsid = demandplans[i].Id;
-                        //交货单号最后一次性生成
-                        entity.dsnum = "";
-                        entity.status = "N";
-                        entity.itemnum = demandplans[i].itemnum;
-                        entity.um = "";
-                        entity.purgroup = "";
-                        entity.suppliercode = pch.supplier_number;
-                        entity.supplier = string.IsNullOrEmpty(pch.supplier_name) ? "" : pch.supplier_name;
-                        entity.requestdate = demandplans[i].arrivaldate;
-                        entity.needdate = demandplans[i].requestdate;
-                        entity.ponumber = pud.PurOrd;
-                        entity.poline = pud.Line;
-                        entity.schedqty = xqQty;
-                        entity.lastsentqty = 0m;
-                        entity.sentqty = 0m;
-                        entity.restqty = xqQty;
-                        entity.createtime = DateTime.Now;
-                        entity.createuser = user;
-                        entity.remarks = "";
-                        entity.isactive = 1;
-                        curInserts.Add(entity);
-
-                        //当前交货计划已分配数量累加
-                        allQty += xqQty;
-                        //当前供应商已分配数量累加
-                        sumNeedQty += xqQty;
-                    }
-                }
                 //标志位为true,则当前交货计划无法转交货单
                 if (flag)
                 {
@@ -7138,8 +6982,6 @@ namespace Business.Replenishment
                 }
                 inserts.AddRange(curInserts);
             }
-
-
             if (inserts.Any())
             {
                 //获取交货单号