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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
  | Quintiq file version 2.0 
 |  #parent: #root 
 |  StaticMethod ValidateInput ( 
 |    output String feedback_o, 
 |    output String sanitycheckfeedback_o, 
 |    Product_MP owner, 
 |    StockingPoint_MP stockingpoint, 
 |    Account_MP account, 
 |    String costdriver, 
 |    Date start, 
 |    String timeunit, 
 |    Number lengthoftime, 
 |    Real cost, 
 |    AccountCost accountcost, 
 |    Boolean isWeb 
 |  ) declarative remote as Boolean 
 |  { 
 |    Description: 'Check for input obtained from UI' 
 |    TextBody: 
 |    [* 
 |      // soh yee Nov-4-2012 (created) 
 |      feedback_o := ''; 
 |      isvalid := true; 
 |       
 |      // Skip for web app and use uniqueness check in this ValidateInput 
 |      // Web allows changing product and SP from dialog hence declarative relation PISPAccount/PISP not calculated yet 
 |      if( not isWeb ) 
 |      { 
 |        isvalid := AccountCost::ValidateInput( feedback_o, 
 |                                               sanitycheckfeedback_o, 
 |                                               account, 
 |                                               costdriver, 
 |                                               start, 
 |                                               timeunit, 
 |                                               lengthoftime, 
 |                                               cost, 
 |                                               accountcost ); 
 |      } 
 |       
 |      // Unlike other costs, since inventory value and costs are edited in real instances 
 |      // The check is done in this validate input, and not in the method 
 |      // DialogCreateEditInventoryValueandCost.GetIsUniqueCost() 
 |       
 |      if( isvalid ) 
 |      { 
 |        isvalid := not exists( owner,  
 |                               InventoryValueAndCost,  
 |                               ivc, 
 |                               ivc <> accountcost, 
 |                               ivc.AccountName() = guard( account.Name(), '' ) 
 |                               and ivc.CostDriver() = costdriver 
 |                               and ivc.Start() = start  
 |                               and ivc.StockingPoint_MP() = stockingpoint ); 
 |        if( not isvalid ) 
 |        { 
 |          if( isWeb ) // Check if used on WC, return specific feedback with newline logic 
 |          { 
 |            if( feedback_o <> '' ) 
 |            { 
 |              feedback_o := feedback_o + String::NewLine(); // New line 
 |            } 
 |             
 |            feedback_o := feedback_o + Translations::MP_AccountCost_Web_IsNotUnique( Translations::MP_AccountCost_Web_InventoryCost() ); 
 |          } 
 |          else 
 |          { 
 |            feedback_o := Translations::MP_AccountCost_ValidateInput_IsNotUnique(); 
 |          } 
 |        } 
 |      } 
 |       
 |      if( not isvalid and not isnull( accountcost ) and not isWeb ) // isWeb used to differentiate feedback from WC & TC 
 |      { 
 |        instance := AccountCost::GetInstanceText( accountcost ); 
 |        feedback_o := SanityCheckMessage::GetFormattedMessage( instance, feedback_o ); 
 |      } 
 |       
 |      return feedback_o = ''; 
 |    *] 
 |  } 
 |  
  |