project QadFinancials > class BBudgetLink > method DeleteBudgetLinkByBudgetID
Description
This method will delete all Budgetlink records dependent on the BudgetID
Parameters
icBudgetIDS | input | character | Budget ID |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
unused
program code (program4/bbudgetlink.p)
/* first check if the paramters contain some values */
if icBudgetIDS = "":U or icBudgetIDS = ?
then return.
/* Get all BudgetLinks with the BudgetID */
/* pay attention that the parameter icBudgetIDS can contain several IDs ! */
do viCounter= 1 to num-entries(icBudgetIDS,chr(2)):
/* read the correct Budgetlink record with the budgetID */
<Q-7 run BudgetLinkByBudgetPerWBS (all) (Read) (NoCache)
(input ?, (BudgetLinkID)
input entry(vicounter,icBudgetIDS,chr(2)), (BudgetID)
input ?, (BudgetWBSID)
input ?, (FromBudgetPeriodID)
input ?, (ToBudgetPeriodID)
output dataset tqBudgetLinkByBudgetPerWBS) in BBudgetLink >
find first tqBudgetLinkByBudgetPerWBS no-lock no-error.
if not available tqBudgetLinkByBudgetPerWBS
then return.
/* concatinate all budgetlinkID to load all the data at once*/
for each tqBudgetLinkByBudgetPerWBS:
assign vcBudgetLinkIDS = (if vcBudgetLinkIDS = "":U
then string(tqBudgetLinkByBudgetPerWBS.tiBudgetLink_ID)
else vcBudgetLinkIDS + chr(4) + string(tqBudgetLinkByBudgetPerWBS.tiBudgetLink_ID)).
end.
end.
/* Get all the necessary records with a list of budgetIDS */
<M-2 run DataLoad
(input ? (icRowids),
input vcBudgetLinkIDS (icPkeys),
input ? (icObjectIds),
input '' (icFreeform),
input ? (ilKeepPrevious),
output viFcReturnSuper (oiReturnStatus)) in BBudgetLink>
if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and oiReturnStatus = 0)
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.
/* set all the records that are read to status D(eleted) */
for each tBudgetLink:
assign tBudgetLink.tc_Status = "D":U.
end.
/* validate the data that will be deleted */
<M-3 run ValidateBC (output viFcReturnSuper (oiReturnStatus)) in BBudgetLink>
if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and oiReturnStatus = 0)
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.
/* do some additional/external updates if necessary */
<M-4 run AdditionalUpdates (output viFcReturnSuper (oiReturnStatus)) in BBudgetLink>
if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and oiReturnStatus = 0)
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.
/* commit everything to the Database */
<M-5 run DataSave (output viFcReturnSuper (oiReturnStatus)) in BBudgetLink>
if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and oiReturnStatus = 0)
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.