project QadFinancials > class BBudget > method BudgetWBSAutoLinkAssignFDS

Description

This submethod of Method BudgetWBSAutoLink will assign FDS or BudgetGroup content per FDS Type.


Parameters


bcBudgetWBSCodesinput-outputcharacterBudgetWBSCodes
icBudgetFRWChartCodeinputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BBudget.BudgetWBSAutoLink
method BBudget.BudgetWBSAutoLinkCycle


program code (program9/bbudget.p)

/* Remove BudgetWBSFDSList condition for FIN-10317 */
if (tNewBudgetWBS.BudgetWBSFDSCode     <> "":U and tNewBudgetWBS.BudgetWBSFDSCode     <> ?)         or
/*   (tNewBudgetWBS.BudgetWBSFDSList     <> "":U and tNewBudgetWBS.BudgetWBSFDSList     <> ?)         or */
   (tNewBudgetWBS.tcBudgetGroupCode    <> "":U and tNewBudgetWBS.tcBudgetGroupCode    <> ?)         or
   (tNewBudgetWBS.BudgetWBSFDSFromCode <> "":U and tNewBudgetWBS.BudgetWBSFDSFromCode <> ?)         or
   (tNewBudgetWBS.BudgetWBSFDSToCode   <> "":U and tNewBudgetWBS.BudgetWBSFDSToCode   <> ?)         
then do:
    assign oiReturnStatus = 1
           bcBudgetWBSCodes = bcBudgetWBSCodes + (if bcBudgetWBSCodes = "":U
                                                  then tNewBudgetWBS.BudgetWBSCode
                                                  else chr(10) + tNewBudgetWBS.BudgetWBSCode).
    return.
end.

find tBudgetWBS where
     tBudgetWBS.tc_Rowid = tNewBudgetWBS.tc_Rowid
     no-lock no-error.
