project QadFinancials > class BBudget > method ValidateComponentBudgetWBSDef
Description
This method is the submethod of validateComponentBudgetWBS because it could not contain all the code.
Parameters
iiBudgetCompanyID | input | integer | BudgetCompanyID |
icBudgetWBSTcRowid | input | character | BudgetWBSTcRowid |
icBudgetWBSCode | input | character | BudgetWBSCode |
icBudgetWBSFDSType | input | character | BudgetWBSFDSType |
icBudgetWBSFDSCode | input | character | BudgetWBSFDSCode |
icBudgetWBSFDSList | input | character | BudgetWBSFDSList |
icBudgetWBSFDSFromCode | input | character | BudgetWBSFDSFromCode |
icBudgetWBSFDSToCode | input | character | BudgetWBSFDSToCode |
icBudgetWBSFDSDefault | input | character | BudgetWBSFDSDefault |
icSafConceptCode | input | character | SAF Concept Code |
icBudgetGroupCode | input | character | BudgetGroupCode |
icBudgetProjectCode | input | character | BudgetProjectCode |
icBudgetCostCentreCode | input | character | Cost Center Code |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program5/bbudget.p)
/* ============================================================================================== */
/* Check the FDS-Default (submethod); */
/* - it is only accesible for type SAF */
/* - it is mandatory for type SAF when working with a project-budget */
/* - the value should follow the saf-concept of the Wbs-node */
/* - if the budgetgroup of the node is filled then the budgetgroup of the saf should be the same */
/* - if from/to, list or wildcard are filled then the saf-code should fit these criteria */
/* ============================================================================================== */
if icBudgetWBSFDSDefault <> "":U
then do :
if (icBudgetProjectCode = "":U or icBudgetProjectCode = ?) and
(icBudgetCostCentreCode = "":U or icBudgetCostCentreCode = ?)
then do :
assign oiReturnStatus = -1
vcMessage = trim(substitute(#T-11'WBS node &1. You can only define a COA default for project and cost center budgets.':255(633)t-11#,icBudgetWBSCode)).
<M-9 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input icBudgetWBSTcRowid (icRowid),
input 'QADFIN-1100':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBudget>
Return.
end. /* if icBudgetProjectCode <> "":U and */
else return.
end.
/* it is only accesible for type SAF */
if icBudgetWBSFDSType <> {&BUDGETFDSTYPE-SAF}
then do :
assign oiReturnStatus = -1
vcMessage = trim(substitute(#T-12'WBS node &1. You can only define a COA default for COA type &2.':255(634)t-12#,icBudgetWBSCode,{&BUDGETFDSTYPE-SAF-TR})).
<M-1 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input icBudgetWBSTcRowid (icRowid),
input 'QADFIN-545':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBudget>
Return.
end. /* if icBudgetWBSFDSType <> {&BUDGETFDSTYPE-SAF} */
/* the value should follow the saf-concept of the Wbs-node */
<Q-4 run SafByCodeIDActiveConcept (all) (Read) (NoCache)
(input icBudgetWBSFDSDefault, (SafCode)
input icSafConceptCode, (SafConceptCode)
input ?, (SafID)
input ?, (SafIsActive)
input ?, (SafConceptID)
input ?, (BudgetGroupID)
input ?, (BudgetGroupCode)
output dataset tqSafByCodeIDActiveConcept) in BSaf >
find first tqSafByCodeIDActiveConcept where
tqSafByCodeIDActiveConcept.tcSafCode = icBudgetWBSFDSDefault and
tqSafByCodeIDActiveConcept.tcSafConceptCode = icSafConceptCode
no-lock no-error.
if not available tqSafByCodeIDActiveConcept
then do :
assign oiReturnStatus = -1
vcMessage = trim(substitute(#T-13'WBS node &1. The default posting value &2 is not a SAF value of concept &3.':255(635)t-13#,icBudgetWBSCode,icBudgetWBSFDSDefault,icSafConceptCode)).
<M-5 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input 'tBudgetWBS.BudgetWBSFDSDefault':U (icFieldName),
input icBudgetWBSFDSDefault (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input icBudgetWBSTcRowid (icRowid),
input 'QADFIN-547':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBudget>
Return.
end. /* if not available tqSafByCodeIDActiveConcept */
/* if the budgetgroup of the node is filled then the budgetgroup of the saf should be the same */
if icBudgetGroupCode <> "":U and
tqSafByCodeIDActiveConcept.tcBudgetGroupCode <> icBudgetGroupCode
then do :
if vlFcQueryRecordsAvailable = false
then do :
assign oiReturnStatus = -1
vcMessage = trim(substitute(#T-14'WBS node &1. The budget group (&2) of the posting default (&3) must match the budget group of the WBS node (&4).':255(636)t-14#,icBudgetWBSCode,if tqSafByCodeIDActiveConcept.tcBudgetGroupCode = ? then "?":U else tqSafByCodeIDActiveConcept.tcBudgetGroupCode,icBudgetWBSFDSDefault,icBudgetGroupCode)).
<M-3 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input 'tBudgetWBS.BudgetWBSFDSDefault':U (icFieldName),
input icBudgetWBSFDSDefault (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input icBudgetWBSTcRowid (icRowid),
input 'QADFIN-546':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBudget>
Return.
end. /* if vlFcQueryRecordsAvailable = false */
end. /* if icBudgetGroupCode <> "":U and */
/* if from/to is filled then the saf-code should fit these criteria */
if icBudgetWBSFDSFromCode <> "":U and
icBudgetWBSFDSToCode <> "":U and
(icBudgetWBSFDSFromCode > icBudgetWBSFDSDefault or
icBudgetWBSFDSToCode < icBudgetWBSFDSDefault)
then do :
assign oiReturnStatus = -1
vcMessage = trim(substitute(#T-15'WBS node &1. The posting default (&2) must be within the specified range (&3 - &4).':255(637)t-15#,icBudgetWBSCode,icBudgetWBSFDSDefault,icBudgetWBSFDSFromCode,icBudgetWBSFDSToCode)).
<M-6 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input 'tBudgetWBS.BudgetWBSFDSDefault':U (icFieldName),
input icBudgetWBSFDSDefault (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input icBudgetWBSTcRowid (icRowid),
input 'QADFIN-548':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBudget>
Return.
end. /* if icBudgetWBSFDSFromCode <> "":U and */
/* if List is filled then the saf-code should fit these criteria */
if icBudgetWBSFDSList <> "":U and
LOOKUP(icBudgetWBSFDSDefault,icBudgetWBSFDSList,",":U) = 0
then do :
assign oiReturnStatus = -1
vcMessage = trim(substitute(#T-16'WBS node &1. The posting default (&2) must be in the list of valid values (&3).':255(638)t-16#,icBudgetWBSCode,icBudgetWBSFDSDefault,icBudgetWBSFDSList)).
<M-7 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input 'tBudgetWBS.BudgetWBSFDSDefault':U (icFieldName),
input icBudgetWBSFDSDefault (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input icBudgetWBSTcRowid (icRowid),
input 'QADFIN-549':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBudget>
Return.
end. /* if icBudgetWBSFDSList <> "":U and */
/* if Code (wild-card) filled then the saf-code should fit these criteria */
if icBudgetWBSFDSCode <> "":U and
icBudgetWBSFDSCode <> "#":U and
not icBudgetWBSFDSDefault matches icBudgetWBSFDSList
then do :
assign oiReturnStatus = -1
vcMessage = trim(substitute(#T-17'WBS node &1. The posting default (&2) must match the wildcard (&3).':255(639)t-17#,icBudgetWBSCode,icBudgetWBSFDSDefault,icBudgetWBSFDSCode)).
<M-8 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input 'tBudgetWBS.BudgetWBSFDSDefault':U (icFieldName),
input icBudgetWBSFDSDefault (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input icBudgetWBSTcRowid (icRowid),
input 'QADFIN-550':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBudget>
Return.
end. /* if icBudgetWBSFDSCode <> "":U and */
/* if Code (wild-card) filled then the saf-code should fit these criteria */
if icBudgetWBSFDSCode = "#":U and
(icBudgetWBSFDSType = {&BUDGETFDSTYPE-SAF} or
icBudgetWBSFDSType = {&BUDGETFDSTYPE-GL})
then do :
assign oiReturnStatus = -1
vcMessage = trim(substitute(#T-18'WBS node &1. The indication of empty nodes (&2) is not allowed for type &3 and &4.':255(640)T-18#,icBudgetWBSCode,trim("#":U),trim({&BUDGETFDSTYPE-SAF-TR}),trim({&BUDGETFDSTYPE-GL-TR}))).
<M-10 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input 'tBudgetWBS.BudgetWBSFDSDefault':U (icFieldName),
input icBudgetWBSFDSDefault (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input icBudgetWBSTcRowid (icRowid),
input 'QADFIN-1378':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBudget>
Return.
end. /* if icBudgetWBSFDSCode = "#":U and */