project QadFinancials > class BQCrossCyPosting > method ValidateComponentPostJournalRole

validation procedure


Parameters


iiJournalIDinputinteger
iiCompanyIDinputinteger
icJournalCodeinputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BQCrossCyPosting.ValidateComponent


program code (program1/bqcrosscyposting.p)

/* ================== */
/* Exception handling */
/* ================== */
assign oiReturnStatus                 = -98
       viLocalReturnStatus            = 0.
       
/* Read the journal to find out the type */
<Q-68 run JournalByJournalLayerType (all) (Read) (NoCache)
   (input iiJournalID, (JournalId)
    input ?, (JournalCode)
    input iiCompanyID, (CompanyId)
    input ?, (LayerTypeCode)
    output dataset tqJournalByJournalLayerType) in BJournal >
Find first tqJournalByJournalLayerType 
     where tqJournalByJournalLayerType.tiJournal_ID = iiJournalID no-error. 
if not available tqJournalByJournalLayerType
then do :
    assign oiReturnStatus = -1
           vcMessage           = trim(substitute(#T-28'Invalid daybook: &1.':255(915894465)T-28#, icJournalCode)).
    <M-92 run SetMessage
       (input  vcMessage (icMessage), 
        input  '':U (icArguments), 
        input  '':U (icFieldName), 
        input  '':U (icFieldValue), 
        input  'E':U (icType), 
        input  3 (iiSeverity), 
        input  '':U (icRowid), 
        input  'QadFin-741136':U (icFcMsgNumber), 
        input  '':U (icFcExplanation), 
        input  '':U (icFcIdentification), 
        input  '':U (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BQCrossCyPosting>
end. /* if not available tqJournalByJournalLayerType */           
else do:
    if can-do({&SECUREJOURNALTYPES}, tqJournalByJournalLayerType.tcJournalTypeCode)
    then do:
        assign vhFcComponent = ?.
        <M-23 run CheckJournalRole
           (input  viUsrId (iiUserID), 
            input  ? (icUserCode), 
            input  iiJournalID (iiJournalID), 
            input  ? (icJournalCode), 
            input  iiCompanyID (iiCompanyID), 
            input  ? (icCompanyCode), 
            input  viSessionID (iiSessionID), 
            output vcMessage (ocErrorMessage), 
            output vlJournalAccessAllowed (olJournalAccessAllowed), 
            output viFcReturnSuper (oiReturnStatus)) in TJournalRole>
        if viFcReturnSuper <> 0
        then assign viLocalReturnStatus = viFcReturnSuper.
        
        run gipr_DeleteProcedure in vhFcComponent.
        delete procedure vhFcComponent.     
        
        if viLocalReturnStatus <> 0
        then do:   
            <M-91 run SetMessage
               (input  vcMessage (icMessage), 
                input  '':U (icArguments), 
                input  'JournalCode':U (icFieldName), 
                input  icJournalCode (icFieldValue), 
                input  'E':U (icType), 
                input  1 (iiSeverity), 
                input  '':U (icRowid), 
                input  'QadFin-86195':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BQCrossCyPosting>
        end. /* if viLocalReturnStatus <> 0 */       
                
        if vlJournalAccessAllowed <> true
        then do:
        <Q-41 run CompanyPrim (all) (Read) (NoCache)
           (input iiCompanyID, (LookupCompanyId)
            input ?, (CompanyCode)
            output dataset tqCompanyPrim) in BCompany >
        find first tqCompanyPrim
             where tqCompanyPrim.tiCompany_ID = iiCompanyID no-error.    
        
            assign vcMessage = #T-20'You are not authorized to use daybook &1 in entity &2':100(827961670)T-20# 
                   vcMessage = substitute(vcMessage, icJournalCode, tqCompanyPrim.tcCompanyCode ).
            <M-45 run SetMessage
               (input  vcMessage (icMessage), 
                input  '':U (icArguments), 
                input  'JournalCode':U (icFieldName), 
                input  icJournalCode (icFieldValue), 
                input  'E':U (icType), 
                input  1 (iiSeverity), 
                input  '':U (icRowid), 
                input  'QadFin-713590':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BQCrossCyPosting>
            assign viLocalReturnStatus = -1.        
        end. /* if vlJournalAccessAllowed <> true */           
        
    end. /* if can-do({&SECUREJOURNALTYPES}, tqJournalByJournalLayerType.tcJournalTypeCode) */         
end. /* else do */           
   
/* ================== */
/* Return             */
/* ================== */   
assign oiReturnStatus = viLocalReturnStatus.