admin
2025-01-22 7e31442f0e9b07764e9c6a9680d3d4aeba5fe1de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Quintiq file version 2.0
#parent: #root
StaticMethod GetLastOptimizationHorizon (
  AlgorithmRun run,
  MacroPlan macroplan,
  output Period_MP periodstart,
  output Period_MP periodend
) remote
{
  Description: 'Return the last optimization horizon specified. Otherwise, return the horizon between start of planning base period and last base period'
  TextBody:
  [*
    // soh yee Mar-24-2014 (created)
    
    if( not isnull( run ) )
    {
      periodstart := select( macroplan, PlanningPeriod, p, p.Start() = run.PeriodFirstStart() );
      periodend := select( macroplan, PlanningPeriod, p, p.PeriodEnd() = run.PeriodLastEnd() );
    }
    
    // If algorithm run cannot be found or the periodstart and periodend is still null, use start and last plannning period
    if( isnull( periodstart ) )
    {
      periodstart := macroplan.StartOfPlanningPeriod();
    }
    
    if( isnull( periodend ) )
    {
      periodend := macroplan.LastPlanningPeriod();
    }
  *]
}