project QadFinancials > class BCMask > method DataLoadByInputCMaskJournal

Description

This is sub-method of the method DataLoadByInput. This sub-method handles CMaskJournal records passed as input parameters. It creates new one when needed, updates existing one or deletes them.
Method has to be in the same segment as main method DataLoadByInput.


Parameters


oiReturnStatusoutputinteger


Internal usage


QadFinancials
method BCMask.DataLoadByInput


program code (program2/bcmask.p)

/* ================================================================= */
/* CMaskJournal                                                      */
/* ================================================================= */
/* Delete existing detail                                            */
/* ================================================================= */
for each tCMaskJournal where
         tCMaskJournal.tc_ParentRowid = tCMask.tc_Rowid:
    assign tCMaskJournal.tc_Status = "D":U.
end.

/* ================================================================= */
/* Update / add detail                                               */
/* ================================================================= */
for each t_sCMaskJournal where
         t_sCMaskJournal.tc_ParentRowid = t_sCMask.tc_Rowid and
         t_sCMaskJournal.tc_Status     <> "D":U:
    
    assign t_sCMaskJournal.CMask_ID = t_sCMask.CMask_ID.

    if (t_sCMaskJournal.Journal_ID = 0 or 
        t_sCMaskJournal.Journal_ID = ?)       and
        t_sCMaskJournal.tcJournalCode <> "":U and
        t_sCMaskJournal.tcJournalCode <> ?   
    then do:
        <Q-35 run JournalPrim (all) (Read) (NoCache)
           (input viCompanyId, (CompanyId)
            input t_sCMaskJournal.tcJournalCode, (JournalCode)
            input ?, (JournalID)
            output dataset tqJournalPrim) in BJournal>
        find first tqJournalPrim no-error.
        if available tqJournalPrim
        then assign t_sCMaskJournal.Journal_ID = tqJournalPrim.tiJournal_ID.
    end.

    find first tCMaskJournal where
               tCMaskJournal.tc_ParentRowid  = tCMask.tc_Rowid and                   
               tCMaskJournal.Journal_ID      = t_sCMaskJournal.Journal_ID no-error.
    if available tCMaskJournal
    then assign t_sCMaskJournal.tc_Status       = "C":U
                t_sCMaskJournal.CMaskJournal_ID = tCMaskJournal.CMaskJournal_ID.
    else do:             
        <M-29 run AddDetailLine
           (input  'CMaskJournal':U (icTable), 
            input  tCMask.tc_Rowid (icParentRowid), 
            output viFcReturnSuper (oiReturnStatus)) in BCMask>
        if viFcReturnSuper <> 0 then oiReturnStatus = viFcReturnSuper.
        if viFcReturnSuper < 0  then return.
        
        assign t_sCMaskJournal.tc_Status = "N":U.
    end.

    /* ================================================================= */
    /* override value for identity fields in input                       */
    /* ================================================================= */
    assign t_sCMaskJournal.CMaskJournal_ID = tCMaskJournal.CMaskJournal_ID
           /* ================================================================= */
           /* Update input to allow correct matching                            */
           /* ================================================================= */
           t_sCMaskJournal.CMask_ID        = tCMaskJournal.CMask_ID
           t_sCMaskJournal.tc_Rowid        = tCMaskJournal.tc_Rowid
           t_sCMaskJournal.tc_ParentRowid  = tCMask.tc_Rowid.
end. /* for each t_sCMaskJournal where */