project QadFinancials > class BFRWAnalysisCode > method ValidateComponentPostFRWAnCodeElem


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BFRWAnalysisCode.ValidateComponentPost


program code (program1/bfrwanalysiscode.p)

for each t_sFRWAnCodeElem where
         t_sFRWAnCodeElem.tc_ParentRowid = t_sFRWAnCode.tc_Rowid and
         t_sFRWAnCodeElem.tc_Status     <> "D":U:

    assign vcLineNbr = "":U.
    find first tAnCodeExcelMapping where
        tAnCodeExcelMapping.tiQCode_ID = t_sFRWAnCodeElem.FRWAnCodeElem_ID
        no-error.
    if available tAnCodeExcelMapping then
    do:
        assign vcLineNbr = substitute(#T-50'(Excel Line &1)':255(264440525)T-50#, tAnCodeExcelMapping.tiRowNbr).
    end.

    /* User cannot define both begins and range */
    if t_sFRWAnCodeElem.tc_Status                 <> "":U  and
       (t_sFRWAnCodeElem.FRWAnCodeElemMask         <> "":U  and
        t_sFRWAnCodeElem.FRWAnCodeElemMask         <> ?     and
        ((t_sFRWAnCodeElem.FRWAnCodeElemMaskRange1 <> "":U and
          t_sFRWAnCodeElem.FRWAnCodeElemMaskRange1 <> ?) or
         (t_sFRWAnCodeElem.FRWAnCodeElemMaskRange2 <> "":U and
          t_sFRWAnCodeElem.FRWAnCodeElemMaskRange2 <> ?)))
    then do:
        assign vcMessage = #T-72'Range definition for Report analysis code cannot be combined with Begins definition. Analysis code &1, COA element &2.':255(176662831)T-72#
               vcMessage = substitute(vcMessage, t_sFRWAnCode.FRWAnCodeCode, t_sFRWAnCodeElem.FRWAnCodeElemCOAType).
        if vcLineNbr <> "":U then assign vcMessage = vcMessage + vcLineNbr.
        <M-74 run SetMessage
           (input  vcMessage (icMessage), 
            input  '':U (icArguments), 
            input  'tFRWAnCode.FRWAnCodeCalcElement':U (icFieldName), 
            input  t_sFRWAnCode.FRWAnCodeCalcElement (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sFRWAnCode.tc_Rowid (icRowid), 
            input  'qadfin-317589':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
        assign oiReturnStatus = -1.
    end.
    
    /* User have to enter or Begins, or Range or Individual values */
    if t_sFRWAnCodeElem.tc_Status                 <> "":U  and
       ((t_sFRWAnCodeElem.FRWAnCodeElemMask       = "":U or t_sFRWAnCodeElem.FRWAnCodeElemMask       = ?) and
        (t_sFRWAnCodeElem.FRWAnCodeElemMaskRange1 = "":U or t_sFRWAnCodeElem.FRWAnCodeElemMaskRange1 = ?) and
        (t_sFRWAnCodeElem.FRWAnCodeElemMaskRange2 = "":U or t_sFRWAnCodeElem.FRWAnCodeElemMaskRange2 = ?) and
        not can-find(first t_sFRWAnCodeElemDet where
                           t_sFRWAnCodeElemDet.tc_ParentRowid        = t_sFRWAnCodeElem.tc_Rowid and
                           t_sFRWAnCodeElemDet.tc_Status            <> "D":U))
    then do:
        assign vcMessage = #T-40'COA element of type &1 does not contain definition of the values, which should be taken for report calculation.':255(767822378)T-40#
               vcMessage = substitute(vcMessage,  <M-41 GetCOATypeTr  (input  t_sFRWAnCodeElem.FRWAnCodeElemCOAType (icCOAType)) in BFRWAnalysisCode> ).
        if vcLineNbr <> "":U then assign vcMessage = vcMessage + vcLineNbr.
        <M-16 run SetMessage
           (input  vcMessage (icMessage), 
            input  '':U (icArguments), 
            input  '':U (icFieldName), 
            input  '':U (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sFRWAnCodeElem.tc_Rowid (icRowid), 
            input  'qadfin-265858':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
        assign oiReturnStatus = -1.
    end.

    /* Some analysis types does not allow blank value for elements */
    if (t_sFRWAnCodeElem.FRWAnCodeElemCOAType = {&FRWANALYSISCOATYPE-COMPANY}  or
        t_sFRWAnCodeElem.FRWAnCodeElemCOAType = {&FRWANALYSISCOATYPE-CURRENCY} or
        t_sFRWAnCodeElem.FRWAnCodeElemCOAType = {&FRWANALYSISCOATYPE-GL}       or
        t_sFRWAnCodeElem.FRWAnCodeElemCOAType = {&FRWANALYSISCOATYPE-JOURNAL}  or
        t_sFRWAnCodeElem.FRWAnCodeElemCOAType = {&FRWANALYSISCOATYPE-LAYER})  and
       can-find(first t_sFRWAnCodeElemDet where
                      t_sFRWAnCodeElemDet.tc_ParentRowid        = t_sFRWAnCodeElem.tc_Rowid and
                      t_sFRWAnCodeElemDet.tc_Status            <> "D":U                     and
                      t_sFRWAnCodeElemDet.FRWAnCodeElemDetValue = 0)
    then do:
        assign vcMessage = #T-69'COA element of type &1 does not allow definition of Blank value.':255(255066371)T-69#
               vcMessage = substitute(vcMessage, <M-67 GetCOATypeTr  (input  t_sFRWAnCodeElem.FRWAnCodeElemCOAType (icCOAType)) in BFRWAnalysisCode>).
        if vcLineNbr <> "":U then assign vcMessage = vcMessage + vcLineNbr.
        <M-23 run SetMessage
           (input  vcMessage (icMessage), 
            input  '':U (icArguments), 
            input  '':U (icFieldName), 
            input  '':U (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sFRWAnCodeElem.tc_Rowid (icRowid), 
            input  'qadfin-940244':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
        assign oiReturnStatus = -1.
    end.
end. /* for each t_sFRWAnCodeElem where */