Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod CanEdit ( 
 | 
  output String feedback_o, 
 | 
  MacroPlan macroplan, 
 | 
  Campaign_MP campaign 
 | 
) declarative remote as Boolean 
 | 
{ 
 | 
  Description: 'Change whether campaign can be edited' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Precondition to whether campaign can be edited 
 | 
    feedback_o := ''; 
 | 
     
 | 
    if ( not isnull( campaign ) and campaign.IsHistorical() and campaign.End() < macroplan.StartOfPlanning() ) 
 | 
    { 
 | 
      feedback_o := Translations::MP_Campaign_CanEdit( macroplan.StartOfPlanning() ); 
 | 
    } 
 | 
     
 | 
    // Format feedback text if any of the precondition above is violated 
 | 
    if( feedback_o <> '' ) 
 | 
    { 
 | 
      instance := Campaign_MP::GetInstanceText( campaign.CampaignType_MP(), campaign.Start() ); 
 | 
      feedback_o := SanityCheckMessage::GetFormattedMessage( instance, feedback_o ); 
 | 
    } 
 | 
         
 | 
    return feedback_o.Length() = 0; 
 | 
  *] 
 | 
} 
 |