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