project QadFinancials > class BFRWAnalysisCode > method ValidateComponentPreFRWAnCodeElemDet
Parameters
iiGLSSCompany_ID | input | integer | |
iiDivisionSSCompany_ID | input | integer | |
iiCostCentreSSCompany_ID | input | integer | |
iiProjectSSCompany_ID | input | integer | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/bfrwanalysiscode.p)
for each t_sFRWAnCodeElemDet where
t_sFRWAnCodeElemDet.tc_ParentRowid = t_sFRWAnCodeElem.tc_Rowid and
t_sFRWAnCodeElemDet.tc_Status <> "D":U:
assign vcLineNbr = "":U.
find first tAnCodeExcelMapping where
tAnCodeExcelMapping.tiQCode_ID = t_sFRWAnCodeElemDet.FRWAnCodeElemDet_ID
no-error.
if available tAnCodeExcelMapping then
do:
assign vcLineNbr = substitute(#T-74'(Excel Line &1)':255(264440525)T-74#, tAnCodeExcelMapping.tiRowNbr).
end.
/* Remove all duplicates */
for each bsFRWAnCodeElemDet where
bsFRWAnCodeElemDet.tc_ParentRowid = t_sFRWAnCodeElemDet.tc_ParentRowid and
bsFRWAnCodeElemDet.tc_Rowid <> t_sFRWAnCodeElemDet.tc_Rowid and
bsFRWAnCodeElemDet.FRWAnCodeElemDetCode = t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode and
bsFRWAnCodeElemDet.FRWAnCodeElemDetValue = t_sFRWAnCodeElemDet.FRWAnCodeElemDetValue:
if bsFRWAnCodeElemDet.tc_Status = "N":U
then do:
find first tFRWAnCodeElemDet where
tFRWAnCodeElemDet.tc_Rowid = bsFRWAnCodeElemDet.tc_Rowid no-error.
if available tFRWAnCodeElemDet
then delete tFRWAnCodeElemDet.
delete bsFRWAnCodeElemDet.
end.
else assign bsFRWAnCodeElemDet.tc_Status = "D":U.
end.
/* Empty values */
if t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode = "":U or
t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode = ?
then assign t_sFRWAnCodeElemDet.FRWAnCodeElemDetValue = 0.
/* Retrieve the ID of the selected values */
else do:
case t_sFRWAnCodeElem.FRWAnCodeElemCOAType:
when {&FRWANALYSISCOATYPE-COMPANY}
then do:
<Q-51 run CompanyPrim (all) (Read) (NoCache)
(input ?, (LookupCompanyId)
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode, (CompanyCode)
output dataset tqCompanyPrim) in BCompany>
find first tqCompanyPrim where
tqCompanyPrim.tcCompanyCode = t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode
no-error.
if not available tqCompanyPrim
then do:
assign vcMessage = #T-18'Entity code (&1) not found.':200(1341)T-18#
vcMessage = substitute(vcMessage, t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode).
if vcLineNbr <> "":U then assign vcMessage = vcMessage + vcLineNbr.
<M-96 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tFRWAnCodeElemDet.FRWAnCodeElemDetCode':U (icFieldName),
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sFRWAnCodeElemDet.tc_Rowid (icRowid),
input 'qadfin-342221':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
assign oiReturnStatus = -1.
end.
else assign t_sFRWAnCodeElemDet.FRWAnCodeElemDetValue = tqCompanyPrim.tiCompany_ID.
end.
when {&FRWANALYSISCOATYPE-COSTCENTRE}
then do:
<Q-12 run CostCentrePrim (all) (Read) (NoCache)
(input iiGLSSCompany_ID, (CompanyId)
input ?, (CostCentreID)
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode, (CostCentreCode)
output dataset tqCostCentrePrim) in BCostCentre>
find first tqCostCentrePrim where
tqCostCentrePrim.tcCostCentreCode = t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode
no-error.
if not available tqCostCentrePrim
then do:
assign vcMessage = #T-7'Cost centre &1 not found.':200(440919789)T-7#
vcMessage = substitute(vcMessage, t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode).
if vcLineNbr <> "":U then assign vcMessage = vcMessage + vcLineNbr.
<M-16 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tFRWAnCodeElemDet.FRWAnCodeElemDetCode':U (icFieldName),
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sFRWAnCodeElemDet.tc_Rowid (icRowid),
input 'qadfin-86654':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
assign oiReturnStatus = -1.
end.
else assign t_sFRWAnCodeElemDet.FRWAnCodeElemDetValue = tqCostCentrePrim.tiCostCentre_ID.
end.
when {&FRWANALYSISCOATYPE-CURRENCY}
then do:
<Q-78 run CurrencyPrim (all) (Read) (NoCache)
(input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode, (CurrencyCode)
input ?, (Currency_ID)
output dataset tqCurrencyPrim) in BCurrency>
find first tqCurrencyPrim where
tqCurrencyPrim.tcCurrencyCode = t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode
no-error.
if not available tqCurrencyPrim
then do:
assign vcMessage = #T-84'Currency &1 not found.':200(621078586)T-84#
vcMessage = substitute(vcMessage, t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode).
if vcLineNbr <> "":U then assign vcMessage = vcMessage + vcLineNbr.
<M-46 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tFRWAnCodeElemDet.FRWAnCodeElemDetCode':U (icFieldName),
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sFRWAnCodeElemDet.tc_Rowid (icRowid),
input 'qadfin-235099':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
assign oiReturnStatus = -1.
end.
else assign t_sFRWAnCodeElemDet.FRWAnCodeElemDetValue = tqCurrencyPrim.tiCurrency_ID.
end.
when {&FRWANALYSISCOATYPE-DIVISION}
then do:
<Q-77 run DivisionPrim (all) (Read) (NoCache)
(input iiDivisionSSCompany_ID, (CompanyId)
input ?, (DivisionID)
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode, (DivisionCode)
output dataset tqDivisionPrim) in BDivision>
find first tqDivisionPrim where
tqDivisionPrim.tcDivisionCode = t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode
no-error.
if not available tqDivisionPrim
then do:
assign vcMessage = #T-62'Sub-account &1 not found.':200(875477289)T-62#
vcMessage = substitute(vcMessage, t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode).
if vcLineNbr <> "":U then assign vcMessage = vcMessage + vcLineNbr.
<M-27 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tFRWAnCodeElemDet.FRWAnCodeElemDetCode':U (icFieldName),
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sFRWAnCodeElemDet.tc_Rowid (icRowid),
input 'qadfin-455264':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
assign oiReturnStatus = -1.
end.
else assign t_sFRWAnCodeElemDet.FRWAnCodeElemDetValue = tqDivisionPrim.tiDivision_ID.
end.
when {&FRWANALYSISCOATYPE-GL}
then do:
<Q-91 run GLPrim (all) (Read) (NoCache)
(input iiGLSSCompany_ID, (CompanyId)
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode, (GLCode)
input ?, (GLId)
output dataset tqGLPrim) in BGL>
find first tqGLPrim where
tqGLPrim.tcGlCode = t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode
no-error.
if not available tqGLPrim
then do:
assign vcMessage = #T-98'Invalid GL Account: &1':255(71050)T-98#
vcMessage = substitute(vcMessage, t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode).
if vcLineNbr <> "":U then assign vcMessage = vcMessage + vcLineNbr.
<M-22 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tFRWAnCodeElemDet.FRWAnCodeElemDetCode':U (icFieldName),
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sFRWAnCodeElemDet.tc_Rowid (icRowid),
input 'qadfin-191706':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
assign oiReturnStatus = -1.
end.
else assign t_sFRWAnCodeElemDet.FRWAnCodeElemDetValue = tqGLPrim.tiGL_ID.
end.
when {&FRWANALYSISCOATYPE-INTERCO}
then do:
<Q-136 run BusinessRelationByIDCodeIC (all) (Read) (NoCache)
(input ?, (BusinessRelationID)
input ?, (BusinessRelationCode)
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode, (BusinessRelationIntercoCode)
input true, (BusinessRelationIsActive)
output dataset tqBusinessRelationByIDCodeIC) in BBusinessRelation>
find first tqBusinessRelationByIDCodeIC where
tqBusinessRelationByIDCodeIC.tcBusinessRelationICCode = t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode
no-error.
if not available tqBusinessRelationByIDCodeIC
then do:
assign vcMessage = #T-28'Invalid Intercompany Code &1':255(549485124)T-28#
vcMessage = substitute(vcMessage, t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode).
if vcLineNbr <> "":U then assign vcMessage = vcMessage + vcLineNbr.
<M-57 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tFRWAnCodeElemDet.FRWAnCodeElemDetCode':U (icFieldName),
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sFRWAnCodeElemDet.tc_Rowid (icRowid),
input 'qadfin-148296':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
assign oiReturnStatus = -1.
end.
else assign t_sFRWAnCodeElemDet.FRWAnCodeElemDetValue = tqBusinessRelationByIDCodeIC.tiBusinessRelation_ID.
end.
when {&FRWANALYSISCOATYPE-JOURNAL}
then do:
<Q-29 run JournalPrim (all) (Read) (NoCache)
(input viCompanyId, (CompanyId)
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode, (JournalCode)
input ?, (JournalID)
output dataset tqJournalPrim) in BJournal>
find first tqJournalPrim where
tqJournalPrim.tcJournalCode = t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode
no-error.
if not available tqJournalPrim
then do:
assign vcMessage = #T-11'Invalid Daybook code: &1':255(227702850)T-11#
vcMessage = substitute(vcMessage, t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode).
if vcLineNbr <> "":U then assign vcMessage = vcMessage + vcLineNbr.
<M-83 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tFRWAnCodeElemDet.FRWAnCodeElemDetCode':U (icFieldName),
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sFRWAnCodeElemDet.tc_Rowid (icRowid),
input 'qadfin-85208':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
assign oiReturnStatus = -1.
end.
else assign t_sFRWAnCodeElemDet.FRWAnCodeElemDetValue = tqJournalPrim.tiJournal_ID.
end.
when {&FRWANALYSISCOATYPE-LAYER}
then do:
<Q-48 run LayerPrim (all) (Read) (NoCache)
(input ?, (LayerId)
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode, (LayerCode)
output dataset tqLayerPrim) in BLayer>
find first tqLayerPrim where
tqLayerPrim.tcLayerCode = t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode
no-error.
if not available tqLayerPrim
then do:
assign vcMessage = #T-73'Invalid Layer code: &1':255(564319652)T-73#
vcMessage = substitute(vcMessage, t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode).
if vcLineNbr <> "":U then assign vcMessage = vcMessage + vcLineNbr.
<M-34 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tFRWAnCodeElemDet.FRWAnCodeElemDetCode':U (icFieldName),
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sFRWAnCodeElemDet.tc_Rowid (icRowid),
input 'qadfin-164034':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
assign oiReturnStatus = -1.
end.
else assign t_sFRWAnCodeElemDet.FRWAnCodeElemDetValue = tqLayerPrim.tiLayer_ID.
end.
when {&FRWANALYSISCOATYPE-PROJECT}
then do:
<Q-44 run ProjectPrim (all) (Read) (NoCache)
(input iiProjectSSCompany_ID, (CompanyId)
input ?, (ProjectID)
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode, (ProjectCode)
output dataset tqProjectPrim) in BProject>
find first tqProjectPrim where
tqProjectPrim.tcProjectCode = t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode
no-error.
if not available tqProjectPrim
then do:
assign vcMessage = #T-30'Invalid Project code: &1':255(144664601)T-30#
vcMessage = substitute(vcMessage, t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode).
if vcLineNbr <> "":U then assign vcMessage = vcMessage + vcLineNbr.
<M-49 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tFRWAnCodeElemDet.FRWAnCodeElemDetCode':U (icFieldName),
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sFRWAnCodeElemDet.tc_Rowid (icRowid),
input 'qadfin-321647':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
assign oiReturnStatus = -1.
end.
else assign t_sFRWAnCodeElemDet.FRWAnCodeElemDetValue = tqProjectPrim.tiProject_ID.
end.
when {&FRWANALYSISCOATYPE-SAF1} or
when {&FRWANALYSISCOATYPE-SAF2} or
when {&FRWANALYSISCOATYPE-SAF3} or
when {&FRWANALYSISCOATYPE-SAF4} or
when {&FRWANALYSISCOATYPE-SAF5} or
when {&FRWANALYSISCOATYPE-SAF6} or
when {&FRWANALYSISCOATYPE-SAF7} or
when {&FRWANALYSISCOATYPE-SAF8} or
when {&FRWANALYSISCOATYPE-SAF9} or
when {&FRWANALYSISCOATYPE-SAF10}
then do:
<Q-72 run SafPrim (all) (Read) (NoCache)
(input t_sFRWAnCodeElemDet.FRWAnCodeElemDetValue, (SafID)
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode, (SafCode)
input ?, (SafConceptCode)
output dataset tqSafPrim) in BSaf>
find first tqSafPrim where
tqSafPrim.tcSafCode = t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode
no-error.
if ambiguous tqSafPrim
then do:
assign vcMessage = #T-89'The SAF code (&1) is used by more than one SAF concept. Please use the lookup to select the correct combination.':255(112320309)T-89#
vcMessage = substitute(vcMessage, t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode).
if vcLineNbr <> "":U then assign vcMessage = vcMessage + vcLineNbr.
<M-69 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 't_sFRWAnCodeElemDet.FRWAnCodeElemDetCode':U (icFieldName),
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sFRWAnCodeElemDet.tc_Rowid (icRowid),
input 'qadfin-225549':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
assign oiReturnStatus = -1.
end.
else if not available tqSafPrim
then do:
assign vcMessage = #T-43'Invalid SAF code: &1':255(778901501)T-43#
vcMessage = substitute(vcMessage, t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode).
if vcLineNbr <> "":U then assign vcMessage = vcMessage + vcLineNbr.
<M-70 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 't_sFRWAnCodeElemDet.FRWAnCodeElemDetCode':U (icFieldName),
input t_sFRWAnCodeElemDet.FRWAnCodeElemDetCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sFRWAnCodeElemDet.tc_Rowid (icRowid),
input 'qadfin-175037':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
assign oiReturnStatus = -1.
end.
else assign t_sFRWAnCodeElemDet.FRWAnCodeElemDetValue = tqSafPrim.tiSaf_ID.
end.
end case.
end. /* else if is empty */
end. /* for each t_sFRWAnCodeElemDet where */