Parameters
| tDDocumentReportAll | output | temp-table | |
| icDocumentType | input | character | |
| oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program4/bddocumentreport.p)
/* ========================================================== */
/* Assign the filter-data-items based on the tFilter records */
/* ========================================================== */
/*
<M-44 run GetReportLabels (input 'DDocumentReportAll':U (icReportName),
input ? (icLanguageCode),
input tFilter (tFilter),
output tqHeader (tqHeader),
output tqFilter (tqFilter),
output tqText (tqText),
output viFcReturnSuper (oiReturnStatus)) in BDDocumentReport>
if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and oiReturnStatus >= 0)
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
<M-18 run SetDataItemsBasesOnFilterTT (output oiReturnStatus (oiReturnStatus)) in BDDocumentReport>
*/
/* ========================================================== */
/* Call query using parameters */
/* ========================================================== */
if vlBDDocRepFromNewDoc = true
then assign viFcCount1 = 1.
else assign viFcCount1 = ?.
<Q-16 run DDocumentForAll (all) (Read) (NoCache)
(input viCompanyId, (CompanyId)
input viBDDocRepFromYearFilter, (DocumentYear)
input viBDDocRepFromNumberFilter, (FromDocumentNumber)
input viBDDocRepToNumberFilter, (ToDocumentNumber)
input icDocumentType, (DocumentType)
input vcBDDocRepFromStatusFilter, (DocumentStatus)
input vcBDDocRepFromDebtorCodeFilter, (DebtorCode)
input vcBDDocRepFromReferenceFilter, (DocumentReference)
input vlBDDocRepIsOpenFilter, (DocumentIsOpen)
input vtBDDocRepFromDueDateFilter, (FromDueDate)
input vtBDDocRepToDueDateFilter, (ToDueDate)
input vcBDDocRepFromCollNumberFilter, (CollectionNumber)
input vcBDDocRepFromCurrencyFilter, (CurrencyCode)
input vcBDDocRepFromSubTypeFilter, (DocumentSubType)
input viBDDocRepTimesPrintedFilter, (TimesPrinted)
input vtBDDocRepFromCreaDateFilter, (FromCreationDate)
input vtBDDocRepToCreationDateFilter, (TillCreationDate)
input viBDDocRepFromCreaTimeFilter, (FromCreationTime)
input viBDDocRepToCreaTimeFilter, (TillCreationTime)
input vcBDDocRepUserFilter, (UserName)
input vcBDDocRepIncSelCodeFilter, (IncSelCode)
output dataset tqDDocumentForAll) in BDDocumentReport >
/* search for headoffice code */
<M-17 run GetOwnCompany (output oiReturnStatus (oiReturnStatus)) in BDDocumentReport>
/* =========================================================================================================== */
/* Copy this query-result-set before continuing the program. As the further content of this method contains */
/* a can-find using DDocument_ID on the result-set and as tqDDocumentAutoIncasso does not hav an index on this field; */
/* we first copy tqDDocumentAutoIncasso into tqDDocumentReportAutoIncasso that has got an index on this field. */
/* =========================================================================================================== */
find first tqCompanyPropByOwnCompanyID no-lock no-error.
assign vcRowIDForPrintCounter = "":U.
for each tqDDocumentForAll no-lock :
empty temp-table tqBankNumberForDebtor.
<Q-51 run BankNumberForDebtor (all) (Read) (NoCache)
(input {&BANKNUMBERPARENTTYPE-DEBTOR}, (ParentType)
input tqDDocumentForAll.tiDebtor_ID, (ParentObjectID)
output dataset tqBankNumberForDebtor) in BDDocumentReport >
/* ============================================== */
/* save rowID for possible update of timesprinted */
/* ============================================== */
if vcRowIDForPrintCounter = "":U
then assign vcRowIDForPrintCounter = tqDDocumentForAll.tc_rowid.
else assign vcRowIDForPrintCounter = vcRowIDForPrintCounter + ',':U + tqDDocumentForAll.tc_rowid.
/* ============================================ */
/* get businessrelation fields for creditor */
/* ============================================ */
assign vcRelationCode = {&ADDRESSTYPECODESYSTEM-PAYM}.
empty temp-table tqHeadOfficeForDebtor.
<Q-25 run HeadOfficeForDebtor (all) (Read) (NoCache)
(input viCompanyId, (CompanyId)
input tqDDocumentForAll.tiDebtor_ID, (DebtorID)
input vcRelationCode, (RelationCode)
output dataset tqHeadOfficeForDebtor) in BDDocumentReport >
find first tqHeadOfficeForDebtor no-lock no-error.
if not available tqHeadOfficeForDebtor
then do:
assign vcRelationCode = {&ADDRESSTYPECODESYSTEM-HEADOFFICE}.
empty temp-table tqHeadOfficeForDebtor.
<Q-26 run HeadOfficeForDebtor (all) (Read) (NoCache)
(input viCompanyId, (CompanyId)
input tqDDocumentForAll.tiDebtor_ID, (DebtorID)
input vcRelationCode, (RelationCode)
output dataset tqHeadOfficeForDebtor) in BDDocumentReport >
find first tqHeadOfficeForDebtor no-lock no-error.
end. /* find first tqHeadOfficeForDebtor no-lock no-error. */
if available tqHeadOfficeForDebtor
then do:
/* ============================================ */
/* Create the records for the real output table */
/* ============================================ */
empty temp-table tqSelectDInvoiceByDDocument.
<Q-40 run SelectDInvoiceByDDocument (all) (Read) (NoCache)
(input viCompanyId, (CompanyId)
input tqDDocumentForAll.tiDDocument_ID, (DDocumentID)
output dataset tqSelectDInvoiceByDDocument) in BDDocumentReport >
assign vdTotalAllocatedTC = 0
vdTotalBalanceTC = 0
vdTotalDiscountTC = 0
vcAmountInText = "":U.
for each tqSelectDInvoiceByDDocument:
assign vdTotalBalanceTC = vdTotalBalanceTC + tqSelectDInvoiceByDDocument.tdDInvoiceBalanceTC
vdTotalAllocatedTC = vdTotalAllocatedTC + tqSelectDInvoiceByDDocument.tdDDocumentInvoiceXrefAlloTC
vdTotalDiscountTC = vdTotalDiscountTC + tqSelectDInvoiceByDDocument.tdDDocumentInvoiceXrefDiscTC.
end. /* for each tqSelectDInvoiceByDDocument: */
if not can-find(first tqSelectDInvoiceByDDocument)
then do:
<M-46 run DDocumentReportAllCreate (output oiReturnStatus (oiReturnStatus)) in BDDocumentReport>
end.
for each tqSelectDInvoiceByDDocument /*where tqSelectDInvoiceByDDocument.tdDInvoiceBalanceTC <> 0*/ :
<M-45 run DDocumentReportAllCreate (output oiReturnStatus (oiReturnStatus)) in BDDocumentReport>
assign tDDocumentReportAll.tiDDocRepDInvoiceYear = tqSelectDInvoiceByDDocument.tiPeriodYear
tDDocumentReportAll.tiDDocRepDInvoicePeriod = tqSelectDInvoiceByDDocument.tiPeriodPeriod
tDDocumentReportAll.tcDDocRepDInvoiceJournalCode = tqSelectDInvoiceByDDocument.tcJournalCode
tDDocumentReportAll.tiDDocRepDInvoiceVoucher = tqSelectDInvoiceByDDocument.tiDInvoiceVoucher
tDDocumentReportAll.tcDDocRepDInvoiceType = tqSelectDInvoiceByDDocument.tcDInvoiceType
tDDocumentReportAll.tdDDocRepInvOrigDebitTC = tqSelectDInvoiceByDDocument.tdDInvoiceOriginalDebitTC
tDDocumentReportAll.tdDDocRepInvOrigCreditTC = tqSelectDInvoiceByDDocument.tdDInvoiceOriginalCreditTC
tDDocumentReportAll.tdDDocRepInvBalanceDebitTC = tqSelectDInvoiceByDDocument.tdDInvoiceBalanceDebitTC
tDDocumentReportAll.tdDDocRepInvBalanceCreditTC = tqSelectDInvoiceByDDocument.tdDInvoiceBalanceCreditTC
tDDocumentReportAll.tiInvoice_ID = tqSelectDInvoiceByDDocument.tiDInvoice_ID
tDDocumentReportAll.ttDDocRepDInvoiceDate = tqSelectDInvoiceByDDocument.ttDInvoiceDate
tDDocumentReportAll.tcDDocRepDInvoiceReference = tqSelectDInvoiceByDDocument.tcDInvoiceDescription
tDDocumentReportAll.tdDDocRepDInvoiceBalanceTC = tqSelectDInvoiceByDDocument.tdDInvoiceBalanceTC
tDDocumentReportAll.ttDDocRepDInvoiceDueDate = tqSelectDInvoiceByDDocument.ttDInvoiceDueDate
tDDocumentReportAll.tcDDocRepDInvoiceCurrencyCode = tqSelectDInvoiceByDDocument.tcCurrencyCode
tDDocumentReportAll.tiDDocRepDInvoiceCurrNumbOfDec = tqSelectDInvoiceByDDocument.tiCurrencyNumberOfDecimals
tDDocumentReportAll.ttDDocRepDInvoiceDiscountDueDat = tqSelectDInvoiceByDDocument.ttDInvoiceDiscountDueDate
tDDocumentReportAll.tdDDocRepDInvoiceXRefAmountTC = tqSelectDInvoiceByDDocument.tdDDocumentInvoiceXrefAlloTC
tDDocumentReportAll.tdDDocRepDInvoiceXRefDiscAmTC = tqSelectDInvoiceByDDocument.tdDDocumentInvoiceXrefDiscTC
tDDocumentReportAll.tdDDocRepDInvoiceTotalBalanceTC = vdTotalBalanceTC
tDDocumentReportAll.tdDDocRepDInvoiceTotalAllocTC = vdTotalAllocatedTC
tDDocumentReportAll.tdDDocRepDInvoiceTotalDiscTC = vdTotalDiscountTC
tDDocumentReportAll.tdDDocRepAmount = vdTotalBalanceTC
tDDocumentReportAll.tcDocRepDInvoiceTSMNumber = tqSelectDInvoiceByDDocument.tcDInvoiceTSMNumber.
end.
end. /* if available tqHeadOfficeForDebtor */
end. /* for each tqDDocumentForAll no-lock */
for each tDDocumentReportAll :
/* Cheque Amount */
if tDDocumentReportAll.tcDDocRepDocumentType = {&DOCUMENTTYPEDEBTOR-CHEQUE} or
tDDocumentReportAll.tcDDocRepDocumentType = {&DOCUMENTTYPEDEBTOR-DRAFT}
then do:
vdAmount = ABS(tDDocumentReportAll.tdDDocRepDInvoiceTotalAllocTC) - ABS(tDDocumentReportAll.tdDDocRepDInvoiceTotalDiscTC).
tDDocumentReportAll.tiDDocRepChequeDollars = INT(TRUNCATE(vdAmount, 0)).
tDDocumentReportAll.tiDDocRepChequeCents = INT((vdAmount - tDDocumentReportAll.tiDDocRepChequeDollars) * 100).
<Q-34 run BDGetCurrDesc (all) (Read) (NoCache)
(input tDDocumentReportAll.tcDDocRepDInvoiceCurrencyCode, (CurrencyCode)
output dataset tqBDGetCurrDesc) in BDDocumentReport>
find first tqBDGetCurrDesc no-lock no-error.
if available tqBDGetCurrDesc
then do:
tDDocumentReportAll.tcDollarCurrency = tqBDGetCurrDesc.tcCurrencyDescription.
tDDocumentReportAll.tcCentCurrency = tqBDGetCurrDesc.tcCurrencyDecimalDescription.
end.
end.
end.