Quintiq file version 2.0
#parent: #root
Method ValidateLevels (
  output String feedback_o
) as Boolean id:Method_ScenarioManager_DialogCreateEditStrategy_ValidateLevels
{
  #keys: '[110880.7.901091705]'
  Body:
  [*
    //Checks for discontinuity in the level sequence
    uniquevalues := selectuniquevalues( Dialog.Data(), KPIWeight, weight,
                                        weight.Level() > 0,
                                        weight.Level() );
    
    sortedvalues := selectsortedset( uniquevalues, Elements, level,
                                     true,
                                     level );
    
    if( uniquevalues.Size() > 0 )   // There is at least a goal activated. We allow the optimizer run without any goal too.
    {
      maxlevel := sortedvalues.Element( sortedvalues.Size() - 1 );
    
      if( sortedvalues.Size() <> maxlevel )
      {
        levels := sortedvalues.ToString( ', ' );
        feedback_o := Translations::Strategy_ValidateInput_IsLevelContinuous( levels );
      }
    }
    return feedback_o = '';
  *]
}
