yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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 = '';
  *]
}