renhao
2023-09-21 1aa9f2bb83dd9e4b7517f1cbf06b0db53979bb31
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
Quintiq file version 2.0
#parent: #root
Function CalcHasIllegalNextElement
{
  TextBody:
  [*
    value := false; 
    next := this.NextCombiElement(); 
    if ( not isnull( next ) and next.OptCampaignElementType() <> this.OptCampaignElementType() ) // ok to continue with the same element type as those will be planned back as one 
    {
      if ( this.istype( OptCampaignCombiElementTransition ) ) 
      {
        requirednextcampaign := this.OptCampaignElementType().astype( OptCampaignTransitionType ).TransitionType_MP().ToCampaignType(); 
        value := guard( not next.astype( OptCampaignCombiElementCampaign ).CampaignType_MP() = requirednextcampaign, true ); 
      }
      else
      {  
        requirednextfromcampaign := this.OptCampaignElementType().astype( OptCampaignCampaignType ).CampaignType_MP(); 
        value := guard( not next.OptCampaignElementType().astype( OptCampaignTransitionType ).TransitionType_MP().FromCampaignType() = requirednextfromcampaign, // next must be transition starting out with my type
                        true ); 
      }
    }
    
    this.HasIllegalNextElement( value );
  *]
  InterfaceProperties { Accessibility: 'Module' }
}