From e8619d825e5f09daf129b4847bf2bf4e660d40c5 Mon Sep 17 00:00:00 2001 From: yunchai <yunying.chai@capgemini.com> Date: 星期四, 12 十月 2023 09:29:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'refs/remotes/origin/dev' --- _Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl | 28 ++++++++++++++++++++++------ 1 files changed, 22 insertions(+), 6 deletions(-) diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl index b327f63..226f832 100644 --- a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl +++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl @@ -14,8 +14,24 @@ [* numberOfLayers++; //info( "鐩爣鏃堕棿锛�", targetDate.Format( "Y-M2-D2" ) ); - info( pisp.Name() ); + //info( pisp.Name() ); traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, pispippl.Start().Date() = targetDate ) { + //info( "鏄惁鏈変緵搴旓細", pispippl.NewSupply( relsize ) > 0, " 搴撳瓨锛�", pispippl.InventoryLevelEnd() ); + if ( numberOfLayers <> 1 and pispippl.NewSupply( relsize ) = 0 ) { + previous := pispippl.PreviousPlanningPISPIP().astype( ProductInStockingPointInPeriodPlanningLeaf ); + if ( not previous.Period_MP().IsHistorical() ) { + previousDate := previous.Start().Date(); + CapacityAllocationResults::IterativeGeneration2( globalOTDTable, + pisp, + previousDate, + carrcs, + numberOfLayers, + firstLevelSupply, + currentLayerDependentDemandQuantity + ); + } + } + traverse ( pispippl, NewSupply, ns, ns.Quantity() > 0 ) { if ( numberOfLayers = 1 ) { firstLevelSupply := ns; @@ -24,7 +40,7 @@ ontype( ns.PeriodTask_MP() ) { PeriodTaskOperation as pto : { // info( "Operation鍛ㄦ湡浠诲姟..." ); - traverse ( ns, PeriodTask_MP.astype( PeriodTaskOperation ).DependentDemand, dd ) { + traverse ( ns, PeriodTask_MP.astype( PeriodTaskOperation ).DependentDemand, dd, dd.Quantity() > 0 ) { if ( numberOfLayers = 1 ) { currentLayerDependentDemandQuantity := ns.Quantity(); } @@ -56,8 +72,8 @@ ModuleMeasurementUnit := firstLevelSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().UnitOfMeasureName(), ModuleBase := guard( firstLevelSupply.PeriodTask_MP().astype( PeriodTaskOperation ).Operation().UnitID(), "杞﹂亾杩愯緭" ), Division := carrc.Division(), - RequirementDate := ns.Start().Date(), - Date := ns.Start().Date(), + RequirementDate := firstLevelSupply.Start().Date(), + Date := firstLevelSupply.Start().Date(), Description := "", ID := OS::GenerateGUIDAsString(), ProductID := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), @@ -67,7 +83,7 @@ ); } - info( "-----------------------------------------------------------------------------------------------------------------" ); + //info( "-----------------------------------------------------------------------------------------------------------------" ); } PeriodTaskLaneLeg as ptll : { @@ -76,7 +92,7 @@ // info( "灞傛暟锛�", numberOfLayers," 褰撳墠渚涘簲鐨刾isp锛�", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 鎬讳緵搴斿�硷細", ns.Quantity(), " 闇�瑕佷緵搴斿�硷細", currentLayerDependentDemandQuantity, // " 褰撳墠闇�姹俻isp锛�", targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 闇�姹傚�硷細", currentLayerDependentDemandQuantity ); // info( "LaneLeg鍛ㄦ湡浠诲姟..." ); - info( "-----------------------------------------------------------------------------------------------------------------" ); + //info( "-----------------------------------------------------------------------------------------------------------------" ); CapacityAllocationResults::IterativeGeneration2( globalOTDTable, targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), targetDate, -- Gitblit v1.9.3