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