Quintiq file version 2.0 
 | 
#parent: #root 
 | 
MethodOverride GetQuantityForOptimizer ( 
 | 
  const LibOpt_Scope scope 
 | 
) const as Real 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    value := 0.0 
 | 
    if( not isnull( this.AsSalesDemandInPeriodBase() ) ) 
 | 
    { 
 | 
      unpostponed := this.GetUnPostponedQuantity(); 
 | 
       
 | 
      postponed_outofscope := sum(  this,  
 | 
                                    DisaggregatedSalesDemandInPeriod,  
 | 
                                    dsdip, 
 | 
                                    not isnull( dsdip.OriginalSalesDemand() )                                                           // postponed dsdip 
 | 
                                    and ( dsdip.IsManuallyPostponed()                                                                   // manually postponed 
 | 
                                          or not scope.Contains( dsdip.ProductInStockingPointInPeriodPlanning().PISPIPInOptimizerRun() ) ),    // *NOT* within the opt scope (note dsdip are not added to scope as objects) 
 | 
                                    dsdip.Quantity() );  
 | 
      value := maxvalue(  unpostponed - postponed_outofscope, 0.0 );  
 | 
    } 
 | 
    return value; 
 | 
  *] 
 | 
} 
 |