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