Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod GetHasValidSecondaryCapacityFields ( 
 | 
  output String feedback_o, 
 | 
  output String sanitycheckfb_o, 
 | 
  Real secondarylotsize, 
 | 
  Real secondarymincapacity, 
 | 
  Real secondarymaxcapacity, 
 | 
  UnitOfMeasure_MP secondaryuom, 
 | 
  String primaryuom, 
 | 
  GlobalParameters_MP gp 
 | 
) declarative remote as Boolean 
 | 
{ 
 | 
  Description: 'Validate  the secondary capacity fields.' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Validate the secondary capacity fields for TransportCapacity 
 | 
    allowed := true; 
 | 
     
 | 
    // Check if secondary uom is provided 
 | 
    if( isnull( secondaryuom ) ) 
 | 
    { 
 | 
      allowed         := false; 
 | 
      feedback_o      := Translations::MP_TransportCapacity_ValidateInput_IsNullSecondaryUOM(); 
 | 
      sanitycheckfb_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue() ;  
 | 
    } 
 | 
    // check that primary uom is different from secondary uom 
 | 
    else if( primaryuom = secondaryuom.Name() )   
 | 
    { 
 | 
      allowed         := false; 
 | 
      feedback_o      := Translations::MP_TransportCapacity_ValidateInput_IsSecondaryUOMSameFromPrimary( primaryuom ); 
 | 
      sanitycheckfb_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue(); 
 | 
    } 
 | 
    // check if secondary lot size is larger than zero 
 | 
    else if( secondarylotsize < 0 ) 
 | 
    { 
 | 
      allowed         := false; 
 | 
      feedback_o      := Translations::MP_ValidateInput_IsNegativeLotSize( secondarylotsize ); 
 | 
      sanitycheckfb_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue() ; 
 | 
    } 
 | 
    // check for user capacity 
 | 
    // check if min capacity is larger than zero 
 | 
    else if( secondarymincapacity < 0.0 ) 
 | 
    { 
 | 
      allowed         := false; 
 | 
      feedback_o      := Translations::MP_TransportCapacity_ValidateInput_IsNegativeMinCapacity( secondarymincapacity ); 
 | 
      sanitycheckfb_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue() ; 
 | 
    } 
 | 
    // check if max capacity is larger than zero 
 | 
    else if( secondarymaxcapacity < 0.0 ) 
 | 
    { 
 | 
      allowed         := false; 
 | 
      feedback_o      := Translations::MP_TransportCapacity_ValidateInput_IsNegativeMaxCapacity( secondarymaxcapacity ); 
 | 
      sanitycheckfb_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue() ; 
 | 
    } 
 | 
    // check if max capacity is larger than lot size 
 | 
    else if( secondarymaxcapacity < secondarylotsize ) 
 | 
    { 
 | 
      allowed         := false; 
 | 
      feedback_o      := Translations::MP_TransportCapacity_ValidateInput_Secondary_IsMaxCapacityLessThanLotSize( secondarymaxcapacity, secondarylotsize ); 
 | 
      sanitycheckfb_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue() ; 
 | 
    } 
 | 
    // check if max capacity is within the allowed range 
 | 
    else if( secondarymaxcapacity <> 0 
 | 
             and not GlobalParameters_MP::GetIsValueWithinRange( secondarymaxcapacity, 
 | 
                                                                 gp.AbsoluteUpperLimit(), 
 | 
                                                                 gp.AbsoluteLowerLimit() ) ) 
 | 
    { 
 | 
      allowed         := false; 
 | 
      feedback_o      := Translations::MP_TransportCapacity_ValidateInput_InvalidSecondaryMaxCapacity( secondarymaxcapacity, 
 | 
                                                                                                       gp.AbsoluteUpperLimit(), 
 | 
                                                                                                       gp.AbsoluteLowerLimit() ); 
 | 
      sanitycheckfb_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue() ;                                                                                      
 | 
    } 
 | 
    // check if min capacity is within the allowed range 
 | 
    else if( secondarymincapacity <> 0 
 | 
             and not GlobalParameters_MP::GetIsValueWithinRange( secondarymincapacity, 
 | 
                                                                 gp.AbsoluteUpperLimit(), 
 | 
                                                                 gp.AbsoluteLowerLimit() ) ) 
 | 
    { 
 | 
      allowed         := false; 
 | 
      feedback_o      := Translations::MP_TransportCapacity_ValidateInput_InvalidSecondaryMinCapacity( secondarymincapacity, 
 | 
                                                                                                       gp.AbsoluteUpperLimit(), 
 | 
                                                                                                       gp.AbsoluteLowerLimit() ); 
 | 
      sanitycheckfb_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue() ;                                                                                        
 | 
    } 
 | 
    // check if min & max capacity combination is valid 
 | 
    else if( secondarymincapacity > secondarymaxcapacity ) 
 | 
    {                  
 | 
      allowed         := false; 
 | 
      feedback_o      := Translations::MP_TransportCapacity_ValidateInput_Secondary_IsMaxCapacityLessThanMinCapacity( secondarymaxcapacity, secondarymincapacity ); 
 | 
      sanitycheckfb_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue() ; 
 | 
    } 
 | 
     
 | 
    return allowed; 
 | 
  *] 
 | 
} 
 |