xiaoding721
2024-11-06 2c714b2284a68fbe764bbd11dd23e74d42d83f34
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 );
  *]
}