project QadFinancials > class BCOACrossRef > method SetupValidateGetUsedCOA

Description

Get the used GL-DIV-CC-Project combinations


Parameters


iiSourceDomainIDinputinteger
iiYearPeriodinputinteger
ilValidateDivisioninputlogical
ilValidateCostCentreinputlogical
ilValidateProjectinputlogical
oiCOARef#outputinteger
oiPostingHistRead#outputinteger
oiTotalReads#outputinteger
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BCOACrossRef.SetupValidate


program code (program6/bcoacrossref.p)

<I-38 {READDIRECTDBACCESS
     &READTABLENAMES = "PostingHist GL Division CostCentre Project Company"}>
 
assign oiReturnStatus = -98.

 /* ======================== */
/* Get companies for domain */
/* ======================== */                                                              
for each Company where
         Company.Domain_ID = iiSourceDomainID
         no-lock :

    assign oiTotalReads# = oiTotalReads# + 1.

    /* ========================================================================== */
    /* Get the PostingHist records en get the used combinations GL_DIV-CC-Project */
    /* ========================================================================== */
    assign viGL_ID = 0.
    for each PostingHist of Company where
             PostingHist.PostingHistYearPeriodFrom >= iiYearPeriod
             no-lock
             break by PostingHist.Company_ID
                   by PostingHist.GL_ID
                   by PostingHist.Division_ID
                   by PostingHist.Costcentre_ID
                   by PostingHist.Project_ID:

        assign oiPostingHistRead# = oiPostingHistRead# + 1
               oiTotalReads#      = oiTotalReads# + 1.

        if first-of (PostingHist.Project_ID)
        then do :

            if viGL_ID <> PostingHist.GL_ID
            then do :
                assign oiTotalReads# = oiTotalReads# + 1.
                find gL of PostingHist no-lock.
                if available GL 
                then assign viGL_ID  = GL.GL_ID
                            vcGLCode = GL.GLCode.                             
            end.

            assign vcDivisionCode = ''.
            if ilValidateDivision = true and PostingHist.Division_ID <> 0 and PostingHist.Division_ID <> ?
            then do:
                assign oiTotalReads# = oiTotalReads# + 1.
                find Division of PostingHist no-lock.
                if available Division then assign vcDivisionCode = Division.DivisionCode.
            end.

            assign vcCostCentreCode = ''.
            if ilValidateCostCentre = true and PostingHist.CostCentre_ID <> 0 and PostingHist.CostCentre_ID <> ?
            then do:
                assign oiTotalReads# = oiTotalReads# + 1.
                find CostCentre of PostingHist no-lock.
                if available CostCentre then assign vcCostCentreCode = CostCentre.CostCentreCode.
            end.

            assign vcProjectCode = ''.
            if ilValidateProject = true and PostingHist.Project_ID <> 0 and PostingHist.Project_ID <> ?
            then do:
                assign oiTotalReads# = oiTotalReads# + 1.
                find qaddb.Project of PostingHist no-lock.
                if available qaddb.Project then assign vcProjectCode = qaddb.Project.ProjectCode.
            end.

            if not can-find(tCOACrossRefResult where
                            tCOACrossRefResult.tcGLCode         = vcGLCode         and
                            tCOACrossRefResult.tcDivisionCode   = vcDivisionCode   and
                            tCOACrossRefResult.tcCostCentreCode = vcCostCentreCode and
                            tCOACrossRefResult.tcProjectCode    = vcProjectCode)
            then do:
            
                create tCOACrossRefResult.
                assign oiCOARef#                           = oiCOARef# + 1
                       tCOACrossRefResult.tcGLCode         = vcGLCode
                       tCOACrossRefResult.tcDivisionCode   = vcDivisionCode
                       tCOACrossRefResult.tcCostCentreCode = vcCostCentreCode
                       tCOACrossRefResult.tcProjectCode    = vcProjectCode.

            end. /* if not can-find */

        end. /* if first-of (PostingHist.Project_ID */

    end. /* for each PostingHist */

end. /* for each Company */

if oiReturnStatus = -98
then assign oiReturnStatus = 0.