yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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 );
  *]
}