project QadFinancials > class BBudget > method BudgetWBSRename
Description
This method will rename single budgetWBS-record and all its related BudgetVersionFigure records. This is done based on the input information.
It will also return temp-tables that contain the records that are renamed.
Parameters
icBudgetTcRowid | input | character | BudgetTcRowid |
icBudgetWBSTcRowid | input | character | BudgetWBSTcRowid |
icNewBudgetWBSCode | input | character | NewBudgetWBSCode; new value for field tBudgetWBS.BudgetWBSCode |
iiNewBudgetWBSLineNumber | input | integer | NewBudgetWBSLineNumber |
tNewBudgetWBS | output | temp-table | Temp-table containing the BudgetWBS-records wherefor the status has been set to "C":U and the WBSCode has been updated. |
tNewBudgetVersionFigure | output | temp-table | Temp-table containing the BudgetVersionFigure-records wherefor the status has been set to "C":U and the WBSCode has been updated. |
tNewBudgetVersionGLFig | output | temp-table | Temp-table containing the BudgetVersionGLFig-records wherefor the status has been set to "C":U and the WBSCode has been updated. |
icNewBudgetWBSTopicDescription | input | character | BudgetWBSTopicDescription |
ilNewBudgetWBSIsPrintDesc | input | logical | BudgetWBSIsPrintDesc |
icNewBudgetGroupCode | input | character | Budget Group Code |
icNewAltCOAGroupCode | input | character | Alt COA Group Code |
icNewBudgetWBSFDSLink | input | character | BudgetWBSFDSLink |
icNewBudgetWBSCategory | input | character | BudgetWBSCategory |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
unused
program code (program6/bbudget.p)
/* ========================================================================== */
/* Validate input parameters */
/* ========================================================================== */
if icBudgetTcRowid = ? then assign icBudgetTcRowid = "":U.
if icBudgetWBSTcRowid = ? then assign icBudgetWBSTcRowid = "":U.
if icBudgetTcRowid = "":U
then do :
assign oiReturnStatus = -3
vcMessage = trim(#T-6'You must enter the budget identification (row ID) when renaming of budget topics.':255(447)t-6#).
<M-1 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'QADFIN-486':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBudget>
Return.
end. /* if icBudgetTcRowid = ? */
else do :
find tBudget where
tBudget.tc_Rowid = icBudgetTcRowid and
tBudget.tc_Status <> "D":U
no-lock no-error.
if not available tBudget
then do :
assign oiReturnStatus = -3
vcMessage = trim(substitute(#T-7'Cannot find the budget based on its row ID (&1).':255(448)t-7#,string(icBudgetTcRowid))).
<M-2 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'QADFIN-487':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBudget>
Return.
end. /* if not available tBudget */
end. /* not if icBudgetTcRowid = ? */
if icBudgetWBSTcRowid = "":U
then do :
assign oiReturnStatus = -3
vcMessage = trim(#T-8'You must enter the budget topic identification (row ID) when renaming budget topics.':255(449)t-8#).
<M-3 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'QADFIN-488':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBudget>
Return.
end. /* if icBudgetWBSTcRowid = "":U */
else do :
find tBudgetWBS where
tBudgetWBS.tc_ParentRowid = tBudget.tc_Rowid and
tBudgetWBS.tc_Rowid = icBudgetWBSTcRowid and
tBudgetWBS.tc_Status <> "D":U
no-lock no-error.
if not available tBudgetWBS
then do :
assign oiReturnStatus = -3
vcMessage = trim(substitute(#T-9'Cannot find the current budget WBS topic based on its row ID &1.':255(450)t-9#,string(icBudgetWBSTcRowid))).
<M-4 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'QADFIN-489':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBudget>
Return.
end. /* if not available tBudgetWBS */
end. /* if icBudgetWBSTcRowid = "":U */
/* ==================================================== */
/* No action allowed if the budget is not yet validated */
/* ==================================================== */
if tBudget.BudgetStatus = {&BUDGETSTATUS-INITIAL}
then do :
assign oiReturnStatus = -3
vcMessage = trim(#T-10'You must validate the budget structure before maintaining the WBS.':255(451)t-10#).
<M-5 run SetMessage (input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'QADFIN-496':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBudget>
Return.
end. /* if tBudget.BudgetStatus = {&BUDGETSTATUS-INITIAL} */
/* ========================================== */
/* If no changes are done, then simply return */
/* ========================================== */
if tBudgetWBS.BudgetWBSCode = icNewBudgetWBSCode and tBudgetWBS.BudgetWBSLineNumber = iiNewBudgetWBSLineNumber and
tBudgetWBS.BudgetWBSTopicDescription = icNewBudgetWBSTopicDescription and tBudgetWBS.BudgetWBSIsPrintDesc = ilNewBudgetWBSIsPrintDesc and
tBudgetWBS.tcBudgetGroupCode = icNewBudgetGroupCode and tBudgetWBS.tcAltCOAGroupCode = icNewAltCOAGroupCode and
tBudgetWBS.BudgetWBSFDSLink = icNewBudgetWBSFDSLink and tBudgetWBS.BudgetWBSCategory = icNewBudgetWBSCategory
then return.
/* ========================================================================== */
/* Reset the output temp-tables */
/* ========================================================================== */
empty temp-table tNewBudgetWBS.
empty temp-table tNewBudgetVersionFigure.
empty temp-table tNewBudgetVersionGLFig.
/* ==================================================================== */
/* Change the WBSCode, set the BudgetWBS-record as changed and create a */
/* a corresponding output record and mark it as chaged as well */
/* ==================================================================== */
assign tBudgetWBS.tc_Status = (if tBudgetWBS.tc_Status = "":U then "C":U else tBudgetWBS.tc_Status)
tBudgetWBS.BudgetWBSCode = icNewBudgetWBSCode
tBudgetWBS.BudgetWBSLineNumber = iiNewBudgetWBSLineNumber
tBudgetWBS.BudgetWBSTopicDescription = icNewBudgetWBSTopicDescription
tBudgetWBS.BudgetWBSIsPrintDesc = ilNewBudgetWBSIsPrintDesc
tBudgetWBS.tcBudgetGroupCode = icNewBudgetGroupCode
tBudgetWBS.tcAltCOAGroupCode = icNewAltCOAGroupCode
tBudgetWBS.BudgetWBSFDSLink = icNewBudgetWBSFDSLink
tBudgetWBS.BudgetWBSCategory = if icNewBudgetWBSCategory = "" or icNewBudgetWBSCategory = ?
then {&BUDGETWBSCATEGORY-ASSET}
else icNewBudgetWBSCategory.
assign vcBudgetWBSFDSCodeFrom = "":U
vcBudgetWBSFDSCodeTo = "":U
vcBudgetWBSFDSCode = "":U
vcBudgetWBSFDSList = "":U.
<M-12 run InterpretFDSLink
(input icNewBudgetWBSFDSLink (icBudgetFDSLink),
output vcBudgetWBSFDSCodeFrom (ocBudgetWBSFDSCodeFrom),
output vcBudgetWBSFDSCodeTo (ocBudgetWBSFDSCodeTo),
output vcBudgetWBSFDSCode (ocBudgetWBSFDSCode),
output vcBudgetWBSFDSList (ocBudgetWBSFDSList),
output viFcReturnSuper (oiReturnStatus)) in BBudget>
assign tBudgetWBS.BudgetWBSFDSFromCode = vcBudgetWBSFDSCodeFrom
tBudgetWBS.BudgetWBSFDSToCode = vcBudgetWBSFDSCodeTo
tBudgetWBS.BudgetWBSFDSCode = vcBudgetWBSFDSCode
tBudgetWBS.BudgetWBSFDSList = vcBudgetWBSFDSList.
create tNewBudgetWBS.
buffer-copy tBudgetWBS except BudgetWBSSeq to tNewBudgetWBS.
/* =========================================================================== */
/* Mark the corresponding VersionFigure-records as changed and set the WBSCode */
/* Create a corresponding output record an mark it as changed as well */
/* =========================================================================== */
for each tBudgetVersion where
tBudgetVersion.tc_ParentRowid = tBudget.tc_Rowid and
tBudgetVersion.tc_Status <> "D":U :
for each tBudgetVersionFig where
tBudgetVersionFig.tc_ParentRowid = tBudgetVersion.tc_Rowid and
tBudgetVersionFig.BudgetWBS_ID = tBudgetWBS.BudgetWBS_ID and
tBudgetVersionFig.tc_Status <> "D":U :
assign tBudgetVersionFig.tc_Status = (if tBudgetVersionFig.tc_Status = "":U then "C":U else tBudgetVersionFig.tc_Status)
tBudgetVersionFig.tcBudgetWBSCode = icNewBudgetWBSCode.
create tNewBudgetVersionFigure.
buffer-copy tBudgetVersionFig to tNewBudgetVersionFigure.
end. /* for each tBudgetVersionFig where */
for each tBudgetVersionGLFig where
tBudgetVersionGLFig.tc_ParentRowid = tBudgetVersion.tc_Rowid and
tBudgetVersionGLFig.BudgetWBS_ID = tBudgetWBS.BudgetWBS_ID and
tBudgetVersionGLFig.tc_Status <> "D":U :
assign tBudgetVersionGLFig.tc_Status = (if tBudgetVersionGLFig.tc_Status = "":U then "C":U else tBudgetVersionGLFig.tc_Status)
tBudgetVersionGLFig.tcBudgetWBSCode = icNewBudgetWBSCode
tBudgetVersionGLFig.tiBudgetWBSLineNumber = iiNewBudgetWBSLineNumber
tBudgetVersionGLFig.tcBudgetWBSTopicDescription = icNewBudgetWBSTopicDescription
tBudgetVersionGLFig.tlBudgetWBSIsPrintDesc = ilNewBudgetWBSIsPrintDesc
tBudgetVersionGLFig.tcBudgetGroupCode = icNewBudgetGroupCode
tBudgetVersionGLFig.tcAltCOAGroupCode = icNewAltCOAGroupCode
tBudgetVersionGLFig.tcBudgetWBSFDSLink = icNewBudgetWBSFDSLink
tBudgetVersionGLFig.tcBudgetWBSCategory = if icNewBudgetWBSCategory = "" or icNewBudgetWBSCategory = ?
then {&BUDGETWBSCATEGORY-ASSET}
else icNewBudgetWBSCategory.
create tNewBudgetVersionGLFig.
buffer-copy tBudgetVersionGLFig to tNewBudgetVersionGLFig.
end. /* for each tBudgetVersionFig where */
end. /* for each tBudgetVersion, each tBudgetVersionFig of tBudgetVersion */