project QadFinancials > class BVerifyStatusTransition > 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/bverifystatustransition.p)

if oiReturnStatus = 0
then oiReturnStatus = -98.

<ANCESTOR-CODE>

define buffer bVerifyStatusTrans for t_sVerifyStatusTrans.
for each t_sVerifyStatusTrans where t_sVerifyStatusTrans.tc_Status = 'C':U or t_sVerifyStatusTrans.tc_Status = 'N':U:
    if t_sVerifyStatusTrans.VerifyStatusTransFrStatus = t_sVerifyStatusTrans.VerifyStatusTransToStatus 
    then do:         
        <M-1 run SetMessage
           (input  #T-1'Verify From Status should not be the same as Verify To Status':100(57276)T-1# (icMessage), 
            input  '':U (icArguments), 
            input  '':U (icFieldName), 
            input  '':U (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sVerifyStatusTrans.tc_Rowid (icRowid), 
            input  'QadFin-5836':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BVerifyStatusTransition>
         assign
            oiReturnStatus = -1.
         return.
    end. /* from status could not be the same as to status */

    if t_sVerifyStatusTrans.VerifyStatusTransToStatus = {&APPROVESTATUSTRANS-INITIAL}
    then do:        
        <M-2 run SetMessage
           (input  #T-3'Verify From Status should not be the same as Verify To Status':100(57276)T-3# (icMessage), 
            input  '':U (icArguments), 
            input  '':U (icFieldName), 
            input  '':U (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sVerifyStatusTrans.tc_Rowid (icRowid), 
            input  'QadFin-5837':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BVerifyStatusTransition>
         assign
            oiReturnStatus = -1.
         return.
     end. /* to status could not be initial */

     find first bVerifyStatusTrans where t_sVerifyStatusTrans.VerifyStatusTrans_ID <> bVerifyStatusTrans.VerifyStatusTrans_ID and 
                                         t_sVerifyStatusTrans.Company_ID = bVerifyStatusTrans.Company_ID and   
                                         t_sVerifyStatusTrans.VerifyStatusTransFrStatus = bVerifyStatusTrans.VerifyStatusTransFrStatus and
                                         t_sVerifyStatusTrans.VerifyStatusTransToStatus = bVerifyStatusTrans.VerifyStatusTransToStatus and
                                         bVerifyStatusTrans.tc_Status <> 'D':U and
                                         bVerifyStatusTrans.tc_Status <> '':U
                                         no-error.
     if available bVerifyStatusTrans 
     then do:          
         <M-6 run SetMessage
            (input  #T-10'Duplicate status transition records are not allowed':100(59248)T-10# (icMessage), 
             input  '':U (icArguments), 
             input  '':U (icFieldName), 
             input  '':U (icFieldValue), 
             input  'E':U (icType), 
             input  3 (iiSeverity), 
             input  t_sVerifyStatusTrans.tc_Rowid (icRowid), 
             input  'QadFin-5839':U (icFcMsgNumber), 
             input  '':U (icFcExplanation), 
             input  '':U (icFcIdentification), 
             input  '':U (icFcContext), 
             output viFcReturnSuper (oiReturnStatus)) in BVerifyStatusTransition>
         assign
            oiReturnStatus = -1.
         return.
     end. /* could not have same from and to status*/
                                               
end.

if oiReturnStatus = -98
then oiReturnStatus = 0.