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