project QadFinancials > class BApproveStatusTransition > method ValidateComponent

Description

Write here all tests on database update (new / modify / delete) that cannot be coded with a validation mask.
The type of update can be found in tc_status (N/C/D).
If you find incorrect data, you must write an entry in tFcMessages (using SetMessage) and set the return status of this method to either +1 or -1.
Return status +1 = data will still be accepted.
Return status -1 = data will not be accepted.
This method is run from SetPublicTables, before transferring the received data into the class temp-tables.


Parameters


oiReturnStatusoutputinteger


Internal usage


unused


program code (program/bapprovestatustransition.p)

if oiReturnStatus = 0
then oiReturnStatus = -98.

<ANCESTOR-CODE>

define buffer bApproveStatusTrans for t_sApproveStatusTrans.
for each t_sApproveStatusTrans where t_sApproveStatusTrans.tc_Status <> 'D':U:
    if t_sApproveStatusTrans.ApproveStatusTransFrStatus = t_sApproveStatusTrans.ApproveStatusTransToStatus 
    then do: 
        <M-4 run SetMessage
           (input  #T-4'The Approve From status cannot be the same as Approve To status.':100(59052)t-4# (icMessage), 
            input  '':U (icArguments), 
            input  '':U (icFieldName), 
            input  '':U (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sApproveStatusTrans.tc_Rowid (icRowid), 
            input  'QadFin-5927':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BApproveStatusTransition>        
         assign
            oiReturnStatus = -1.
         return.
    end. /* from status should not be the same as to status */

    if t_sApproveStatusTrans.ApproveStatusTransToStatus = {&APPROVESTATUSTRANS-INITIAL}
    then do:  
        <M-5 run SetMessage
           (input  #T-8'The Approve To status cannot be Initial.':100(59053)t-8# (icMessage), 
            input  '':U (icArguments), 
            input  '':U (icFieldName), 
            input  '':U (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sApproveStatusTrans.tc_Rowid (icRowid), 
            input  'QadFin-5928':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BApproveStatusTransition>            
         assign
            oiReturnStatus = -1.
         return.
     end. /* to status should not be initial */
     
     find first bApproveStatusTrans where t_sApproveStatusTrans.ApproveStatusTrans_ID <> bApproveStatusTrans.ApproveStatusTrans_ID and 
                                         t_sApproveStatusTrans.Company_ID = bApproveStatusTrans.Company_ID and   
                                         t_sApproveStatusTrans.ApproveStatusTransFrStatus = bApproveStatusTrans.ApproveStatusTransFrStatus and
                                         t_sApproveStatusTrans.ApproveStatusTransToStatus = bApproveStatusTrans.ApproveStatusTransToStatus and
                                         bApproveStatusTrans.tc_Status <> 'D':U
                                         no-error.
     if available bApproveStatusTrans 
     then do:
         <M-9 run SetMessage
            (input  #T-12'Duplicate status transition records are not allowed':100(59248)T-12# (icMessage), 
             input  '':U (icArguments), 
             input  '':U (icFieldName), 
             input  '':U (icFieldValue), 
             input  'E':U (icType), 
             input  3 (iiSeverity), 
             input  t_sApproveStatusTrans.tc_Rowid (icRowid), 
             input  'QadFin-5929':U (icFcMsgNumber), 
             input  '':U (icFcExplanation), 
             input  '':U (icFcIdentification), 
             input  '':U (icFcContext), 
             output viFcReturnSuper (oiReturnStatus)) in BApproveStatusTransition>                 
         assign
            oiReturnStatus = -1.
         return.
     end. /* couldn't have two transition records with same from and to status */
                                               
end.

if oiReturnStatus = -98
then oiReturnStatus = 0.