project QadFinancials > class BCOACrossRef > method GetCOACrossRefAltCombined1
Description
Get the correct mapping record for COA Cross Reference Types Alternate & Combined. This is the first step using an equatlity on the AccountSourceFrom.
Parameters
olMappingFound | output | logical | |
iiCOACrossRefID | input | integer | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program6/bcoacrossref.p)
/* ==================================== */
/* Use following sequence to check */
/* 1. GL, Division, CostCentre, Project */
/* 2. GL, Division, CostCentre */
/* 3. GL, Division, , Project */
/* 4. GL, Division, , */
/* 5. GL, , , */
/* ==================================== */
assign viLocalReturnStatus = 0
oiReturnStatus = -98.
STEPSBLOCK:
do viSteps = 1 to 5:
DETAILBLOCK:
for each tqCOACrossRefDetByIDParentID where
tqCOACrossRefDetByIDParentID.tiCOACrossRef_ID = iiCOACrossRefID and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLFrom = tCOACrossRefResult.tcGLCode
use-index SortOrder:
/* =============================== */
/* Skip the line with only the '*' */
/* =============================== */
if tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLFrom = '*' and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLTo = '' and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCFrom = '' and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo = '' and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivFrom = '' and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo = '' and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjFrom = '' and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo = ''
then next.
/* ======== */
/* Check GL */
/* ======== */
if can-do("1,2,3,4,5", string(viSteps))
then do:
if not (((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLTo = ? or
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLTo = '':U) and
tCOACrossRefResult.tcGLCode matches tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLFrom) or
((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLTo <> ? and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLTo <> '':U) and
tCOACrossRefResult.tcGLCode >= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLFrom and
tCOACrossRefResult.tcGLCode <= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLTo))
then next DETAILBLOCK.
end. /* if tCOACrossRefResult.tcGLCode <> ? */
/* ============== */
/* Check Division */
/* ============== */
if can-do("1,2,3,4", string(viSteps))
then do:
if not (((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo = ? or
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo = '':U) and
tCOACrossRefResult.tcDivisionCode matches tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivFrom) or
((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo <> ? and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo <> '':U) and
tCOACrossRefResult.tcDivisionCode >= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivFrom and
tCOACrossRefResult.tcDivisionCode <= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo))
then next DETAILBLOCK.
end. /* if tCOACrossRefResult.tcDivisionCode <> ? */
if viSteps = 5 and
((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivFrom <> '':U and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivFrom <> ?) or
(tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo <> '':U and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo <> ?))
then next DETAILBLOCK.
/* ================= */
/* Check Cost Centre */
/* ================= */
if can-do("1,2", string(viSteps))
then do:
if not (((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo = ? or
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo = '':U) and
tCOACrossRefResult.tcCostCentreCode matches tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCFrom) or
((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo <> ? and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo <> '':U) and
tCOACrossRefResult.tcCostCentreCode >= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCFrom and
tCOACrossRefResult.tcCostCentreCode <= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo))
then next DETAILBLOCK.
end. /* if tCOACrossRefResult.tcCostCentreCode <> ? */
if can-do("3,4,5", string(viSteps)) and
((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCFrom <> '':U and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCFrom <> ?) or
(tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo <> '':U and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo <> ?))
then next DETAILBLOCK.
/* ============= */
/* Check Project */
/* ============= */
if can-do("1,3", string(viSteps))
then do:
if not (((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo = ? or
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo = '':U) and
tCOACrossRefResult.tcProjectCode matches tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjFrom) or
((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo <> ? and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo <> '':U) and
tCOACrossRefResult.tcProjectCode >= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjFrom and
tCOACrossRefResult.tcProjectCode <= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo))
then next DETAILBLOCK.
end. /* if tCOACrossRefResult.tcProjectCode <> ? */
if can-do("2,4,5", string(viSteps)) and
((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjFrom <> '':U and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjFrom <> ?) or
(tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo <> '':U and
tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo <> ?))
then next DETAILBLOCK.
assign olMappingFound = yes
tCOACrossRefResult.tcTargetGLCode = tqCOACrossRefDetByIDParentID.tcTargetGLCode
tCOACrossRefResult.tiTargetGL_ID = tqCOACrossRefDetByIDParentID.tiTargetGL_ID
tCOACrossRefResult.tcTargetDivisionCode = tqCOACrossRefDetByIDParentID.tcTargetDivisionCode
tCOACrossRefResult.tiTargetDivision_ID = tqCOACrossRefDetByIDParentID.tiTargetDivision_ID
tCOACrossRefResult.tcTargetCostCentreCode = tqCOACrossRefDetByIDParentID.tcTargetCostCentreCode
tCOACrossRefResult.tiTargetCostCentre_ID = tqCOACrossRefDetByIDParentID.tiTargetCostCentre_ID
tCOACrossRefResult.tcTargetProjectCode = tqCOACrossRefDetByIDParentID.tcTargetProjectCode
tCOACrossRefResult.tiTargetProject_ID = tqCOACrossRefDetByIDParentID.tiTargetProject_ID
tCOACrossRefResult.tcTargetAltCOAStructDetCode = tqCOACrossRefDetByIDParentID.tcTargetAltCOAStructDetCode
tCOACrossRefResult.tiTargetAltCOAStructDet_ID = tqCOACrossRefDetByIDParentID.tiTargetAltCOAStructDet_ID
tCOACrossRefResult.tlGLIsDivisionAccount = tqCOACrossRefDetByIDParentID.tlGLIsDivisionAccount
tCOACrossRefResult.tlGLIsCostCentreAccount = tqCOACrossRefDetByIDParentID.tlGLIsCostCentreAccount
tCOACrossRefResult.tlGLIsProjectAccount = tqCOACrossRefDetByIDParentID.tlGLIsProjectAccount
tCOACrossRefResult.tlGLIsSafAccount = tqCOACrossRefDetByIDParentID.tlGLIsSafAccount
tCOACrossRefResult.tlCostCentreIsWithSaf = tqCOACrossRefDetByIDParentID.tlCostCentreIsWithSaf
tCOACrossRefResult.tlProjectIsWithSaf = tqCOACrossRefDetByIDParentID.tlProjectIsWithSaf
tCOACrossRefResult.tcGLExchangeMethod = tqCOACrossRefDetByIDParentID.tcGLExchangeMethod
tCOACrossRefResult.tcExchangeRateTypeCode = tqCOACrossRefDetByIDParentID.tcExchangeRateTypeCode
tCOACrossRefResult.tcAltCOAStructDetDescription = tqCOACrossRefDetByIDParentID.tcAltCOAStructDetDescription
tCOACrossRefResult.tcAltCOAStructDetSeq = tqCOACrossRefDetByIDParentID.tcAltCOAStructDetSeq
tCOACrossRefResult.tiAltCOAStruct_ID = tqCOACrossRefDetByIDParentID.tiAltCOAStruct_ID.
leave STEPSBLOCK.
end. /* DETAILBLOCK: */
end. /* STEPSBLOCK */
assign oiReturnStatus = viLocalReturnStatus.