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