project QadFinancials > class BCInvoice > method DefaultValuesBank

Description

Default the Bank Records


Parameters


iiCreditorIdinputintegerCreditor ID
iiCInvoiceIdinputinteger
icRowIdinputcharacterRow ID
idCInvoiceOriginalTCinputdecimalInvoice Amount in TC
tApiCInvoiceBankoutputtemp-table
tApiCInvoiceBankPayCodeoutputtemp-table
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BCInvoice.DefaultValuesGeneralInfo


program code (program3/bcinvoice.p)

<Q-9 run BankNumberForCIDefault (all) (Read) (NoCache)
   (input iiCreditorId, (ParentObjectId)
    input ?, (BankNumberIsDefault)
    input true, (BankNumberIsActive)
    input ?, (CompanyId)
    output dataset tqBankNumberForCIDefault) in BBankNumber >

/* Find active defeault banknumber for current entity */    
find first tqBankNumberForCIDefault where
           tqBankNumberForCIDefault.tiParentObject_ID     = iiCreditorId and
           tqBankNumberForCIDefault.tlBankNumberIsDefault = true         and
           tqBankNumberForCIDefault.tlBankNumberIsActive  = true         and
           tqBankNumberForCIDefault.tiCompany_ID          = viCompanyId
           no-error.
/* If can not find deafault banknumber just find the active banknumber for current entity */
if not available tqBankNumberForCIDefault
then find first tqBankNumberForCIDefault where
           tqBankNumberForCIDefault.tiParentObject_ID     = iiCreditorId and
           tqBankNumberForCIDefault.tlBankNumberIsActive  = true         and
           tqBankNumberForCIDefault.tiCompany_ID          = viCompanyId
           no-error.
/* if can not find banknumber in the previous step just find the first active banknumber for the customer */
if not available tqBankNumberForCIDefault
then find first tqBankNumberForCIDefault where
           tqBankNumberForCIDefault.tiParentObject_ID     = iiCreditorId and
           tqBankNumberForCIDefault.tlBankNumberIsActive  = true         and
           tqBankNumberForCIDefault.tlBankNumberIsDefault = true
           no-error.

if available tqBankNumberForCIDefault
then do:
    
    /* First clear the existing stuff */
    for each tCInvoiceBank where
             tCInvoiceBank.tc_ParentRowid = icRowId :
        for each tCInvoiceBankPayCode where
                 tCInvoiceBankPayCode.tc_ParentRowid = tCInvoiceBank.tc_Rowid:
             if tCInvoiceBankPayCode.tc_Status = "N":U
             then delete tCInvoiceBankPayCode.
             else assign tCInvoiceBankPayCode.tc_Status = "D":U.
        end. /* for each tCInvoiceBankPayCode where */
        if tCInvoiceBank.tc_Status = "N":U
        then delete tCInvoiceBank.
        else assign tCInvoiceBank.tc_Status = "D":U.
    end. /* for each tCInvoiceBank where */
    
    <M-2 run AddDetailLine
       (input  'CInvoiceBank':U (icTable), 
        input  icRowId (icParentRowid), 
        output viFcReturnSuper (oiReturnStatus)) in BCInvoice>

    if viFcReturnSuper < 0 or
       oiReturnStatus  = 0
    then assign oiReturnStatus = viFcReturnSuper.

    if oiReturnStatus < 0
    then return.

    assign tCInvoiceBank.CInvoice_ID            = iiCInvoiceId
           tCInvoiceBank.BankNumber_ID          = tqBankNumberForCIDefault.tiBankNumber_ID
           tCInvoiceBank.tcBankNumberExtension  = tqBankNumberForCIDefault.tcBankNumberExtension
           tCInvoiceBank.tiParentObject_ID      = tqBankNumberForCIDefault.tiParentObject_ID
           tCInvoiceBank.tcBankNumber           = tqBankNumberForCIDefault.tcBankNumberFormatted
           tCInvoiceBank.tcBankNumberSwiftCode  = tqBankNumberForCIDefault.tcBankNumberSwiftCode
           tCInvoiceBank.tcBankNumberValidation = tqBankNumberForCIDefault.tcBankNumberValidation
           tCInvoiceBank.tcBusinessRelationCode = tqBankNumberForCIDefault.tcBusinessRelationCode
           tCInvoiceBank.CInvoiceBankToPayTC    = idCInvoiceOriginalTC.

    if tqBankNumberForCIDefault.tiBankPayFormat_ID <> 0 and
       tqBankNumberForCIDefault.tiBankPayFormat_ID <> ?
    then do:
        <Q-7 run BankPayFormatByID (all) (Read) (NoCache)
           (input tqBankNumberForCIDefault.tiBankPayFormat_ID, (BankPayFormatId)
            input viCompanyId, (CompanyId)
            output dataset tqBankPayFormatByID) in BBankPayFormat >

        find first tqBankPayFormatByID where
                   tqBankPayFormatByID.tiBankPayFormat_ID = tqBankNumberForCIDefault.tiBankPayFormat_ID and
                   tqBankPayFormatByID.tiCompany_ID       = viCompanyId
                   no-error.

        if available tqBankPayFormatByID
        then do:
            assign tCInvoiceBank.tcOwnBankNumber              = tqBankPayFormatByID.tcBankNumber
                   tCInvoiceBank.tcOwnGLCode                  = tqBankPayFormatByID.tcGLCode
                   tCInvoiceBank.tcPayFormatTypeCode          = tqBankPayFormatByID.tcPayFormatTypeCode
                   tCInvoiceBank.tcPayFormatTypePayInstrument = "?":U.
            assign vcPAYFORMATPAYINSTRUMENTS = {&PAYFORMATPAYINSTRUMENTS}.
            do viCounter = num-entries(vcPAYFORMATPAYINSTRUMENTS,chr(2)) to 1 by -2 :
                if entry(viCounter,vcPAYFORMATPAYINSTRUMENTS,chr(2)) = tqBankPayFormatByID.tcPayFormatTypePayInstrument
                then do :
                    assign tCInvoiceBank.tcPayFormatTypePayInstrument = entry(viCounter - 1,vcPAYFORMATPAYINSTRUMENTS,chr(2)) no-error.
                    leave.
                end. /* if entry */
            end.
        end.
    end.

    create tApiCInvoiceBank.
    raw-transfer tCInvoiceBank to tApiCInvoiceBank.

    <M-8 run DefaultValuesBankCreateCIBankPayCode
       (input  tCInvoiceBank.CInvoiceBank_ID (iiCInvoiceBankId), 
        input  tCInvoiceBank.BankNumber_ID (iiBankNumberId), 
        input  tCInvoiceBank.tc_Rowid (icCInvoiceBankRowid), 
        output tApiCInvoiceBankPayCode (tApiCInvoiceBankPayCode), 
        output viFcReturnSuper (oiReturnStatus)) in BCInvoice>

    if viFcReturnSuper < 0 or
       oiReturnStatus  = 0
    then assign oiReturnStatus = viFcReturnSuper.

    if oiReturnStatus < 0
    then return.
end.