# 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)