Merge pull request #43979 from khushi8112/correct-precision-for-asset-values

fix: added precision validation
This commit is contained in:
Khushi Rawat
2024-11-06 00:31:42 +05:30
committed by GitHub

View File

@@ -119,6 +119,7 @@ class Asset(AccountsController):
# end: auto-generated types
def validate(self):
self.validate_precision()
self.validate_asset_values()
self.validate_asset_and_reference()
self.validate_item()
@@ -307,6 +308,15 @@ class Asset(AccountsController):
title=_("Missing Finance Book"),
)
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)
if self.opening_accumulated_depreciation:
self.opening_accumulated_depreciation = flt(
self.opening_accumulated_depreciation, float_precision
)
def validate_asset_values(self):
if not self.asset_category:
self.asset_category = frappe.get_cached_value("Item", self.item_code, "asset_category")
@@ -472,6 +482,9 @@ 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: