Description
Get the used GL-DIV-CC-Project combinations
Parameters
iiSourceDomainID | input | integer | |
iiYearPeriod | input | integer | |
ilValidateDivision | input | logical | |
ilValidateCostCentre | input | logical | |
ilValidateProject | input | logical | |
oiCOARef# | output | integer | |
oiPostingHistRead# | output | integer | |
oiTotalReads# | output | integer | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
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.