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_delayedSDQty_constr := subopt.ScaleConstraintTerm( typeof( MPDelayedSalesDemandQtyVariable ), typeofexpression( constr ) ); 
 | 
    pispip := this.AsPlanningBaseSalesDemandInPeriod(); 
 | 
     
 | 
    if( this.CanBePostponed() and this.NeedsToBePlanned() ) 
 | 
    { 
 | 
      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.DelayedSalesDemandQtyVariables().Get( this, nextpispip.Period_MP() );      
 | 
          constr.NewTerm( coefficient * scalefactor_delayedSDQty_constr , var ); 
 | 
        } 
 | 
        nextpispip := nextpispip.NextPlanningPISPIP(); 
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
} 
 |