project QadFinancials > class BVAT > method CalcAllSelectVAT

query calculated fields procedure

Description

Assign a value to query calculated fields


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
query SelectVAT


program code (program1/bvat.p)

assign vcVatInOutOutputs     = {&VATINOUT-OUTPUTS}
       vcVatPercentageLevels = {&VATPERCENTAGELEVELS}
       vcVatTransactionTypes = {&VATTRANSACTIONTYPES}.

create query vhQuery in widget-pool "non-persistent".
vhQuery:set-buffers(ih_Buffer).
vhQuery:query-prepare("for each ":U + ih_Buffer:table).
vhQuery:query-open().
vhQuery:get-first().
do while not vhQuery:query-off-end:
    assign {&tcVatCodeCalc}            = substring({&tcVatCode}, 1, 8, "CHARACTER":U)
           {&tcVatInOutCalc}           = "?":U
           {&tcVatPercentageLevelCalc} = "?":U
           {&tcVatTransactionTypeTr}   = "?":U.

    do viCounter = num-entries(vcVatInOutOutputs, chr(2)) to 1 by -2 :
        if entry(viCounter, vcVatInOutOutputs, chr(2)) = {&tcVatInOut}
        then do :
            assign {&tcVatInOutCalc} = entry(viCounter - 1,vcVatInOutOutputs, chr(2)) no-error.
            leave.
        end. /* if entry */
    end.

    do viCounter = num-entries(vcVatPercentageLevels, chr(2)) to 1 by -2 :
        if entry(viCounter, vcVatPercentageLevels, chr(2)) = {&tcVatPercentageLevel}
        then do :
            assign {&tcVatPercentageLevelCalc} = entry(viCounter - 1, vcVatPercentageLevels, chr(2)) no-error.
            leave.
        end. /* if entry */
    end.
    
    do viCounter = num-entries(vcVatTransactionTypes, chr(2)) to 1 by -2 :
        if entry(viCounter, vcVatTransactionTypes, chr(2)) = {&tcVatTransactionType}
        then do :
            assign {&tcVatTransactionTypeTr} = entry(viCounter - 1,vcVatTransactionTypes ,chr(2)) no-error.
            leave.
        end. /* if entry */
    end.

    vhQuery:get-next().
end.
vhQuery:query-close().
delete object vhQuery.