Quintiq file version 2.0 
 | 
#parent: #root 
 | 
MethodOverride GetHasValidCost ( 
 | 
  output Strings feedback_o, 
 | 
  output Strings sanitychkfeedback 
 | 
) declarative remote as Boolean 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    lanestartdate := maxvalue( this.ValidFrom(), this.MacroPlan().StartOfPlanning().Date() ); 
 | 
     
 | 
    isvalid := this.LaneCost( relsize ) > 0 
 | 
                and this.FirstLaneCost().Start() <= lanestartdate; 
 | 
     
 | 
    if( not isnull( feedback_o ) and not isvalid ) 
 | 
    { 
 | 
      name := MacroPlan::GetSubstituteName( this.Name() ); 
 | 
      msg :=  SanityCheckMessage::GetFormattedMessage( Translations::MP_Process_Instance( this.DefinitionName(), name ), 
 | 
                                                               Translations::MP_Process_ViolateHasValidCost( this.DefinitionName(), lanestartdate ) ) 
 | 
      feedback_o.Add( msg ); 
 | 
      sanitychkfeedback.Add( SanityCheckCategoryLevel::GetSanityCheckCategoryDataWarning() ); 
 | 
    } 
 | 
     
 | 
    return isvalid; 
 | 
  *] 
 | 
} 
 |