Description
Detail method for JournalEntryBalance
Parameters
Internal usage
QadFinancials
program code (program7/bclosingpostingsreport.p)
empty temp-table tqJournalEntryBalance.
/*assign tFilter*/
<M-42 run SetDataItemsBasedOnFilterTTDet (output viFcReturnSuper (oiReturnStatus)) in BClosingPostingsReport>
/*testing mandatory filter fields*/
if viPeriodPeriodFilter = ? or viPeriodYearFilter = ?
then do:
<M-98 run SetMessage
(input #T-34'You must enter a value for the GL calendar year/GL period filter.':54(16512)T-34# (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'qadfin-431586':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.
/* Company iteration */
do viCPCompanyIterator = 1 to viCompanyEntries:
/* Assign company ID based on code */
if vcCPCompanyCodeFilter = ?
then do:
assign viCPCurrentCompany_ID = viCompanyId.
<Q-11 run CompanyPrim (first) (Read) (NoCache)
(input viCompanyId, (LookupCompanyId)
input ?, (CompanyCode)
output dataset tqCompanyPrim) in BCompany>
find first tqCompanyPrim no-error.
if available tqCompanyPrim
then assign vcCPCurrentCompany = tqCompanyPrim.tcCompanyCode.
end.
else do:
assign vcCPCurrentCompany = entry(viCPCompanyIterator ,vcCPCompanyCodeFilter,",":U).
<Q-84 run CompanyPrim (first) (Read) (NoCache)
(input ?, (LookupCompanyId)
input vcCPCurrentCompany, (CompanyCode)
output dataset tqCompanyPrim) in BCompany>
find first tqCompanyPrim no-error.
if available tqCompanyPrim
then assign viCPCurrentCompany_ID = tqCompanyPrim.tiCompany_ID.
end.
/* ====================================================================== */
/* Read all Posting/PostingLines from the entity/Year/period and check if */
/* these are balanced in BC and SC */
/* ====================================================================== */
for each Posting where
Posting.Company_ID = viCPCurrentCompany_ID and
Posting.PostingYear = viPeriodYearFilter and
Posting.PostingPeriod = viPeriodPeriodFilter
no-lock :
assign vdPostingLineBalanceLC = 0
vdPostingLineBalanceCC = 0
vlSingleCurrency = yes
viPostingCurrencyID = 0.
for each PostingLine of Posting no-lock :
assign vdPostingLineBalanceLC = vdPostingLineBalanceLC +
PostingLine.PostingLineDebitLC -
PostingLine.PostingLineCreditLC
vdPostingLineBalanceCC = vdPostingLineBalanceCC +
PostingLine.PostingLineDebitCC -
PostingLine.PostingLineCreditCC.
if vlSingleCurrency
then do :
if viPostingCurrencyID = 0
then assign viPostingCurrencyID = PostingLine.Currency_ID.
else assign vlSingleCurrency = (PostingLine.Currency_ID = viPostingCurrencyID).
end.
end. /* for each PostingLine of Posting */
if vdPostingLineBalanceLC <> 0 or vdPostingLineBalanceCC <> 0
then do:
find Journal of Posting no-lock.
create tqJournalEntryBalance.
assign tqJournalEntryBalance.tcJournalCode = Journal.JournalCode
tqJournalEntryBalance.tiPostingVoucher = Posting.PostingVoucher
tqJournalEntryBalance.tdPostingLineBalanceCC = vdPostingLineBalanceCC
tqJournalEntryBalance.tdPostingLineBalanceLC = vdPostingLineBalanceLC.
if vlSingleCurrency
then do:
find Currency where
Currency.Currency_ID = viPostingCurrencyID no-lock no-error.
if available Currency
then assign tqJournalEntryBalance.tcCurrencyCode = Currency.CurrencyCode.
end. /* if vdPostingLineBalanceLC <> 0 or vdPostingLineBalanceCC <> 0 */
end.
end. /* for each Posting */
end. /* do viCPCompanyIterator = 1 to viCompanyEntries: */
if not can-find (first tqJournalEntryBalance)
then do:
create tqJournalEntryBalance.
assign tqJournalEntryBalance.tiPostingVoucher = -1
tqJournalEntryBalance.tcJournalCode = #T-41'No unbalanced postings can be found in the selected GL period.':100(64820)T-41#.
end.