| 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(); | 
|     } | 
|   *] | 
| } |