Quintiq file version 2.0
|
#parent: #root
|
Method CreateScaleFactors (
|
StrategyLevelMacroPlan slm
|
)
|
{
|
TextBody:
|
[*
|
strategymp := this.MacroPlan().StrategyMacroPlan();
|
invholding := strategymp.InventoryHoldingScalingFactor()
|
mass := strategymp.MassScalingFactor();
|
money := strategymp.MonetaryScalingFactor();
|
time := strategymp.TimeScalingFactor();
|
timeaccount := strategymp.TimeAccountScalingFactor();
|
|
|
if ( not isnull( slm ) and slm.MetaLastAutoScalingRun().IsFinite() ) // when providing slm we use level specific factors instead
|
{
|
invholding := slm.MetaScalingFactorInventoryHolding();
|
mass := slm.MetaScalingFactorMass();
|
money := slm.MetaScalingFactorMonetary();
|
time := slm.MetaScalingFactorTime();
|
timeaccount := slm.MetaScalingFactorTimeAccount();
|
assert( invholding > 0 and mass > 0 and money > 0 and time > 0 and timeaccount > 0, 'Unexpected scaling factor <=0. For level ', slm.Level() );
|
}
|
|
scalingalgorithm := this.AlgorithmScaling();
|
|
scalingalgorithm.SetScaleFactor( Optimization::ScalingTypeNameInventoryHolding(), invholding );
|
scalingalgorithm.SetScaleFactor( Optimization::ScalingTypeNameMass(), mass );
|
scalingalgorithm.SetScaleFactor( Optimization::ScalingTypeNameMonetary(), money );
|
scalingalgorithm.SetScaleFactor( Optimization::ScalingTypeNameNone(), 1.0 );
|
scalingalgorithm.SetScaleFactor( Optimization::ScalingTypeNameTime(), time );
|
scalingalgorithm.SetScaleFactor( Optimization::ScalingTypeNameTimeAccount(), timeaccount );
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|