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