From d547197bceda1c3c569450488f3e6661aa9f79a1 Mon Sep 17 00:00:00 2001 From: Saran440 Date: Wed, 19 Aug 2020 17:08:42 +0700 Subject: [PATCH] [FIX] calculate days when remove asset --- .../tests/test_account_asset_management.py | 4 ++-- .../wizard/account_asset_remove.py | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/account_asset_management/tests/test_account_asset_management.py b/account_asset_management/tests/test_account_asset_management.py index 4a0c3c683..7338aa4ce 100644 --- a/account_asset_management/tests/test_account_asset_management.py +++ b/account_asset_management/tests/test_account_asset_management.py @@ -432,8 +432,8 @@ class TestAssetManagement(SavepointCase): wiz.remove() asset.refresh() self.assertEqual(len(asset.depreciation_line_ids), 3) - self.assertAlmostEqual(asset.depreciation_line_ids[1].amount, 81.46, places=2) - self.assertAlmostEqual(asset.depreciation_line_ids[2].amount, 4918.54, places=2) + self.assertAlmostEqual(asset.depreciation_line_ids[1].amount, 83.33, places=2) + self.assertAlmostEqual(asset.depreciation_line_ids[2].amount, 4916.67, places=2) def test_09_asset_from_invoice(self): all_asset = self.env["account.asset"].search([]) diff --git a/account_asset_management/wizard/account_asset_remove.py b/account_asset_management/wizard/account_asset_remove.py index 6e9aa5187..6dcc70cbe 100644 --- a/account_asset_management/wizard/account_asset_remove.py +++ b/account_asset_management/wizard/account_asset_remove.py @@ -155,7 +155,11 @@ class AccountAssetRemove(models.TransientModel): residual_value = asset.value_residual dlines = asset_line_obj.search( - [("asset_id", "=", asset.id), ("type", "=", "depreciate")], + [ + ("asset_id", "=", asset.id), + ("type", "=", "depreciate"), + ("move_check", "!=", False), + ], order="line_date desc", ) if dlines: @@ -256,9 +260,9 @@ class AccountAssetRemove(models.TransientModel): ) last_depr_date = create_dl.line_date - period_number_days = (first_date - last_depr_date).days + period_number_days = (first_date - last_depr_date).days + 1 new_line_date = date_remove + relativedelta(days=-1) - to_depreciate_days = (new_line_date - last_depr_date).days + to_depreciate_days = (new_line_date - last_depr_date).days + 1 to_depreciate_amount = round( float(to_depreciate_days) / float(period_number_days) @@ -267,7 +271,11 @@ class AccountAssetRemove(models.TransientModel): ) residual_value = asset.value_residual - to_depreciate_amount if to_depreciate_amount: - update_vals = {"amount": to_depreciate_amount, "line_date": new_line_date} + update_vals = { + "amount": to_depreciate_amount, + "line_date": new_line_date, + "line_days": to_depreciate_days, + } first_to_depreciate_dl.write(update_vals) dlines[0].create_move() dlines -= dlines[0]