chore: add validation for gross purchase amount (#21534)
* chore: add validation for gross purchase amount
* fix: tests
Co-authored-by: Nabin Hait <nabinhait@gmail.com>
diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index ecbfeb7..06dfa19 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -22,6 +22,7 @@
self.validate_item()
self.set_missing_values()
self.prepare_depreciation_data()
+ self.validate_gross_and_purchase_amount()
if self.get("schedules"):
self.validate_expected_value_after_useful_life()
@@ -124,6 +125,12 @@
if self.available_for_use_date and getdate(self.available_for_use_date) < getdate(self.purchase_date):
frappe.throw(_("Available-for-use Date should be after purchase date"))
+
+ def validate_gross_and_purchase_amount(self):
+ if self.gross_purchase_amount and self.gross_purchase_amount != self.purchase_receipt_amount:
+ frappe.throw(_("Gross Purchase Amount should be {} to purchase amount of one single Asset. {}\
+ Please do not book expense of multiple assets against one single Asset.")
+ .format(frappe.bold("equal"), "<br>"), title=_("Invalid Gross Purchase Amount"))
def cancel_auto_gen_movement(self):
movements = frappe.db.sql(
diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py
index 050b30d..a0f8d15 100644
--- a/erpnext/assets/doctype/asset/test_asset.py
+++ b/erpnext/assets/doctype/asset/test_asset.py
@@ -79,7 +79,6 @@
doc.set_missing_values()
self.assertEquals(doc.items[0].is_fixed_asset, 1)
-
def test_schedule_for_straight_line_method(self):
pr = make_purchase_receipt(item_code="Macbook Pro",
qty=1, rate=100000.0, location="Test Location")
@@ -596,6 +595,7 @@
"purchase_date": "2015-01-01",
"calculate_depreciation": 0,
"gross_purchase_amount": 100000,
+ "purchase_receipt_amount": 100000,
"expected_value_after_useful_life": 10000,
"warehouse": args.warehouse or "_Test Warehouse - _TC",
"available_for_use_date": "2020-06-06",