haorenhui
2023-10-30 6d6cc10d9e8e242661da7fd655dec155a09d676c
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
34
35
36
Quintiq file version 2.0
#parent: #root
Method StoreSalesVarProperties (
  CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program,
  LibOpt_Scope scope
)
{
  TextBody:
  [*
    traverse( scope.GetLeafSalesDemandInPeriodInRun(), Elements, lsdip ) 
    {
        var := program.SalesDemandQtyVariables().Get( lsdip ); 
        lsdip.SalesDemandQtyVarInitLowerBound( var.LowerBound() ); 
        lsdip.SalesDemandQtyVarInitUpperBound( var.UpperBound() ); 
    }
    
    traverse( scope.GetAggregatedSalesDemandInPeriodInRun(), Elements, asdip ) 
    {
      // There is no decision variable for AggregatedSalesDemandInPeriod
      // Traverse the children ( Disaggregated Sales demands )
      traverse ( asdip, 
                 DisaggregatedSalesDemandInPeriod, 
                 dasdip,
                 not dasdip.IsPostponed()
                 and scope.Contains( dasdip.AsPlanningBaseSalesDemandInPeriod().PISPIPInOptimizerRun() ) )
      {
        // Type    : DisaggregatedSalesDemandInPeriod
        // Variable: 'DisaggregatedSalesDemandQty' UoM: PISP
        var := program.DisaggregatedSalesDemandQtyVariables().Get( dasdip );
        dasdip.SalesDemandQtyVarInitLowerBound( var.LowerBound() ); 
        dasdip.SalesDemandQtyVarInitUpperBound( var.UpperBound() ); 
      }
    }
  *]
  InterfaceProperties { Accessibility: 'Module' }
}