hongji.li
2023-11-03 aefafd2142478d4fb07d6b8b45c3047e247389e0
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
Quintiq file version 2.0
#parent: #root
Method SynchronizeCalendarElements
{
  Description: 'Traverse set of CalendarElements (usually imported via EDI) and create this.TimeIntervals as necessary'
  TextBody:
  [*
    // Wayne Apr-9-2013 (created)
    // Remove all time intervals
    traverse( this, UnitCalendar.TimeIntervals, ti )
    {
      ti.Delete();
    }
    // Create TimeIntervals from UnitCalendarElements
    traverse( this, UnitCalendarElement, uce )
    {
      if( not exists( this,
                      UnitCalendar.TimeIntervals,
                      ti,
                      ( uce.Start() >= ti.Start() and uce.Start() < ti.End() ) or
                      ( uce.End() >= ti.Start() and uce.End() < ti.End() ) or
                      ( uce.Start() < ti.Start() and uce.End() > ti.End() ) )  )
      {
        this.UnitCalendar().AddTimeInterval( uce.Start(), uce.End(), uce.Capacity(), uce.Description() );
      }
    }
  *]
}