project QadFinancials > class BCMask > method ValidateComponentPostCMaskJournalGroup

Description

Implement extra validations for the Closing mask


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BCMask.ValidateComponentPostCMask


program code (program1/bcmask.p)

/* ============================================================================================ *
 * Perform validation for CMaskJournalGroup record                                              *
 * ============================================================================================ */
VAL_BLOCK:
do on error undo, leave:
    /* Precondition */
    if not available t_sCMaskJrnlGroup
    then do:
        assign vcMessage = #T-86'There is missing t_sCMaskJournalGroup record.':255(72910928)T-86#.
        <M-22 run SetMessage
           (input  vcMessage (icMessage), 
            input  '':U (icArguments), 
            input  '':U (icFieldName), 
            input  '':U (icFieldValue), 
            input  'S':U (icType), 
            input  3 (iiSeverity), 
            input  '':U (icRowid), 
            input  'qadfin-631480':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BCMask>
        assign oiReturnStatus = -1.
        return.
    end.
    
    /* ============================================================================================ *
     * Only active daybook groups can be used                                                       *
     * ============================================================================================ */
    if can-find (JournalGroup where
                 JournalGroup.JournalGroup_ID = t_sCMaskJrnlGroup.JournalGroup_ID and
                 JournalGroup.JournalGroupIsActive <> true)
    then do:
        assign vcMessage = #T-31'Daybook group &1 is inactive.':255(92397815)T-31#
               vcMessage = substitute(vcMessage, t_sCMaskJrnlGroup.tcJournalGroupCode, t_sCMask.CMaskCode).
        <M-48 run SetMessage
           (input  vcMessage (icMessage), 
            input  '':U (icArguments), 
            input  'tCMaskJrnlGroup.tcJournalGroupCode':U (icFieldName), 
            input  t_sCMaskJrnlGroup.tcJournalGroupCode (icFieldValue), 
            input  'W':U (icType), 
            input  3 (iiSeverity), 
            input  t_sCMaskJrnlGroup.tc_Rowid (icRowid), 
            input  'qadfin-808927':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BCMask>
        assign oiReturnStatus = 1.
    end.
    
    /* ============================================================================================ *
     * Check if any of the daybook groups contain inactive daybooks                                 *
     * ============================================================================================ */
    <Q-3 assign vlFcQueryRecordsAvailable = JournalByJournalGroupIsActive (NoCache)
       (input viCompanyId, (CompanyId)
        input t_sCMaskJrnlGroup.JournalGroup_ID, (JournalGroupId)
        input ?, (JournalId)
        input false, (JournalIsActive)) in BJournal>
    if vlFcQueryRecordsAvailable <> false
    then do:
        assign vcMessage = #T-53'Daybook group &1 contains an inactive daybook.':255(115532316)T-53#
               vcMessage = substitute(vcMessage, t_sCMaskJrnlGroup.tcJournalGroupCode).
        <M-1 run SetMessage
           (input  vcMessage (icMessage), 
            input  '':U (icArguments), 
            input  'tCMaskJrnlGroup.tcJournalGroupCode':U (icFieldName), 
            input  t_sCMaskJrnlGroup.tcJournalGroupCode (icFieldValue), 
            input  'W':U (icType), 
            input  3 (iiSeverity), 
            input  t_sCMaskJrnlGroup.tc_Rowid (icRowid), 
            input  'qadfin-210958':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BCMask>
        assign oiReturnStatus = 1.
    end.
    
    /* ============================================================================================ *
     * Daybook Groups that contain Daybook of type Period Costing are not supported                 *
     * ============================================================================================ */
    <Q-83 assign vlFcQueryRecordsAvailable = JournalByJournalGroup (NoCache)
       (input viCompanyId, (CompanyId)
        input ?, (JournalId)
        input {&JOURNALTYPE-PERIODICCOSTING}, (JournalTypeCode)
        input t_sCMaskJrnlGroup.JournalGroup_ID, (JournalGroupId)) in BJournal>
    if vlFcQueryRecordsAvailable <> false
    then do:
        assign vcMessage = #T-93'Daybook group &1 includes a daybook of type Periodic Costing. Daybooks of that type are not allowed.':255(693234501)T-93#
               vcMessage = substitute(vcMessage, t_sCMaskJrnlGroup.tcJournalGroupCode).
        <M-95 run SetMessage
           (input  vcMessage (icMessage), 
            input  '':U (icArguments), 
            input  'tCMaskJrnlGroup.tcJournalGroupCode':U (icFieldName), 
            input  t_sCMaskJrnlGroup.tcJournalGroupCode (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sCMaskJrnlGroup.tc_Rowid (icRowid), 
            input  'qadfin-477927':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BCMask>
        assign oiReturnStatus = -1.
    end.
end. /* VAL_BLOCK */