| Quintiq file version 2.0 | 
| #parent: #root | 
| Function CalcHasFulfilledMinimumShiftPatternDuration | 
| { | 
|   TextBody: | 
|   [* | 
|     value := true; | 
|      | 
|     if( this.IsPlanning() and not this.Period_MP().IsHistorical() and not isnull( this.ShiftPattern() ) ) | 
|     { | 
|       next := this.NextPlanningUnitPeriod(); | 
|       // If the next period is using the same shift pattern, retrieve the value of its attribute instead. | 
|       if( not isnull( next ) and next.astype( UnitPeriodTime ).ShiftPattern() = this.ShiftPattern() ) | 
|       { | 
|         value := next.astype( UnitPeriodTime ).HasFulfilledMinimumShiftPatternDuration(); | 
|       } | 
|       // Otherwise, set the attribute to true if the current shift pattern has been used at least as long as its minimum duration. | 
|       else | 
|       { | 
|         value := this.CumulativeShiftPatternDuration() >= this.ShiftPattern().MinimumDuration(); | 
|       } | 
|     } | 
|      | 
|     this.HasFulfilledMinimumShiftPatternDuration( value ); | 
|   *] | 
| } |