project QadFinancials > class BYearClosing > method CalcAllSelectYearClosing

query calculated fields procedure

Description

Assign a value to query calculated fields


Parameters


iiCompanyIdinputintegerCompany id
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
query SelectYearClosing


program code (program1/byearclosing.p)

assign vcLayerTypes = {&LAYERTYPECODES}.

/* Backward compatibility */
/* Before implementation, layer was allways assumed as Official layer, but in database it is blank */
assign viOfficialLayerId   = ?
       vcOfficialLayerCode = "":U.

create query vhQuery in widget-pool "non-persistent".
vhQuery:forward-only = yes.
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:
    if {&tiLayer_ID} = ? or
       {&tiLayer_ID} = 0
    then do:
        <Q-68 run LayerByCodeTypeCode (all) (Read) (NoCache)
           (input {&LAYERTYPECODE-OFFICIAL}, (LayerTypeCode)
            input '':U, (LayerCode)
            output dataset tqLayerByCodeTypeCode) in BLayer>
        find first tqLayerByCodeTypeCode where
                   tqLayerByCodeTypeCode.tcLayerTypeCode = {&LAYERTYPECODE-OFFICIAL} and
                   tqLayerByCodeTypeCode.tlLayerIsActive = true
                   no-error.

        assign viOfficialLayerId   = tqLayerByCodeTypeCode.tiLayer_ID
               vcOfficialLayerCode = tqLayerByCodeTypeCode.tcLayerCode.

        leave.
    end. /* if {&tiLayer_ID} = ? or */
    vhQuery:get-next().
end. /* do while not vhQuery:query-off-end: */
vhQuery:query-close().
delete object vhQuery.


/* Fill in missing data because of backward compatibility and also fill in translations */
create query vhQuery in widget-pool "non-persistent".
vhQuery:forward-only = yes.
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:
    /* Fill in missing layer before Year-end-closing was extended about layer closing */
    if {&tiLayer_ID} = ? or
       {&tiLayer_ID} = 0
    then assign {&tiLayer_ID}      = viOfficialLayerId
                {&tcLayerCode}     = vcOfficialLayerCode
                {&tcLayerTypeCode} = {&LAYERTYPECODE-OFFICIAL}.

    /* Fill in Layer type translation */
    assign {&tcLayerTypeCodeTr} = entry(lookup({&tcLayerTypeCode}, vcLayerTypes, chr(2)) 
                                        - (if lookup({&tcLayerTypeCode},vcLayerTypes,chr(2)) modulo 2 = 0 then 1 else 0), 
                                        vcLayerTypes, chr(2)).

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