Description
Selects the appropriate calculation based on depreciation type.
Parameters
icFAAssetBookDepreciationType | input | character | |
icFAAssetBookCalculationType | input | character | |
iiFAAssetBookLifeCycle | input | integer | |
iiFAAssetBookPeriodsDepr | input | integer | |
itFAAssetBookStartDate | input | date | |
itFAAssetBookNextPostingDate | input | date | |
iiFADepreciationYear | input | integer | |
iiFADepreciationPeriod | input | integer | |
idFAAssetBookAmountLC | input | decimal | |
idFAAssetBookDeprAmountLC | input | decimal | |
idFAAssetBookSalvageAmountLC | input | decimal | |
idFAAssetBookDisposalAmountLC | input | decimal | |
idFAAssetBookDisposalDepAmountLC | input | decimal | |
idFAAssetBookAmountCC | input | decimal | |
idFAAssetBookDeprAmountCC | input | decimal | |
idFAAssetBookSalvageAmountCC | input | decimal | |
idFAAssetBookDisposalAmountCC | input | decimal | |
idFAAssetBookDisposalDepAmountCC | input | decimal | |
iiFAAssetBookId | input | integer | |
tNewDepreciation | output | temp-table | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
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.