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
  | Quintiq file version 2.0 
 |  #parent: #root 
 |  Method GetPeriodsForOTS ( 
 |    output Period_MP periodstart, 
 |    output Period_MP periodend, 
 |    OptimizerSettings settings 
 |  ) as owning Period_MPs 
 |  { 
 |    TextBody: 
 |    [* 
 |      availableperiods := this.GetOptimizerPeriods( periodstart, periodend ); 
 |       
 |      periodstart := minselect( availableperiods, Elements, p, true, p.StartDate() );  
 |      periodend := maxselect( availableperiods, Elements, p, true, p.StartDate() );  
 |       
 |      if ( settings.FirstPlanningPeriodDate().IsFinite() and settings.FirstPlanningPeriodDate() >= periodstart.StartDate() )  
 |      { 
 |        periodstart := minselect( availableperiods, Elements, p, p.StartDate() >= settings.FirstPlanningPeriodDate(), p.StartDate() );  
 |      } 
 |      if ( settings.LastPlanningPeriodDate().IsFinite() and settings.LastPlanningPeriodDate() <= periodend.StartDate() )  
 |      { 
 |        periodend := maxselect( availableperiods, Elements, p, p.StartDate() <= settings.LastPlanningPeriodDate(), p.StartDate() );  
 |      } 
 |      periods := selectset( availableperiods, Elements, p, true, p.StartDate() >= periodstart.StartDate() and p.StartDate() <= periodend.StartDate() );  
 |       
 |      return &periods 
 |    *] 
 |    InterfaceProperties { Accessibility: 'Extensible' } 
 |  } 
 |  
  |