project QadFinancials > class BBankEntry > method AdditionalUpdatesInvDiscountAccount

Description

check which discount account must be used, and return that by output parameter


Parameters


blQStartedGetGLIDBasedOnGLCodeinput-outputlogicalis query GetGLIDBasedInGLCode already started or not
ocDiscountGLCodeoutputcharacterDiscount GL Code
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BBankEntry.AdditionalUpdatesInvDiscountCurrDiff


program code (program4/bbankentry.p)

if blQStartedGetGLIDBasedOnGLCode <> true
    then do :
        <Q-8 run GetGLIDBasedOnGLCode  (Start) in BGL >
        assign blQStartedGetGLIDBasedOnGLCode = true.
    end. /* if */
    <Q-1 run GetGLIDBasedOnGLCode (all) (Read) (NoCache)
       (input viCompanyId, (CompanyID)
        input tBankState.tcGLCode, (GLCode)
        output dataset tqGLIDBasedOnGLCode) in BGL >
    find first tqGLIDBasedOnGLCode no-error.
    if not available tqGLIDBasedOnGLCode
    then do:
        assign vcMessage      = trim(substitute(#T-5'The bank account &1 on bank statement line &2 cannot be found.':150(359)t-5#, tBankState.tcGLCode, string(tBankStateLine.BankStateLineNumber))).
               oiReturnStatus = -1.
        <M-2 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-6930':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BBankEntry>
        return.
    end. /* if not available tqGLIDBasedOnGLCode */
    /* First to check AP discount account */
    if (tBankStateAlloc.CInvoice_ID <> 0 and tBankStateAlloc.CInvoice_ID <> ?) or 
       (tBankStateAlloc.BankStateAllocType = {&BANKSTATEALLOCTYPE-NCINV})      or 
       (tBankStateAlloc.CCollection_ID <> 0 and tBankStateAlloc.CCollection_ID <> ?) 
    then do:
        assign ocDiscountGLCode = tqGLIDBasedOnGLCode.tcBankAPDiscountGLCode.
        if tqGLIDBasedOnGLCode.tcBankAPDiscountGLCode = ? or
           tqGLIDBasedOnGLCode.tcBankAPDiscountGLCode = "":U
        then do:
            assign vcMessage      = trim(substitute(#T-6'You first must define the AP discount account for the GL bank account for the bank statement line &1.':150(63807)t-6#,string(tBankStateLine.BankStateLineNumber)))
                   oiReturnStatus = -1.
            <M-3 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-6931':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BBankEntry>
            return.
        end. /* if tqGLIDBasedOnGLCode.tcBankDiscountGLCode = ? or */
    end. /* end of if (tbankstatealloc.cinvoice_id */
    /* check AR discount account */
    if (tBankStateAlloc.DInvoice_ID <> 0 and tBankStateAlloc.DInvoice_ID <> ?) or 
        (tBankStateAlloc.BankStateAllocType = {&BANKSTATEALLOCTYPE-NDINV})      or 
        (tBankStateAlloc.DCollection_ID <> 0 and tBankStateAlloc.DCollection_ID <> ?) 
    then do:
        assign ocDiscountGLCode = tqGLIDBasedOnGLCode.tcBankARDiscountGLCode.
        if tqGLIDBasedOnGLCode.tcBankARDiscountGLCode = ? or
           tqGLIDBasedOnGLCode.tcBankARDiscountGLCode = "":U
        then do:
            assign vcMessage      = trim(substitute(#T-7'You first must define the AR discount account for the GL bank account for the bank statement line &1.':150(63818)t-7#,string(tBankStateLine.BankStateLineNumber)))
                   oiReturnStatus = -1.
            <M-4 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-6932':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BBankEntry>
            return.
        end.
    end. /* end of if (tbankstatealloc.cinvoice_id */