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