| 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; | 
|   *] | 
| } |