project QadFinancials > class BDInvoice > method CalculateDInvoiceBank


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BDInvoice.Calculate


program code (program1/bdinvoice.p)

if vcPayFormatPayInstruments =  "":U or 
   vcPayFormatPayInstruments =  ?
then assign vcPayFormatPayInstruments = {&PAYFORMATPAYINSTRUMENTS}.

for each tDInvoiceBank where
         tDInvoiceBank.tcCompanyCode = "":U or 
         tDInvoiceBank.tcCompanyCode = ?:

    /* ============================================================== */
    /* BankNumber should be displayed in a formatted way              */
    /* The 'format'-characters are removed again in ValidateComponent */
    /* ============================================================== */    
    if tDInvoiceBank.tcBankNumberFormatted <> "":U and
       tDInvoiceBank.tcBankNumberFormatted <> ?
    then assign tDInvoiceBank.tcBankNumber = tDInvoiceBank.tcBankNumberFormatted.

    <Q-4 run BankPayFormatByID (all) (Read) (NoCache)
       (input tDInvoiceBank.tiBankPayFormat_ID, (BankPayFormatId)
        input ?, (CompanyId)
        output dataset tqBankPayFormatByID) in BBankPayFormat>

    for first tqBankPayFormatByID where
              tqBankPayFormatByID.tiBankPayFormat_ID = tDInvoiceBank.tiBankPayFormat_ID :

        assign tDInvoiceBank.tcOwnBankNumber              = tqBankPayFormatByID.tcBankNumber
               tDInvoiceBank.tcOwnGLCode                  = tqBankPayFormatByID.tcGLCode
               tDInvoiceBank.tcPayFormatTypeCode          = tqBankPayFormatByID.tcPayFormatTypeCode
               tDInvoiceBank.tcCompanyCode                = tqBankPayFormatByID.tcCompanyCode
               tDInvoiceBank.tcPayFormatTypePayInstrument = "?":U.

        do viCounter = num-entries(vcPayFormatPayInstruments,chr(2)) to 1 by -2 :
            if entry(viCounter,vcPayFormatPayInstruments,chr(2)) = tqBankPayFormatByID.tcPayFormatTypePayInstrument
            then do :
                assign tDInvoiceBank.tcPayFormatTypePayInstrument = entry(viCounter - 1,vcPayFormatPayInstruments,chr(2)) no-error.
                leave.
            end. /* if entry */
        end. /* do */

    end. /* for first tqBankPayFormatByID */
        
end. /* for each tDInvoiceBank */


if can-find (first tDInvoiceBankPayCode where
                   ((tDInvoiceBankPayCode.tcPayFormatCode      = "":U or tDInvoiceBankPayCode.tcPayFormatCode      = ?) and
                    (tDInvoiceBankPayCode.tcPayFormatGroupCode = "":U or tDInvoiceBankPayCode.tcPayFormatGroupCode = ?)))
then do :    
                         
    for each tDInvoiceBankPayCode:
    
        if tDInvoiceBankPayCode.PayFormatCode_ID <> ? and tDInvoiceBankPayCode.PayFormatCode_ID <> 0
        then do:
            <Q-7 run PayFormatCodePrim (all) (Read) (NoCache)
               (input tDInvoiceBankPayCode.PayFormatCode_ID, (PayFormatCodeID)
                input ?, (PayFormatCode)
                output dataset tqPayFormatCodePrim) in BPaymentFormat>

            for first tqPayFormatCodePrim:
                assign tDInvoiceBankPayCode.tcPayFormatCode            = tqPayFormatCodePrim.tcPayFormatCode
                       tDInvoiceBankPayCode.tcPayFormatCodeDescription = tqPayFormatCodePrim.tcPayFormatCodeDescription.
            end.      
        end.
        else assign tDInvoiceBankPayCode.tcPayFormatCode            = tDInvoiceBankPayCode.DInvoiceBankPayCodeValue
                    tDInvoiceBankPayCode.tcPayFormatCodeDescription = "":U.

        <Q-8 run PayFormatGroupPrim (all) (Read) (NoCache)
           (input tDInvoiceBankPayCode.PayFormatGroup_ID, (PayFormatGroupID)
            input ?, (PayFormatTypeCode)
            input ?, (PayFormatGroupSequence)
            output dataset tqPayFormatGroupPrim) in BPaymentFormat>

        for first tqPayFormatGroupPrim:
            assign tDInvoiceBankPayCode.tcPayFormatGroupCode        = tqPayFormatGroupPrim.tcPayFormatGroupCode
                   tDInvoiceBankPayCode.tcPayFormatGroupDescription = tqPayFormatGroupPrim.tcPayFormatGroupDescription
                   tDInvoiceBankPayCode.tcPayFormatGroupDataType    = tqPayFormatGroupPrim.tcPayFormatGroupDataType
                   tDInvoiceBankPayCode.tlPayFormatGroupIsMandatory = tqPayFormatGroupPrim.tlPayFormatGroupIsMandatory
                   tDInvoiceBankPayCode.tcPayFormatGroupInputOption = tqPayFormatGroupPrim.tcPayFormatGroupInputOption.
        end.
    end.
        
end. /* if can-find first (tDInvoiceBankPayCode where */