project QadFinancials > class BFixedAssetDepreciation > method DepreciationTypes

Description

Selects the appropriate calculation based on depreciation type.


Parameters


icFAAssetBookDepreciationTypeinputcharacter
icFAAssetBookCalculationTypeinputcharacter
iiFAAssetBookLifeCycleinputinteger
iiFAAssetBookPeriodsDeprinputinteger
itFAAssetBookStartDateinputdate
itFAAssetBookNextPostingDateinputdate
iiFADepreciationYearinputinteger
iiFADepreciationPeriodinputinteger
idFAAssetBookAmountLCinputdecimal
idFAAssetBookDeprAmountLCinputdecimal
idFAAssetBookSalvageAmountLCinputdecimal
idFAAssetBookDisposalAmountLCinputdecimal
idFAAssetBookDisposalDepAmountLCinputdecimal
idFAAssetBookAmountCCinputdecimal
idFAAssetBookDeprAmountCCinputdecimal
idFAAssetBookSalvageAmountCCinputdecimal
idFAAssetBookDisposalAmountCCinputdecimal
idFAAssetBookDisposalDepAmountCCinputdecimal
iiFAAssetBookIdinputinteger
tNewDepreciationoutputtemp-table
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BFixedAssetDepreciation.APIDepreciationSimul
method BFixedAssetDepreciation.DepreciationMain


program code (program1/bfixedassetdepreciation.p)

