Description
Validations done after the Ancestor class validations.
Parameters
| oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program4/bcoacrossref.p)
assign oiReturnStatus = -98
viLocalReturnStatus = 0.
for each t_sCOACrossRef where
t_sCOACrossRef.tc_Status <> "D":U:
/* ===================================== */
/* Get original record in case of modify */
/* ===================================== */
if t_sCOACrossRef.tc_Status = "C":U
then do:
find t_iCOACrossRef where
t_iCOACrossRef.tc_Rowid = t_sCOACrossRef.tc_Rowid
no-error.
if not available t_iCOACrossRef
then next.
end. /* if t_sCOACrossRef.tc_Status = "C":U */
/* ==================================================== */
/* COA Cross Reference Type can't be changed after save */
/* ==================================================== */
if t_sCOACrossRef.tc_Status = "C":U and
t_sCOACrossRef.COACrossRefType <> t_iCOACrossRef.COACrossRefType
then do:
assign vcMessage = trim(#T-22'The COA Cross Reference Type can't be changed for existing records.':255(71466)T-22#) + chr(10) +
trim(substitute(#T-23'Current Type: &1':255(71467)T-23#, trim(t_iCOACrossRef.COACrossRefType) )) + chr(10) +
trim(substitute(#T-24'Entered Type: &1':255(71468)T-24#, trim(t_sCOACrossRef.COACrossRefType) )) + chr(10) +
trim(substitute(#T-35'Cross Reference Code: &1.':255(999890142)T-35#, trim(t_sCOACrossRef.COACrossRefCode) ))
viLocalReturnStatus = -1.
<M-21 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tCOACrossRef.COACrossRefType':U (icFieldName),
input t_sCOACrossRef.COACrossRefType (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sCOACrossRef.tc_Rowid (icRowid),
input 'QadFin-8721':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCOACrossRef>
end. /* if t_sCOACrossRef.tc_Status = "C":U and */
/* ================================================================= */
/* Target Domain can only be changed when using the same shared sets */
/* ================================================================= */
if t_sCOACrossRef.tc_Status = "C":U and
t_sCOACrossRef.TargetDomain_ID <> t_iCOACrossRef.TargetDomain_ID
then do:
/* =========================================== */
/* Check Shared Sets for Current target Domain */
/* =========================================== */
<M-25 run GetTargetSharedSets
(input t_iCOACrossRef.tcTargetDomainCode (icTargetDomainCode),
output viOrigGLSharedSetID (oiGLSharedSetID),
output viOrigDivisionSharedSetID (oiDivisionSharedSetID),
output viOrigCostCentreSharedSetID (oiCostCentreSharedSetID),
output viOrigProjectSharedSetID (oiProjectSharedSetID),
output viFcReturnSuper (oiReturnStatus)) in BCOACrossRef>
if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0
then assign viLocalReturnStatus = viFcReturnSuper.
/* ======================================= */
/* Check Shared Sets for new Target Domain */
/* ======================================= */
<M-26 run GetTargetSharedSets
(input t_sCOACrossRef.tcTargetDomainCode (icTargetDomainCode),
output viTargetGLSharedSetID (oiGLSharedSetID),
output viTargetDivisionSharedSetID (oiDivisionSharedSetID),
output viTargetCostCentreSharedSetID (oiCostCentreSharedSetID),
output viTargetProjectSharedSetID (oiProjectSharedSetID),
output viFcReturnSuper (oiReturnStatus)) in BCOACrossRef>
if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0
then assign viLocalReturnStatus = viFcReturnSuper.
if viOrigGLSharedSetID <> viTargetGLSharedSetID or
viOrigDivisionSharedSetID <> viTargetDivisionSharedSetID or
viOrigCostCentreSharedSetID <> viTargetCostCentreSharedSetID or
viOrigProjectSharedSetID <> viTargetProjectSharedSetID
then do:
assign vcMessage = trim(#T-1'The Target Domain can only be changed to a domain that is using the same shared sets for COA.':255(999890042)T-1#) + chr(10) +
trim(substitute(#T-2'Current Target Domain: &1':255(71391)T-2#, trim(t_iCOACrossRef.tcTargetDomainCode) )) + chr(10) +
trim(substitute(#T-3'Entered Target Domain: &1':255(71387)T-3#, trim(t_sCOACrossRef.tcTargetDomainCode) )) + chr(10) +
trim(substitute(#T-36'Cross Reference Code: &1.':255(999890142)T-36#, trim(t_sCOACrossRef.COACrossRefCode) ))
viLocalReturnStatus = -1.
<M-4 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input 'tCOACrossRef.tctargetDomainCode':U (icFieldName),
input t_sCOACrossRef.tcTargetDomainCode (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sCOACrossRef.tc_Rowid (icRowid),
input 'QadFin-8705':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCOACrossRef>
end. /* if viOrigGLSharedSetID <> viTargetGLSharedSetID or */
end. /* if t_sCOACrossRef.tc_Status = "C":U and */
/* =========================== */
/* Validations on Detail Lines */
/* =========================== */
<M-75 run ValidateComponentPostLines (output viFcReturnSuper (oiReturnStatus)) in BCOACrossRef>
if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and viLocalReturnStatus >= 0)
then assign viLocalReturnStatus = viFcReturnSuper.
end. /* for each t_sCOACrossRef where */
assign oiReturnStatus = viLocalReturnStatus.