project QadFinancials > class BJournal > method ValidateComponentPostRole

validation procedure

Description

Validates the role to make sure it is a valid one. If not it returns an error. Also checks that the daybook can be assigned a role.


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BJournal.ValidateComponent


program code (program1/bjournal.p)

/* Exception handling */
assign oiReturnStatus      = -98
       viLocalReturnStatus = 0.

for each t_sJournal where
         t_sJournal.tc_Status <> "":U:
  
    if t_sJournal.tc_Status <> "N":U 
    then do:
        find first t_iJournal where
                   t_iJournal.tc_Rowid = t_sJournal.tc_Rowid
                   no-error.
        if not available t_iJournal
        then next. /* error raised by ancestor-code */ 
    end. /* t_sJournal.tc_Status <> "N":U */ 
    
    if (t_sJournal.tc_Status = "N":U or
        t_sJournal.tc_Status = "C":U) and
       (t_sJournal.Role_ID <> 0 and
        t_sJournal.Role_ID <> ?)
    then do:
        if not can-do({&SECUREJOURNALTYPES}, t_sJournal.JournalTypeCode)
        then do:
            assign vcMessage =  #T-46'You cannot assign a role to a daybook of this type':100(636607980)T-46#
                   oiReturnStatus = -1.
            <M-17 run SetMessage
               (input  vcMessage (icMessage), 
                input  '':U (icArguments), 
                input  't_sJournal.JournalTypeCode':U (icFieldName), 
                input  t_sJournal.JournalTypeCode (icFieldValue), 
                input  'E':U (icType), 
                input  1 (iiSeverity), 
                input  t_sJournal.tc_Rowid (icRowid), 
                input  'QadFin-878594':U (icFcMsgNumber), 
                input  '':U (icFcExplanation), 
                input  '':U (icFcIdentification), 
                input  '':U (icFcContext), 
                output viLocalReturnStatus (oiReturnStatus)) in BJournal>                               
            return.
        end. /* if not can-do({&SECUREJOURNALTYPES}, t_sJournal.JournalTypeCode) */
                
        if t_sJournal.JournalControl <> {&JOURNALCONTROL-FINANCIAL} and
           t_sJournal.JournalControl <> {&JOURNALCONTROL-EXTERNAL}
        then do:
            assign vcMessage =  #T-91'You can only assign a role to a daybook with a daybook control of Financial or External':100(8520389)T-91#
                   oiReturnStatus = -1.
            <M-74 run SetMessage
               (input  vcMessage (icMessage), 
                input  '':U (icArguments), 
                input  't_sJournal.JournalControl':U (icFieldName), 
                input  t_sJournal.JournalControl (icFieldValue), 
                input  'E':U (icType), 
                input  1 (iiSeverity), 
                input  t_sJournal.tc_Rowid (icRowid), 
                input  'QadFin-902783':U (icFcMsgNumber), 
                input  '':U (icFcExplanation), 
                input  '':U (icFcIdentification), 
                input  '':U (icFcContext), 
                output viLocalReturnStatus (oiReturnStatus)) in BJournal>                               
            return.
        end. /* t_sJournal.JournalTypeCode <> {&JOURNALCONTROL-FINANCIAL} and */
        else do:
            <Q-72 assign vlFcQueryRecordsAvailable = RoleByIDName (NoCache)
               (input t_sJournal.Role_ID, (RoleID)
                input t_sJournal.tcRoleName, (RoleName)) in BRole >

            if vlFcQueryRecordsAvailable <> true
            then do:
                assign vcMessage = #T-52'This role does not exist':50(18119318)T-52#
                       oiReturnStatus = -1.
                <M-69 run SetMessage
                   (input  vcMessage (icMessage), 
                    input  '':U (icArguments), 
                    input  't_sJournal.tcRoleName':U (icFieldName), 
                    input  t_sJournal.tcRoleName (icFieldValue), 
                    input  'E':U (icType), 
                    input  1 (iiSeverity), 
                    input  t_sJournal.tc_Rowid (icRowid), 
                    input  'QadFin-867168':U (icFcMsgNumber), 
                    input  '':U (icFcExplanation), 
                    input  '':U (icFcIdentification), 
                    input  '':U (icFcContext), 
                    output viLocalReturnStatus (oiReturnStatus)) in BJournal>                            
                return.                
            end. /* vlFcQueryRecordsAvailable <> true */
        end. /* else do */                                   
    end. /* t_sJournal.tc_Status = "N":U or */
    
    
    if t_sJournal.tc_Status = "C":U and
       t_sJournal.Role_ID <> t_iJournal.Role_ID
    then do: 

        assign vcMessage = #T-15'You have updated the role for this daybook':100(524656127)T-15#
               oiReturnStatus = 1.
        <M-11 run SetMessage
           (input  vcMessage (icMessage), 
            input  '':U (icArguments), 
            input  't_sJournal.tcRoleName':U (icFieldName), 
            input  t_sJournal.tcRoleName (icFieldValue), 
            input  'W':U (icType), 
            input  3 (iiSeverity), 
            input  t_sJournal.tc_Rowid (icRowid), 
            input  'QadFin-323523':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viLocalReturnStatus (oiReturnStatus)) in BJournal>
        return.            
    end. /* t_sJournal.Role_ID <> t_iJournal.Role_ID */     
end. /* for each t_sJournal where */
                
/* Exception handling */
assign oiReturnStatus = viLocalReturnStatus.