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
oiReturnStatus | output | integer | |
Internal usage
QadFinancials
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 */