project QadFinancials > class BBudgetLinkActual > method AdditionalUpdatesCreateDelete

Description

AdditionalUpdatesCreateDelete; Submethod of AdditionalUpdates


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BBudgetLinkActual.AdditionalUpdates


program code (program6/bbudgetlinkactual.p)

/* ============================================================================================= */
/* For every tBudgetLinkActual that is created, a BudgetLink record will be created or updated.  */
/* ============================================================================================= */


/* ================================================================ */
/* Set Return-status = Default-error                                */
/* ================================================================ */
assign oiReturnStatus = -98.
    
/* ===================== */
/* Empty the temp-tables */
/* ===================== */
empty temp-table tApiBudgetLinkFromActuals.

/* =============================================== */
/* Go through all new/ deletd instance records     */
/* =============================================== */
for each tBudgetLinkActual where 
         tBudgetLinkActual.tc_Status = "N":U or
         tBudgetLinkActual.tc_Status = "D":U 
         no-lock :
    create tApiBudgetLinkFromActuals.
    buffer-copy tBudgetLinkActual
                except  tc_rowid 
                        tc_parentrowid
                        tc_status
                        BudgetLinkActual_ID
                to tApiBudgetLinkFromActuals
    /* This field has to be unique */
    assign tApiBudgetLinkFromActuals.tc_Rowid = tBudgetLinkActual.tc_Rowid + string(tBudgetLinkActual.PostingLine_ID).
    /* Inverse the Amount/Qty for a delete */
    if tBudgetLinkActual.tc_Status = "D":U
    then assign tApiBudgetLinkFromActuals.BudgetLinkActualQTY      = tApiBudgetLinkFromActuals.BudgetLinkActualQTY * -1
                tApiBudgetLinkFromActuals.BudgetLinkActualTC       = tApiBudgetLinkFromActuals.BudgetLinkActualTC * -1
                tApiBudgetLinkFromActuals.BudgetLinkActualSalesQTY = tApiBudgetLinkFromActuals.BudgetLinkActualSalesQTY * -1
                tApiBudgetLinkFromActuals.BudgetLinkActualSalesTC  = tApiBudgetLinkFromActuals.BudgetLinkActualSalesTC  * -1.
end. /* for each */

/* ======================================================================== */
/* No further processing needed if these are no BudgetLinkActuals to update */
/* ======================================================================== */
if not can-find (first tApiBudgetLinkFromActuals)
then do :
    assign oiReturnStatus = 0.
    return.
end. /* if not can-find (first tBudgetCheckInfoWBSQBA) */

/* ================================================================ */
/* Call a method in BBudgetLinkAcutal that will create new records  */
/* ================================================================ */
if viBBudgetLinkBLActID = 0 or viBBudgetLinkBLActID = ?
then do:
    <I-1 {bFcStartAndOpenInstance
            &ADD-TO-TRANSACTION = "true"
            &CLASS              = "BBudgetLink"}>
end. /* if viBBudgetLinkBLActID = 0  */
else do:
    <I-2 {bFcOpenInstance
            &CLASS           = "BBudgetLink"}>
end. /* not if viBBudgetLinkBLActID = 0 */
<M-4 run ApiCreateOrUpdateBudgetLink (input  tApiBudgetLinkFromActuals (tApiBudgetLink), 
                                      output viLocalReturnStatus (oiReturnStatus)) in BBudgetLink>
<I-3 {bFcCloseInstance
            &CLASS           = "BBudgetLink"}>
if viLocalReturnStatus <> 0 
then do :
    assign oiReturnStatus = viLocalReturnStatus.
    if oiReturnStatus < 0 then return.
end. /* if viLocalReturnStatus <> 0 */

/* ================================================================ */
/* Set Return-status = OK                                           */
/* ================================================================ */
if oiReturnStatus = -98
then assign oiReturnStatus = 0.