project QadFinancials > class BBudget > method InitialValues

Description

This method will initialize all dataset in BBudget component.


Parameters


icTableNameinputcharacterName of the database table of which a record is created in the class temp-table.
oiReturnStatusoutputinteger


Internal usage


unused


program code (program/bbudget.p)

<ANCESTOR-CODE>
    
    case icTableName :
        
        /* === BUDGET === */
        when "Budget":U
        then do :
            assign tBudget.Usr_ID                    = viUsrId 
                   tBudget.tcUsrLogin                = vcUserLogin
                   tBudget.tcCurrencyCode            = vcCompanyLC
                   tBudget.Currency_ID               = viCompanyLCId
                   tBudget.tcCurrencyCode            = vcCompanyLC
                   tBudget.BudgetStatus              = {&BUDGETSTATUS-INITIAL}
                   tBudget.BudgetType                = {&BUDGETTYPE-GLOBAL}
                   tBudget.BudgetIsCompanyDependent  = true
                   tBudget.BudgetIsWithQuantityData  = false
                   tBudget.BudgetIsCheckActualOnLine = false
                   tBudget.BudgetIsCheckCommitOnLine = false
                   tBudget.BudgetInputLevelBudget    = 1
                   tBudget.BudgetInputLevelEAC       = 1
                   tBudget.BudgetInputLevelFin       = 1
                   tBudget.BudgetGroupCategory       = 1 /* budgetgroup enhancement - ddl 07/03/08 */
                   tBudget.BudgetCheckReportPeriod   = {&BUDGETOVERRUN-NONE}
                   tBudget.BudgetOverrunTotal        = {&BUDGETOVERRUN-NONE}
                   tBudget.BudgetOverrunPeriod       = {&BUDGETOVERRUN-NONE}
                   tBudget.BudgetOverrunYTD          = {&BUDGETOVERRUN-NONE}
                   tBudget.BudgetForecastType        = {&BUDGETFORECASTTYPE-LTE}.
            /* Set tBudget.BudgetIsAutoRollUp = true is any-budget is found with true for this field */
            <Q-6 assign vlFcQueryRecordsAvailable = BudgetByBudgetIDCodeStatus (NoCache)  (input ?, (BudgetID) 
                                                                    input ?, (BudgetCode) 
                                                                    input ?, (BudgetStatus) 
                                                                    input ?, (CompanyId) 
                                                                    input ?, (ProjectCode) 
                                                                    input ?, (CostCentreCode) 
                                                                    input ?, (BudgetIsCheckActualOnLine) 
                                                                    input ?, (BudgetIsCheckCommitOnLine) 
                                                                    input false, (BudgetIsAutoRollUp) 
                                                                    input ?, (ProjectID) 
                                                                    input ?, (CostCentreID) 
                                                                    input ?, (BudgetType)) in BBudget >
            assign tBudget.BudgetIsAutoRollUp = (vlFcQueryRecordsAvailable = false).
            /* Create a default BudgetVersion as well */
            <M-1 run AddDetailLine (input  'BudgetVersion':U (icTable), 
                        input  tBudget.tc_Rowid (icParentRowid), 
                        output viFcReturnSuper (oiReturnStatus)) in BBudget>
            if viFcReturnSuper < 0 
            then do :
                assign oiReturnStatus = viFcReturnSuper.
                return.
            end. /* if viFcReturnSuper < 0  */
            assign tBudgetVersion.BudgetVersionCode        = #T-7'Initial Version':20(487)t-7#
                   tBudgetVersion.BudgetVersionDescription = tBudgetVersion.BudgetVersionCode
                   tBudgetVersion.Budget_ID                = tBudget.Budget_ID
                   tBudgetVersion.BudgetVersionIsActive    = true.
            /* Create a default BudgetCompany as well: company = currency-company */
            <M-2 run AddDetailLine (input  'BudgetCompany':U (icTable), 
                        input  tBudget.tc_Rowid (icParentRowid), 
                        output viFcReturnSuper (oiReturnStatus)) in BBudget>
            if viFcReturnSuper < 0 
            then do :
                assign oiReturnStatus = viFcReturnSuper.
                return.
            end. /* if viFcReturnSuper < 0  */
            assign tBudgetCompany.Budget_ID  = tBudget.Budget_ID
                   tBudgetCompany.Company_ID = viCompanyId.
            <Q-3 run CompanyPrim (all) (Read) (NoCache)
          (input viCompanyId, (LookupCompanyId)
           input ?, (CompanyCode)
           output dataset tqCompanyPrim) in BCompany >
            find first tqCompanyPrim where 
                       tqCompanyPrim.tiCompany_ID = viCompanyId
                       no-lock no-error.
            assign tBudgetCompany.tcCompanyCode = tqCompanyPrim.tcCompanyCode.
        end. /* Budget */
        
        /* === BUDGETWBSROSTER === */
        when "BudgetWBSRoster":U
        then do :
            if can-find (first bBudgetWBSRoster where
                               bBudgetWBSRoster.BudgetWBS_ID = tBudgetWBSRoster.BudgetWBS_ID and 
                               (bBudgetWBSRoster.BudgetWBSRosterDate = today or 
                                bBudgetWBSRoster.tc_Status           = "N":U))
            then assign tBudgetWBSRoster.BudgetWBSRosterDate = ?.
            else assign tBudgetWBSRoster.BudgetWBSRosterDate = today.
        end. /* BudgetWBSRoster */
        
        /* === BUDGETVERSION === */
        when "BudgetVersion":U
        then do :
            assign tBudgetVersion.BudgetVersionCreateDate = today
                   tBudgetVersion.BudgetVersionCreateTime = time
                   tBudgetVersion.BudgetVersionIsActive   = false.
            assign tBudgetVersion.tcBudgetVersionCreateTimeForm = 
                string(trunc(tBudgetVersion.BudgetVersionCreateTime / 3600,0),"99":U)  + ":":U + 
                string(trunc((tBudgetVersion.BudgetVersionCreateTime - trunc(tBudgetVersion.BudgetVersionCreateTime / 3600,0) * 3600) / 60,0),"99":U) + ":":U + 
                string(tBudgetVersion.BudgetVersionCreateTime - trunc(tBudgetVersion.BudgetVersionCreateTime / 60,0) * 60,"99":U) no-error.
            /* Get the Report-period that embraces today */
            <Q-5 run ReportPeriodByDate (all) (Read) (NoCache)
          (input tBudgetVersion.BudgetVersionCreateDate, (Date)
           output dataset tqReportPeriodByDate) in BReportPeriod >
            find first tqReportPeriodByDate no-lock no-error.
            if available tqReportPeriodByDate
            then assign tBudgetVersion.tiReportPeriodYear   = tqReportPeriodByDate.tiReportPeriodYear
                        tBudgetVersion.tiReportPeriodPeriod = tqReportPeriodByDate.tiReportPeriodPeriod
                        tBudgetVersion.ReportPeriod_ID      = tqReportPeriodByDate.tiReportPeriod_ID.
        end. /* when "BudgetVersion":U */
        
        /* === BUDGETFDS === */
        when "BudgetFDS":U
        then do :
            /* Get the last used sequence */
            for each bBudgetFDS where
                     bBudgetFDS.tc_ParentRowid = tBudgetFDS.tc_ParentRowid
                     no-lock :
                if bBudgetFDS.BudgetFDSSeq > viHighestFDSSequence
                then assign viHighestFDSSequence = bBudgetFDS.BudgetFDSSeq.
            end. /* for each bBudgetFDS where */
            assign tBudgetFDS.BudgetFDSSeq  = viHighestFDSSequence + 1
                   tBudgetFDS.BudgetFDSType = {&BUDGETFDSTYPE-GL}.
        end. /* BudgetFDS */
        
        /* === BUDGETWBS === */
        when "BudgetWBS":U
        then do:
            assign tBudgetWBS.BudgetWBSOverrunTotal       = {&BUDGETOVERRUN-NONE}
                   tBudgetWBS.BudgetWBSOverrunPeriod      = {&BUDGETOVERRUN-NONE}
                   tBudgetWBS.BudgetWBSOverrunYTD         = {&BUDGETOVERRUN-NONE}
                   tBudgetWBS.BudgetWBSCostRevenue        = {&BUDGETWBSCOSTREVENUE-COSTREVENUE}
                   tBudgetWBS.BudgetWBSStatus             = {&BUDGETWBSSTATUS-ACTIVE}
                   tBudgetWBS.BudgetWBSCostType           = {&BUDGETWBSCOSTTYPE-DIRECT}
                   tBudgetWBS.BudgetWBSCategory           = {&BUDGETWBSCATEGORY-ASSET}
                   tBudgetWBS.BudgetWBSIsWithSumLine      = false
                   tBudgetWBS.BudgetWBSIsPrintDesc        = false
                   tBudgetWBS.BudgetWBSIsRollUp           = true.
            find bBudget where
                 bBudget.tc_Rowid = tBudgetWBS.tc_ParentRowid
                 no-lock.
            if available bBudget
            then do :
                if bBudget.BudgetStatus = {&BUDGETSTATUS-INITIAL}
                then do :
                    assign oiReturnStatus = -3
                           vcMessage      = trim(substitute(#T-8'You can only create budget WBS topics if the budget structure has been validated (budget: &1).':255(488)T-8#,bBudget.BudgetCode)).
                    <M-4 run SetMessage (input  vcMessage (icMessage),
                     input  '':U (icArguments),
                     input  '':U (icFieldName),
                     input  '':U (icFieldValue),
                     input  'E':U (icType),
                     input  3 (iiSeverity),
                     input  bBudget.tc_Rowid (icRowid),
                     input  'QADFIN-504':U (icFcMsgNumber),
                     input  '' (icFcExplanation),
                     input  '' (icFcIdentification),
                     input  '' (icFcContext),
                     output viFcReturnSuper (oiReturnStatus)) in BBudget>
                    Return.
                end. /* if bBudget.BudgetStatus = {&BUDGETSTATUS-INITIAL} */
                assign tBudgetWBS.BudgetWBSOverrunTotal  = tBudget.BudgetOverrunTotal
                       tBudgetWBS.BudgetWBSOverrunPeriod = tBudget.BudgetOverrunPeriod
                       tBudgetWBS.BudgetWBSOverrunYTD    = tBudget.BudgetOverrunYTD.
            end. /* if available bBudget */
            else assign tBudgetWBS.BudgetWBSOverrunTotal  = {&BUDGETOVERRUN-NONE}
                        tBudgetWBS.BudgetWBSOverrunPeriod = {&BUDGETOVERRUN-NONE}
                        tBudgetWBS.BudgetWBSOverrunYTD    = {&BUDGETOVERRUN-NONE}.
        end. /* BudgetWBS */
        
    end case.