if not available tBudgetWBS
then do:
    assign oiReturnStatus = -1.

    <M-14 run SetMessage
          (input  trim(#T-15'Data inconsistency.':255(665)T-15#) (icMessage), 
           input  '':U (icArguments), 
           input  'tNewBudgetWBS.tc_rowid':U (icFieldName), 
           input  ? (icFieldValue), 
           input  'E':u (icType), 
           input  3 (iiSeverity), 
           input  ? (icRowid), 
           input  'QADFIN-2267':U (icFcMsgNumber), 
           input  '' (icFcExplanation), 
           input  '' (icFcIdentification), 
           input  '' (icFcContext), 
           output oiReturnStatus (oiReturnStatus)) in BBudget>
    return.
end.

case tNewBudgetWBS.BudgetFDSType:
    when {&BUDGETFDSTYPE-GL}
    then do:
        <Q-1 run GLByCode (all) (Read) (NoCache)
          (input viCompanyId, (CompanyId)
           input tNewBudgetWBS.BudgetWBSCode, (GLCode)
           output dataset tqGLByCode) in BGL >
        find tqGLByCode no-lock no-error.
        if available tqGLByCode
        then do:
            create tNewMBudgetWBS.
            buffer-copy tNewBudgetWBS to tNewMBudgetWBS.
            assign tNewMBudgetWBS.BudgetWBSFDSList = tNewBudgetWBS.BudgetWBSCode
                   tBudgetWBS.BudgetWBSFDSList     = tNewBudgetWBS.BudgetWBSCode  
                   tNewMBudgetWBS.BudgetWBSFDSLink = tNewBudgetWBS.BudgetWBSCode
                   tBudgetWBS.BudgetWBSFDSLink     = tNewBudgetWBS.BudgetWBSCode.
    
        end.
        else do:
            <Q-2 run BudgetGroupPrim (all) (Read) (NoCache)
          (input ?, (BudgetGroupID)
           input tNewBudgetWBS.BudgetWBSCode, (BudgetGroupCode)
           output dataset tqBudgetGroupPrim) in BBudgetGroup >
            find tqBudgetGroupPrim no-lock no-error.
            if available tqBudgetGroupPrim
            then do:
                create tNewMBudgetWBS.
                buffer-copy tNewBudgetWBS to tNewMBudgetWBS.
                assign tNewMBudgetWBS.tcBudgetGroupCode = tNewBudgetWBS.BudgetWBSCode
                       tBudgetWBS.tcBudgetGroupCode     = tNewBudgetWBS.BudgetWBSCode.
                        
            end.
        end.
    end. /* case gl */
    when {&BUDGETFDSTYPE-DIVISION}
    then do:
        <Q-5 run DivisionPrim (all) (Read) (NoCache)
          (input viCompanyId, (CompanyId)
           input ?, (DivisionID)
           input tNewBudgetWBS.BudgetWBSCode, (DivisionCode)
           output dataset tqDivisionPrim) in BDivision >
        find tqDivisionPrim no-lock no-error.
        if available tqDivisionPrim
        then do:
            create tNewMBudgetWBS.
            buffer-copy tNewBudgetWBS to tNewMBudgetWBS.
            assign tNewMBudgetWBS.BudgetWBSFDSList = tNewBudgetWBS.BudgetWBSCode
                   tBudgetWBS.BudgetWBSFDSList     = tNewBudgetWBS.BudgetWBSCode
                   tNewMBudgetWBS.BudgetWBSFDSLink = tNewBudgetWBS.BudgetWBSCode
                   tBudgetWBS.BudgetWBSFDSLink     = tNewBudgetWBS.BudgetWBSCode.

        end.
        else do:
            <Q-6 run BudgetGroupPrim (all) (Read) (NoCache)
          (input ?, (BudgetGroupID)
           input tNewBudgetWBS.BudgetWBSCode, (BudgetGroupCode)
           output dataset tqBudgetGroupPrim) in BBudgetGroup >
            find tqBudgetGroupPrim no-lock no-error.
            if available tqBudgetGroupPrim
            then do:
                create tNewMBudgetWBS.
                buffer-copy tNewBudgetWBS to tNewMBudgetWBS.
                assign tNewMBudgetWBS.tcBudgetGroupCode = tNewBudgetWBS.BudgetWBSCode
                       tBudgetWBS.tcBudgetGroupCode     = tNewBudgetWBS.BudgetWBSCode.
            end.
        end.
    end. /* case division */
    when {&BUDGETFDSTYPE-COSTCENTRE}
    then do:
        <Q-8 run CostCentrePrim (all) (Read) (NoCache)
          (input viCompanyId, (CompanyId)
           input ?, (CostCentreID)
           input tNewBudgetWBS.BudgetWBSCode, (CostCentreCode)
           output dataset tqCostCentrePrim) in BCostCentre >
        find tqCostCentrePrim no-lock no-error.
        if available tqCostCentrePrim
        then do:
            create tNewMBudgetWBS.
            buffer-copy tNewBudgetWBS to tNewMBudgetWBS.
            assign tNewMBudgetWBS.BudgetWBSFDSList = tNewBudgetWBS.BudgetWBSCode
                   tBudgetWBS.BudgetWBSFDSList     = tNewBudgetWBS.BudgetWBSCode
                   tNewMBudgetWBS.BudgetWBSFDSLink = tNewBudgetWBS.BudgetWBSCode
                   tBudgetWBS.BudgetWBSFDSLink     = tNewBudgetWBS.BudgetWBSCode.

        end.
        else do:
            <Q-7 run BudgetGroupPrim (all) (Read) (NoCache)
          (input ?, (BudgetGroupID)
           input tNewBudgetWBS.BudgetWBSCode, (BudgetGroupCode)
           output dataset tqBudgetGroupPrim) in BBudgetGroup >
            find tqBudgetGroupPrim no-lock no-error.
            if available tqBudgetGroupPrim
            then do:
                create tNewMBudgetWBS.
                buffer-copy tNewBudgetWBS to tNewMBudgetWBS.
                assign tNewMBudgetWBS.tcBudgetGroupCode = tNewBudgetWBS.BudgetWBSCode
                       tBudgetWBS.tcBudgetGroupCode     = tNewBudgetWBS.BudgetWBSCode.
            end.
        end.
    end. /* case costcentre */
    when {&BUDGETFDSTYPE-PROJECT}
    then do:
        <Q-10 run ProjectPrim (all) (Read) (NoCache)
          (input viCompanyId, (CompanyId)
           input ?, (ProjectID)
           input tNewBudgetWBS.BudgetWBSCode, (ProjectCode)
           output dataset tqProjectPrim) in BProject >
        find tqProjectPrim no-lock no-error.
        if available tqProjectPrim
        then do:
            create tNewMBudgetWBS.
            buffer-copy tNewBudgetWBS to tNewMBudgetWBS.
            assign tNewMBudgetWBS.BudgetWBSFDSList = tNewBudgetWBS.BudgetWBSCode
                   tBudgetWBS.BudgetWBSFDSList     = tNewBudgetWBS.BudgetWBSCode
                   tNewMBudgetWBS.BudgetWBSFDSLink = tNewBudgetWBS.BudgetWBSCode
                   tBudgetWBS.BudgetWBSFDSLink     = tNewBudgetWBS.BudgetWBSCode.
        end.
        else do:
            <Q-9 run BudgetGroupPrim (all) (Read) (NoCache)
          (input ?, (BudgetGroupID)
           input tNewBudgetWBS.BudgetWBSCode, (BudgetGroupCode)
           output dataset tqBudgetGroupPrim) in BBudgetGroup >
            find tqBudgetGroupPrim no-lock no-error.
            if available tqBudgetGroupPrim
            then do:
                create tNewMBudgetWBS.
                buffer-copy tNewBudgetWBS to tNewMBudgetWBS.
                assign tNewMBudgetWBS.tcBudgetGroupCode = tNewBudgetWBS.BudgetWBSCode
                       tBudgetWBS.tcBudgetGroupCode     = tNewBudgetWBS.BudgetWBSCode.
            end.
        end.
    end. /* case project */
    when {&BUDGETFDSTYPE-SAF}
    then do:
        <Q-12 run SafPrim (all) (Read) (NoCache)
          (input ?, (SafID)
           input tNewBudgetWBS.BudgetWBSCode, (SafCode)
           input tNewBudgetWBS.tcSafConceptCode, (SafConceptCode)
           output dataset tqSafPrim) in BSaf >
        find tqSafPrim no-lock no-error.
        if available tqSafPrim
        then do:
            create tNewMBudgetWBS.
            buffer-copy tNewBudgetWBS to tNewMBudgetWBS.
            assign tNewMBudgetWBS.BudgetWBSFDSList = tNewBudgetWBS.BudgetWBSCode
                   tBudgetWBS.BudgetWBSFDSList     = tNewBudgetWBS.BudgetWBSCode
                   tNewMBudgetWBS.BudgetWBSFDSLink = tNewBudgetWBS.BudgetWBSCode
                   tBudgetWBS.BudgetWBSFDSLink     = tNewBudgetWBS.BudgetWBSCode.

        end.
        else do:
            <Q-11 run BudgetGroupPrim (all) (Read) (NoCache)
          (input ?, (BudgetGroupID)
           input tNewBudgetWBS.BudgetWBSCode, (BudgetGroupCode)
           output dataset tqBudgetGroupPrim) in BBudgetGroup >
            find tqBudgetGroupPrim no-lock no-error.
            if available tqBudgetGroupPrim
            then do:
                create tNewMBudgetWBS.
                buffer-copy tNewBudgetWBS to tNewMBudgetWBS.
                assign tNewMBudgetWBS.tcBudgetGroupCode = tNewBudgetWBS.BudgetWBSCode
                       tBudgetWBS.tcBudgetGroupCode     = tNewBudgetWBS.BudgetWBSCode.
            end.
        end.
    end. /* case saf */
    when {&BUDGETFDSTYPE-REPORT}
    then do:
        <Q-23 run SelectFRWAnCodeForFRWBudget (all) (Read) (NoCache)  (output dataset tqSelectFRWAnCodeForFRWBudget) in BFRWAnalysisCode>
        find tqSelectFRWAnCodeForFRWBudget
              where tqSelectFRWAnCodeForFRWBudget.tcFRWAnCodeCode          =  tNewBudgetWBS.BudgetWBSCode      and
                    tqSelectFRWAnCodeForFRWBudget.tcFRWAnCodeFRWChartCode  =  icBudgetFRWChartCode             no-lock no-error.
        if available tqSelectFRWAnCodeForFRWBudget
        then do:
            create tNewMBudgetWBS.
            buffer-copy tNewBudgetWBS to tNewMBudgetWBS.
            assign tNewMBudgetWBS.BudgetWBSFDSList = tNewBudgetWBS.BudgetWBSCode
                   tBudgetWBS.BudgetWBSFDSList     = tNewBudgetWBS.BudgetWBSCode.
        end.
        else do:
            <Q-41 run BudgetGroupPrim (all) (Read) (NoCache)
               (input ?, (BudgetGroupID)
                input tNewBudgetWBS.BudgetWBSCode, (BudgetGroupCode)
                output dataset tqBudgetGroupPrim) in BBudgetGroup>
            find tqBudgetGroupPrim no-lock no-error.
            if available tqBudgetGroupPrim
            then do:
                create tNewMBudgetWBS.
                buffer-copy tNewBudgetWBS to tNewMBudgetWBS.
                assign tNewMBudgetWBS.tcBudgetGroupCode = tNewBudgetWBS.BudgetWBSCode
                       tBudgetWBS.tcBudgetGroupCode     = tNewBudgetWBS.BudgetWBSCode.
            end.
        end.
    end. /* case analysis report */
end case.