Quintiq file version 2.0 
 | 
#parent: #root 
 | 
DeclarativeReferenceRelation CalcNettedForecast 
 | 
{ 
 | 
  #keys: '1[151892.2.1029842722]' 
 | 
  Expression: 
 | 
  [* 
 | 
    // select leaf forecast before product in higher level 
 | 
    forecast := null( Forecast ); 
 | 
    if ( not this.MacroPlan().GlobalParameters_MP().IsNoNetting() and this.IsEligibleForNetting() ) 
 | 
    { 
 | 
      sdips := selectset( this,  
 | 
                          PlanningSalesDemandInPeriod.ProductInStockingPointInPeriodPlanning.SalesDemandInPeriodBase, sdip, not sdip.IsPostponed() ); 
 | 
                            
 | 
      forecast := minselect( sdips,  
 | 
                             Elements.MasterSalesDemand.astype( Forecast ),  
 | 
                             f, f.SalesSegment_MP() = this.SalesSegment_MP(), -f.Product_MP().Level() ); 
 | 
       
 | 
      if ( exists( forecast, SalesDemandFulfillmentRestriction.FulfillmentRestriction.Product_MP, product, product = this.Product_MP() )) 
 | 
      { 
 | 
        forecast := null( Forecast );   
 | 
      } 
 | 
    }   
 | 
    return forecast; 
 | 
  *] 
 | 
  Relation: NettedForecast 
 | 
} 
 |