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 = ''; 
 | 
  *] 
 | 
} 
 |