project QadFinancials > class BFixedAssetBook > method ValidateComponent

Description

Write here all tests on database update (new / modify / delete) that cannot be coded with a validation mask.
The type of update can be found in tc_status (N/C/D).
If you find incorrect data, you must write an entry in tFcMessages (using SetMessage) and set the return status of this method to either +1 or -1.
Return status +1 = data will still be accepted.
Return status -1 = data will not be accepted.
This method is run from SetPublicTables, before transferring the received data into the class temp-tables.


Parameters


oiReturnStatusoutputinteger


Internal usage


unused


program code (program/bfixedassetbook.p)

/* =============================================== */
/* clear depreciation parameters if not applicable */
/* =============================================== */
for each t_sFABook where
         t_sFABook.tc_Status = 'N':U or
         t_sFABook.tc_Status = 'C':U:
    if t_sFABook.FABookDepreciationType <> {&DEPRECIATIONTYPE-CZTAXSTRAIGHT}
    then assign t_sFABook.FABookCEEEvenFirstYr  = ?
                t_sFABook.FABookCEEEvenNextYr   = ?
                t_sFABook.FABookCEEEvenAddition = ?.
    
    if t_sFABook.FABookDepreciationType <> {&DEPRECIATIONTYPE-CZTAXACCELERATED}
    then assign t_sFABook.FABookCEEAccelFirstYr  = ?
                t_sFABook.FABookCEEAccelNextYr   = ?
                t_sFABook.FABookCEEAccelIncrDepr = ?
                t_sFABook.FABookCEEAccelAddition = ?.
end.

<ANCESTOR-CODE>

/* ================================================ */
/* Set default return status                        */
/* Check if oiReturnStatus was set in Ancestor Code */
/* ================================================ */
if oiReturnStatus = 0
then assign oiReturnStatus = -98.

