diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 243ad009050..e499b5e0faa 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -308,12 +308,14 @@ class Asset(AccountsController): ) def validate_precision(self): - float_precision = cint(frappe.db.get_default("float_precision")) or 2 if self.gross_purchase_amount: - self.gross_purchase_amount = flt(self.gross_purchase_amount, float_precision) + self.gross_purchase_amount = flt( + self.gross_purchase_amount, self.precision("gross_purchase_amount") + ) + if self.opening_accumulated_depreciation: self.opening_accumulated_depreciation = flt( - self.opening_accumulated_depreciation, float_precision + self.opening_accumulated_depreciation, self.precision("opening_accumulated_depreciation") ) def validate_asset_values(self): @@ -487,11 +489,7 @@ class Asset(AccountsController): def validate_expected_value_after_useful_life(self): for row in self.get("finance_books"): - row.expected_value_after_useful_life = flt( - row.expected_value_after_useful_life, self.precision("gross_purchase_amount") - ) depr_schedule = get_depr_schedule(self.name, "Draft", row.finance_book) - if not depr_schedule: continue diff --git a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py index 679fbfe2e58..fe9fa870e0a 100644 --- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py +++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py @@ -430,6 +430,7 @@ class AssetDepreciationSchedule(Document): if not depreciation_amount: continue + depreciation_amount = flt(depreciation_amount, asset_doc.precision("gross_purchase_amount")) value_after_depreciation = flt( value_after_depreciation - flt(depreciation_amount), asset_doc.precision("gross_purchase_amount"), @@ -443,6 +444,7 @@ class AssetDepreciationSchedule(Document): depreciation_amount += flt(value_after_depreciation) - flt( row.expected_value_after_useful_life ) + depreciation_amount = flt(depreciation_amount, asset_doc.precision("gross_purchase_amount")) skip_row = True if flt(depreciation_amount, asset_doc.precision("gross_purchase_amount")) > 0: @@ -517,10 +519,13 @@ class AssetDepreciationSchedule(Document): i - 1 ].accumulated_depreciation_amount else: - accumulated_depreciation = flt(self.opening_accumulated_depreciation) + accumulated_depreciation = flt( + self.opening_accumulated_depreciation, + asset_doc.precision("opening_accumulated_depreciation"), + ) - depreciation_amount = flt(d.depreciation_amount, d.precision("depreciation_amount")) - value_after_depreciation -= flt(depreciation_amount) + value_after_depreciation -= flt(d.depreciation_amount) + value_after_depreciation = flt(value_after_depreciation, d.precision("depreciation_amount")) # for the last row, if depreciation method = Straight Line if ( @@ -530,12 +535,11 @@ class AssetDepreciationSchedule(Document): and not date_of_return and not row.shift_based ): - depreciation_amount += flt( + d.depreciation_amount += flt( value_after_depreciation - flt(row.expected_value_after_useful_life), d.precision("depreciation_amount"), ) - d.depreciation_amount = depreciation_amount accumulated_depreciation += d.depreciation_amount d.accumulated_depreciation_amount = flt( accumulated_depreciation, d.precision("accumulated_depreciation_amount")