Frappe | 1dfb5eb | 2021-07-14 12:33:45 +0530 | [diff] [blame] | 1 | # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors |
| 2 | # License: GNU General Public License v3. See license.txt |
| 3 | |
| 4 | from __future__ import unicode_literals |
| 5 | |
Anuja Pawar | 08ae49c | 2021-08-09 17:58:52 +0530 | [diff] [blame] | 6 | import frappe |
Anuja | 5dcd5e4 | 2021-07-29 00:54:48 +0530 | [diff] [blame] | 7 | from frappe.custom.doctype.custom_field.custom_field import create_custom_fields |
Frappe | 1dfb5eb | 2021-07-14 12:33:45 +0530 | [diff] [blame] | 8 | from frappe.permissions import add_permission, update_permission_property |
| 9 | |
Anuja Pawar | abc63cf | 2021-07-26 18:11:38 +0530 | [diff] [blame] | 10 | def setup(company=None, patch=True): |
Anuja Pawar | 08ae49c | 2021-08-09 17:58:52 +0530 | [diff] [blame] | 11 | make_custom_fields() |
Frappe | 1dfb5eb | 2021-07-14 12:33:45 +0530 | [diff] [blame] | 12 | add_permissions() |
| 13 | |
Anuja | 5dcd5e4 | 2021-07-29 00:54:48 +0530 | [diff] [blame] | 14 | def make_custom_fields(update=True): |
| 15 | is_zero_rated = dict(fieldname='is_zero_rated', label='Is Zero Rated', |
| 16 | fieldtype='Check', fetch_from='item_code.is_zero_rated', |
| 17 | insert_after='description', print_hide=1) |
| 18 | custom_fields = { |
| 19 | 'Item': [ |
| 20 | dict(fieldname='is_zero_rated', label='Is Zero Rated', |
| 21 | fieldtype='Check', insert_after='item_group', |
| 22 | print_hide=1) |
| 23 | ], |
| 24 | 'Sales Invoice Item': is_zero_rated, |
| 25 | 'Purchase Invoice Item': is_zero_rated |
| 26 | } |
Ankush Menat | 4551d7d | 2021-08-19 13:41:10 +0530 | [diff] [blame] | 27 | |
Anuja | 5dcd5e4 | 2021-07-29 00:54:48 +0530 | [diff] [blame] | 28 | create_custom_fields(custom_fields, update=update) |
| 29 | |
Frappe | 1dfb5eb | 2021-07-14 12:33:45 +0530 | [diff] [blame] | 30 | def add_permissions(): |
Anuja Pawar | 08ae49c | 2021-08-09 17:58:52 +0530 | [diff] [blame] | 31 | """Add Permissions for South Africa VAT Settings and South Africa VAT Account |
| 32 | and VAT Audit Report""" |
Frappe | 1dfb5eb | 2021-07-14 12:33:45 +0530 | [diff] [blame] | 33 | for doctype in ('South Africa VAT Settings', 'South Africa VAT Account'): |
| 34 | add_permission(doctype, 'All', 0) |
| 35 | for role in ('Accounts Manager', 'Accounts User', 'System Manager'): |
| 36 | add_permission(doctype, role, 0) |
| 37 | update_permission_property(doctype, role, 0, 'write', 1) |
Anuja Pawar | 08ae49c | 2021-08-09 17:58:52 +0530 | [diff] [blame] | 38 | update_permission_property(doctype, role, 0, 'create', 1) |
Ankush Menat | 4551d7d | 2021-08-19 13:41:10 +0530 | [diff] [blame] | 39 | |
Anuja Pawar | 08ae49c | 2021-08-09 17:58:52 +0530 | [diff] [blame] | 40 | |
| 41 | if not frappe.db.get_value('Custom Role', dict(report="VAT Audit Report")): |
| 42 | frappe.get_doc(dict( |
| 43 | doctype='Custom Role', |
| 44 | report="VAT Audit Report", |
| 45 | roles= [ |
| 46 | dict(role='Accounts User'), |
| 47 | dict(role='Accounts Manager'), |
| 48 | dict(role='Auditor') |
| 49 | ] |
Ankush Menat | 4551d7d | 2021-08-19 13:41:10 +0530 | [diff] [blame] | 50 | )).insert() |