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
Quintiq file version 2.0
#parent: #root
Method SetPTVarProperties (
  CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program,
  const constcontent PeriodTaskOperations userperiodtasks,
  const LibOpt_Scope scope
) const
{
  Description: 'Initialize all variables related to period task operation, including lot sizes, campaign, etc'
  TextBody:
  [*
    // create period task related variables for operations
    // 1. Init variables for all period tasks, freeze the lowerbounds for operations with a min quantity or feedback.
    // 2. Freeze the user period tasks
    
    runcontext := this.GetRunContextConst(); 
    
    // Operation: Init variables for all period tasks
    traverse( scope.GetOperationInOptimizerRunConst(), Elements, operation )
    {
      periods := this.GetPeriodsForOperation( scope, operation );
      traverse( periods, Elements, period )
      {
        // PTQty variable UoM: Unit
        var := program.PTQtyVariables().Get( operation, period );
    
        this.SetPTQtyVariableProperties( scope, runcontext, operation, period, var, true /*set start value*/, program ); 
      }
    }
    this.FixUserPeriodTask( userperiodtasks, program );
  *]
  InterfaceProperties { Accessibility: 'Module' }
}