Quintiq file version 2.0
|
#parent: #root
|
Method GenerateOccurrence
|
{
|
Description: 'Generate a TimeInterval for the single occurrence of the Event.'
|
TextBody:
|
[*
|
this.Event().CalcCapacity();
|
|
// Simply delete and re-create the TimeInterval.
|
onlySoftDeleted := false;
|
this.DeleteTimeIntervals( onlySoftDeleted );
|
|
// Only re-create if the TimeInterval is still inside the calendar window.
|
if( this.EndTime() > this.Calendar().Start() and
|
this.StartTime() < this.Calendar().End() )
|
{
|
leadingETI := this.CreateTimeInterval( this.StartTime(), this.EndTime(), this.Event().Capacity() );
|
this.IsChanged( false );
|
|
// Also (re)create the TimeIntervals of the subscriptions, if they are inside the calendar window.
|
traverse( this, Subscription, subscription )
|
{
|
if( this.EndTime() > subscription.Calendar().Start() and
|
this.StartTime() < subscription.Calendar().End() )
|
{
|
subscribingETI := subscription.CreateTimeInterval( this.StartTime(), this.EndTime(), this.Event().Capacity() );
|
|
// Register the occurrence (i.e. the ExplicitTimeInterval) as SubscribingETI of the LeadingETI.
|
subscribingETI.LeadingETI( relset, leadingETI );
|
|
subscription.IsChanged( false );
|
}
|
}
|
}
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|