haorenhui
2023-10-30 6d6cc10d9e8e242661da7fd655dec155a09d676c
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
Quintiq file version 2.0
#parent: #root
StaticMethod CheckType (
  LibCal_Participations selection_i,
  Boolean isEvent_i
) remote as Boolean
{
  TextBody:
  [*
    ok := false;
    
    if( selection_i.Size() = 1 )
    {
      // Give more accurate feedback when there is only one element selected.
      ok := LibCal_Participation::CheckType( selection_i.Element( 0 ), isEvent_i );
    }
    else
    {
      feedback := FeedbackObject::LocalFeedback();
      
      // All selected elements must be of correct type (i.e. all Event (i.e. LeadingParticipation) or all Subscription). 
      isAllowed := ifexpr( isEvent_i, forall( selection_i, Elements, participation, true, participation.IsLeading() ),
                                      forall( selection_i, Elements, participation, true, participation.IsSubscription() ) );
      
      if( not feedback.CheckHard( isAllowed ) )
      {
        subject := ifexpr( isEvent_i, "an event", "a subscription" );
        feedback.AddHard( Translations::Participation_NotAllTheSame( subject ) );
      }
      
      ok := feedback.IsAllowed();
    }
    
    return ok;
  *]
}