Quintiq file version 2.0 
 | 
#parent: #root 
 | 
MethodOverride AddTermsForDelayedSalesDemandsForward ( 
 | 
  CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program, 
 | 
  MPConstraint constr, 
 | 
  Real coefficient, 
 | 
  const LibOpt_Scope scope, 
 | 
  const CapacityPlanningSuboptimizer subopt, 
 | 
  Number optminpostponementperiod 
 | 
) const 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    scalefactor_delayeddisaggregadSDQty_constr := subopt.ScaleConstraintTerm( typeof( MPDelayedDisaggregatedSalesDemandQtyVariable ), 
 | 
                                                                              typeofexpression( constr ) ); 
 | 
     
 | 
    pispip := this.AsPlanningBaseSalesDemandInPeriod(); 
 | 
    nextpispip := pispip.NextPlanningPISPIP(); 
 | 
     
 | 
    for( i := 2; 
 | 
         i <= optminpostponementperiod 
 | 
         and not isnull( nextpispip ); 
 | 
         i++ 
 | 
       ) 
 | 
    { 
 | 
      nextpispip := nextpispip.NextPlanningPISPIP(); 
 | 
    } 
 | 
     
 | 
    for( i := optminpostponementperiod; 
 | 
         i <= this.MaxPostponementPeriod()      // within the maximum number of postponement periods 
 | 
         and not isnull( nextpispip );          // the next pispip exists 
 | 
         i++ ) 
 | 
    { 
 | 
      if( scope.Contains( nextpispip.PISPIPInOptimizerRun() ) ) 
 | 
      { 
 | 
        var := program.DelayedDisaggregatedSalesDemandQtyVariables().Find( this, nextpispip.Period_MP() ); 
 | 
         
 | 
        if( not isnull( var ) ) 
 | 
        { 
 | 
          constr.NewTerm( coefficient * scalefactor_delayeddisaggregadSDQty_constr , var ); 
 | 
        } 
 | 
      } 
 | 
      nextpispip := nextpispip.NextPlanningPISPIP(); 
 | 
    } 
 | 
  *] 
 | 
} 
 |