| # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors |
| # License: GNU General Public License v3. See license.txt |
| |
| import frappe |
| from frappe.permissions import add_permission, update_permission_property |
| from erpnext.regional.saudi_arabia.wizard.operations.setup_ksa_vat_setting import create_ksa_vat_setting |
| from frappe.custom.doctype.custom_field.custom_field import create_custom_fields |
| |
| def setup(company=None, patch=True): |
| add_print_formats() |
| add_permissions() |
| make_custom_fields() |
| |
| def add_print_formats(): |
| frappe.reload_doc("regional", "print_format", "detailed_tax_invoice", force=True) |
| frappe.reload_doc("regional", "print_format", "simplified_tax_invoice", force=True) |
| frappe.reload_doc("regional", "print_format", "tax_invoice", force=True) |
| frappe.reload_doc("regional", "print_format", "ksa_vat_invoice", force=True) |
| frappe.reload_doc("regional", "print_format", "ksa_pos_invoice", force=True) |
| |
| for d in ('Simplified Tax Invoice', 'Detailed Tax Invoice', 'Tax Invoice', 'KSA VAT Invoice', 'KSA POS Invoice'): |
| frappe.db.set_value("Print Format", d, "disabled", 0) |
| |
| def add_permissions(): |
| """Add Permissions for KSA VAT Setting.""" |
| add_permission('KSA VAT Setting', 'All', 0) |
| for role in ('Accounts Manager', 'Accounts User', 'System Manager'): |
| add_permission('KSA VAT Setting', role, 0) |
| update_permission_property('KSA VAT Setting', role, 0, 'write', 1) |
| update_permission_property('KSA VAT Setting', role, 0, 'create', 1) |
| |
| """Enable KSA VAT Report""" |
| frappe.db.set_value('Report', 'KSA VAT', 'disabled', 0) |
| |
| def make_custom_fields(): |
| """Create Custom fields |
| - QR code Image file |
| - Company Name in Arabic |
| - Address in Arabic |
| """ |
| 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) |
| |
| is_exempt = dict(fieldname='is_exempt', label='Is Exempt', |
| fieldtype='Check', fetch_from='item_code.is_exempt', insert_after='is_zero_rated', |
| print_hide=1) |
| |
| purchase_invoice_fields = [ |
| dict(fieldname='company_trn', label='Company TRN', |
| fieldtype='Read Only', insert_after='shipping_address', |
| fetch_from='company.tax_id', print_hide=1), |
| dict(fieldname='supplier_name_in_arabic', label='Supplier Name in Arabic', |
| fieldtype='Read Only', insert_after='supplier_name', |
| fetch_from='supplier.supplier_name_in_arabic', print_hide=1) |
| ] |
| |
| sales_invoice_fields = [ |
| dict(fieldname='company_trn', label='Company TRN', |
| fieldtype='Read Only', insert_after='company_address', |
| fetch_from='company.tax_id', print_hide=1), |
| dict(fieldname='customer_name_in_arabic', label='Customer Name in Arabic', |
| fieldtype='Read Only', insert_after='customer_name', |
| fetch_from='customer.customer_name_in_arabic', print_hide=1), |
| dict(fieldname='ksa_einv_qr', label='KSA E-Invoicing QR', |
| fieldtype='Attach Image', read_only=1, no_copy=1, hidden=1) |
| ] |
| |
| custom_fields = { |
| 'Item': [is_zero_rated, is_exempt], |
| 'Customer': [ |
| dict(fieldname='customer_name_in_arabic', label='Customer Name in Arabic', |
| fieldtype='Data', insert_after='customer_name'), |
| ], |
| 'Supplier': [ |
| dict(fieldname='supplier_name_in_arabic', label='Supplier Name in Arabic', |
| fieldtype='Data', insert_after='supplier_name'), |
| ], |
| 'Purchase Invoice': purchase_invoice_fields, |
| 'Purchase Order': purchase_invoice_fields, |
| 'Purchase Receipt': purchase_invoice_fields, |
| 'Sales Invoice': sales_invoice_fields, |
| 'POS Invoice': sales_invoice_fields, |
| 'Sales Order': sales_invoice_fields, |
| 'Delivery Note': sales_invoice_fields, |
| 'Sales Invoice Item': [is_zero_rated, is_exempt], |
| 'POS Invoice Item': [is_zero_rated, is_exempt], |
| 'Purchase Invoice Item': [is_zero_rated, is_exempt], |
| 'Sales Order Item': [is_zero_rated, is_exempt], |
| 'Delivery Note Item': [is_zero_rated, is_exempt], |
| 'Quotation Item': [is_zero_rated, is_exempt], |
| 'Purchase Order Item': [is_zero_rated, is_exempt], |
| 'Purchase Receipt Item': [is_zero_rated, is_exempt], |
| 'Supplier Quotation Item': [is_zero_rated, is_exempt], |
| 'Address': [ |
| dict(fieldname='address_in_arabic', label='Address in Arabic', |
| fieldtype='Data',insert_after='address_line2') |
| ], |
| 'Company': [ |
| dict(fieldname='company_name_in_arabic', label='Company Name In Arabic', |
| fieldtype='Data', insert_after='company_name') |
| ] |
| } |
| |
| create_custom_fields(custom_fields, ignore_validate=True, update=True) |
| |
| def update_regional_tax_settings(country, company): |
| create_ksa_vat_setting(company) |