xiaoding721
2024-12-04 c9407b22f81eb2995d7304cc8a0d60aa23581ea2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Quintiq file version 2.0
#parent: #root
Function CalcTotalShiftPatternChangesPenalty
{
  TextBody:
  [*
    value := 0;
    
    // If this unit is a leaf, calculate the total number of shift pattern changes for the whole horizon.
    if( not this.HasChild() and this.HasCapacityTypeTime() )
    {
      value := counter( this, 
                        PlanningUnitPeriod.astype( UnitPeriodTime ), 
                        up, 
                        true, 
                        guard( up.ShiftPattern() <> up.PreviousPlanningUnitPeriod().astype( UnitPeriodTime ).ShiftPattern(), false ) );
    }
    
    this.TotalShiftPatternChangesPenalty( value );
  *]
}