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