Quintiq file version 2.0
|
#parent: #root
|
StaticMethod ValidateInput (
|
output String feedback_o,
|
output String sanitycheckfeedback_o,
|
Real inputquantity,
|
Supply_MP supply,
|
Fulfillment old_fulfillment
|
) declarative remote as Boolean
|
{
|
Description: 'Validate input from the dialog'
|
TextBody:
|
[*
|
feedback_o := '';
|
sanitycheckfeedback_o := '';
|
|
// Populate variables
|
actualpeggedqty := sum( supply, Fulfillment, fulfillment,
|
fulfillment <> old_fulfillment,
|
fulfillment.Quantity() );
|
|
supplyquantity := guard( supply.Quantity(), 0 );
|
|
actualavailablesupplyqty := maxvalue( supplyquantity - actualpeggedqty, 0 );
|
|
// Check if input quantity is valid
|
if( inputquantity < 0 )
|
{
|
feedback_o := Translations::MP_Fulfillment_ValidateInput_IsInvalidQuantity( inputquantity );
|
sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataWarning();
|
}
|
// Check if input quantity is more than actual available supply quantity
|
else if( inputquantity > actualavailablesupplyqty )
|
{
|
feedback_o := Translations::MP_Fulfillment_ValidateInput_IsQuantityExceedAvailableSupplyQuantity( inputquantity, actualavailablesupplyqty );
|
sanitycheckfeedback_o := SanityCheckCategoryLevel::GetSanityCheckCategoryDataWarning();
|
}
|
|
// Format feedback text if any of the precondtions above are violated
|
if( feedback_o <> '' )
|
{
|
pispname := MacroPlan::GetSubstituteName( guard( supply.ProductInStockingPointInPeriodPlanning().ProductInStockingPoint_MP().Name(), '' ) );
|
pispipstart := guard( supply.ProductInStockingPointInPeriodPlanning().Start(), DateTime::MinDateTime() );
|
feedback_o := SanityCheckMessage::GetFormattedMessage( Translations::MP_Fulfillment_Instance( pispname, pispipstart ),
|
feedback_o );
|
}
|
|
return feedback_o = '';
|
*]
|
}
|