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