Parameters
ihLocalHandleToThePersistence | input | handle | |
iiPostingSafCombinedID | input | integer | |
biNbrOfUpdatedPostingHist | input-output | integer | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/bhistorydaemonprocessor.p)
/* ============================================================================ */
/* Prerequisite: */
/* The calling methods has to make sure a QpostingLine is available */
/* Purpose of this method: */
/* Update to the balances of all PostingHist records with the same */
/* unique-index-fields but situated later in time than the QpostingLine */
/* ============================================================================ */
/* Indicate Direct db-access (find, update and create) is done here */
<I-55 {WRITEDIRECTDBACCESS
&WRITETABLENAMES = "'PostingHist'"}>
/* ============================================================================== */
/* Prerequisite: The calling methods has to make sure a QpostingLine is available */
/* ============================================================================== */
if not available QpostingLine
then do :
assign oiReturnStatus = -3
vcMsgHist = trim(substitute(#T-1'Internal error: mandatory information in the program code is not accessible; see below for more details.':255(70321)T-1#)) + chr(10) +
trim(substitute(#T-80'Record for table &1 is not available in method &2.':255(587056425)T-80#,"QpostingLine":U,"PerformWorkItemDIRECTUpdPHistBalances":U)).
<M-16 run SetMessage
(input vcMsgHist (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'qadfin-246302':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BHistoryDaemonProcessor>
Return.
end. /* if not available QpostingLine */
/* Local definitions outside of CB */
define buffer bPostingHist for PostingHist.
/* ===================================================================================================================== */
/* Go throuhg all PostingHist records with the same unique-index-fields but situated later in time than the QpostingLine */
/* ===================================================================================================================== */
for each bPostingHist where
bPostingHist.Company_ID = QpostingLine.Company_ID and
bPostingHist.GL_ID = QpostingLine.GL_ID and
bPostingHist.Journal_ID = QpostingLine.Journal_ID and
bPostingHist.Layer_ID = QpostingLine.Layer_ID and
bPostingHist.Currency_ID = QpostingLine.Currency_ID and
bPostingHist.Division_ID = QpostingLine.Division_ID and
bPostingHist.Project_ID = QpostingLine.Project_ID and
bPostingHist.CostCentre_ID = QpostingLine.CostCentre_ID and
bPostingHist.IntercoBusinessRelation_ID = QpostingLine.IntercoBusinessRelation_ID and
bPostingHist.PostingSafCombined_ID = iiPostingSafCombinedID and
bPostingHist.PostingHistYearPeriodFrom > QpostingLine.PeriodYearPeriod
exclusive-lock
on error undo, throw :
/* ========================================================= */
/* Create input-output param that counts the records tackled */
/* ========================================================= */
assign biNbrOfUpdatedPostingHist = biNbrOfUpdatedPostingHist + 1.
/* =============================== */
/* Update the Life-To-Date Balance */
/* =============================== */
assign bPostingHist.PostingHistBalanceDebitTC = bPostingHist.PostingHistBalanceDebitTC + QpostingLine.QPostingLineDebitTC
bPostingHist.PostingHistBalanceDebitLC = bPostingHist.PostingHistBalanceDebitLC + QpostingLine.QPostingLineDebitLC
bPostingHist.PostingHistBalanceDebitCC = bPostingHist.PostingHistBalanceDebitCC + QpostingLine.QPostingLineDebitCC
bPostingHist.PostingHistBalanceDebitPC = bPostingHist.PostingHistBalanceDebitPC + QpostingLine.QPostingLineDebitPC
bPostingHist.PostingHistBalanceCreditTC = bPostingHist.PostingHistBalanceCreditTC + QpostingLine.QPostingLineCreditTC
bPostingHist.PostingHistBalanceCreditLC = bPostingHist.PostingHistBalanceCreditLC + QpostingLine.QPostingLineCreditLC
bPostingHist.PostingHistBalanceCreditCC = bPostingHist.PostingHistBalanceCreditCC + QpostingLine.QPostingLineCreditCC
bPostingHist.PostingHistBalanceCreditPC = bPostingHist.PostingHistBalanceCreditPC + QpostingLine.QPostingLineCreditPC
bPostingHist.PostingHistBalanceQTY = bPostingHist.PostingHistBalanceQTY + QpostingLine.QPostingLineQTY.
/* ================================================================ */
/* Update the Year-To-Date Balance if it is still in the same year */
/* ================================================================ */
if trunc(bPostingHist.PostingHistYearPeriodFrom / 100, 0) = trunc(QpostingLine.PeriodYearPeriod / 100, 0)
then assign bPostingHist.PostingHistYTDDebitTC = bPostingHist.PostingHistYTDDebitTC + QpostingLine.QPostingLineDebitTC
bPostingHist.PostingHistYTDDebitLC = bPostingHist.PostingHistYTDDebitLC + QpostingLine.QPostingLineDebitLC
bPostingHist.PostingHistYTDDebitCC = bPostingHist.PostingHistYTDDebitCC + QpostingLine.QPostingLineDebitCC
bPostingHist.PostingHistYTDDebitPC = bPostingHist.PostingHistYTDDebitPC + QpostingLine.QPostingLineDebitPC
bPostingHist.PostingHistYTDCreditTC = bPostingHist.PostingHistYTDCreditTC + QpostingLine.QPostingLineCreditTC
bPostingHist.PostingHistYTDCreditLC = bPostingHist.PostingHistYTDCreditLC + QpostingLine.QPostingLineCreditLC
bPostingHist.PostingHistYTDCreditCC = bPostingHist.PostingHistYTDCreditCC + QpostingLine.QPostingLineCreditCC
bPostingHist.PostingHistYTDCreditPC = bPostingHist.PostingHistYTDCreditPC + QpostingLine.QPostingLineCreditPC
bPostingHist.PostingHistYTDQTY = bPostingHist.PostingHistYTDQTY + QpostingLine.QPostingLineQTY.
end. /* for each bPostingHist */
/* ==================== */
/* Release used buffers */
/* ==================== */
release bPostingHist.