report procedure
Parameters
icLanguageCode | input | character | Language Code. |
tFilter | input | temp-table | Temp table to store input parameters. |
dcrDebtorControlGLBalance | output | dataset | Dataset of dcrDebtorControlGLBalance. |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
unused
program code (program7/bclosingpostingsreport.p)
empty temp-table tqDebtorControlGLBalance.
assign viCountTemp = 0.
<M-27 run GetReportLabels
(input 'DebtorControlGLBalance':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.
<M-28 run SetDataItemsBasedOnFilterTT (output oiReturnStatus (oiReturnStatus)) in BClosingPostingsReport>
<M-57 run CRDRControlGLBalValidation (output oiReturnStatus (oiReturnStatus)) in BClosingPostingsReport>
assign viYearPeriod = viPeriodYearFilter * 100 + viPeriodPeriodFilter
vcGLType = {&GLTYPECODE-DEBT}.
/* Company iteration */
do viCPCompanyIterator = 1 to viCompanyEntries:
<M-76 run CompanyValues
(input viCPCompanyIterator (iiEntryNumber),
output oiReturnStatus (oiReturnStatus)) in BClosingPostingsReport>
/* Get the selected Period */
<Q-33 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 not available tqPeriodByYearPeriod
then do:
<M-34 run SetMessage
(input #T-29'The entered GL period does not exist.':50(413993638)T-29# (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'QadFin-9510':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BClosingPostingsReport>
assign oiReturnStatus = -1.
return.
end.
assign vtFromDateFilter = tqPeriodByYearPeriod.ttPeriodStartDate
vtTillDateFilter = tqPeriodByYearPeriod.ttPeriodEndDate.
/* This program will calculate 3 different numbers and compare then between AP and GL: */
/* 1. Balance as of today */
/* 2. Balance as of end of selected Period */
/* 3. Movements in Selected Period */
/* 1. Get the AP Balance at the end of the selected period */
assign vdTotDInvoiceBalanceCreditCC = 0
vdTotDInvoiceBalanceCreditLC = 0
vdTotDInvoiceBalanceDebitCC = 0
vdTotDInvoiceBalanceDebitLC = 0
vdTotGLBalanceCreditCC = 0
vdTotGLBalanceCreditLC = 0
vdTotGLBalanceDebitCC = 0
vdTotGLBalanceDebitLC = 0.
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = #T-89'Entity Code':15(89462494)T-89# + ": " + vcCPCurrentCompany
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = ?
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'BC'
tqDebtorControlGLBalance.tcBoldType = 'B'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = #T-60'Current Balance':255(73426065)T-60#
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = ?
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'BC'
tqDebtorControlGLBalance.tcBoldType = 'B'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
/* Get the AR balance as-of today starting from dinvoice */
<Q-58 run ARBalanceCurrent (all) (Read) (NoCache)
(input viCPCurrentCompany_ID, (CompanyId)
output dataset tqARBalanceCurrent) in BClosingPostingsReport >
for each tqARBalanceCurrent break by tqARBalanceCurrent.tcGLCode:
if first-of (tqARBalanceCurrent.tcGLCode)
then do :
assign vdDInvoiceBalanceCreditCC = 0
vdDInvoiceBalanceCreditLC = 0
vdDInvoiceBalanceDebitCC = 0
vdDInvoiceBalanceDebitLC = 0.
end.
assign vdDInvoiceBalanceDebitCC = vdDInvoiceBalanceDebitCC + tqARBalanceCurrent.tdDInvoiceBalanceCC
vdDInvoiceBalanceDebitLC = vdDInvoiceBalanceDebitLC + tqARBalanceCurrent.tdDInvoiceBalanceLC.
if last-of (tqARBalanceCurrent.tcGLCode)
then do:
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = tqARBalanceCurrent.tcGLCode
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = vdDInvoiceBalanceDebitCC
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = vdDInvoiceBalanceDebitLC
vdTotDInvoiceBalanceDebitCC = vdTotDInvoiceBalanceDebitCC + vdDInvoiceBalanceDebitCC
vdTotDInvoiceBalanceDebitLC = vdTotDInvoiceBalanceDebitLC + vdDInvoiceBalanceDebitLC
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'BC'
tqDebtorControlGLBalance.tiGLCompanyID = viCPCurrentCompany_ID.
end. /* if last-of (tqARBalanceCurrent.tcGLCode) */
end. /* for each tqARBalanceCurrent */
/* Get the GL balance as-of today starting from PosthingHist */
<Q-59 run GLBalanceCurrent (all) (Read) (NoCache)
(input viCPCurrentCompany_ID, (CompanyId)
input vcGLType, (GLType)
output dataset tqGLBalanceCurrent) in BClosingPostingsReport >
for each tqGLBalanceCurrent break by tqGLBalanceCurrent.tcGLCode:
if first-of (tqGLBalanceCurrent.tcGLCode)
then do:
assign vdPostingHistBalanceCreditCC = 0
vdPostingHistBalanceCreditLC = 0
vdPostingHistBalanceDebitCC = 0
vdPostingHistBalanceDebitLC = 0.
end.
assign vdPostingHistBalanceCreditCC = vdPostingHistBalanceCreditCC + tqGLBalanceCurrent.tdPostingHistBalanceCreditCC
vdPostingHistBalanceCreditLC = vdPostingHistBalanceCreditLC + tqGLBalanceCurrent.tdPostingHistBalanceCreditLC
vdPostingHistBalanceDebitCC = vdPostingHistBalanceDebitCC + tqGLBalanceCurrent.tdPostingHistBalanceDebitCC
vdPostingHistBalanceDebitLC = vdPostingHistBalanceDebitLC + tqGLBalanceCurrent.tdPostingHistBalanceDebitLC.
if last-of (tqGLBalanceCurrent.tcGLCode)
then do:
find first tqDebtorControlGLBalance where
tqDebtorControlGLBalance.tcControlGLCode = tqGLBalanceCurrent.tcGLCode and
tqDebtorControlGLBalance.tcRecordType = 'BC' and
tqDebtorControlGLBalance.tiGLCompanyID = viCPCurrentCompany_ID
no-error.
if not available tqDebtorControlGLBalance
then do:
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = tqGLBalanceCurrent.tcGLCode
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'BC'
tqDebtorControlGLBalance.tiGLCompanyID = viCPCurrentCompany_ID.
end.
assign tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = vdPostingHistBalanceDebitCC - vdPostingHistBalanceCreditCC
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = vdPostingHistBalanceDebitLC - vdPostingHistBalanceCreditLC
vdTotGLBalanceDebitCC = vdTotGLBalanceDebitCC + vdPostingHistBalanceDebitCC - vdPostingHistBalanceCreditCC
vdTotGLBalanceDebitLC = vdTotGLBalanceDebitLC + vdPostingHistBalanceDebitLC - vdPostingHistBalanceCreditLC.
end. /* if last-of (tqGLBalanceCurrent.tcGLCode) */
end. /* for each tqGLBalanceCurrent */
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = #T-61'Current Balance Total':255(591241541)T-61#
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = vdTotDInvoiceBalanceDebitCC
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = vdTotDInvoiceBalanceDebitLC
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = vdTotGLBalanceDebitCC
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = vdTotGLBalanceDebitLC
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'BC'
tqDebtorControlGLBalance.tcBoldType = 'B'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = ?
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'BC'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
/* 2. Get the AR Balance at the end of the selected period */
assign vdTotDInvoiceBalanceCreditCC = 0
vdTotDInvoiceBalanceCreditLC = 0
vdTotDInvoiceBalanceDebitCC = 0
vdTotDInvoiceBalanceDebitLC = 0
vdTotGLBalanceCreditCC = 0
vdTotGLBalanceCreditLC = 0
vdTotGLBalanceDebitCC = 0
vdTotGLBalanceDebitLC = 0.
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = #T-48'Entity Code':15(89462494)T-48# + ": " + vcCPCurrentCompany
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = ?
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'BS'
tqDebtorControlGLBalance.tcBoldType = 'B'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = #T-64'Balance end of selected period':255(332022009)T-64#
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = ?
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'BS'
tqDebtorControlGLBalance.tcBoldType = 'B'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
/* Get the AR balance as-of the selected date starting from dinvoice */
<Q-62 run ARBalanceAsOfDate (all) (Read) (NoCache)
(input viCPCurrentCompany_ID, (CompanyId)
input vtTillDateFilter, (EndOfDate)
output dataset tqARBalanceAsOfDate) in BClosingPostingsReport >
/* Get the balance amounts for each GL individually */
for each tqARBalanceAsOfDate break by tqARBalanceAsOfDate.tcGLCode:
if first-of (tqARBalanceAsOfDate.tcGLCode)
then do:
assign vdDInvoiceBalanceCreditCC = 0
vdDInvoiceBalanceCreditLC = 0
vdDInvoiceBalanceDebitCC = 0
vdDInvoiceBalanceDebitLC = 0.
end.
assign vdDInvoiceBalanceCreditCC = vdDInvoiceBalanceCreditCC + tqARBalanceAsOfDate.tdPostingLineCreditCC
vdDInvoiceBalanceCreditLC = vdDInvoiceBalanceCreditLC + tqARBalanceAsOfDate.tdPostingLineCreditLC
vdDInvoiceBalanceDebitCC = vdDInvoiceBalanceDebitCC + tqARBalanceAsOfDate.tdPostingLineDebitCC
vdDInvoiceBalanceDebitLC = vdDInvoiceBalanceDebitLC + tqARBalanceAsOfDate.tdPostingLineDebitLC.
if last-of (tqARBalanceAsOfDate.tcGLCode)
then do:
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = tqARBalanceAsOfDate.tcGLCode
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = vdDInvoiceBalanceDebitCC - vdDInvoiceBalanceCreditCC
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = vdDInvoiceBalanceDebitLC - vdDInvoiceBalanceCreditLC
vdTotDInvoiceBalanceDebitCC = vdTotDInvoiceBalanceDebitCC + vdDInvoiceBalanceDebitCC - vdDInvoiceBalanceCreditCC
vdTotDInvoiceBalanceDebitLC = vdTotDInvoiceBalanceDebitLC + vdDInvoiceBalanceDebitLC - vdDInvoiceBalanceCreditLC
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'BS'
tqDebtorControlGLBalance.tiGLCompanyID = viCPCurrentCompany_ID.
end. /* if last-of (tqARBalanceAsOfDate.tcGLCode) */
end. /* for each tqGLMovementsInPeriod */
/* Get the GL balance as-of end of selected period using PosthingHist */
<Q-63 run GLBalanceAsOfDate (all) (Read) (NoCache)
(input viCPCurrentCompany_ID, (CompanyId)
input viYearPeriod, (EndOfYearPeriod)
input vcGLType, (GLType)
output dataset tqGLBalanceAsOfDate) in BClosingPostingsReport >
for each tqGLBalanceAsOfDate break by tqGLBalanceAsOfDate.tcGLCode:
if first-of (tqGLBalanceAsOfDate.tcGLCode)
then do :
assign vdPostingHistBalanceCreditCC = 0
vdPostingHistBalanceCreditLC = 0
vdPostingHistBalanceDebitCC = 0
vdPostingHistBalanceDebitLC = 0.
end.
assign vdPostingHistBalanceCreditCC = vdPostingHistBalanceCreditCC + tqGLBalanceAsOfDate.tdPostingHistBalanceCreditCC
vdPostingHistBalanceCreditLC = vdPostingHistBalanceCreditLC + tqGLBalanceAsOfDate.tdPostingHistBalanceCreditLC
vdPostingHistBalanceDebitCC = vdPostingHistBalanceDebitCC + tqGLBalanceAsOfDate.tdPostingHistBalanceDebitCC
vdPostingHistBalanceDebitLC = vdPostingHistBalanceDebitLC + tqGLBalanceAsOfDate.tdPostingHistBalanceDebitLC.
if last-of (tqGLBalanceAsOfDate.tcGLCode)
then do:
find first tqDebtorControlGLBalance where
tqDebtorControlGLBalance.tcControlGLCode = tqGLBalanceAsOfDate.tcGLCode and
tqDebtorControlGLBalance.tcRecordType = 'BS' and
tqDebtorControlGLBalance.tiGLCompanyID = viCPCurrentCompany_ID
no-error.
if not available tqDebtorControlGLBalance
then do:
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = tqGLBalanceAsOfDate.tcGLCode
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'BS'
tqDebtorControlGLBalance.tiGLCompanyID = viCPCurrentCompany_ID.
end.
assign tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = vdPostingHistBalanceDebitCC - vdPostingHistBalanceCreditCC
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = vdPostingHistBalanceDebitLC - vdPostingHistBalanceCreditLC
vdTotGLBalanceDebitCC = vdTotGLBalanceDebitCC + vdPostingHistBalanceDebitCC - vdPostingHistBalanceCreditCC
vdTotGLBalanceDebitLC = vdTotGLBalanceDebitLC + vdPostingHistBalanceDebitLC - vdPostingHistBalanceCreditLC.
end. /* if last-of (tqGLBalanceAsOfDate.tcGLCode) */
end. /* for each tqGLBalanceAsOfDate */
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = #T-65'Balance end of selected period Total':255(227665182)T-65#
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = vdTotDInvoiceBalanceDebitCC
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = vdTotDInvoiceBalanceDebitLC
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = vdTotGLBalanceDebitCC
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = vdTotGLBalanceDebitLC
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'BS'
tqDebtorControlGLBalance.tcBoldType = 'B'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = ?
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'BS'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
/* 3. Get the AR Movements in the selected period */
assign vdTotDInvoiceBalanceCreditCC = 0
vdTotDInvoiceBalanceCreditLC = 0
vdTotDInvoiceBalanceDebitCC = 0
vdTotDInvoiceBalanceDebitLC = 0
vdTotGLBalanceCreditCC = 0
vdTotGLBalanceCreditLC = 0
vdTotGLBalanceDebitCC = 0
vdTotGLBalanceDebitLC = 0.
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = #T-72'Entity Code':15(89462494)T-72# + ": " + vcCPCurrentCompany
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = ?
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'MSADR'
tqDebtorControlGLBalance.tcBoldType = 'B'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = #T-66'Debit Movements selected period':255(825538143)T-66#
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = ?
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'MSADR'
tqDebtorControlGLBalance.tcBoldType = 'B'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = #T-44'Entity Code':15(89462494)T-44# + ": " + vcCPCurrentCompany
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = ?
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'MSBCR'
tqDebtorControlGLBalance.tcBoldType = 'B'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = #T-68'Credit Movements selected period':255(584009654)T-68#
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = ?
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'MSBCR'
tqDebtorControlGLBalance.tcBoldType = 'B'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
/* Get the GL movements using PostingHist */
<Q-36 run GLMovementsInPeriod (all) (Read) (NoCache)
(input viCPCurrentCompany_ID, (CompanyId)
input vcGLType, (GLType)
input viYearPeriod, (YearPeriod)
output dataset tqGLMovementsInPeriod) in BClosingPostingsReport >
for each tqGLMovementsInPeriod break by tqGLMovementsInPeriod.tcGLCode:
if first-of (tqGLMovementsInPeriod.tcGLCode)
then do:
assign vdPostingHistBalanceCreditCC = 0
vdPostingHistBalanceCreditLC = 0
vdPostingHistBalanceDebitCC = 0
vdPostingHistBalanceDebitLC = 0.
end.
assign vdPostingHistBalanceCreditCC = vdPostingHistBalanceCreditCC + tqGLMovementsInPeriod.tdPostingHistMovemntCreditCC
vdPostingHistBalanceCreditLC = vdPostingHistBalanceCreditLC + tqGLMovementsInPeriod.tdPostingHistMovemntCreditLC
vdPostingHistBalanceDebitCC = vdPostingHistBalanceDebitCC + tqGLMovementsInPeriod.tdPostingHistMovemntDebitCC
vdPostingHistBalanceDebitLC = vdPostingHistBalanceDebitLC + tqGLMovementsInPeriod.tdPostingHistMovemntDebitLC.
if last-of (tqGLMovementsInPeriod.tcGLCode)
then do:
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = tqGLMovementsInPeriod.tcGLCode
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = vdPostingHistBalanceDebitCC
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = vdPostingHistBalanceDebitLC
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'MSADR'
tqDebtorControlGLBalance.tiGLCompanyID = viCPCurrentCompany_ID.
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = tqGLMovementsInPeriod.tcGLCode
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = vdPostingHistBalanceCreditCC
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = vdPostingHistBalanceCreditLC
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = 0
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'MSBCR'
tqDebtorControlGLBalance.tiGLCompanyID = viCPCurrentCompany_ID.
assign vdTotGLBalanceCreditCC = vdTotGLBalanceCreditCC + vdPostingHistBalanceCreditCC
vdTotGLBalanceCreditLC = vdTotGLBalanceCreditLC + vdPostingHistBalanceCreditLC
vdTotGLBalanceDebitCC = vdTotGLBalanceDebitCC + vdPostingHistBalanceDebitCC
vdTotGLBalanceDebitLC = vdTotGLBalanceDebitLC + vdPostingHistBalanceDebitLC.
end. /* if last-of (tqGLMovementsInPeriod.tcGLCode) */
end. /* for each tqGLMovementsInPeriod */
/* Get the AR movements using DinvoiceMovement */
<Q-38 run ARMovementsInPeriod (all) (Read) (NoCache)
(input viCPCurrentCompany_ID, (CompanyId)
input viYearPeriod, (YearPeriod)
output dataset tqARMovementsInPeriod) in BClosingPostingsReport >
for each tqARMovementsInPeriod break by tqARMovementsInPeriod.tcGLCode:
if first-of (tqARMovementsInPeriod.tcGLCode)
then do :
assign vdDInvoiceBalanceCreditCC = 0
vdDInvoiceBalanceCreditLC = 0
vdDInvoiceBalanceDebitCC = 0
vdDInvoiceBalanceDebitLC = 0.
end.
assign vdDInvoiceBalanceCreditCC = vdDInvoiceBalanceCreditCC + tqARMovementsInPeriod.tdPostingLineCreditCC
vdDInvoiceBalanceCreditLC = vdDInvoiceBalanceCreditLC + tqARMovementsInPeriod.tdPostingLineCreditLC
vdDInvoiceBalanceDebitCC = vdDInvoiceBalanceDebitCC + tqARMovementsInPeriod.tdPostingLineDebitCC
vdDInvoiceBalanceDebitLC = vdDInvoiceBalanceDebitLC + tqARMovementsInPeriod.tdPostingLineDebitLC.
if last-of (tqARMovementsInPeriod.tcGLCode)
then do:
find first tqDebtorControlGLBalance where
tqDebtorControlGLBalance.tcControlGLCode = tqARMovementsInPeriod.tcGLCode and
tqDebtorControlGLBalance.tcRecordType = 'MSADR' and
tqDebtorControlGLBalance.tiGLCompanyID = viCPCurrentCompany_ID
no-error.
if not available tqDebtorControlGLBalance
then do:
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = tqARMovementsInPeriod.tcGLCode
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'MSADR'
tqDebtorControlGLBalance.tiGLCompanyID = viCPCurrentCompany_ID.
end.
assign tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = vdDInvoiceBalanceDebitCC
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = vdDInvoiceBalanceDebitLC.
find first tqDebtorControlGLBalance where
tqDebtorControlGLBalance.tcControlGLCode = tqARMovementsInPeriod.tcGLCode and
tqDebtorControlGLBalance.tcRecordType = 'MSBCR' and
tqDebtorControlGLBalance.tiGLCompanyID = viCPCurrentCompany_ID
no-error.
if not available tqDebtorControlGLBalance
then do:
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = tqARMovementsInPeriod.tcGLCode
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'MSBCR'
tqDebtorControlGLBalance.tiGLCompanyID = viCPCurrentCompany_ID.
end.
assign tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = vdDInvoiceBalanceCreditCC
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = vdDInvoiceBalanceCreditLC
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = 0.
assign vdTotDInvoiceBalanceCreditCC = vdTotDInvoiceBalanceCreditCC + vdDInvoiceBalanceCreditCC
vdTotDInvoiceBalanceCreditLC = vdTotDInvoiceBalanceCreditLC + vdDInvoiceBalanceCreditLC
vdTotDInvoiceBalanceDebitCC = vdTotDInvoiceBalanceDebitCC + vdDInvoiceBalanceDebitCC
vdTotDInvoiceBalanceDebitLC = vdTotDInvoiceBalanceDebitLC + vdDInvoiceBalanceDebitLC.
end. /* if last-of (tqARMovementsInPeriod.tcGLCode) */
end. /* for each tqARMovementsInPeriod */
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = #T-69'Debit Movements selected period Total':255(606077688)T-69#
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = vdTotDInvoiceBalanceDebitCC
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = vdTotDInvoiceBalanceDebitLC
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = vdTotGLBalanceDebitCC
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = vdTotGLBalanceDebitLC
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'MSADR'
tqDebtorControlGLBalance.tcBoldType = 'B'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = ?
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'MSADR'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tcControlGLCode = #T-71'Credit Movements selected period Total':255(52847364)T-71#
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = vdTotDInvoiceBalanceCreditCC
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = vdTotDInvoiceBalanceCreditLC
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = 0
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = vdTotGLBalanceCreditCC
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = vdTotGLBalanceCreditLC
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = 0
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = 0
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'MSBCR'
tqDebtorControlGLBalance.tcBoldType = 'B'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
assign viCountTemp = viCountTemp + 1.
create tqDebtorControlGLBalance.
assign tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC = ?
tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC = ?
tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC = ?
tqDebtorControlGLBalance.tiRecordCount = viCountTemp
tqDebtorControlGLBalance.tcRecordType = 'MSBCR'
tqDebtorControlGLBalance.tiGLCompanyID = ?.
for each tqDebtorControlGLBalance:
if (tqDebtorControlGLBalance.tdPostingHistBalanceDebitLC - tqDebtorControlGLBalance.tdPostingHistBalanceCreditLC = 0) and
(tqDebtorControlGLBalance.tdPostingHistBalanceDebitCC - tqDebtorControlGLBalance.tdPostingHistBalanceCreditCC = 0) and
(tqDebtorControlGLBalance.tdDInvoiceBalanceDebitLC - tqDebtorControlGLBalance.tdDInvoiceBalanceCreditLC = 0) and
(tqDebtorControlGLBalance.tdDInvoiceBalanceDebitCC - tqDebtorControlGLBalance.tdDInvoiceBalanceCreditCC = 0)
then delete tqDebtorControlGLBalance.
end.
end.