project QadFinancials > class BBudget > method BudgetWBSInsertAdjustSequence


Parameters


icBudgetTcRowidinputcharacter
iiBudgetWBSIDinputinteger
ocNewRecordWBSSeqoutputcharacter
iiParentBudgetWBSIDinputinteger
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BBudget.BudgetWBSInsert


program code (program7/bbudget.p)

assign oiReturnStatus = -98.

/* ============================================================================ */
/* Get Sequence of selected Active Row                                          */
/* ============================================================================ */
find first tBudgetWBS where
           tBudgetWBS.tc_ParentRowid      = icBudgetTcRowid     and
           tBudgetWBS.BudgetWBS_ID        = iiBudgetWBSID       and
           tBudgetWBS.tc_Status           <> "D":U
           no-error.
if available tBudgetWBS
then assign ocNewRecordWBSSeq = tBudgetWBS.tcBudgetWBSSeqStr
            /* vdNewRecordWBSSeq = decimal(tBudgetWBS.tcBudgetWBSSeqStr) */.

/* ============================================================================ */
/* Adjust the Sequence for the rows that belongs to same parent row but having  */
/* bigger Sequence number.                                                      */
/* ============================================================================ */
for each tBudgetWBS where
         tBudgetWBS.tc_ParentRowid      = icBudgetTcRowid     and
         tBudgetWBS.ParentBudgetWBS_ID  = iiParentBudgetWBSID and
         tBudgetWBS.tcBudgetWBSSeqStr  >= ocNewRecordWBSSeq   and
         tBudgetWBS.tc_Status          <> "D":U:

/* ============================================================ */
/* Raise the retrieved sequence by a jump of the correct level  */
/* Level1 = Level1-jump                                         */
/* Level2 = Level1-jump / 1000                                  */
/* Level3 = Level1-jump / 1000000                               */
/* ============================================================ */
    assign vdJumpCurrentLevel = vdFSDLevelOneJump.
    do viCounter = 1 to (tBudgetWBS.BudgetFDSSeq - 1) by 1 :
        assign vdJumpCurrentLevel = vdJumpCurrentLevel / 1000.
    end. /* do viCounter */
    assign tBudgetWBS.tcBudgetWBSSeqStr = string(decimal(tBudgetWBS.tcBudgetWBSSeqStr) + vdJumpCurrentLevel, "999999999999999999999999999999999999999999999999").
    /* assign tBudgetWBS.BudgetWBSSeq = tBudgetWBS.BudgetWBSSeq + vdJumpCurrentLevel.
    assign tBudgetWBS.tcBudgetWBSSeqStr = string(tBudgetWBS.BudgetWBSSeq). */
    create tNewBudgetWBS.
    buffer-copy tBudgetWBS except BudgetWBSSeq to tNewBudgetWBS.

    for each tBudgetVersionFig where
             tBudgetVersionFig.BudgetWBS_ID = tBudgetWBS.BudgetWBS_ID:
        assign tBudgetVersionFig.tcBudgetWBSSeq = tBudgetWBS.tcBudgetWBSSeqStr.
        create tNewBudgetVersionFigure.
        buffer-copy tBudgetVersionFig to tNewBudgetVersionFigure.
    end.

    for each tBudgetVersionGLFig where
             tBudgetVersionGLFig.BudgetWBS_ID = tBudgetWBS.BudgetWBS_ID:
        assign tBudgetVersionGLFig.tcBudgetWBSSeq = tBudgetWBS.tcBudgetWBSSeqStr.
        create tNewBudgetVersionGLFig.
        buffer-copy tBudgetVersionGLFig to tNewBudgetVersionGLFig.
    end.
end. /* for each tBudgetWBS */

assign oiReturnStatus = 0.