Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod ValidateBottlenecktInput ( 
 | 
  output String feedback_o, 
 | 
  output String sanitycheckfeedback_o, 
 | 
  MacroPlan macroplan, 
 | 
  Real bottlenecktolerance, 
 | 
  Duration bottleneckwindowstart, 
 | 
  Duration bottleneckwindowend, 
 | 
  Real capacitybelowthreshold, 
 | 
  Real capacityabovethreshold, 
 | 
  Real stockingpointbottleneckthreshold, 
 | 
  Boolean isweb 
 | 
) declarative remote as Boolean 
 | 
{ 
 | 
  Description: 'Called by designer' 
 | 
  TextBody: 
 | 
  [* 
 | 
    /***** 
 | 
     PLEASE ENSURE THAT DATA ISSUE IS CHECKED BEFORE DATA WARNING 
 | 
    **/ 
 | 
     
 | 
    if( feedback_o ='' ) 
 | 
    { 
 | 
      // Bottleneck tolerance 
 | 
      if ( bottlenecktolerance < 0 ) 
 | 
      { 
 | 
       feedback_o := Translations::MP_GlobalParameters_MP_ValidateInput_IsNegativeBottleneckTolerance( bottlenecktolerance ); 
 | 
       sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataWarning(); 
 | 
      } 
 | 
      // Bottleneck window start and end 
 | 
      else if( bottleneckwindowstart > bottleneckwindowend ) 
 | 
      { 
 | 
       feedback_o := Translations::MP_GlobalParameters_MP_ValidateInput_IsStartAfterEndOfBottlneckWindow( bottleneckwindowend, bottleneckwindowstart ); 
 | 
       sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataWarning(); 
 | 
      } 
 | 
      // Capacity above threshold 
 | 
      else if( capacityabovethreshold < 0 ) 
 | 
      { 
 | 
       feedback_o := Translations::MP_GlobalParameters_MP_ValidateInput_IsNegativeCapacityAboveThreshold( capacityabovethreshold ); 
 | 
       sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataWarning(); 
 | 
      } 
 | 
      // Capacity below threshold 
 | 
      else if( capacitybelowthreshold < 0 ) 
 | 
      { 
 | 
       feedback_o := Translations::MP_GlobalParameters_MP_ValidateInput_IsNegativeCapacityBelowThreshold( capacitybelowthreshold ); 
 | 
       sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataWarning(); 
 | 
      } 
 | 
      // Capacity above and below threshold 
 | 
      else if( capacityabovethreshold < capacitybelowthreshold ) 
 | 
      { 
 | 
       feedback_o := Translations::MP_GlobalParameters_MP_ValidateInput_IsCapacityAboveThresholdLessThanCapacityBelowThreshold( capacityabovethreshold, capacitybelowthreshold ); 
 | 
       sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataWarning(); 
 | 
      } 
 | 
       // Bottleneck tolerance 
 | 
      else if ( stockingpointbottleneckthreshold < 0 ) 
 | 
      { 
 | 
       feedback_o := Translations::MP_GlobalParameters_MP_ValidateInput_IsNegativeBottleneckThreshold( stockingpointbottleneckthreshold ); 
 | 
       sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataWarning(); 
 | 
      } 
 | 
       
 | 
    } 
 | 
     
 | 
    // Add instance text 
 | 
    if ( isweb and  feedback_o <> '' ) 
 | 
    { 
 | 
     feedback_o := SanityCheckMessage::GetFormattedMessage( Translations::MP_Bottleneck_Detection_Parameters_Instance(), feedback_o ); 
 | 
    } 
 | 
     
 | 
    return feedback_o = ''; 
 | 
  *] 
 | 
} 
 |