project QadFinancials > class BDDocumentReport > method DDocumentReportAll


Parameters


tDDocumentReportAlloutputtemp-table
icDocumentTypeinputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BDDocumentReport.DDocumentReportAutoIncasso
method BDDocumentReport.DDocumentReportCheque
method BDDocumentReport.DDocumentReportDraft
method BDDocumentReport.DDocumentReportPromisNote
method BDDocumentReport.DDocumentReportSumStatement
method BDDocumentReport.DDocumentReportTransfer


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.