case icFAAssetBookDepreciationType:
    when {&DEPRECIATIONTYPE-SL1} /* Straight Line */
    then do:
        <M-1 run DepreciationTypeSL1 (input  icFAAssetBookCalculationType (icFAAssetBookCalculationType), 
                              input  iiFAAssetBookLifeCycle (iiFAAssetBookLifeCycle), 
                              input  iiFAAssetBookPeriodsDepr (iiFAAssetBookPeriodsDepreciated), 
                              input  itFAAssetBookStartDate (itFAAssetBookStartDate), 
                              input  itFAAssetBookNextPostingDate (itFAAssetBookNextPostingDate), 
                              input  iiFADepreciationYear (iiDepreciationYear), 
                              input  iiFADepreciationPeriod (iiDepreciationPeriod), 
                              input  idFAAssetBookAmountLC (idFAAssetBookCapitalAmountLC), 
                              input  idFAAssetBookDeprAmountLC (idFAAssetBookDeprecAmountLC), 
                              input  idFAAssetBookSalvageAmountLC (idFAAssetBookSalvageAmountLC), 
                              input  idFAAssetBookDisposalAmountLC (idFAAssetBookDisposalAmountLC), 
                              input  idFAAssetBookDisposalDepAmountLC (idFAAssetBookDisposalDepAmountLC), 
                              output vdNewDeprAmountSL1LC (odNewDeprAmountSL1LC), 
                              output vdNewDeprAmountSL1StartLC (odNewDeprAmountSL1StartLC), 
                              output tNewDepreciation (tNewDepreciation), 
                              output viFcReturnSuper (oiReturnStatus)) in BFixedAssetDepreciation>
    end.
    when {&DEPRECIATIONTYPE-SL1ZERO} /* Straight Line with depreciation to zero */
    then do:
        <M-26 run DepreciationTypeSL1Zero (input  icFAAssetBookCalculationType (icFAAssetBookCalculationType), 
                                   input  iiFAAssetBookLifeCycle (iiFAAssetBookLifeCycle), 
                                   input  iiFAAssetBookPeriodsDepr (iiFAAssetBookPeriodsDepreciated), 
                                   input  itFAAssetBookStartDate (itFAAssetBookStartDate), 
                                   input  itFAAssetBookNextPostingDate (itFAAssetBookNextPostingDate), 
                                   input  iiFADepreciationYear (iiDepreciationYear), 
                                   input  iiFADepreciationPeriod (iiDepreciationPeriod), 
                                   input  idFAAssetBookAmountLC (idFAAssetBookCapitalAmountLC), 
                                   input  idFAAssetBookDeprAmountLC (idFAAssetBookDeprecAmountLC), 
                                   input  idFAAssetBookSalvageAmountLC (idFAAssetBookSalvageAmountLC), 
                                   input  idFAAssetBookDisposalAmountLC (idFAAssetBookDisposalAmountLC), 
                                   input  idFAAssetBookDisposalDepAmountLC (idFAAssetBookDisposalDepAmountLC), 
                                   output vdNewDeprAmountSL1LC (odNewDeprAmountSL1LC), 
                                   output vdNewDeprAmountSL1StartLC (odNewDeprAmountSL1StartLC), 
                                   output tNewDepreciation (tNewDepreciation), 
                                   output viFcReturnSuper (oiReturnStatus)) in BFixedAssetDepreciation>
    end.
    when {&DEPRECIATIONTYPE-DBREMAININGPER} /* Declining Balances from Remaining Periods */
    then do:
        <M-25 run DepreciationTypeDBRemainingPer (input  icFAAssetBookCalculationType (icFAAssetBookCalculationType), 
                                          input  iiFAAssetBookLifeCycle (iiFAAssetBookLifeCycle), 
                                          input  iiFAAssetBookPeriodsDepr (iiFAAssetBookPeriodsDepreciated), 
                                          input  itFAAssetBookStartDate (itFAAssetBookStartDate), 
                                          input  itFAAssetBookNextPostingDate (itFAAssetBookNextPostingDate), 
                                          input  iiFADepreciationYear (iiDepreciationYear), 
                                          input  iiFADepreciationPeriod (iiDepreciationPeriod), 
                                          input  idFAAssetBookAmountLC (idFAAssetBookCapitalAmountLC), 
                                          input  idFAAssetBookDeprAmountLC (idFAAssetBookDeprecAmountLC), 
                                          input  idFAAssetBookSalvageAmountLC (idFAAssetBookSalvageAmountLC), 
                                          input  idFAAssetBookDisposalAmountLC (idFAAssetBookDisposalAmountLC), 
                                          input  idFAAssetBookDisposalDepAmountLC (idFAAssetBookDisposalDepAmountLC), 
                                          input  ? (idFactor), 
                                          output tNewDepreciation (tNewDepreciation), 
                                          output viFcReturnSuper (oiReturnStatus)) in BFixedAssetDepreciation>
    end.
    when {&DEPRECIATIONTYPE-DB15} or /* 1.5 Declining Balance */
    when {&DEPRECIATIONTYPE-DB20} or /* 2.0 Declining Balance */
    when {&DEPRECIATIONTYPE-DB25}    /* 2.5 Declining Balance */
    then do:
        assign vdFactor =      if icFAAssetBookDepreciationType = {&DEPRECIATIONTYPE-DB15} then 1.5
                          else if icFAAssetBookDepreciationType = {&DEPRECIATIONTYPE-DB20} then 2
                          else if icFAAssetBookDepreciationType = {&DEPRECIATIONTYPE-DB25} then 2.5
                          else ?.
                          
        <M-2 run DepreciationTypeDB (input  icFAAssetBookCalculationType (icFAAssetBookCalculationType), 
                             input  iiFAAssetBookLifeCycle (iiFAAssetBookLifeCycle), 
                             input  iiFAAssetBookPeriodsDepr (iiFAAssetBookPeriodsDepreciated), 
                             input  itFAAssetBookStartDate (itFAAssetBookStartDate), 
                             input  itFAAssetBookNextPostingDate (itFAAssetBookNextPostingDate), 
                             input  iiFADepreciationYear (iiDepreciationYear), 
                             input  iiFADepreciationPeriod (iiDepreciationPeriod), 
                             input  idFAAssetBookAmountLC (idFAAssetBookCapitalAmountLC), 
                             input  idFAAssetBookDeprAmountLC (idFAAssetBookDeprecAmountLC), 
                             input  idFAAssetBookSalvageAmountLC (idFAAssetBookSalvageAmountLC), 
                             input  idFAAssetBookDisposalAmountLC (idFAAssetBookDisposalAmountLC), 
                             input  idFAAssetBookDisposalDepAmountLC (idFAAssetBookDisposalDepAmountLC), 
                             input  vdFactor (idFactor), 
                             output tNewDepreciation (tNewDepreciation), 
                             output viFcReturnSuper (oiReturnStatus)) in BFixedAssetDepreciation>
    end.
    when {&DEPRECIATIONTYPE-SUM} /* Sum of Digits */
    then do:
        <M-5 run DepreciationTypeDigits (input  icFAAssetBookCalculationType (icFAAssetBookCalculationType), 
                                 input  iiFAAssetBookLifeCycle (iiFAAssetBookLifeCycle), 
                                 input  iiFAAssetBookPeriodsDepr (iiFAAssetBookPeriodsDepreciated), 
                                 input  itFAAssetBookStartDate (itFAAssetBookStartDate), 
                                 input  itFAAssetBookNextPostingDate (itFAAssetBookNextPostingDate), 
                                 input  iiFADepreciationYear (iiDepreciationYear), 
                                 input  iiFADepreciationPeriod (iiDepreciationPeriod), 
                                 input  idFAAssetBookAmountLC (idFAAssetBookCapitalAmountLC), 
                                 input  idFAAssetBookDeprAmountLC (idFAAssetBookDeprecAmountLC), 
                                 input  idFAAssetBookSalvageAmountLC (idFAAssetBookSalvageAmountLC), 
                                 input  idFAAssetBookDisposalAmountLC (idFAAssetBookDisposalAmountLC), 
                                 input  idFAAssetBookDisposalDepAmountLC (idFAAssetBookDisposalDepAmountLC), 
                                 output tNewDepreciation (tNewDepreciation), 
                                 output viFcReturnSuper (oiReturnStatus)) in BFixedAssetDepreciation>
    end.
    when {&DEPRECIATIONTYPE-DB15SL} or /* 1.5 Declining Balance / Switch to Straight Line */
    when {&DEPRECIATIONTYPE-DB20SL} or /* 2.0 Declining Balance / Switch to Straight Line */
    when {&DEPRECIATIONTYPE-DB25SL}    /* 2.5 Declining Balance / Switch to Straight Line */
    then do:
        assign vdFactor =      if icFAAssetBookDepreciationType = {&DEPRECIATIONTYPE-DB15SL} then 1.5
                          else if icFAAssetBookDepreciationType = {&DEPRECIATIONTYPE-DB20SL} then 2
                          else if icFAAssetBookDepreciationType = {&DEPRECIATIONTYPE-DB25SL} then 2.5
                          else ?.
    
        <M-6 run DepreciationTypeDBSL (input  icFAAssetBookCalculationType (icFAAssetBookCalculationType), 
                               input  iiFAAssetBookLifeCycle (iiFAAssetBookLifeCycle), 
                               input  iiFAAssetBookPeriodsDepr (iiFAAssetBookPeriodsDepreciated), 
                               input  itFAAssetBookStartDate (itFAAssetBookStartDate), 
                               input  itFAAssetBookNextPostingDate (itFAAssetBookNextPostingDate), 
                               input  iiFADepreciationYear (iiDepreciationYear), 
                               input  iiFADepreciationPeriod (iiDepreciationPeriod), 
                               input  idFAAssetBookAmountLC (idFAAssetBookCapitalAmountLC), 
                               input  idFAAssetBookDeprAmountLC (idFAAssetBookDeprecAmountLC), 
                               input  idFAAssetBookSalvageAmountLC (idFAAssetBookSalvageAmountLC), 
                               input  idFAAssetBookDisposalAmountLC (idFAAssetBookDisposalAmountLC), 
                               input  idFAAssetBookDisposalDepAmountLC (idFAAssetBookDisposalDepAmountLC), 
                               input  vdFactor (idFactor), 
                               output tNewDepreciation (tNewDepreciation), 
                               output viFcReturnSuper (oiReturnStatus)) in BFixedAssetDepreciation>
    end.
    when {&DEPRECIATIONTYPE-YD15SL} or /* 1.5 Yearly Declining Balances / switch to Straight Line */
    when {&DEPRECIATIONTYPE-YD20SL} or /* 2.0 Yearly Declining Balances / switch to Straight Line */
    when {&DEPRECIATIONTYPE-YD25SL}    /* 2.5 Yearly Declining Balances / switch to Straight Line */
    then do:
        assign vdFactor =      if icFAAssetBookDepreciationType = {&DEPRECIATIONTYPE-YD15SL} then 1.5
                          else if icFAAssetBookDepreciationType = {&DEPRECIATIONTYPE-YD20SL} then 2
                          else if icFAAssetBookDepreciationType = {&DEPRECIATIONTYPE-YD25SL} then 2.5
                          else ?.
    
        <M-9 run DepreciationTypeYDSL (input  iiFAAssetBookId (iiFAAssetBookId), 
                               input  icFAAssetBookCalculationType (icFAAssetBookCalculationType), 
                               input  iiFAAssetBookLifeCycle (iiFAAssetBookLifeCycle), 
                               input  iiFAAssetBookPeriodsDepr (iiFAAssetBookPeriodsDepreciated), 
                               input  itFAAssetBookStartDate (itFAAssetBookStartDate), 
                               input  itFAAssetBookNextPostingDate (itFAAssetBookNextPostingDate), 
                               input  iiFADepreciationYear (iiDepreciationYear), 
                               input  iiFADepreciationPeriod (iiDepreciationPeriod), 
                               input  idFAAssetBookAmountLC (idFAAssetBookCapitalAmountLC), 
                               input  idFAAssetBookDeprAmountLC (idFAAssetBookDeprecAmountLC), 
                               input  idFAAssetBookSalvageAmountLC (idFAAssetBookSalvageAmountLC), 
                               input  idFAAssetBookDisposalAmountLC (idFAAssetBookDisposalAmountLC), 
                               input  idFAAssetBookDisposalDepAmountLC (idFAAssetBookDisposalDepAmountLC), 
                               input  vdFactor (idFactor), 
                               output tNewDepreciation (tNewDepreciation), 
                               output viFcReturnSuper (oiReturnStatus)) in BFixedAssetDepreciation>
    end.
    when {&DEPRECIATIONTYPE-ACT1} or
    when {&DEPRECIATIONTYPE-USER1} /* Activity related or User defined depreciations */
    then do:
        if iiFAAssetBookId <> ? and
           iiFAAssetBookId <> 0
        then do:
            <M-15 run DepreciationTypeUser1 (input  icFAAssetBookDepreciationType (icFAAssetBookDepreciationType), 
                                     input  iiFAAssetBookId (iiFAAssetBookId), 
                                     input  iiFAAssetBookPeriodsDepr (iiFAAssetBookPeriodsDepreciated), 
                                     input  itFAAssetBookStartDate (itFAAssetBookStartDate), 
                                     input  itFAAssetBookNextPostingDate (itFAAssetBookNextPostingDate), 
                                     input  iiFADepreciationYear (iiDepreciationYear), 
                                     input  iiFADepreciationPeriod (iiDepreciationPeriod), 
                                     input  idFAAssetBookAmountLC (idFAAssetBookCapitalAmountLC), 
                                     input  idFAAssetBookDeprAmountLC (idFAAssetBookDeprecAmountLC), 
                                     input  idFAAssetBookSalvageAmountLC (idFAAssetBookSalvageAmountLC), 
                                     input  idFAAssetBookDisposalAmountLC (idFAAssetBookDisposalAmountLC), 
                                     input  idFAAssetBookDisposalDepAmountLC (idFAAssetBookDisposalDepAmountLC), 
                                     output tNewDepreciation (tNewDepreciation), 
                                     output viFcReturnSuper (oiReturnStatus)) in BFixedAssetDepreciation>
        end.                                     
    end.
    when {&DEPRECIATIONTYPE-CZTAXSTRAIGHT}
    then do:
        if iiFAAssetBookId <> ? and
           iiFAAssetBookId <> 0
        then do:
            <M-23 run DepreciationTypeCZTaxStraight (input  icFAAssetBookDepreciationType (icFAAssetBookDepreciationType), 
                                         input  iiFAAssetBookId (iiFAAssetBookId), 
                                         input  iiFAAssetBookPeriodsDepr (iiFAAssetBookPeriodsDepreciated), 
                                         input  itFAAssetBookStartDate (itFAAssetBookStartDate), 
                                         input  itFAAssetBookNextPostingDate (itFAAssetBookNextPostingDate), 
                                         input  iiFADepreciationYear (iiDepreciationYear), 
                                         input  iiFADepreciationPeriod (iiDepreciationPeriod), 
                                         input  idFAAssetBookAmountLC (idFAAssetBookCapitalAmountLC), 
                                         input  idFAAssetBookDeprAmountLC (idFAAssetBookDeprecAmountLC), 
                                         input  idFAAssetBookSalvageAmountLC (idFAAssetBookSalvageAmountLC), 
                                         input  idFAAssetBookDisposalAmountLC (idFAAssetBookDisposalAmountLC), 
                                         input  idFAAssetBookDisposalDepAmountLC (idFAAssetBookDisposalDepAmountLC), 
                                         input  idFAAssetBookAmountCC (idFAAssetBookCapitalAmountCC), 
                                         input  idFAAssetBookDeprAmountCC (idFAAssetBookDeprecAmountCC), 
                                         input  idFAAssetBookSalvageAmountCC (idFAAssetBookSalvageAmountCC), 
                                         input  idFAAssetBookDisposalAmountCC (idFAAssetBookDisposalAmountCC), 
                                         input  idFAAssetBookDisposalDepAmountCC (idFAAssetBookDisposalDepAmountCC), 
                                         output tNewDepreciation (tNewDepreciation), 
                                         output viFcReturnSuper (oiReturnStatus)) in BFixedAssetDepreciation>                             
        end.                                         
    end.
    when {&DEPRECIATIONTYPE-CZTAXACCELERATED}
    then do:
        if iiFAAssetBookId <> ? and
           iiFAAssetBookId <> 0
        then do:
            <M-24 run DepreciationTypeCZTaxAccelerated (input  icFAAssetBookDepreciationType (icFAAssetBookDepreciationType), 
                                            input  iiFAAssetBookId (iiFAAssetBookId), 
                                            input  iiFAAssetBookPeriodsDepr (iiFAAssetBookPeriodsDepreciated), 
                                            input  itFAAssetBookStartDate (itFAAssetBookStartDate), 
                                            input  itFAAssetBookNextPostingDate (itFAAssetBookNextPostingDate), 
                                            input  iiFADepreciationYear (iiDepreciationYear), 
                                            input  iiFADepreciationPeriod (iiDepreciationPeriod), 
                                            input  idFAAssetBookAmountLC (idFAAssetBookCapitalAmountLC), 
                                            input  idFAAssetBookDeprAmountLC (idFAAssetBookDeprecAmountLC), 
                                            input  idFAAssetBookSalvageAmountLC (idFAAssetBookSalvageAmountLC), 
                                            input  idFAAssetBookDisposalAmountLC (idFAAssetBookDisposalAmountLC), 
                                            input  idFAAssetBookDisposalDepAmountLC (idFAAssetBookDisposalDepAmountLC), 
                                            input  idFAAssetBookAmountCC (idFAAssetBookCapitalAmountCC), 
                                            input  idFAAssetBookDeprAmountCC (idFAAssetBookDeprecAmountCC), 
                                            input  idFAAssetBookSalvageAmountCC (idFAAssetBookSalvageAmountCC), 
                                            input  idFAAssetBookDisposalAmountCC (idFAAssetBookDisposalAmountCC), 
                                            input  idFAAssetBookDisposalDepAmountCC (idFAAssetBookDisposalDepAmountCC), 
                                            output tNewDepreciation (tNewDepreciation), 
                                            output viFcReturnSuper (oiReturnStatus)) in BFixedAssetDepreciation>
        end.                                            
    end.
end case.

assign oiReturnStatus = if (oiReturnStatus  > 0 and 
                            viFcReturnSuper = 0) or 
                            oiReturnStatus  < 0
                        then oiReturnStatus
                        else viFcReturnSuper.    
if oiReturnStatus < 0
then return.