Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method GetQuantityForOptimizer ( 
 | 
  const LibOpt_Scope scope 
 | 
) const as Real 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    value := this.Quantity();  
 | 
    assert( not this.IsPostponed() or this.IsManuallyPostponed(), 'we should only be calling this in the optimizer on original sales demand in period, not postponed one' );  
 | 
      
 | 
    if ( this.CanBePostponed() and not this.IsManuallyPostponed() ) // add quantity that has been postponed within the scope. This is all the sd that can be replanned.  
 | 
    { 
 | 
      value := value + sum(  this,  
 | 
                             PostponedSalesDemand,  
 | 
                             postponedsd, 
 | 
                             not postponedsd.IsManuallyPostponed() // exclude manually postponed quantity as the optimizer does not change it 
 | 
                             and scope.Contains( postponedsd.ProductInStockingPointInPeriodPlanning().PISPIPInOptimizerRun() ), 
 | 
                             postponedsd.QuantityToPlan() );   
 | 
    } 
 | 
     
 | 
    return value; 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |