prevent deletion of sales invoices if country is nepal

This commit is contained in:
theopen-institute 2018-03-09 07:42:05 +07:00 committed by Nabin Hait
parent b4de7e3d07
commit 38cbd71352
4 changed files with 24 additions and 3 deletions

View File

@ -201,7 +201,7 @@ doc_events = {
"Sales Invoice": { "Sales Invoice": {
'validate': 'erpnext.regional.india.utils.set_place_of_supply', 'validate': 'erpnext.regional.india.utils.set_place_of_supply',
"on_submit": "erpnext.regional.france.utils.create_transaction_log", "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": { "Payment Entry": {
"on_submit": ["erpnext.regional.france.utils.create_transaction_log", "erpnext.accounts.doctype.payment_request.payment_request.make_status_as_paid"], "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': { 'Saudi Arabia': {
'erpnext.controllers.taxes_and_totals.update_itemised_tax_data': 'erpnext.regional.united_arab_emirates.utils.update_itemised_tax_data' 'erpnext.controllers.taxes_and_totals.update_itemised_tax_data': 'erpnext.regional.united_arab_emirates.utils.update_itemised_tax_data'
} }
} }

View File

View File

@ -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'

View File

@ -10,7 +10,10 @@ class TestInit(unittest.TestCase):
self.assertEqual(test_method(), 'overridden') self.assertEqual(test_method(), 'overridden')
frappe.flags.country = 'Nepal' frappe.flags.country = 'Nepal'
self.assertEqual(test_method(), 'original') self.assertEqual(test_method(), 'overridden')
frappe.flags.country = 'France' frappe.flags.country = 'France'
self.assertEqual(test_method(), 'overridden') self.assertEqual(test_method(), 'overridden')
frappe.flags.country = 'Maldives'
self.assertEqual(test_method(), 'original')