| Quintiq file version 2.0 | 
| #parent: #root | 
| Function CalcIsInactive | 
| { | 
|   TextBody: | 
|   [* | 
|     gp := this.MacroPlan().GlobalParameters_MP(); | 
|     // Check if both demand and supply quantity is within the balance tolerance | 
|     value := gp.GetIsBalanceWithinTolerance( this.GetDemandQuantity(), 0.0 ) | 
|              and gp.GetIsBalanceWithinTolerance( this.SupplyQuantity(), 0.0 ); | 
|      | 
|     // Check if the current PISPIP is from a leaf product | 
|     if( not this.IsLeaf() ) | 
|     { | 
|       // Check if the current PISPIP has any direct children of product dimension | 
|       // If there's none, get children of period dimension to do the calculation instead | 
|       if( this.ChildOfProductDimension( relsize ) = 0 ) | 
|       { | 
|         // Check if all children of period dimension is inactive | 
|         value := value and forall( this.GetChildrenOfPeriodDimension(), | 
|                                    Elements, | 
|                                    pispip, | 
|                                    pispip.IsInactive() ); | 
|       } | 
|       else | 
|       { | 
|         // Check if all child of product dimension, that is not excluded, is inactive | 
|         value := value and forall( this, | 
|                                    ChildOfProductDimension, | 
|                                    pispip, | 
|                                    not pispip.ProductInStockingPoint_MP().IsExcluded(), | 
|                                    pispip.IsInactive() ); | 
|       } | 
|     } | 
|      | 
|     this.IsInactive( value ); | 
|   *] | 
| } |