project QadFinancials > class BBillReport > method GetBillReportDInvoice

Description

Return all the invoice in current bill, if it need to print item detail, so GetDInvoiceDetailInfo method will be used to get more detail info.


Parameters


idPreBillBalanceinputdecimal
iiCurHighWaterMarkinputinteger
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BBillReport.BillReportDInvoice


program code (program1/bbillreport.p)

/* Create output DInvoice DS */
for each tDinvoiceForBillFilterDS:
           
    if tDinvoiceForBillFilterDS.tcDInvoiceType = {&INVOICETYPE-PREPAYMENT} or
       tDinvoiceForBillFilterDS.tcDInvoiceType = {&INVOICETYPE-ADJUSTMENT} or
       tDinvoiceForBillFilterDS.tcDInvoiceType = {&INVOICETYPE-DEDUCTION} 
    then next.

    <Q-43 run GetDebtorPrintInvHistoryByBill (all) (Read) (NoCache)
       (input viCompanyId, (CompanyId)
        input tDinvoiceForBillFilterDS.tiBill_ID, (BillID)
        output dataset tqGetDebtorPrintInvHistoryByBill) in BBillReport> 
    find first tqGetDebtorPrintInvHistoryByBill no-lock no-error.

    if available(tqGetDebtorPrintInvHistoryByBill) then    
        assign vlPrintItemDetail = tqGetDebtorPrintInvHistoryByBill.tlDebtorIsPrintBillWithItemDet.

    vcInvoiceNbr = tDinvoiceForBillFilterDS.tcDInvoiceDIText.

    if tDinvoiceForBillFilterDS.tcDInvoiceType = {&INVOICETYPE-INVOICE} and vlPrintItemDetail 
    then do:
        <M-75 run GetDInvoiceDetailInfo
           (input  vcInvoiceNbr (icInvoiceNumber), 
            output vlAvailItemDetails (olAvailItemDetails), 
            output oiReturnStatus (oiReturnStatus)) in BBillReport>
    end.

    if tDinvoiceForBillFilterDS.tcDInvoiceType = {&INVOICETYPE-INVOICE} and 
       vlPrintItemDetail and vlAvailItemDetails then
    do:
        for each tBillReportBillItemDetails:
            create tqBillReportDInvoice.

            /* Copy custom field */
            find first tqGetDebtorInfoForBill where tqGetDebtorInfoForBill.tiBill_ID = tDinvoiceForBillFilterDS.tiBill_ID no-error.
            if available tqGetDebtorInfoForBill then
                buffer-copy tqGetDebtorInfoForBill to tqBillReportDInvoice.

            assign tqBillReportDInvoice.tcBillCurrency             = tDinvoiceForBillFilterDS.tcCurrencyCode
                   tqBillReportDInvoice.tiBillReport_ID            = viBillReport_ID
                   tqBillReportDInvoice.tiBillNumber               = tDinvoiceForBillFilterDS.tiBillNumber
                   tqBillReportDInvoice.tiBillYear                 = viBillYear
                   tqBillReportDInvoice.tcBillCollector            = tDinvoiceForBillFilterDS.tcEmployeeCode
                   tqBillReportDInvoice.tcBillScheduleCode         = tDinvoiceForBillFilterDS.tcBillScheduleCode
                   tqBillReportDInvoice.tcDInvoiceType             = tDinvoiceForBillFilterDS.tcDInvoiceType
                   tqBillReportDInvoice.tdPreviousBalance          = idPreBillBalance
                   tqBillReportDInvoice.ttDueDate                  = tDinvoiceForBillFilterDS.ttBillDueDate
                   tqBillReportDInvoice.ttIssuedDate               = today
                   tqBillReportDInvoice.tiDInvoice_ID              = tDinvoiceForBillFilterDS.tiDInvoice_ID
                   tqBillReportDInvoice.ttBillDate                 = vtBillDate
                   tqBillReportDInvoice.tcBankNumberSwiftCode      = vcbanknumberswiftcode
                   tqBillReportDInvoice.tcBankName                 = vcbankname
                   tqBillReportDInvoice.tcDInvoiceReference        = vcInvoiceNbr
                   tqBillReportDInvoice.ttDInvoiceDate             = tDinvoiceForBillFilterDS.ttDInvoiceDate
                   tqBillReportDInvoice.tcDInvoiceBalanceCrDt      = if tDinvoiceForBillFilterDS.tdDInvoiceBalanceCreditTC <> 0 and
                                                                        tDinvoiceForBillFilterDS.tdDInvoiceBalanceCreditTC <> ?
                                                                     then {&CREDITDEBITABBREVIATION-CREDIT-TR}
                                                                     else {&CREDITDEBITABBREVIATION-DEBIT-TR}
                   tqBillReportDInvoice.tdDInvoiceBalance          = tBillReportBillItemDetails.tdSales + tBillReportBillItemDetails.tdTax
                   tqBillReportDInvoice.tdDInvoiceOriginalBalance  = tBillReportBillItemDetails.tdSales + tBillReportBillItemDetails.tdTax
                   tqBillReportDInvoice.tdDInvoiceVatBalance       = tBillReportBillItemDetails.tdTax
                   tqBillReportDInvoice.tdDInvoiceVatExchangeRate  = tDinvoiceForBillFilterDS.tdDInvoiceExchangeRate
                   tqBillReportDInvoice.tcDebtorCodeInReport       = tDinvoiceForBillFilterDS.tcDebtorCode
                   tqBillReportDInvoice.tiBill_ID                  = tDinvoiceForBillFilterDS.tiBill_ID
                   tqBillReportDInvoice.tcBusinessRelationID       = vcBusinessRelationID
                   tqBillReportDInvoice.tcBusinessRelationName     = vcBusinessRelationName
                   tqBillReportDInvoice.tcBusinessRelationAddr1    = vcBusinessRelationAddr1
                   tqBillReportDInvoice.tcBusinessRelationAddr2    = vcBusinessRelationAddr2
                   tqBillReportDInvoice.tcPaymentConditionCode     = vcPaymentConditionCode
                   tqBillReportDInvoice.tcBankNumber               = vcbanknumber
                   tqBillReportDInvoice.tcBankNumberBranch         = vcbanknumberbranch
                   tqBillReportDInvoice.tcBankAccountCode          = vcBankAccountCode
                   tqBillReportDInvoice.tcBankAccountType          = vcBankAccountType
                   tqBillReportDInvoice.tcCompanyAddress           = vcCompanyAddress
                   tqBillReportDInvoice.tcCompanyName              = vcCompanyName
                   tqBillReportDInvoice.tcContactInfo              = vcContactInfo
                   tqBillReportDInvoice.ttShipDate                 = tBillReportBillItemDetails.ttShipDate
                   tqBillReportDInvoice.tcSONbr                    = tBillReportBillItemDetails.tcSONbr
                   tqBillReportDInvoice.tiSOLine                   = tBillReportBillItemDetails.tiSOLine
                   tqBillReportDInvoice.tcItemCode                 = tBillReportBillItemDetails.tcItemCode
                   tqBillReportDInvoice.tcItemDescription1         = tBillReportBillItemDetails.tcItemDescription1
                   tqBillReportDInvoice.tcItemDescription2         = tBillReportBillItemDetails.tcItemDescription2
                   tqBillReportDInvoice.tdQty                      = tBillReportBillItemDetails.tdQty
                   tqBillReportDInvoice.tcUM                       = tBillReportBillItemDetails.tcUM
                   tqBillReportDInvoice.tdPrice                    = tBillReportBillItemDetails.tdPrice
                   tqBillReportDInvoice.tcShipTo                   = tBillReportBillItemDetails.tcShipTo
                   tqBillReportDInvoice.tcRmks                     = tBillReportBillItemDetails.tcRmks
                   tqBillReportDInvoice.tlIsPreBillInitial         = vlIsPreBillInitial
                   tqBillReportDInvoice.tlPrintItemDetail          = vlPrintItemDetail
                   vdSalesAmt                                      = vdSalesAmt + tqBillReportDInvoice.tdDInvoiceOriginalBalance
                   vdSalesTax                                      = vdSalesTax + tqBillReportDInvoice.tdDInvoiceVatBalance.
        end. /* for each tBillReportBillItemDetails */
    end.
    else
    do:
        create tqBillReportDInvoice.

        /* Copy custom field */
        find first tqGetDebtorInfoForBill where tqGetDebtorInfoForBill.tiBill_ID = tDinvoiceForBillFilterDS.tiBill_ID no-error.
        if available tqGetDebtorInfoForBill then
            buffer-copy tqGetDebtorInfoForBill to tqBillReportDInvoice.

        assign tqBillReportDInvoice.tcBillCurrency             = tDinvoiceForBillFilterDS.tcCurrencyCode
               tqBillReportDInvoice.tiBillReport_ID            = viBillReport_ID
               tqBillReportDInvoice.tiBillNumber               = tDinvoiceForBillFilterDS.tiBillNumber
               tqBillReportDInvoice.tiBillYear                 = viBillYear
               tqBillReportDInvoice.tcBillCollector            = vcBillCollector
               tqBillReportDInvoice.tcBillScheduleCode         = tDinvoiceForBillFilterDS.tcBillScheduleCode
               tqBillReportDInvoice.tcDInvoiceType             = tDinvoiceForBillFilterDS.tcDInvoiceType
               tqBillReportDInvoice.tdPreviousBalance          = idPreBillBalance
               tqBillReportDInvoice.ttDueDate                  = tDinvoiceForBillFilterDS.ttBillDueDate
               tqBillReportDInvoice.ttIssuedDate               = today
               tqBillReportDInvoice.tiDInvoice_ID              = tDinvoiceForBillFilterDS.tiDInvoice_ID
               tqBillReportDInvoice.ttBillDate                 = vtBillDate
               tqBillReportDInvoice.tcBankNumberSwiftCode      = vcbanknumberswiftcode
               tqBillReportDInvoice.tcBankName                 = vcbankname
               tqBillReportDInvoice.tcDInvoiceReference        = vcInvoiceNbr
               tqBillReportDInvoice.ttDInvoiceDate             = tDinvoiceForBillFilterDS.ttDInvoiceDate
               tqBillReportDInvoice.tcDInvoiceBalanceCrDt      = if tDinvoiceForBillFilterDS.tdDInvoiceBalanceCreditTC <> 0 and
                                                                    tDinvoiceForBillFilterDS.tdDInvoiceBalanceCreditTC <> ?
                                                                 then {&CREDITDEBITABBREVIATION-CREDIT-TR}
                                                                 else {&CREDITDEBITABBREVIATION-DEBIT-TR}
               tqBillReportDInvoice.tdDInvoiceBalance          = if tDinvoiceForBillFilterDS.tdDInvoiceBalanceCreditTC <> 0 and
                                                                    tDinvoiceForBillFilterDS.tdDInvoiceBalanceCreditTC <> ?
                                                                 then (tDinvoiceForBillFilterDS.tdDInvoiceBalanceCreditTC * -1)
                                                                 else tDinvoiceForBillFilterDS.tdDInvoiceBalanceDebitTC
               tqBillReportDInvoice.tdDInvoiceOriginalBalance  = if tDinvoiceForBillFilterDS.tdDInvoiceOriginalCreditTC <> 0 and
                                                                    tDinvoiceForBillFilterDS.tdDInvoiceOriginalCreditTC <> ?
                                                                 then (tDinvoiceForBillFilterDS.tdDInvoiceOriginalCreditTC * -1)
                                                                 else tDinvoiceForBillFilterDS.tdDInvoiceOriginalDebitTC
               tqBillReportDInvoice.tdDInvoiceVatBalance       = if tDinvoiceForBillFilterDS.tdDInvoiceVatCreditTC <> 0 and
                                                                    tDinvoiceForBillFilterDS.tdDInvoiceVatCreditTC <> ?
                                                                 then tDinvoiceForBillFilterDS.tdDInvoiceVatCreditTC
                                                                 else (tDinvoiceForBillFilterDS.tdDInvoiceVatDebitTC * -1)
               tqBillReportDInvoice.tdDInvoiceVatExchangeRate  = tDinvoiceForBillFilterDS.tdDInvoiceExchangeRate
               tqBillReportDInvoice.tcDebtorCodeInReport       = tDinvoiceForBillFilterDS.tcDebtorCode
               tqBillReportDInvoice.tiBill_ID                  = tDinvoiceForBillFilterDS.tiBill_ID
               tqBillReportDInvoice.tcBusinessRelationID       = vcBusinessRelationID
               tqBillReportDInvoice.tcBusinessRelationName     = vcBusinessRelationName
               tqBillReportDInvoice.tcBusinessRelationAddr1    = vcBusinessRelationAddr1
               tqBillReportDInvoice.tcBusinessRelationAddr2    = vcBusinessRelationAddr2
               tqBillReportDInvoice.tcPaymentConditionCode     = vcPaymentConditionCode
               tqBillReportDInvoice.tcBankNumber               = vcbanknumber
               tqBillReportDInvoice.tcBankNumberBranch         = vcbanknumberbranch
               tqBillReportDInvoice.tcBankAccountCode          = vcBankAccountCode
               tqBillReportDInvoice.tcBankAccountType          = vcBankAccountType
               tqBillReportDInvoice.tcCompanyAddress           = vcCompanyAddress
               tqBillReportDInvoice.tcCompanyName              = vcCompanyName
               tqBillReportDInvoice.tcContactInfo              = vcContactInfo
               tqBillReportDInvoice.tlIsPreBillInitial         = vlIsPreBillInitial
               tqBillReportDInvoice.tlPrintItemDetail          = vlPrintItemDetail
               vdSalesAmt                                      = vdSalesAmt + tqBillReportDInvoice.tdDInvoiceOriginalBalance 
               vdSalesTax                                      = vdSalesTax + tqBillReportDInvoice.tdDInvoiceVatBalance.
        
    end. /* else then do */
end. /* for each tDinvoiceForBillFilterDS */

empty temp-table tqGetDebtorInfoForBill.