Quintiq file version 2.0
|
#parent: #root
|
StaticMethod ValidateInput (
|
output String feedback_o,
|
output String sanitycheckfeedback_o,
|
ConversionFactor conversionfactor,
|
UnitOfMeasure_MP sourceuom,
|
UnitOfMeasure_MP targetuom,
|
Real factor,
|
Boolean isproductdependent,
|
Product_MP product,
|
Boolean checkunique
|
) declarative remote as Boolean
|
{
|
Description: 'Validate input from user for conversion factor'
|
TextBody:
|
[*
|
feedback_o := '';
|
sanitycheckfeedback_o := '';
|
|
// Check if target unit of measure is null
|
if( isnull( targetuom ) )
|
{
|
feedback_o := Translations::MP_ConversionFactor_ValidateInput_IsNullUOM();
|
sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue();
|
}
|
// Check if factor is not valid
|
else if( factor = 0
|
or factor = Real::MinReal() )
|
{
|
feedback_o := Translations::MP_ConversionFactor_ValidateInput_IsZeroFactor();
|
sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue();
|
}
|
// Check if the source unit of measure conversion to target unit of measure combination is unique
|
else if( checkunique
|
and exists( sourceuom, AsSourceUnitOfMeasure, cf,
|
cf <> conversionfactor,
|
cf.TargetUnitOfMeasure() = targetuom
|
and ifexpr( isproductdependent,
|
cf.Product_MP() = product,
|
isnull( cf.Product_MP() ) ) ) ) // Only allow one pair of conversion and pair with different product
|
{
|
feedback_o := Translations::MP_ConversionFactor_ValidateInput_IsNotUnique();
|
sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue();
|
}
|
// Check if a product is inserted while conversion factor is set to be product dependent
|
else if( isproductdependent
|
and isnull( product ) )
|
{
|
feedback_o := Translations::MP_ConversionFactor_ValidateInput_IsNullProduct();
|
sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataWarning();
|
}
|
|
// Format the feedback text if any of the precondition above is violated
|
if( feedback_o <> '' )
|
{
|
instance := ConversionFactor::GetInstanceText( sourceuom, targetuom, null( Product_MP) );
|
|
if( isproductdependent )
|
{
|
instance := ConversionFactor::GetInstanceText( sourceuom, targetuom, product );
|
}
|
|
feedback_o := SanityCheckMessage::GetFormattedMessage( instance, feedback_o );
|
}
|
|
return feedback_o = '';
|
*]
|
}
|