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 ); 
 | 
  *] 
 | 
} 
 |