project QadFinancials > class BBudget > method ValidateComponentBudgetWBSIsReportStruct

Description

This submethod is to check if the levels sub-account or cost-centre/project are used then the applicable topics must be linked in a strict 1-to-1 G/L ? Sub-Account ? Cost Centre/Project combination. This means that no ranges or lists can be used for linking an FDS element to a topic


Parameters


icBudgetWBSTcRowidinputcharacterBudgetWBS tc Rowid
icBudgetWBStcStatusinputcharacterBudgetWBS tc Status
icBudgetWBSCodeinputcharacterBudgetWBSCode
icBudgetWBSFDSTypeinputcharacterBudgetWBSFDSType
iiBudgetWBSFDSSeqinputintegerBudgetWBSFDSSeq
icBudgetWBSFDSCodeinputcharacterBudgetWBSFDSCode
icBudgetWBSFDSListinputcharacterBudgetWBSFDSList
icBudgetWBSFDSFromCodeinputcharacterBudgetWBSFDSFromCode
icBudgetWBSFDSToCodeinputcharacterBudgetWBSFDSToCode
icBudgetWBSFDSDefaultinputcharacterBudgetWBSFDSDefault
iiBudgetGroupIDinputintegerBudgetGroupID
icBudgetGroupCodeinputcharacterBudgetGroupCode
iiBudgetCompanyIDinputintegerBudgetCompanyID
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BBudget.ValidateComponentBudgetWBS


program code (program1/bbudget.p)

/* Defect 10249-0586 begin */
assign vcMessage = "":U.

/*  define buffer bbCurrBudgetWbs for t_sBudgetWBS. */
define buffer bbCurrBudgetWbs for bCurrBudgetWbs.
/* Defect 10249-0586 end */

find bbCurrBudgetWbs where
     bbCurrBudgetWbs.tc_Rowid = icBudgetWBSTcRowid
     NO-lock no-error.
if available bbCurrBudgetWbs
then do :
    Assign vibudgetwbsfdsseq = bbCurrBudgetWbs.budgetfdsseq
           viParentBudgetWBSID = bbcurrbudgetwbs.BudgetWBS_ID.
end.  
else vcMessage      = trim(substitute(#T-4'Unable to locate the WBS node (&1) based on its row ID (&2).':255(999890571)T-4#,icBudgetWBSCode,icBudgetWBSTcRowid)).
       
if icBudgetGroupCode <> "" or
   icBudgetWBSFDSFromCode <> "" or  
   icBudgetWBSFDSToCode <> "" or 
   num-entries(icBudgetWBSFDSList) > 1 or
   icBudgetWBSFDSCode = "*"
THEN DO:
    find first bbCurrBudgetWbs where
         bbcurrbudgetwbs.ParentBudgetWBS_ID = viParentBudgetWBSID
         no-lock no-error.
    if available bbCurrBudgetWbs
    then DO:
        assign vcMessage      = trim(substitute(#T-2'Budget-Structure &1 should be a strict 1-to-1 G/L-Sub-Account-Cost Centre/Project combination':255(620614301)T-2#,trim({&BUDGETFDSTYPE-GL-TR}))).
    end.      
END.       
/*    
if icBudgetWBSFDSDefault
then do:
    assign vcMessage      = trim(substitute(#T-3'Budget-report-Structure  '&1'  cannot have SAF':255(999890573)T-3#,trim({&BUDGETFDSTYPE-GL-TR}))).

end.
*/


if vcMessage <> "":U
then do :
    ASSIGN oiReturnStatus = -1.
    <M-1 run SetMessage
       (input  vcMessage (icMessage), 
        input  '':U (icArguments), 
        input  '':U (icFieldName), 
        input  '':U (icFieldValue), 
        input  'E':U (icType), 
        input  3 (iiSeverity), 
        input  '':U (icRowid), 
        input  'QadFin-6341':U (icFcMsgNumber), 
        input  '' (icFcExplanation), 
        input  '' (icFcIdentification), 
        input  '' (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BBudget>
end. /* if vcMessage <> "":U */