# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors # License: GNU General Public License v3. See license.txt import frappe from frappe.custom.doctype.custom_field.custom_field import create_custom_fields from frappe.permissions import add_permission, update_permission_property def setup(company=None, patch=True): make_custom_fields() add_permissions() def make_custom_fields(update=True): is_zero_rated = dict(fieldname='is_zero_rated', label='Is Zero Rated', fieldtype='Check', fetch_from='item_code.is_zero_rated', insert_after='description', print_hide=1) custom_fields = { 'Item': [ dict(fieldname='is_zero_rated', label='Is Zero Rated', fieldtype='Check', insert_after='item_group', print_hide=1) ], 'Sales Invoice Item': is_zero_rated, 'Purchase Invoice Item': is_zero_rated } create_custom_fields(custom_fields, update=update) def add_permissions(): """Add Permissions for South Africa VAT Settings and South Africa VAT Account and VAT Audit Report""" for doctype in ('South Africa VAT Settings', 'South Africa VAT Account'): add_permission(doctype, 'All', 0) for role in ('Accounts Manager', 'Accounts User', 'System Manager'): add_permission(doctype, role, 0) update_permission_property(doctype, role, 0, 'write', 1) update_permission_property(doctype, role, 0, 'create', 1) if not frappe.db.get_value('Custom Role', dict(report="VAT Audit Report")): frappe.get_doc(dict( doctype='Custom Role', report="VAT Audit Report", roles= [ dict(role='Accounts User'), dict(role='Accounts Manager'), dict(role='Auditor') ] )).insert()