project QadFinancials > class BCMask > method DataLoadByInputCMaskJrnlGrp

Description

This is sub-method of the method DataLoadByInput. This sub-method handles CMaskJrnlGrp 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)

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

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

    if (t_sCMaskJrnlGroup.JournalGroup_ID = 0 or 
        t_sCMaskJrnlGroup.JournalGroup_ID = ?)       and
        t_sCMaskJrnlGroup.tcJournalGroupCode <> "":U and
        t_sCMaskJrnlGroup.tcJournalGroupCode <> ?   
    then do:
        <Q-93 run JournalGroupPrim (all) (Read) (NoCache)
           (input t_sCMaskJrnlGroup.tcJournalGroupCode, (JournalGroupCode)
            input ?, (JournalGroupId)
            input viCompanyId, (CompanyId)
            output dataset tqJournalGroupPrim) in BJournalGroup>
        
        find first tqJournalGroupPrim no-error.
        if available tqJournalGroupPrim
        then assign t_sCMaskJrnlGroup.JournalGroup_ID = tqJournalGroupPrim.tiJournalGroup_ID.
    end.

    find first tCMaskJrnlGroup where
               tCMaskJrnlGroup.tc_ParentRowid  = tCMask.tc_Rowid and                   
               tCMaskJrnlGroup.JournalGroup_ID = t_sCMaskJrnlGroup.JournalGroup_ID no-error.
    if available tCMaskJrnlGroup
    then assign t_sCMaskJrnlGroup.tc_Status         = "C":U
                t_sCMaskJrnlGroup.CMaskJrnlGroup_ID = tCMaskJrnlGroup.CMaskJrnlGroup_ID.
    else do:             
        <M-29 run AddDetailLine
           (input  'CMaskJrnlGroup':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_sCMaskJrnlGroup.tc_Status = "N":U.
    end.

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