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