report procedure
Description
GL Open Item Check
Parameters
icLanguageCode | input | character | Language Code. |
tFilter | input | temp-table | Temp table to store input parameters. |
dcrGLOpenItemControl | output | dataset | Dataset of GLOpenItemControl. |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
unused
program code (program7/bclosingpostingsreport.p)
/* =============================================================================== */
/* This method shows the report for GLOpenItem accounts */
/* Validations performed: */
/* - check if the sum open balances GLOpenItems = Balance of GL */
/* Other validations are in TConcCheck */
/* =============================================================================== */
<M-1 run GetReportLabels
(input 'GLOpenItemControl':U (icReportName),
input icLanguageCode (icLanguageCode),
input tFilter (tFilter),
output tqHeader (tqHeader),
output tqFilter (tqFilter),
output tqText (tqText),
output oiReturnStatus (oiReturnStatus)) in BClosingPostingsReport>
if oiReturnStatus <> 0
then return.
empty temp-table tqGLOpenItemControl.
empty temp-table tqGLOpenItemAllocateLater.
<M-2 run SetDataItemsBasedOnFilterTT (output oiReturnStatus (oiReturnStatus)) in BClosingPostingsReport>
if viPeriodPeriodFilter = ? or viPeriodYearFilter = ?
then do:
<M-13 run SetMessage
(input #T-14'The GL Period filter requires a value.':50(2285)T-14# (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid), `
input 'QADFIN-3688':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output oiReturnStatus (oiReturnStatus)) in BClosingPostingsReport>
assign oiReturnStatus = -1.
end.
if oiReturnStatus <> 0
then return.
assign viYearPeriod = viPeriodYearFilter * 100 + viPeriodPeriodFilter.
/* Company iteration */
do viCPCompanyIterator = 1 to viCompanyEntries:
<M-50 run CompanyValues
(input viCPCompanyIterator (iiEntryNumber),
output oiReturnStatus (oiReturnStatus)) in BClosingPostingsReport>
<Q-4 run PeriodByYearPeriod (all) (Read) (NoCache)
(input viCPCurrentCompany_ID, (CompanyId)
input viPeriodYearFilter, (PeriodYear)
input viPeriodPeriodFilter, (PeriodPeriod)
input ?, (PeriodId)
output dataset tqPeriodByYearPeriod) in BPeriod >
find first tqPeriodByYearPeriod no-error.
if available tqPeriodByYearPeriod
then assign vtClosingDateFilter = tqPeriodByYearPeriod.ttPeriodEndDate.
else return.
<Q-89 run GLByTypeOpenItem (all) (Read) (NoCache)
(input viCPCurrentCompany_ID, (CompanyId)
output dataset tqGLByTypeOpenItem) in BClosingPostingsReport>
for each tqGLByTypeOpenItem:
<Q-69 run PostingLineByYearPeriodAndGL (all) (Read) (NoCache)
(input viCPCurrentCompany_ID, (CompanyId)
input tqGLByTypeOpenItem.tiGL_ID, (GL_ID)
input viYearPeriod, (YearPeriod)
output dataset tqPostingLineByYearPeriodAndGL) in BClosingPostingsReport>
for each tqPostingLineByYearPeriodAndGL:
<Q-35 run GLOpenItemMovementByPostingLn (all) (Read) (NoCache)
(input tqPostingLineByYearPeriodAndGL.tiPostingLine_ID, (PostingLine_Id)
output dataset tqGLOpenItemMovementByPostingLn) in BClosingPostingsReport>
if not can-find(first tqGLOpenItemMovementByPostingLn)
then do:
/* This is allocate later. Adding this will make the query very slow because it read ALL postinglines on this account since the start */
create tqGLOpenItemAllocateLater.
assign tqGLOpenItemAllocateLater.ttPostingDate = tqPostingLineByYearPeriodAndGL.ttPostingDate
tqGLOpenItemAllocateLater.tdPostingLineBalanceCC = tqPostingLineByYearPeriodAndGL.tdPostingLineDebitCC - tqPostingLineByYearPeriodAndGL.tdPostingLineCreditCC
tqGLOpenItemAllocateLater.tdPostingLineBalanceLC = tqPostingLineByYearPeriodAndGL.tdPostingLineDebitLC - tqPostingLineByYearPeriodAndGL.tdPostingLineCreditLC
tqGLOpenItemAllocateLater.tdPostingLineBalanceTC = tqPostingLineByYearPeriodAndGL.tdPostingLineDebitTC - tqPostingLineByYearPeriodAndGL.tdPostingLineCreditTC
tqGLOpenItemAllocateLater.tcCurrencyCode = tqPostingLineByYearPeriodAndGL.tcCurrencyCode
tqGLOpenItemAllocateLater.tcJournalCode = tqPostingLineByYearPeriodAndGL.tcJournalCode
tqGLOpenItemAllocateLater.tiPostingVoucher = tqPostingLineByYearPeriodAndGL.tiPostingVoucher
tqGLOpenItemAllocateLater.tcGLCode = tqGLByTypeOpenItem.tcGLCode.
end. /* if not can-find(first tqGLOpenItemMovementByPostingLn) */
end. /* for each tqPostingLineByEndDateGLCurr */
<Q-53 run GLOpenItemByClosingDate (all) (Read) (NoCache)
(input viCPCurrentCompany_ID, (CompanyId)
input vtClosingDateFilter, (ClosingDate)
input tqGLByTypeOpenItem.tiGL_ID, (GL_ID)
output dataset tqGLOpenItemByClosingDate) in BClosingPostingsReport>
for each tqGLOpenItemByClosingDate:
assign vlExistedAtPeriodEnd = no.
<Q-27 run PostingLineByGLOpenItem (all) (Read) (NoCache)
(input viCPCurrentCompany_ID, (CompanyId)
input tqGLOpenItemByClosingDate.tiGLOpenItem_ID, (GLOpenItemId)
input viYearPeriod, (SelectedPeriod)
input vtClosingDateFilter, (EndDate)
output dataset tqPostingLineByGLOpenItem) in BClosingPostingsReport>
find first tqPostingLineByGLOpenItem no-error.
if available tqPostingLineByGLOpenItem
then assign vlExistedAtPeriodEnd = yes.
if vlExistedAtPeriodEnd = no then next.
find first tqGLOpenItemControl where tqGLOpenItemControl.tiGLID = tqGLByTypeOpenItem.tiGL_ID and
tqGLOpenItemControl.tiCurrencyID = tqGLOpenItemByClosingDate.tiCurrency_ID no-error.
if not available tqGLOpenItemControl
then do:
create tqGLOpenItemControl.
assign tqGLOpenItemControl.tiGLID = tqGLByTypeOpenItem.tiGL_ID
tqGLOpenItemControl.tiCurrencyID = tqGLOpenItemByClosingDate.tiCurrency_ID
tqGLOpenItemControl.tcGLCode = tqGLByTypeOpenItem.tcGLCode
tqGLOpenItemControl.tcCurrencyCode = tqGLOpenItemByClosingDate.tcCurrencyCode.
end.
assign tqGLOpenItemControl.tdSubBalanceCC = tqGLOpenItemControl.tdSubBalanceCC + tqGLOpenItemByClosingDate.tdGLOpenItemBalanceDebitCC - tqGLOpenItemByClosingDate.tdGLOpenItemBalanceCreditCC
tqGLOpenItemControl.tdSubBalanceLC = tqGLOpenItemControl.tdSubBalanceLC + tqGLOpenItemByClosingDate.tdGLOpenItemBalanceDebitLC - tqGLOpenItemByClosingDate.tdGLOpenItemBalanceCreditLC
tqGLOpenItemControl.tdSubBalanceTC = tqGLOpenItemControl.tdSubBalanceTC + tqGLOpenItemByClosingDate.tdGLOpenItemBalanceDebitTC - tqGLOpenItemByClosingDate.tdGLOpenItemBalanceCreditTC.
/* now subtract the movements after the period end */
<Q-60 run PostingLineAfterPeriodByOpenItem (all) (Read) (NoCache)
(input viCPCurrentCompany_ID, (CompanyId)
input tqGLOpenItemByClosingDate.tiGLOpenItem_ID, (GLOpenItemID)
input vtClosingDateFilter, (EndDate)
output dataset tqPostingLnAfterPeriodByOpenItem) in BClosingPostingsReport>
for each tqPostingLnAfterPeriodByOpenItem:
assign tqGLOpenItemControl.tdSubBalanceCC = tqGLOpenItemControl.tdSubBalanceCC - tqPostingLnAfterPeriodByOpenItem.tdPostingLineDebitCC + tqPostingLnAfterPeriodByOpenItem.tdPostingLineCreditCC
tqGLOpenItemControl.tdSubBalanceLC = tqGLOpenItemControl.tdSubBalanceLC - tqPostingLnAfterPeriodByOpenItem.tdPostingLineDebitLC + tqPostingLnAfterPeriodByOpenItem.tdPostingLineCreditLC
tqGLOpenItemControl.tdSubBalanceTC = tqGLOpenItemControl.tdSubBalanceTC - tqPostingLnAfterPeriodByOpenItem.tdPostingLineDebitTC + tqPostingLnAfterPeriodByOpenItem.tdPostingLineCreditTC.
end. /* for each tqPostingLnAfterPeriodByOpenItem */
end. /* for each tqGLOpenItemByClosingDate */
end. /* for each tqGLByTypeOpenItem */
for each tqGLOpenItemControl:
<Q-32 run PostingHistByYearPeriodGLCurr (all) (Read) (NoCache)
(input viCPCurrentCompany_ID, (CompanyId)
input tqGLOpenItemControl.tiGLID, (GL_ID)
input tqGLOpenItemControl.tiCurrencyID, (Currency_ID)
input viYearPeriod, (YearPeriod)
output dataset tqPostingHistByYearPeriodGLCurr) in BClosingPostingsReport>
for each tqPostingHistByYearPeriodGLCurr:
assign tqGLOpenItemControl.tdGLBalanceCC = tqGLOpenItemControl.tdGLBalanceCC + tqPostingHistByYearPeriodGLCurr.tdPostingHistBalanceDebitCC - tqPostingHistByYearPeriodGLCurr.tdPostingHistBalanceCreditCC
tqGLOpenItemControl.tdGLBalanceLC = tqGLOpenItemControl.tdGLBalanceLC + tqPostingHistByYearPeriodGLCurr.tdPostingHistBalanceDebitLC - tqPostingHistByYearPeriodGLCurr.tdPostingHistBalanceCreditLC
tqGLOpenItemControl.tdGLBalanceTC = tqGLOpenItemControl.tdGLBalanceTC + tqPostingHistByYearPeriodGLCurr.tdPostingHistBalanceDebitTC - tqPostingHistByYearPeriodGLCurr.tdPostingHistBalanceCreditTC.
end. /* for each tqPostingHistByYearPeriodGLCurr */
end. /* for each tqGLOpenItemControl */
end. /* do viCPCompanyIterator = 1 to viCompanyEntries: */