From 38cbd71352372a809100d43adda6df490bf2a93a Mon Sep 17 00:00:00 2001 From: theopen-institute Date: Fri, 9 Mar 2018 07:42:05 +0700 Subject: [PATCH 1/2] prevent deletion of sales invoices if country is nepal --- erpnext/hooks.py | 4 ++-- erpnext/regional/nepal/__init__.py | 0 erpnext/regional/nepal/utils.py | 18 ++++++++++++++++++ erpnext/tests/test_regional.py | 5 ++++- 4 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 erpnext/regional/nepal/__init__.py create mode 100644 erpnext/regional/nepal/utils.py diff --git a/erpnext/hooks.py b/erpnext/hooks.py index 3935f22295d..7ed9b88a408 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -201,7 +201,7 @@ doc_events = { "Sales Invoice": { 'validate': 'erpnext.regional.india.utils.set_place_of_supply', "on_submit": "erpnext.regional.france.utils.create_transaction_log", - "on_trash": "erpnext.regional.france.utils.check_deletion_permission" + "on_trash": ["erpnext.regional.france.utils.check_deletion_permission", "erpnext.regional.nepal.utils.check_deletion_permission"] }, "Payment Entry": { "on_submit": ["erpnext.regional.france.utils.create_transaction_log", "erpnext.accounts.doctype.payment_request.payment_request.make_status_as_paid"], @@ -277,4 +277,4 @@ regional_overrides = { 'Saudi Arabia': { 'erpnext.controllers.taxes_and_totals.update_itemised_tax_data': 'erpnext.regional.united_arab_emirates.utils.update_itemised_tax_data' } -} +} \ No newline at end of file diff --git a/erpnext/regional/nepal/__init__.py b/erpnext/regional/nepal/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/regional/nepal/utils.py b/erpnext/regional/nepal/utils.py new file mode 100644 index 00000000000..66536ee7623 --- /dev/null +++ b/erpnext/regional/nepal/utils.py @@ -0,0 +1,18 @@ +# Copyright (c) 2018, Frappe Technologies and contributors +# For license information, please see license.txt + +import frappe +from frappe import _ +from erpnext import get_region + +def check_deletion_permission(doc, method): + region = get_region() + if region not in ["Nepal"]: + return + else: + frappe.throw(_("Deletion is not permitted for country {0}".format(region))) + +# don't remove this function it is used in tests +def test_method(): + '''test function''' + return 'overridden' diff --git a/erpnext/tests/test_regional.py b/erpnext/tests/test_regional.py index 7524ccca060..3f8ebaff49a 100644 --- a/erpnext/tests/test_regional.py +++ b/erpnext/tests/test_regional.py @@ -10,7 +10,10 @@ class TestInit(unittest.TestCase): self.assertEqual(test_method(), 'overridden') frappe.flags.country = 'Nepal' - self.assertEqual(test_method(), 'original') + self.assertEqual(test_method(), 'overridden') frappe.flags.country = 'France' self.assertEqual(test_method(), 'overridden') + + frappe.flags.country = 'Maldives' + self.assertEqual(test_method(), 'original') \ No newline at end of file From 096c05ca6f20f95a57fba407cda391acd57fe5f0 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 9 Mar 2018 13:11:00 +0530 Subject: [PATCH 2/2] Fixes for regional feature of Nepal --- .../doctype/physician/physician.json | 2 +- .../remove_and_copy_fields_in_physician.py | 19 ++++++++++--------- erpnext/regional/nepal/utils.py | 7 +------ erpnext/tests/test_regional.py | 9 +++------ 4 files changed, 15 insertions(+), 22 deletions(-) diff --git a/erpnext/healthcare/doctype/physician/physician.json b/erpnext/healthcare/doctype/physician/physician.json index e29561e91e7..300dc9707d2 100644 --- a/erpnext/healthcare/doctype/physician/physician.json +++ b/erpnext/healthcare/doctype/physician/physician.json @@ -750,7 +750,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2018-01-19 15:25:43.166877", + "modified": "2018-03-09 15:25:43.166877", "modified_by": "Administrator", "module": "Healthcare", "name": "Physician", diff --git a/erpnext/patches/v10_0/remove_and_copy_fields_in_physician.py b/erpnext/patches/v10_0/remove_and_copy_fields_in_physician.py index bf286449c46..139751a684d 100644 --- a/erpnext/patches/v10_0/remove_and_copy_fields_in_physician.py +++ b/erpnext/patches/v10_0/remove_and_copy_fields_in_physician.py @@ -1,12 +1,13 @@ import frappe def execute(): - if frappe.db.exists("DocType", "Physician"): - frappe.reload_doc("healthcare", "doctype", "physician") - frappe.reload_doc("healthcare", "doctype", "physician_service_unit_schedule") - if frappe.db.has_column('Physician', 'physician_schedule'): - for doc in frappe.get_all('Physician'): - _doc = frappe.get_doc('Physician', doc.name) - if _doc.physician_schedule: - _doc.append('physician_schedules', {'schedule': _doc.physician_schedule}) - _doc.save() + if frappe.db.exists("DocType", "Physician"): + frappe.reload_doc("healthcare", "doctype", "physician") + frappe.reload_doc("healthcare", "doctype", "physician_service_unit_schedule") + + if frappe.db.has_column('Physician', 'physician_schedule'): + for doc in frappe.get_all('Physician'): + _doc = frappe.get_doc('Physician', doc.name) + if _doc.physician_schedule: + _doc.append('physician_schedules', {'schedule': _doc.physician_schedule}) + _doc.save() diff --git a/erpnext/regional/nepal/utils.py b/erpnext/regional/nepal/utils.py index 66536ee7623..76801b9d844 100644 --- a/erpnext/regional/nepal/utils.py +++ b/erpnext/regional/nepal/utils.py @@ -10,9 +10,4 @@ def check_deletion_permission(doc, method): if region not in ["Nepal"]: return else: - frappe.throw(_("Deletion is not permitted for country {0}".format(region))) - -# don't remove this function it is used in tests -def test_method(): - '''test function''' - return 'overridden' + frappe.throw(_("Deletion is not permitted for country {0}".format(region))) \ No newline at end of file diff --git a/erpnext/tests/test_regional.py b/erpnext/tests/test_regional.py index 3f8ebaff49a..7bd6fa8238d 100644 --- a/erpnext/tests/test_regional.py +++ b/erpnext/tests/test_regional.py @@ -9,11 +9,8 @@ class TestInit(unittest.TestCase): frappe.flags.country = 'India' self.assertEqual(test_method(), 'overridden') - frappe.flags.country = 'Nepal' - self.assertEqual(test_method(), 'overridden') + frappe.flags.country = 'Maldives' + self.assertEqual(test_method(), 'original') frappe.flags.country = 'France' - self.assertEqual(test_method(), 'overridden') - - frappe.flags.country = 'Maldives' - self.assertEqual(test_method(), 'original') \ No newline at end of file + self.assertEqual(test_method(), 'overridden') \ No newline at end of file