Quintiq file version 2.0
|
#parent: #root
|
Method DefaultScope (
|
LibOpt_Optimizer optimizer
|
) as owning LibOpt_ScopeElements
|
{
|
TextBody:
|
[*
|
scope := construct( LibOpt_ScopeElements );
|
|
settings := optimizer.ActiveSettings().astype( OptimizerSettings );
|
periodstart := minselect( this, MacroPlan.Period_MP, p, not p.IsHistorical(), p.StartDate() );
|
periodend := this.MacroPlan().LastPlanningPeriod();
|
|
periods := this.GetPeriodsForOTS( periodstart, periodend, settings );
|
|
traverse( periods, Elements, p )
|
{
|
if ( isnull( p.PeriodInOptimizerRun() ) )
|
{
|
p.PeriodInOptimizerRun( relnew );
|
}
|
scope.Add( p.PeriodInOptimizerRun() );
|
}
|
|
|
traverse( this.GetLaneLegsForOptimization(), Elements, laneleg )
|
{
|
if ( isnull( laneleg.LaneLegForOptimization() ) )
|
{
|
laneleg.LaneLegForOptimization( relnew );
|
}
|
scope.Add( laneleg.LaneLegForOptimization() );
|
}
|
|
optacccounts := selectset( this, MacroPlan.Account_MP, account, account.IsUsedByOptimizer() )
|
traverse( optacccounts, Elements, account )
|
{
|
if ( isnull ( account.AccountInOptimizerRun() ) )
|
{
|
account.AccountInOptimizerRun( relnew );
|
}
|
scope.Add( account.AccountInOptimizerRun() );
|
}
|
|
puzzle := select( this, MacroPlan.OptimizerPuzzle, puzzle, true, puzzle.Name() = settings.PuzzleName() );
|
if ( isnull( puzzle ) )
|
{
|
puzzle := this.MacroPlan().OptimizerPuzzleWorld();
|
}
|
if ( isnull( puzzle.OptimizerPuzzleInOptimizerRun() ) )
|
{
|
puzzle.OptimizerPuzzleInOptimizerRun( relnew );
|
}
|
|
scope.Add( puzzle.OptimizerPuzzleInOptimizerRun() );
|
|
return &scope;
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|