陈清红
2025-04-14 880f3c0257eeb8c37761d484258fdd102a369a19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Quintiq file version 2.0
#parent: #root
Method InitVariablesForSalesDemandsInScopeWhenPostponed (
  CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program,
  const LibOpt_Scope scope
) const
{
  TextBody:
  [*
    // Leaf sales demands
    traverse( scope.GetSDIPBeforeScopeInRunConst(), Elements.astype( LeafSalesDemandInPeriod ), lsdip )
    {
      // Type    : LeafSalesDemandInPeriod
      // Variable: 'DelayedSalesDemandQty' UoM: PISP
      lsdip.InitVariablesForPostponedSalesDemands( this, program, scope, lsdip.SDIPBeforeScopeInRun().OptMinPostponementPeriod(), false /* shelf life var only false */ );
    }
    
    // Aggregated sales demands for higher product level
    traverse( scope.GetSDIPBeforeScopeInRunConst(), Elements.astype( AggregatedSalesDemandInPeriod ), asdip )
    {
      // There is no decision variable for AggregatedSalesDemandInPeriod
      // - Traverse the children ( Disaggregated Sales demands )
      traverse( asdip, DisaggregatedSalesDemandInPeriod, dasdip, not dasdip.IsPostponed() )
      {
        // Postponed or delayed sales demand variable
        // Type    : DelayedDisaggregatedSalesDemandInPeriod
        // Variable: 'DelayedDisaggregatedSalesDemandQty' UoM: PISP
        dasdip.InitVariablesForPostponedSalesDemands( this, program, scope, asdip.SDIPBeforeScopeInRun().OptMinPostponementPeriod(), false /* shelf life var only false */ );
      }
    }
  *]
  InterfaceProperties { Accessibility: 'Module' }
}