| Quintiq file version 2.0 | 
| #parent: #root | 
| Function CalcIsBottleneck | 
| { | 
|   TextBody: | 
|   [* | 
|     // ying ying Jul-18-2014 (created) | 
|      | 
|     numofup := this.MacroPlan().PeriodInBottleneckWindow( relsize ); | 
|     bottleneckpercentage := 0.0; | 
|      | 
|     if( numofup > 0 ) | 
|     { | 
|       bottleneckpercentage := ( this.NumBottleneckPeriods() /  numofup ) * 100; // we take percentage | 
|     } | 
|      | 
|     // Must exceed the GP tolerance in order to flag as bottleneck | 
|     // If tolerance is 50%, at most can tolerate half of the periods to be bottleneck | 
|     // If tolerance is 100%, then unit will never be bottleneck even though all periods within window are bottleneck | 
|     value := bottleneckpercentage > this.MacroPlan().GlobalParameters_MP().BottleneckTolerance(); | 
|      | 
|     if( this.Child( relsize ) > 0 ) | 
|     { | 
|       value := value or exists( this, Child, c, c.IsBottleneck() ); | 
|     } | 
|      | 
|     this.IsBottleneck( value ); | 
|   *] | 
| } |