report procedure
Description
DebtorOpenItems
Parameters
icLanguageCode | input | character | |
tFilter | input | temp-table | |
dcrDebtorOpenItems | output | dataset | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program7/bdebtorreport.p)
empty temp-table tqDebtorOpenItems.
empty temp-table tqDebtorOpenItemsByDInvoice.
assign vcDinvoiceOpInfoList = "":U.
<M-12 run GetReportLabels (input 'DebtorOpenItems':U (icReportName),
input icLanguageCode (icLanguageCode),
input tFilter (tFilter),
output tqHeader (tqHeader),
output tqFilter (tqFilter),
output tqText (tqText),
output oiReturnStatus (oiReturnStatus)) in BDebtorReport>
if oiReturnStatus <> 0
then return.
/*assign tFilter*/
<M-1 run SetDataItemsBasedOnFilterTT (output viFcReturnSuper (oiReturnStatus)) in BDebtorReport>
assign vtDInvoiceDueDate = if vlDueInvoicesOnly
then today
else ?.
if vcIncludedTypes <> "":U
then assign vcIncludedTypes = substring(vcIncludedTypes,2,length(vcIncludedTypes,"CHARACTER":U),"CHARACTER":U). /*remove first , */
else do:
assign vcmessage = #T-82'You must at least include one open item type to get some output for this report':255(306073435)T-82#.
<M-29 run SetMessage
(input vcmessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'QadFin-259643':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BDebtorReport>
assign oiReturnStatus = -1.
return.
end.
/*if we are working with rangevalues, we have to test if the from-value and to-value */
/*of the maintable in the query is the same so we can use equal mathes instead of range */
if vcFromDebtorCodeFilter = vcToDebtorCodeFilter
then assign vcDebtorCodeFilter = vcFromDebtorCodeFilter
vcFromDebtorCodeFilter = ?
vcToDebtorCodeFilter = ?.
else assign vcDebtorCodeFilter = ?.
if vtDInvoiceDateFromFilter = vtDInvoiceDateToFilter
then assign vtDInvoiceDateFilter = vtDInvoiceDateFromFilter
vtDInvoiceDateFromFilter = ?
vtDInvoiceDateToFilter = ?.
else assign vtDInvoiceDateFilter = ?.
/* Get only the BankStateNumber of the new Invoices made by the bank (=PrePayments) */
assign vcCanDoBankStateAllocType = {&BANKSTATEALLOCTYPE-NDINV}.
/* check which query we have to use depending on the filled values */
if (vcFromDebtorCodeFilter = ? or vcFromDebtorCodeFilter = "":U) and
(vcToDebtorCodeFilter = ? or vcToDebtorCodeFilter = "":U) and
(vcDebtorCodeFilter = ? or vcDebtorCodeFilter = "":U) /* BTS 4641*/
then do: /* start the query with main table DInvocie */
<Q-13 run DebtorOpenItemsByDInvoice (all) (Read) (NoCache)
(input viCompanyId, (CompanyId)
input vcToBRCodeFilter, (BusRelCodeTo)
input vtDInvoiceDateFromFilter, (DInvoiceDateFrom)
input vcFromDivisionCodeFilter, (DivisionCodeFrom)
input vcToDivisionCodeFilter, (DivisionCodeTo)
input vtDInvoiceDateToFilter, (DInvoiceDateTo)
input vtDInvoiceDueDate, (DInvoiceDueDate)
input vcIncludedTypes, (DInvoiceType)
input vcFromDebtorCodeFilter, (DebtorCodeFrom)
input vcToDebtorCodeFilter, (DebtorCodeTo)
input vcFromBRCodeFilter, (BusRelCodeFrom)
input vtDInvoiceDateFilter, (DInvoiceDate)
input vcDebtorCodeFilter, (DebtorCode)
input vcCanDoBankStateAllocType, (CanDoBankStateAllocType)
input vcCandoJournalCodeFilter, (CandoJournalCode)
output dataset tqDebtorOpenItemsByDInvoice) in BDebtorReport>
end.
else do: /* start the query with main table Debtor */
<Q-14 run DebtorOpenItemsByDebtor (all) (Read) (NoCache)
(input viCompanyId, (CompanyId)
input vtDInvoiceDueDate, (DInvoiceDueDate)
input vcToBRCodeFilter, (BusRelCodeTo)
input vtDInvoiceDateFromFilter, (DInvoiceDateFrom)
input vcFromDivisionCodeFilter, (DivisionCodeFrom)
input vcToDivisionCodeFilter, (DivisionCodeTo)
input vtDInvoiceDateToFilter, (DInvoiceDateTo)
input vcIncludedTypes, (DInvoiceType)
input vcFromDebtorCodeFilter, (DebtorCodeFrom)
input vcToDebtorCodeFilter, (DebtorCodeTo)
input vcFromBRCodeFilter, (BusRelCodeFrom)
input vtDInvoiceDateFilter, (DInvoiceDate)
input vcDebtorCodeFilter, (DebtorCode)
input vcCanDoBankStateAllocType, (CanDoBankStateAllocType)
input vcCandoJournalCodeFilter, (CandoJournalCode)
output dataset tqDebtorOpenItemsByDebtor) in BDebtorReport>
end.
/* assign the values to the temptable used for reporting */
if (vcFromDebtorCodeFilter = ? or vcFromDebtorCodeFilter = "":U) and
(vcToDebtorCodeFilter = ? or vcToDebtorCodeFilter = "":U) and
(vcDebtorCodeFilter = ? or vcDebtorCodeFilter = "":U) /* BTS 4641*/
then do:
for each tqDebtorOpenItemsByDInvoice:
/* Assign DinvoiceOpInfo list */
assign vcDinvoiceOpInfoList = tqDebtorOpenItemsByDInvoice.tcDInvoiceShipperList.
if vcDinvoiceOpInfoList <> "":U and
vcDInvoiceOpInfoList <> ? and
tqDebtorOpenItemsByDInvoice.tcDInvoiceGoldenTaxInvoiceList <> "":U and
tqDebtorOpenItemsByDInvoice.tcDInvoiceGoldenTaxInvoiceList <> ?
then assign vcDinvoiceOpInfoList = vcDinvoiceOpInfoList + ",":U.
assign vcDinvoiceOpInfoList = vcDinvoiceOpInfoList + tqDebtorOpenItemsByDInvoice.tcDInvoiceGoldenTaxInvoiceList.
create tqDebtorOpenItems.
assign tqDebtorOpenItems.tcDebtorCode = tqDebtorOpenItemsByDInvoice.tcDebtorCode
tqDebtorOpenItems.tcBusinessRelationCode = tqDebtorOpenItemsByDInvoice.tcBusinessRelationCode
tqDebtorOpenItems.tcDInvoiceType = tqDebtorOpenItemsByDInvoice.tcDInvoiceType
tqDebtorOpenItems.tcDInvoiceDescription = tqDebtorOpenItemsByDInvoice.tcDInvoiceDescription
tqDebtorOpenItems.tcDInvoiceDIText = tqDebtorOpenItemsByDInvoice.tcDInvoiceDIText
tqDebtorOpenItems.ttDInvoiceDate = tqDebtorOpenItemsByDInvoice.ttDInvoiceDate
tqDebtorOpenItems.ttDInvoiceDueDate = tqDebtorOpenItemsByDInvoice.ttDInvoiceDueDate
tqDebtorOpenItems.ttDInvoiceDiscountDueDate = tqDebtorOpenItemsByDInvoice.ttDInvoiceDiscountDueDate
tqDebtorOpenItems.ttDInvoicePostingDate = tqDebtorOpenItemsByDInvoice.ttDInvoicePostingDate
tqDebtorOpenItems.tdDInvoiceBalanceLC = tqDebtorOpenItemsByDInvoice.tdDInvoiceBalanceLC
tqDebtorOpenItems.tdDInvoiceBalanceTC = tqDebtorOpenItemsByDInvoice.tdDInvoiceBalanceTC
tqDebtorOpenItems.tdDInvoiceBalanceCC = tqDebtorOpenItemsByDInvoice.tdDInvoiceBalanceCC
tqDebtorOpenItems.tdDInvoiceOriginalCreditLC = tqDebtorOpenItemsByDInvoice.tdDInvoiceOriginalCreditLC
tqDebtorOpenItems.tdDInvoiceOriginalCreditTC = tqDebtorOpenItemsByDInvoice.tdDInvoiceOriginalCreditTC
tqDebtorOpenItems.tdDInvoiceOriginalCreditCC = tqDebtorOpenItemsByDInvoice.tdDInvoiceOriginalCreditCC
tqDebtorOpenItems.tdDInvoiceOriginalDebitLC = tqDebtorOpenItemsByDInvoice.tdDInvoiceOriginalDebitLC
tqDebtorOpenItems.tdDInvoiceOriginalDebitTC = tqDebtorOpenItemsByDInvoice.tdDInvoiceOriginalDebitTC
tqDebtorOpenItems.tdDInvoiceOriginalDebitCC = tqDebtorOpenItemsByDInvoice.tdDInvoiceOriginalDebitCC
tqDebtorOpenItems.tcCurrencyCode = tqDebtorOpenItemsByDInvoice.tcCurrencyCode
tqDebtorOpenItems.tcCurrencyDescription = tqDebtorOpenItemsByDInvoice.tcCurrencyDescription
tqDebtorOpenItems.tiCurrencyNumberOfDecimals = tqDebtorOpenItemsByDInvoice.tiCurrencyNumberOfDecimals
tqDebtorOpenItems.tiPeriodPeriod = tqDebtorOpenItemsByDInvoice.tiPeriodPeriod
tqDebtorOpenItems.tiPeriodYear = tqDebtorOpenItemsByDInvoice.tiPeriodYear
tqDebtorOpenItems.tiPostingVoucher = tqDebtorOpenItemsByDInvoice.tiDInvoiceVoucher
tqDebtorOpenItems.tcJournalCode = tqDebtorOpenItemsByDInvoice.tcJournalCode
tqDebtorOpenItems.tcBankStateNumber = tqDebtorOpenItemsByDInvoice.tcBankStateNumber
tqDebtorOpenItems.tcDInvoiceOpInfoCode = vcDinvoiceOpInfoList
tqDebtorOpenItems.tcDInvoiceDIText = tqDebtorOpenItemsByDInvoice.tcDInvoiceDIText.
end.
end.
else do:
for each tqDebtorOpenItemsByDebtor:
/* Assign DinvoiceOpInfo list */
assign vcDinvoiceOpInfoList = tqDebtorOpenItemsByDebtor.tcDInvoiceShipperList.
if vcDinvoiceOpInfoList <> "":U and
vcDInvoiceOpInfoList <> ? and
tqDebtorOpenItemsByDebtor.tcDInvoiceGoldenTaxInvoiceList <> "":U and
tqDebtorOpenItemsByDebtor.tcDInvoiceGoldenTaxInvoiceList <> ?
then assign vcDinvoiceOpInfoList = vcDinvoiceOpInfoList + ",":U.
assign vcDinvoiceOpInfoList = vcDinvoiceOpInfoList + tqDebtorOpenItemsByDebtor.tcDInvoiceGoldenTaxInvoiceList.
create tqDebtorOpenItems.
assign tqDebtorOpenItems.tcDebtorCode = tqDebtorOpenItemsByDebtor.tcDebtorCode
tqDebtorOpenItems.tcBusinessRelationCode = tqDebtorOpenItemsByDebtor.tcBusinessRelationCode
tqDebtorOpenItems.tcDInvoiceType = tqDebtorOpenItemsByDebtor.tcDInvoiceType
tqDebtorOpenItems.tcDInvoiceDescription = tqDebtorOpenItemsByDebtor.tcDInvoiceDescription
tqDebtorOpenItems.tcDInvoiceDIText = tqDebtorOpenItemsByDebtor.tcDInvoiceDIText
tqDebtorOpenItems.ttDInvoiceDate = tqDebtorOpenItemsByDebtor.ttDInvoiceDate
tqDebtorOpenItems.ttDInvoiceDueDate = tqDebtorOpenItemsByDebtor.ttDInvoiceDueDate
tqDebtorOpenItems.ttDInvoiceDiscountDueDate = tqDebtorOpenItemsByDebtor.ttDInvoiceDiscountDueDate
tqDebtorOpenItems.ttDInvoicePostingDate = tqDebtorOpenItemsByDebtor.ttDInvoicePostingDate
tqDebtorOpenItems.tdDInvoiceBalanceLC = tqDebtorOpenItemsByDebtor.tdDInvoiceBalanceLC
tqDebtorOpenItems.tdDInvoiceBalanceTC = tqDebtorOpenItemsByDebtor.tdDInvoiceBalanceTC
tqDebtorOpenItems.tdDInvoiceBalanceCC = tqDebtorOpenItemsByDebtor.tdDInvoiceBalanceCC
tqDebtorOpenItems.tdDInvoiceOriginalCreditLC = tqDebtorOpenItemsByDebtor.tdDInvoiceOriginalCreditLC
tqDebtorOpenItems.tdDInvoiceOriginalCreditTC = tqDebtorOpenItemsByDebtor.tdDInvoiceOriginalCreditTC
tqDebtorOpenItems.tdDInvoiceOriginalCreditCC = tqDebtorOpenItemsByDebtor.tdDInvoiceOriginalCreditCC
tqDebtorOpenItems.tdDInvoiceOriginalDebitLC = tqDebtorOpenItemsByDebtor.tdDInvoiceOriginalDebitLC
tqDebtorOpenItems.tdDInvoiceOriginalDebitTC = tqDebtorOpenItemsByDebtor.tdDInvoiceOriginalDebitTC
tqDebtorOpenItems.tdDInvoiceOriginalDebitCC = tqDebtorOpenItemsByDebtor.tdDInvoiceOriginalDebitCC
tqDebtorOpenItems.tcCurrencyCode = tqDebtorOpenItemsByDebtor.tcCurrencyCode
tqDebtorOpenItems.tcCurrencyDescription = tqDebtorOpenItemsByDebtor.tcCurrencyDescription
tqDebtorOpenItems.tiCurrencyNumberOfDecimals = tqDebtorOpenItemsByDebtor.tiCurrencyNumberOfDecimals
tqDebtorOpenItems.tiPeriodPeriod = tqDebtorOpenItemsByDebtor.tiPeriodPeriod
tqDebtorOpenItems.tiPeriodYear = tqDebtorOpenItemsByDebtor.tiPeriodYear
tqDebtorOpenItems.tiPostingVoucher = tqDebtorOpenItemsByDebtor.tiDInvoiceVoucher
tqDebtorOpenItems.tcJournalCode = tqDebtorOpenItemsByDebtor.tcJournalCode
tqDebtorOpenItems.tcBankStateNumber = tqDebtorOpenItemsByDebtor.tcBankStateNumber
tqDebtorOpenItems.tcDInvoiceOpInfoCode = vcDinvoiceOpInfoList
tqDebtorOpenItems.tcDInvoiceDIText = tqDebtorOpenItemsByDebtor.tcDInvoiceDIText.
end.
end.
/* Add filterfields to one special line It has two fields separated by '#'
tcreportingInfo: SummaryByFiler#ReportingCurrency */
if can-find(first tqDebtorOpenItems)
then do:
if vcSummaryByFilter = ? then assign vcSummaryByFilter = {&DEBTORSUMMARYBY-ALL}.
if vcReportingCurrencyFilter = ? then assign vcReportingCurrencyFilter = {&CURRENCYTYPE-LC}.
if vlDebtorPerPageFilter = ? then assign vlDebtorPerPageFilter = no.
if vlPrintDetails = ? then assign vlPrintDetails = yes.
create tqDebtorOpenItems.
assign tqDebtorOpenItems.tcReportingInfo = vcSummaryByFilter + "#":U +
vcReportingCurrencyFilter + "#":U +
String(vlDebtorPerPageFilter) + "#":U +
string(vlPrintDetails).
end.