From d84a55313af874d0a70efd73496733ed2261fcfd Mon Sep 17 00:00:00 2001 From: Saqib Date: Sun, 3 May 2020 13:20:24 +0530 Subject: [PATCH] chore: add validation for gross purchase amount (#21534) * chore: add validation for gross purchase amount * fix: tests Co-authored-by: Nabin Hait --- erpnext/assets/doctype/asset/asset.py | 7 +++++++ erpnext/assets/doctype/asset/test_asset.py | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index ecbfeb7f14..06dfa19bf2 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -22,6 +22,7 @@ class Asset(AccountsController): 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 @@ class Asset(AccountsController): 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"), "
"), 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 050b30d89a..a0f8d156d7 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -79,7 +79,6 @@ class TestAsset(unittest.TestCase): 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 @@ def create_asset(**args): "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",