Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod ValidateInput ( 
 | 
  output String feedback_o, 
 | 
  PISPNodeInRouting pispnodeinrouting, 
 | 
  Boolean isinput, 
 | 
  Product_MP product, 
 | 
  StockingPoint_MP stockingpoint, 
 | 
  Operation operation 
 | 
) declarative remote as Boolean 
 | 
{ 
 | 
  Description: 'ValidateInput for PISPNodeInRouting' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Adhi Apr-8-2016 (created) 
 | 
    feedback_o := ''; 
 | 
     
 | 
     
 | 
    existsinoperation := exists( operation, OperationInputOutput, oio, 
 | 
                                 ifexpr( isinput, 
 | 
                                         guard( pispnodeinrouting.OperationInputForRCV() <> oio, true ) and oio.istype( OperationInput ), 
 | 
                                         guard( pispnodeinrouting.OperationOutputForRCV() <> oio, true ) and oio.istype( OperationOutput ) ), 
 | 
                                 guard( oio.ProductInStockingPoint_MP().StockingPoint_MP() = stockingpoint, false ) 
 | 
                                 and guard( oio.ProductInStockingPoint_MP().Product_MP() = product, false) ); 
 | 
     
 | 
    // Existing operation BOM 
 | 
    existsinoperationbom := exists( pispnodeinrouting, OperationBOM.Operation.OperationBOM.PISPNodeInRouting, pispnir, 
 | 
                                    pispnir <> pispnodeinrouting 
 | 
                                    and ifexpr( isinput, 
 | 
                                                isnull( pispnir.OperationOutputForRCV() ), 
 | 
                                                isnull( pispnir.OperationInputForRCV() ) ), 
 | 
                                    pispnir.ProductInStockingPoint_MP().Product_MP() = product 
 | 
                                    and pispnir.ProductInStockingPoint_MP().StockingPoint_MP() = stockingpoint ); 
 | 
     
 | 
    if( existsinoperationbom or existsinoperation ) 
 | 
    { 
 | 
      feedback_o := Translations::MP_PISPNodeInRouting_CanAssignToStockingPoint(); 
 | 
    } 
 | 
    // Null product 
 | 
    else if( isnull( product ) ) 
 | 
    { 
 | 
      feedback_o := Translations::MP_PISPNodeInRouting_ValidateInput_InvalidProduct(); 
 | 
    } 
 | 
    // Null stocking point 
 | 
    else if( isnull( stockingpoint ) and not isnull( pispnodeinrouting ) )  
 | 
    { 
 | 
      feedback_o := Translations::MP_PISPNodeInRouting_ValidateInput_InvalidStockingPoint(); 
 | 
    } 
 | 
     
 | 
    return feedback_o = ''; 
 | 
  *] 
 | 
} 
 |