project QadFinancials > class BDebtorReport > method DebtorOpenItems

report procedure

Description

DebtorOpenItems


Parameters


icLanguageCodeinputcharacter
tFilterinputtemp-table
dcrDebtorOpenItemsoutputdataset
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BDebtorReport.DebtorRemindersOverview


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.