for each t_sFABook where
         t_sFABook.tc_Status = 'N':U or
         t_sFABook.tc_Status = 'C':U:

    /* ======================================================================================= */
    /* If "With Depreciation" then a Depreciation Type and Calculation Type must be specified. */
    /* ======================================================================================= */
    if t_sFABook.FABookIsWithDepreciation = true
    then do:
        /* Depreciation Type */
        if t_sFABook.FABookDepreciationType = "":U
        then do:
            assign vcFABookMsg = trim(substitute(#T-21'You must specify a depreciation type when a book is defined with depreciation.':200(1986)t-21#))
                   oiReturnStatus = -1.
            <M-19 run SetMessage
               (input  vcFABookMsg (icMessage), 
                input  '':U (icArguments), 
                input  'tFABook.FABookDepreciationType':U (icFieldName), 
                input  t_sFABook.FABookDepreciationType (icFieldValue), 
                input  'E':U (icType), 
                input  3 (iiSeverity), 
                input  t_sFABook.tc_Rowid (icRowid), 
                input  'QADFIN-2930':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
        end.

        /* Calculation Type */
        if t_sFABook.FABookCalculationType = "":U
        then do:
            assign vcFABookMsg = trim(substitute(#T-22'You must specify a calculation type when a book is defined with depreciation.':200(1987)T-22#))
                   oiReturnStatus = -1.
            <M-20 run SetMessage
               (input  vcFABookMsg (icMessage), 
                input  '':U (icArguments), 
                input  'tFABook.FABookCalculationType':U (icFieldName), 
                input  t_sFABook.FABookCalculationType (icFieldValue), 
                input  'E':U (icType), 
                input  3 (iiSeverity), 
                input  t_sFABook.tc_Rowid (icRowid), 
                input  'QADFIN-2931':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
        end.
    end.


    /* ================================== */
    /* Check if Life Cycle isn't negative */
    /* ================================== */
    if t_sFABook.FABookLifeCycle < 0
    then do:
        assign vcFABookMsg    = trim(substitute(#T-23'The life cycle of a book (&1) cannot be negative.':200(1988)T-23#, trim(string(t_sFABook.FABookLifeCycle)) ))
               oiReturnStatus = -1.
        <M-1 run SetMessage
           (input  vcFABookMsg (icMessage), 
            input  '':U (icArguments), 
            input  'tFABook.FABookLifeCycle':U (icFieldName), 
            input  t_sFABook.FABookLifeCycle (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sFABook.tc_Rowid (icRowid), 
            input  'QADFIN-2654':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
    end. /* if t_sFABook.FABookLifeCycle < 0 */

    /* =============================================================== */
    /* The Unit Code is mandatory when the Depreciation Type is 'ACT1' */
    /* =============================================================== */
    if t_sFABook.FABookDepreciationType = {&DEPRECIATIONTYPE-ACT1} and
      (t_sFABook.tcUnitCode             = '':U or
       t_sFABook.tcUnitCode             = ?      )
    then do:
        assign vcFABookMsg    = trim(substitute(#T-24'You must enter the unit of measure for books with depreciation type '&1'.':200(1989)T-24#, trim({&DEPRECIATIONTYPE-ACT1-TR}) ))
               oiReturnStatus = -1.
        <M-2 run SetMessage
           (input  vcFABookMsg (icMessage), 
            input  '':U (icArguments), 
            input  'tFABook.tcUnitCode':U (icFieldName), 
            input  t_sFABook.tcUnitCode (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sFABook.tc_Rowid (icRowid), 
            input  'QADFIN-2655':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
    end. /* check on mandatory unit code */

    /* ======================= */
    /* depreciation parameters */
    /* range tests             */
    /* ======================= */
    if t_sFABook.FABookCEEEvenFirstYr <> ? and
       (t_sFABook.FABookCEEEvenFirstYr < 0 or
        t_sFABook.FABookCEEEvenFirstYr > 100)
    then do:
        assign vcFABookMsg    = trim(substitute(#T-26'For the CEE straight line first year, the value is out of range. The valid range is 0-100.':255(17276)t-26#))
               oiReturnStatus = -1.
        <M-25 run SetMessage
           (input  vcFABookMsg (icMessage), 
            input  '':U (icArguments), 
            input  'tFABook.FABookCEEEvenFirstYr':U (icFieldName), 
            input  t_sFABook.FABookCEEEvenFirstYr (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sFABook.tc_Rowid (icRowid), 
            input  'QADFIN-4045':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
    end.
    
    if t_sFABook.FABookCEEEvenNextYr <> ? and 
       (t_sFABook.FABookCEEEvenNextYr < 0 or
        t_sFABook.FABookCEEEvenNextYr > 100)
    then do:
        assign vcFABookMsg    = trim(substitute(#T-28'For the CEE straight line next year, the value is out of range. The valid range is 0-100.':255(17277)t-28#))
               oiReturnStatus = -1.
        <M-27 run SetMessage
           (input  vcFABookMsg (icMessage), 
            input  '':U (icArguments), 
            input  'tFABook.FABookCEEEvenNextYr':U (icFieldName), 
            input  t_sFABook.FABookCEEEvenNextYr (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sFABook.tc_Rowid (icRowid), 
            input  'QADFIN-4046':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
    end.

    if t_sFABook.FABookCEEEvenAddition <> ? and 
       (t_sFABook.FABookCEEEvenAddition < 0 or
        t_sFABook.FABookCEEEvenAddition > 100)
    then do:
        assign vcFABookMsg    = trim(substitute(#T-32'For the CEE straight line after addition, the value is out of range. The valid range is 0-100.':255(17278)t-32#))
               oiReturnStatus = -1.
        <M-31 run SetMessage
           (input  vcFABookMsg (icMessage), 
            input  '':U (icArguments), 
            input  'tFABook.FABookCEEEvenAddition':U (icFieldName), 
            input  t_sFABook.FABookCEEEvenAddition (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sFABook.tc_Rowid (icRowid), 
            input  'QADFIN-4049':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
    end.

    if t_sFABook.FABookCEEAccelFirstYr <> ? and
       t_sFABook.FABookCEEAccelFirstYr < 0
    then do:
        assign vcFABookMsg    = trim(substitute(#T-37'For the CEE accelerated first year, the value is out of range. The value cannot be negative.':255(17279)t-37#))
               oiReturnStatus = -1.
        <M-33 run SetMessage
           (input  vcFABookMsg (icMessage), 
            input  '':U (icArguments), 
            input  'tFABook.FABookCEEAccelFirstYr':U (icFieldName), 
            input  t_sFABook.FABookCEEAccelFirstYr (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sFABook.tc_Rowid (icRowid), 
            input  'QADFIN-4052':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
    end.
    
    if t_sFABook.FABookCEEAccelNextYr <> ? and 
       t_sFABook.FABookCEEAccelNextYr < 0
    then do:
        assign vcFABookMsg    = trim(substitute(#T-38'For CEE accelerated next, the value is out of range. The value cannot be negative.':255(17280)t-38#))
               oiReturnStatus = -1.
        <M-34 run SetMessage
           (input  vcFABookMsg (icMessage), 
            input  '':U (icArguments), 
            input  'tFABook.FABookCEEAccelNextYr':U (icFieldName), 
            input  t_sFABook.FABookCEEAccelNextYr (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sFABook.tc_Rowid (icRowid), 
            input  'QADFIN-4053':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
    end.

    if t_sFABook.FABookCEEAccelIncrDepr <> ? and 
       (t_sFABook.FABookCEEAccelIncrDepr < 0 or
        t_sFABook.FABookCEEAccelIncrDepr > 100)
    then do:
        assign vcFABookMsg    = trim(substitute(#T-39'For the CEE accelerated depreciation increase in first year, the value is out of range. The valid range is 0-100.':255(17282)t-39#))
               oiReturnStatus = -1.
        <M-35 run SetMessage
           (input  vcFABookMsg (icMessage), 
            input  '':U (icArguments), 
            input  'tFABook.FABookCEEAccelIncrDepr':U (icFieldName), 
            input  t_sFABook.FABookCEEAccelIncrDepr (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sFABook.tc_Rowid (icRowid), 
            input  'QADFIN-4054':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
    end.

    if t_sFABook.FABookCEEAccelAddition <> ? and 
       t_sFABook.FABookCEEAccelAddition  < 0
    then do:
        assign vcFABookMsg    = trim(substitute(#T-40'For the CEE accelerated after addition, the value is out of range. The value cannot be negative.':255(17283)t-40#))
               oiReturnStatus = -1.
        <M-36 run SetMessage
           (input  vcFABookMsg (icMessage), 
            input  '':U (icArguments), 
            input  'tFABook.FABookCEEAccelAddition':U (icFieldName), 
            input  t_sFABook.FABookCEEAccelAddition (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  t_sFABook.tc_Rowid (icRowid), 
            input  'QADFIN-4055':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
    end.
    
    /* ========================================================================= */ 
    /* depriciation parameters are mandatory when an appropriate type is choosen */
    /* ========================================================================= */
    if t_sFABook.FABookDepreciationType = {&DEPRECIATIONTYPE-CZTAXSTRAIGHT}
    then do:
        if t_sFABook.FABookCEEEvenFirstYr = ?
        then do:
            assign vcFABookMsg    = trim(substitute(#T-42'You must specify the CEE straight line first year if the depreciation type is CEE Tax Straight Line.':255(17284)t-42#))
               oiReturnStatus = -1.
            <M-41 run SetMessage
               (input  vcFABookMsg (icMessage), 
                input  '':U (icArguments), 
                input  'tFABook.FABookCEEEvenFirstYr':U (icFieldName), 
                input  t_sFABook.FABookCEEEvenFirstYr (icFieldValue), 
                input  'E':U (icType), 
                input  3 (iiSeverity), 
                input  t_sFABook.tc_Rowid (icRowid), 
                input  'QADFIN-4058':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
        end.
        if t_sFABook.FABookCEEEvenNextYr = ?
        then do:
            assign vcFABookMsg    = trim(substitute(#T-44'You must specify the CEE straight line next year if the depreciation type is CEE Tax Straight Line.':255(17286)t-44#))
               oiReturnStatus = -1.
            <M-43 run SetMessage
               (input  vcFABookMsg (icMessage), 
                input  '':U (icArguments), 
                input  'tFABook.FABookCEEEvenNextYr':U (icFieldName), 
                input  t_sFABook.FABookCEEEvenNextYr (icFieldValue), 
                input  'E':U (icType), 
                input  3 (iiSeverity), 
                input  t_sFABook.tc_Rowid (icRowid), 
                input  'QADFIN-4059':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
        end.
        if t_sFABook.FABookCEEEvenAddition = ?
        then do:
            assign vcFABookMsg    = trim(substitute(#T-46'You must specify the CEE straight line after addition if the depreciation type is CEE Tax Straight Line.':255(17287)t-46#))
               oiReturnStatus = -1.
            <M-45 run SetMessage
               (input  vcFABookMsg (icMessage), 
                input  '':U (icArguments), 
                input  'tFABook.FABookCEEEvenAddition':U (icFieldName), 
                input  t_sFABook.FABookCEEEvenAddition (icFieldValue), 
                input  'E':U (icType), 
                input  3 (iiSeverity), 
                input  t_sFABook.tc_Rowid (icRowid), 
                input  'QADFIN-4060':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
        end.
    end.

    if t_sFABook.FABookDepreciationType = {&DEPRECIATIONTYPE-CZTAXACCELERATED}
    then do:
        if t_sFABook.FABookCEEAccelFirstYr = ?
        then do:
            assign vcFABookMsg    = trim(substitute(#T-53'You must specify the CEE accelerated first year if the depreciation type is CEE Tax Accelerated.':255(17288)t-53#))
               oiReturnStatus = -1.
            <M-49 run SetMessage
               (input  vcFABookMsg (icMessage), 
                input  '':U (icArguments), 
                input  'tFABook.FABookCEEAccelFirstYr':U (icFieldName), 
                input  t_sFABook.FABookCEEAccelFirstYr (icFieldValue), 
                input  'E':U (icType), 
                input  3 (iiSeverity), 
                input  t_sFABook.tc_Rowid (icRowid), 
                input  'QADFIN-4062':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
        end.
        if t_sFABook.FABookCEEAccelNextYr = ?
        then do:
            assign vcFABookMsg    = trim(substitute(#T-54'You must specify the CEE accelerated next year if the depreciation type is CEE Tax Accelerated.':255(17289)t-54#))
               oiReturnStatus = -1.
            <M-50 run SetMessage
               (input  vcFABookMsg (icMessage), 
                input  '':U (icArguments), 
                input  'tFABook.FABookCEEAccelNextYr':U (icFieldName), 
                input  t_sFABook.FABookCEEAccelNextYr (icFieldValue), 
                input  'E':U (icType), 
                input  3 (iiSeverity), 
                input  t_sFABook.tc_Rowid (icRowid), 
                input  'QADFIN-4063':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
        end.
        if t_sFABook.FABookCEEAccelAddition = ?
        then do:
            assign vcFABookMsg    = trim(substitute(#T-55'You must specify the CEE accelerated after addition if the depreciation type is CEE Tax Accelerated.':255(17291)t-55#))
               oiReturnStatus = -1.
            <M-51 run SetMessage
               (input  vcFABookMsg (icMessage), 
                input  '':U (icArguments), 
                input  'tFABook.FABookCEEAccelAddition':U (icFieldName), 
                input  t_sFABook.FABookCEEAccelAddition (icFieldValue), 
                input  'E':U (icType), 
                input  3 (iiSeverity), 
                input  t_sFABook.tc_Rowid (icRowid), 
                input  'QADFIN-4064':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
        end.
        if t_sFABook.FABookCEEAccelIncrDepr = ?
        then do:
            assign vcFABookMsg    = trim(substitute(#T-56'You must specify the CEE accelerated depreciation increase in first year if the depreciation type is CEE Tax Accelerated.':255(17290)t-56#))
               oiReturnStatus = -1.
            <M-52 run SetMessage
               (input  vcFABookMsg (icMessage), 
                input  '':U (icArguments), 
                input  'tFABook.FABookCEEAccelIncrDepr':U (icFieldName), 
                input  t_sFABook.FABookCEEAccelIncrDepr (icFieldValue), 
                input  'E':U (icType), 
                input  3 (iiSeverity), 
                input  t_sFABook.tc_Rowid (icRowid), 
                input  'QADFIN-4065':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BFixedAssetBook>
        end.
    end.
end. /* for each t_sFABook where ... */

/* ====================================== */
/* Set Return Status = 0 if all went well */
/* ====================================== */
if oiReturnStatus = -98
then assign oiReturnStatus = 0.