project QadFinancials > class BConsolid > method AdditionalUpdatesDelete

Description

Additional Updates for records with status 'D'.


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BConsolid.AdditionalUpdates


program code (program1/bconsolid.p)

assign viLocalReturnStatus = oiReturnStatus
       oiReturnStatus      = -98.

for each tConsolid where
         tConsolid.tc_Status = 'D':U:

    /* ========================================================================== */    
    /* Only delete transient consolidations (or consolidations of status initial) */
    /* ========================================================================== */
    if tConsolid.ConsolidTargetLayerTypCode <> {&CONSOLIDTARGETLAYERTYPE-TRANSIENT} and
       tConsolid.ConsolidStatus             <> {&CONSOLIDSTATUS-INITIAL}
    then do:
        assign vcMessage      = trim(#T-8'You can only delete consolidation records in the transient layer.':200(62527)t-8#)
               oiReturnStatus = -1.
        <M-1 run SetMessage
           (input  vcMessage (icMessage), 
            input  '':U (icArguments), 
            input  '':U (icFieldName), 
            input  '':U (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  tConsolid.tc_Status (icRowid), 
            input  'QadFin-6359':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BConsolid>
        return.
    end.

    if tConsolid.Posting_ID <> 0 and
       tConsolid.Posting_ID <> ?
    then do:
        /* ============================================ */                                      
        /* start and/or open the journal entry instance */
        /* ============================================ */
        if viBJournalEntryConsolidID = 0 or viBJournalEntryConsolidID = ?
        then do:
            <I-2 {bFcStartAndOpenInstance
            &ADD-TO-TRANSACTION = "true"
            &CLASS              = "BJournalEntry"}>
        end.
        else do:
            <I-3 {bFcOpenInstance
            &CLASS           = "BJournalEntry"}>
        end.

        /* ================== */
        /* Delete the posting */
        /* ================== */
        <M-4 run apiDeleteInstance
           (input  'Primary=':U + trim(string(tconsolid.posting_ID)) (icKey), 
            output viLocalReturnStatus (oiReturnStatus)) in BJournalEntry>
    
        if viLocalReturnStatus = 0 or
           viLocalReturnStatus = ?
        then do:
            <M-5 run ValidateBCAndAdditionalUpdates
               (output viLocalReturnStatus (oiReturnStatus)) in BJournalEntry>
        end.

        /* ================================ */
        /* close the journal entry instance */
        /* ================================ */
        <I-6 {bFcCloseInstance
            &CLASS           = "BJournalEntry"}>
        if viLocalReturnStatus < 0
        then do:
            <M-9 run StopExternalInstances
               (output viFcReturnSuper (oiReturnStatus)) in BConsolid>
            assign oiReturnStatus = viLocalReturnStatus.
            return.
        end.
    end.
end. /* for each tConsolid where tConsolid.tc_Status = 'D':U */

assign oiReturnStatus = viLocalReturnStatus.