blob: 289f2726e9b96317975636e6dfc52a59747b6223 [file] [log] [blame]
Frappe1dfb5eb2021-07-14 12:33:45 +05301# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
2# License: GNU General Public License v3. See license.txt
3
Frappe1dfb5eb2021-07-14 12:33:45 +05304
Anuja Pawar08ae49c2021-08-09 17:58:52 +05305import frappe
Anuja5dcd5e42021-07-29 00:54:48 +05306from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
Frappe1dfb5eb2021-07-14 12:33:45 +05307from frappe.permissions import add_permission, update_permission_property
8
Ankush Menat494bd9e2022-03-28 18:52:46 +05309
Anuja Pawarabc63cf2021-07-26 18:11:38 +053010def setup(company=None, patch=True):
Anuja Pawar08ae49c2021-08-09 17:58:52 +053011 make_custom_fields()
Frappe1dfb5eb2021-07-14 12:33:45 +053012 add_permissions()
13
Ankush Menat494bd9e2022-03-28 18:52:46 +053014
Anuja5dcd5e42021-07-29 00:54:48 +053015def make_custom_fields(update=True):
Ankush Menat494bd9e2022-03-28 18:52:46 +053016 is_zero_rated = dict(
17 fieldname="is_zero_rated",
18 label="Is Zero Rated",
19 fieldtype="Check",
20 fetch_from="item_code.is_zero_rated",
21 insert_after="description",
22 print_hide=1,
23 )
Anuja5dcd5e42021-07-29 00:54:48 +053024 custom_fields = {
Ankush Menat494bd9e2022-03-28 18:52:46 +053025 "Item": [
26 dict(
27 fieldname="is_zero_rated",
28 label="Is Zero Rated",
29 fieldtype="Check",
30 insert_after="item_group",
31 print_hide=1,
32 )
Anuja5dcd5e42021-07-29 00:54:48 +053033 ],
Ankush Menat494bd9e2022-03-28 18:52:46 +053034 "Sales Invoice Item": is_zero_rated,
35 "Purchase Invoice Item": is_zero_rated,
Anuja5dcd5e42021-07-29 00:54:48 +053036 }
Ankush Menat4551d7d2021-08-19 13:41:10 +053037
Anuja5dcd5e42021-07-29 00:54:48 +053038 create_custom_fields(custom_fields, update=update)
39
Ankush Menat494bd9e2022-03-28 18:52:46 +053040
Frappe1dfb5eb2021-07-14 12:33:45 +053041def add_permissions():
Anuja Pawar08ae49c2021-08-09 17:58:52 +053042 """Add Permissions for South Africa VAT Settings and South Africa VAT Account
Ankush Menat494bd9e2022-03-28 18:52:46 +053043 and VAT Audit Report"""
44 for doctype in ("South Africa VAT Settings", "South Africa VAT Account"):
45 add_permission(doctype, "All", 0)
46 for role in ("Accounts Manager", "Accounts User", "System Manager"):
Frappe1dfb5eb2021-07-14 12:33:45 +053047 add_permission(doctype, role, 0)
Ankush Menat494bd9e2022-03-28 18:52:46 +053048 update_permission_property(doctype, role, 0, "write", 1)
49 update_permission_property(doctype, role, 0, "create", 1)
Ankush Menat4551d7d2021-08-19 13:41:10 +053050
Ankush Menat494bd9e2022-03-28 18:52:46 +053051 if not frappe.db.get_value("Custom Role", dict(report="VAT Audit Report")):
52 frappe.get_doc(
53 dict(
54 doctype="Custom Role",
55 report="VAT Audit Report",
56 roles=[dict(role="Accounts User"), dict(role="Accounts Manager"), dict(role="Auditor")],
57 )
58 ).insert()