| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod CanCreate ( | 
|   output String feedback_o, | 
|   Units units, | 
|   String fromCampaignType, | 
|   String toCampaignType | 
| ) declarative remote as Boolean | 
| { | 
|   Description: 'Returns true if at least one unit has campaigntype' | 
|   TextBody: | 
|   [* | 
|     // Sanity check feedback not showed in this precondition | 
|     sanitycheckfb := ''; | 
|     if( units.Size() = 0 ) | 
|     { | 
|       feedback_o := Translations::MP_TransitionType_CanCreateNew_EmptyUnitNavSelection(); | 
|     } | 
|     else | 
|     { | 
|       unitwithcampaigntype := maxselect( units, Elements, e, true, e.CampaignType_MP( relsize ) ) | 
|        | 
|       if( isnull( unitwithcampaigntype ) or unitwithcampaigntype.CampaignType_MP( relsize ) = 0 ) | 
|       { | 
|         feedback_o := Translations::MP_TransitionType_CanCreateNew_LessThanTwoCampaignType_Part1_NoCampaignType(); | 
|       } | 
|       else if( unitwithcampaigntype.CampaignType_MP( relsize ) < 2 ) | 
|       { | 
|         feedback_o := Translations::MP_TransitionType_CanCreateNew_LessThanTwoCampaignType_Part1_NotEnoughCampaignType( unitwithcampaigntype.CampaignType_MP( relsize ) ); | 
|       } | 
|        | 
|       if( feedback_o.Length() > 0 ) | 
|       { | 
|         feedback_o := feedback_o + ' ' + Translations::MP_TransitionType_CanCreateNew_LessThanTwoCampaignType_Part2(); | 
|       } | 
|       else if( TransitionType_MP::ValidateDistinctOriginDestination( feedback_o, sanitycheckfb, fromCampaignType, toCampaignType ) ) | 
|       { | 
|         TransitionType_MP::CheckIsUnique( feedback_o, sanitycheckfb , units, null( TransitionType_MP ), fromCampaignType, toCampaignType ); | 
|       } | 
|     }                 | 
|     return feedback_o = ''; | 
|   *] | 
| } |