It is already there for roles, Purchase Master Manager and Sales Master and these roles are assigned to user.
In console it gives following error
Traceback (most recent call last):
File “/home/frappe/frappe-bench/apps/frappe/frappe/app.py”, line 60, in application
response = frappe.api.handle()
File “/home/frappe/frappe-bench/apps/frappe/frappe/api.py”, line 55, in handle
return frappe.handler.handle()
File “/home/frappe/frappe-bench/apps/frappe/frappe/handler.py”, line 21, in handle
data = execute_cmd(cmd)
File “/home/frappe/frappe-bench/apps/frappe/frappe/handler.py”, line 56, in execute_cmd
return frappe.call(method, **frappe.form_dict)
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 1036, in call
return fn(*args, **newargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/desk/form/save.py”, line 22, in savedocs
doc.save()
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 271, in save
return self._save(*args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 294, in _save
self.insert()
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 258, in insert
self.run_post_save_methods()
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 917, in run_post_save_methods
self.run_method(“on_update”)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 786, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 1056, in composer
return composed(self, method, *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 1039, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 780, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/stock/doctype/price_list/price_list.py”, line 17, in on_update
self.set_default_if_missing()
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/stock/doctype/price_list/price_list.py”, line 23, in set_default_if_missing
frappe.set_value(“Selling Settings”, “Selling Settings”, “selling_price_list”, self.name)
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 673, in set_value
return frappe.client.set_value(doctype, docname, fieldname, value)
File “/home/frappe/frappe-bench/apps/frappe/frappe/client.py”, line 128, in set_value
doc.save()
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 271, in save
return self._save(*args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 297, in _save
self.check_permission(“write”, “save”)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 178, in check_permission
self.raise_no_permission_to(permlevel or permtype)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 192, in raise_no_permission_to
raise frappe.PermissionError
frappe.exceptions.PermissionError