project QadFinancials > class BDDocument > method CheckDeductionCatCodeExist

Description

This method will be used in deduction review module.


Parameters


icDeductionCatCodeinputcharacter
icExpenseEntityinputcharacter
iiDInvoiceIdinputinteger
olIsCatCodeValidoutputlogical
ilIsAutoWriteOffinputlogical
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


unused


program code (program1/bddocument.p)

assign oiReturnStatus   = 0
       olIsCatCodeValid = no.

if ilIsAutoWriteOff
then do:
    /* using expense entity code to check the deduction cat code */
    if icExpenseEntity = ? or icExpenseEntity = '':U then return.

    /* get domain code/id by expense entity */
    <Q-2 run CompanyByCompanyCodeDomainCode (all) (Read) (NoCache)
       (input ?, (CompanyId)
        input icExpenseEntity, (CompanyCode)
        input ?, (DomainCode)
        input ?, (DomainId)
        input ?, (CompanyIsActive)
        output dataset tqCompanyByCompanyCodeDomainCode) in BCompany>
    find first tqCompanyByCompanyCodeDomainCode no-error.
    if available tqCompanyByCompanyCodeDomainCode
    then do:
        /* checking the deduction cat code */
        if icDeductionCatCode = ? or icDeductionCatCode = '':U then return.
        <Q-46 run GetDeductionByCodeDomain (all) (Read) (NoCache)
           (input tqCompanyByCompanyCodeDomainCode.tcDomainCode, (DomainCode)
            input icDeductionCatCode, (DeductionCatCode)
            output dataset tqGetDeductionByCodeDomain) in BDeductionCat>
        find first tqGetDeductionByCodeDomain no-error.
        if available tqGetDeductionByCodeDomain
        then do:
            assign olIsCatCodeValid = yes.
            return.
        end.
    end.
end.
else do:
    /* using dinvoice_id to check the deduction cat code */
    if iiDInvoiceId = ? or iiDInvoiceId <= 0 then return.
    /* get dinvoice company first */
    <Q-48 run DInvoicePrim (all) (Read) (NoCache)
       (input ?, (CompanyId)
        input iiDInvoiceId, (DInvoiceId)
        input ?, (PeriodYear)
        input ?, (JournalId)
        input ?, (JournalCode)
        input ?, (DInvoiceVoucher)
        output dataset tqDInvoicePrim) in BDInvoice>
    find first tqDInvoicePrim no-error.
    if available tqDInvoicePrim
    then do:
        /* get domain code */
        <Q-82 run CompanyByCompanyCodeDomainCode (all) (Read) (NoCache)
           (input tqDInvoicePrim.tiCompany_ID, (CompanyId)
            input ?, (CompanyCode)
            input ?, (DomainCode)
            input ?, (DomainId)
            input ?, (CompanyIsActive)
            output dataset tqCompanyByCompanyCodeDomainCode) in BCompany>
        find first tqCompanyByCompanyCodeDomainCode no-error.
        if available tqCompanyByCompanyCodeDomainCode
        then do:
            /* checking the deduction cat code */
            if icDeductionCatCode = ? or icDeductionCatCode = '':U then return.
            <Q-11 run GetDeductionByCodeDomain (all) (Read) (NoCache)
               (input tqCompanyByCompanyCodeDomainCode.tcDomainCode, (DomainCode)
                input icDeductionCatCode, (DeductionCatCode)
                output dataset tqGetDeductionByCodeDomain) in BDeductionCat>
            find first tqGetDeductionByCodeDomain no-error.
            if available tqGetDeductionByCodeDomain
            then do:
                assign olIsCatCodeValid = yes.
                return.
            end.
        end.
    end.
end.