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
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' }
}