lazhen
2025-01-09 8afe90b633046db39042aada36b88193062f8cff
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
33
34
35
36
37
38
39
40
41
42
43
44
Quintiq file version 2.0
#parent: #root
Method InitializeSubscribers () id:Method_FormCalendarUnavailableEvent_InitializeSubscribers
{
  #keys: '[415136.0.666291565]'
  Body:
  [*
    
    owner_i := LibCal_GlobalState.dhGlobalCalendarRegistry().Data().CommonCalendar();
    
    category_i := selectobject( owner_i,CalendarRegistry.EventCategory, category, category.Name() = 'Unavaliable' );
    
    sEvent := owner_i.Event( relshadow,
                             EventID        := [String]Key::NextPersistentKey(),
    //                         StartTimeOfDay := start_i.TimeOfDay( timezone ),
    //                         EndTimeOfDay   := end_i  .TimeOfDay( timezone ),
                             EventCategory  := category_i,
                             IsDefault      := false );
    
    sLeadPart := owner_i.Participation( relshadow, LibCal_LeadingParticipation,
                                        ParticipationID := [String]Key::NextPersistentKey()
    //                                    ,StartDate       := start_i.Date( timezone ),
    //                                    EndDate         := end_i  .Date( timezone ) 
                                        );
    
    calendar             := sLeadPart.Calendar();
    potentialSubscribers := calendar.GetPotentialSubscribers();
    
    period := MacroPlan.LibCal_SubscriberEventSearch( relnew, Start := Date::MinDate(), End := Date::MaxDate() );
    
    dhDate.Data( period );
    // Remove the calendar of the initiator (cannot subscribe to self).
    initiator := sEvent.Calendar();
    if( potentialSubscribers.Find( initiator ) >= 0 )
    {
      potentialSubscribers.Remove( initiator );
    }
    
    dhPotentialSubscribers.Data( &potentialSubscribers );
    
    lstSubscribers.CheckAll();
    ListCalendarEventTypes.CheckAll();
  *]
}