admin
2025-01-22 7e31442f0e9b07764e9c6a9680d3d4aeba5fe1de
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
30
31
32
Quintiq file version 2.0
#parent: #root
Method AddSubscription (
  LibCal_Calendar subscriber_i,
  Boolean useLeadingPeriod_i
) as LibCal_Subscription
{
  Description: 'Let subscriber_i subscribe to the Participation by creating a copy of it and registering it as Subscription.'
  TextBody:
  [*
    subscription := null( LibCal_Subscription );
    
    // Don't add a subscripton to self (safe-guard).
    if( this.Calendar() <> subscriber_i )
    {
      // Create a subscription for calendar_i, including the RecurrencePeriod if applicable.
      includingPeriod := not useLeadingPeriod_i;
      subscription    := LibCal_Subscription::Create( subscriber_i, this, includingPeriod );
      subscription.UseLeadingPeriod( useLeadingPeriod_i );
      
      // Register as subscription of the current LeadingParticipation.
      this.Subscription( relinsert, subscription );
    
      // Copy all occurrences of the LeadingParticipation.
      // The ones that are not applicable will be removed later on, if necessary.
      subscription.CopyOccurrences();
    }
    
    return subscription;
  *]
  InterfaceProperties { Accessibility: 'Module' }
}