mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-21 22:19:18 +00:00
Merge pull request #50964 from aerele/daily-prorata-depr-amount-calculation
fix(asset): prorata daily depr amount calculation
This commit is contained in:
@@ -1532,11 +1532,7 @@ def get_straight_line_or_manual_depr_amount(asset, row, schedule_idx, number_of_
|
|||||||
# if the Depreciation Schedule is being prepared for the first time
|
# if the Depreciation Schedule is being prepared for the first time
|
||||||
else:
|
else:
|
||||||
if row.daily_prorata_based:
|
if row.daily_prorata_based:
|
||||||
amount = (
|
amount = flt(asset.gross_purchase_amount) - flt(row.expected_value_after_useful_life)
|
||||||
flt(asset.gross_purchase_amount)
|
|
||||||
- flt(asset.opening_accumulated_depreciation)
|
|
||||||
- flt(row.expected_value_after_useful_life)
|
|
||||||
)
|
|
||||||
total_days = (
|
total_days = (
|
||||||
date_diff(
|
date_diff(
|
||||||
get_last_day(
|
get_last_day(
|
||||||
@@ -1548,7 +1544,11 @@ def get_straight_line_or_manual_depr_amount(asset, row, schedule_idx, number_of_
|
|||||||
),
|
),
|
||||||
add_days(
|
add_days(
|
||||||
get_last_day(
|
get_last_day(
|
||||||
add_months(row.depreciation_start_date, -1 * row.frequency_of_depreciation)
|
add_months(
|
||||||
|
row.depreciation_start_date,
|
||||||
|
(row.frequency_of_depreciation * (asset.number_of_depreciations_booked + 1))
|
||||||
|
* -1,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
1,
|
1,
|
||||||
),
|
),
|
||||||
@@ -1571,11 +1571,9 @@ def get_straight_line_or_manual_depr_amount(asset, row, schedule_idx, number_of_
|
|||||||
|
|
||||||
return daily_depr_amount * (date_diff(to_date, from_date) + 1)
|
return daily_depr_amount * (date_diff(to_date, from_date) + 1)
|
||||||
else:
|
else:
|
||||||
return (
|
return (flt(asset.gross_purchase_amount) - flt(row.expected_value_after_useful_life)) / flt(
|
||||||
flt(asset.gross_purchase_amount)
|
row.total_number_of_depreciations
|
||||||
- flt(asset.opening_accumulated_depreciation)
|
)
|
||||||
- flt(row.expected_value_after_useful_life)
|
|
||||||
) / flt(row.total_number_of_depreciations - asset.number_of_depreciations_booked)
|
|
||||||
|
|
||||||
|
|
||||||
def get_shift_depr_amount(asset, row, schedule_idx):
|
def get_shift_depr_amount(asset, row, schedule_idx):
|
||||||
|
|||||||
@@ -660,7 +660,7 @@ class TestDepreciationMethods(AssetSetup):
|
|||||||
available_for_use_date="2030-06-06",
|
available_for_use_date="2030-06-06",
|
||||||
is_existing_asset=1,
|
is_existing_asset=1,
|
||||||
number_of_depreciations_booked=2,
|
number_of_depreciations_booked=2,
|
||||||
opening_accumulated_depreciation=47095.89,
|
opening_accumulated_depreciation=47178.08,
|
||||||
expected_value_after_useful_life=10000,
|
expected_value_after_useful_life=10000,
|
||||||
depreciation_start_date="2032-12-31",
|
depreciation_start_date="2032-12-31",
|
||||||
total_number_of_depreciations=3,
|
total_number_of_depreciations=3,
|
||||||
@@ -668,7 +668,7 @@ class TestDepreciationMethods(AssetSetup):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.assertEqual(asset.status, "Draft")
|
self.assertEqual(asset.status, "Draft")
|
||||||
expected_schedules = [["2032-12-31", 42904.11, 90000.0]]
|
expected_schedules = [["2032-12-31", 30000.0, 77178.08], ["2033-06-06", 12821.92, 90000.0]]
|
||||||
schedules = [
|
schedules = [
|
||||||
[cstr(d.schedule_date), flt(d.depreciation_amount, 2), d.accumulated_depreciation_amount]
|
[cstr(d.schedule_date), flt(d.depreciation_amount, 2), d.accumulated_depreciation_amount]
|
||||||
for d in asset.get("schedules")
|
for d in asset.get("schedules")
|
||||||
|
|||||||
Reference in New Issue
Block a user