Quintiq file version 2.0
|
#parent: #root
|
StaticMethod Create (
|
MacroPlan owner,
|
Strategy strategy
|
) as StrategyMacroPlan
|
{
|
Description: 'Construct copy of strategy for use in MacroPlan dataset'
|
TextBody:
|
[*
|
strat := owner.StrategyMacroPlan( relnew );
|
strat.ScenarioName( owner.ScenarioName() );
|
strat.Name( strategy.Name() );
|
strat.MassScalingFactor( strategy.MassScalingFactor() );
|
strat.MonetaryScalingFactor( strategy.MonetaryScalingFactor() );
|
strat.TimeScalingFactor( strategy.TimeScalingFactor() );
|
strat.TimeAccountScalingFactor( strategy.TimeAccountScalingFactor() );
|
strat.InventoryHoldingScalingFactor( strategy.InventoryHoldingScalingFactor() );
|
strat.LastAutoScalingRun( strategy.LastAutoScalingRun() );
|
strat.MetaOptimizerIsCollapseLevel( strategy.MetaOptimizerIsCollapseLevel() );
|
strat.MetaOptimizerCollapseLevelWeight( strategy.MetaOptimizerCollapseLevelWeight() );
|
strat.MetaOptimizerFirstLevelOverride( strategy.MetaOptimizerFirstLevelOverride() );
|
strat.MetaOptimizerFirstLevelHasOverride( strategy.MetaOptimizerFirstLevelHasOverride() );
|
strat.MetaOptimizerLastLevelOverride( strategy.MetaOptimizerLastLevelOverride() );
|
strat.MetaOptimizerLastLevelHasOverride( strategy.MetaOptimizerLastLevelHasOverride() );
|
strat.MetaOptimizerMinimizeInvEndAfterLastLevel( strategy.MetaOptimizerMinimizeInvEndAfterLastLevel() );
|
strat.UseMetaOptimizer( strategy.UseMetaOptimizer() );
|
strat.MetaOptimizerMaxNumberOfSecondsAllIterations( strategy.MetaOptimizerMaxNumberOfSecondsAllIterations() );
|
strat.MetaOptimizerRunFullPlanPriorToFocus( strategy.MetaOptimizerRunFullPlanPriorToFocus() );
|
strat.UseCampaignSequenceOptimizer( strategy.UseCampaignSequenceOptimizer() )
|
strat.MaxNrOfElemementsCampaignOptimizerCombi( strategy.MaxNrOfElemementsCampaignOptimizerCombi() );
|
strat.UseHierarchicalSolver( strategy.UseHierarchicalSolver() );
|
strat.UseShiftOptimization( strategy.UseShiftOptimization() );
|
|
slevelzero := select( strategy, StrategyLevel, l, true, l.Level() = 0 );
|
if ( isnull( slevelzero ) ) // if strategy does not specify settings for hidden level 0, we create one on the fly
|
{
|
strategy.CheckAddStrategyLevelZero();
|
}
|
|
minlevelvalue := minvalue( strategy.MetaOptimizerLastLevel(), strategy.MaxActiveLevel() );
|
traverse( strategy,
|
StrategyLevel,
|
strategylevel,
|
not strategy.UseMetaOptimizer() or strategylevel.Level() <= minlevelvalue )
|
{
|
StrategyLevelMacroPlan::Create( strat, strategylevel );
|
}
|
|
traverse( strategy, KPIWeight, kpiweight )
|
{
|
KPIWeightMacroPlan::Create( strat, kpiweight );
|
}
|
|
return strat;
|
*]
|
}
|