blob: 7f41c462ccee7176967c532d1bd1d1f371ebdb31 [file] [log] [blame]
rohitwaghchaure4e17fae2017-12-12 14:40:52 +05301# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
2# License: GNU General Public License v3. See license.txt
3
Ahmadcb0c2d12021-08-26 07:35:59 +05004import frappe
5from frappe.permissions import add_permission, update_permission_property
Ankush Menat494bd9e2022-03-28 18:52:46 +05306from erpnext.regional.saudi_arabia.wizard.operations.setup_ksa_vat_setting import (
7 create_ksa_vat_setting,
8)
Deepesh Gargc81d4732021-11-08 17:14:03 +05309from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
rohitwaghchaure4e17fae2017-12-12 14:40:52 +053010
Ankush Menat494bd9e2022-03-28 18:52:46 +053011
rohitwaghchaure4e17fae2017-12-12 14:40:52 +053012def setup(company=None, patch=True):
rohitwaghchaure4e17fae2017-12-12 14:40:52 +053013 add_print_formats()
Ahmadcb0c2d12021-08-26 07:35:59 +050014 add_permissions()
ahmadpak2a5beec2021-10-30 17:18:45 +030015 make_custom_fields()
Ahmadcb0c2d12021-08-26 07:35:59 +050016
Ankush Menat494bd9e2022-03-28 18:52:46 +053017
Dany Robertbb3119c2021-12-07 11:05:41 +000018def add_print_formats():
Dany Roberta0aeace2021-12-07 12:39:39 +000019 frappe.reload_doc("regional", "print_format", "detailed_tax_invoice", force=True)
20 frappe.reload_doc("regional", "print_format", "simplified_tax_invoice", force=True)
21 frappe.reload_doc("regional", "print_format", "tax_invoice", force=True)
22 frappe.reload_doc("regional", "print_format", "ksa_vat_invoice", force=True)
23 frappe.reload_doc("regional", "print_format", "ksa_pos_invoice", force=True)
Dany Robertbb3119c2021-12-07 11:05:41 +000024
Ankush Menat494bd9e2022-03-28 18:52:46 +053025 for d in (
26 "Simplified Tax Invoice",
27 "Detailed Tax Invoice",
28 "Tax Invoice",
29 "KSA VAT Invoice",
30 "KSA POS Invoice",
31 ):
Dany Robertca850942021-12-08 07:52:06 +053032 frappe.db.set_value("Print Format", d, "disabled", 0)
Dany Robertbb3119c2021-12-07 11:05:41 +000033
Ankush Menat494bd9e2022-03-28 18:52:46 +053034
Ahmadcb0c2d12021-08-26 07:35:59 +050035def add_permissions():
36 """Add Permissions for KSA VAT Setting."""
Ankush Menat494bd9e2022-03-28 18:52:46 +053037 add_permission("KSA VAT Setting", "All", 0)
38 for role in ("Accounts Manager", "Accounts User", "System Manager"):
39 add_permission("KSA VAT Setting", role, 0)
40 update_permission_property("KSA VAT Setting", role, 0, "write", 1)
41 update_permission_property("KSA VAT Setting", role, 0, "create", 1)
Ahmadcb0c2d12021-08-26 07:35:59 +050042
43 """Enable KSA VAT Report"""
Ankush Menat494bd9e2022-03-28 18:52:46 +053044 frappe.db.set_value("Report", "KSA VAT", "disabled", 0)
45
Ahmad87380d02021-09-06 23:36:55 +050046
ahmadpak2a5beec2021-10-30 17:18:45 +030047def make_custom_fields():
48 """Create Custom fields
49 - QR code Image file
50 - Company Name in Arabic
51 - Address in Arabic
52 """
Ankush Menat494bd9e2022-03-28 18:52:46 +053053 is_zero_rated = dict(
54 fieldname="is_zero_rated",
55 label="Is Zero Rated",
56 fieldtype="Check",
57 fetch_from="item_code.is_zero_rated",
58 insert_after="description",
59 print_hide=1,
60 )
Dany Robert63a4c1d2022-01-06 18:48:02 +053061
Ankush Menat494bd9e2022-03-28 18:52:46 +053062 is_exempt = dict(
63 fieldname="is_exempt",
64 label="Is Exempt",
65 fieldtype="Check",
66 fetch_from="item_code.is_exempt",
67 insert_after="is_zero_rated",
68 print_hide=1,
69 )
Dany Robert00b2ded2022-01-06 18:42:56 +053070
71 purchase_invoice_fields = [
Ankush Menat494bd9e2022-03-28 18:52:46 +053072 dict(
73 fieldname="company_trn",
74 label="Company TRN",
75 fieldtype="Read Only",
76 insert_after="shipping_address",
77 fetch_from="company.tax_id",
78 print_hide=1,
79 ),
80 dict(
81 fieldname="supplier_name_in_arabic",
82 label="Supplier Name in Arabic",
83 fieldtype="Read Only",
84 insert_after="supplier_name",
85 fetch_from="supplier.supplier_name_in_arabic",
86 print_hide=1,
87 ),
88 ]
Dany Robert00b2ded2022-01-06 18:42:56 +053089
90 sales_invoice_fields = [
Ankush Menat494bd9e2022-03-28 18:52:46 +053091 dict(
92 fieldname="company_trn",
93 label="Company TRN",
94 fieldtype="Read Only",
95 insert_after="company_address",
96 fetch_from="company.tax_id",
97 print_hide=1,
98 ),
99 dict(
100 fieldname="customer_name_in_arabic",
101 label="Customer Name in Arabic",
102 fieldtype="Read Only",
103 insert_after="customer_name",
104 fetch_from="customer.customer_name_in_arabic",
105 print_hide=1,
106 ),
107 dict(
108 fieldname="ksa_einv_qr",
109 label="KSA E-Invoicing QR",
110 fieldtype="Attach Image",
111 read_only=1,
112 no_copy=1,
113 hidden=1,
114 ),
115 ]
Dany Robert00b2ded2022-01-06 18:42:56 +0530116
Deepesh Gargc81d4732021-11-08 17:14:03 +0530117 custom_fields = {
Ankush Menat494bd9e2022-03-28 18:52:46 +0530118 "Item": [is_zero_rated, is_exempt],
119 "Customer": [
120 dict(
121 fieldname="customer_name_in_arabic",
122 label="Customer Name in Arabic",
123 fieldtype="Data",
124 insert_after="customer_name",
125 ),
Deepesh Gargc81d4732021-11-08 17:14:03 +0530126 ],
Ankush Menat494bd9e2022-03-28 18:52:46 +0530127 "Supplier": [
128 dict(
129 fieldname="supplier_name_in_arabic",
130 label="Supplier Name in Arabic",
131 fieldtype="Data",
132 insert_after="supplier_name",
133 ),
Dany Robertd06c4b52021-12-07 12:29:59 +0530134 ],
Ankush Menat494bd9e2022-03-28 18:52:46 +0530135 "Purchase Invoice": purchase_invoice_fields,
136 "Purchase Order": purchase_invoice_fields,
137 "Purchase Receipt": purchase_invoice_fields,
138 "Sales Invoice": sales_invoice_fields,
139 "POS Invoice": sales_invoice_fields,
140 "Sales Order": sales_invoice_fields,
141 "Delivery Note": sales_invoice_fields,
142 "Sales Invoice Item": [is_zero_rated, is_exempt],
143 "POS Invoice Item": [is_zero_rated, is_exempt],
144 "Purchase Invoice Item": [is_zero_rated, is_exempt],
145 "Sales Order Item": [is_zero_rated, is_exempt],
146 "Delivery Note Item": [is_zero_rated, is_exempt],
147 "Quotation Item": [is_zero_rated, is_exempt],
148 "Purchase Order Item": [is_zero_rated, is_exempt],
149 "Purchase Receipt Item": [is_zero_rated, is_exempt],
150 "Supplier Quotation Item": [is_zero_rated, is_exempt],
151 "Address": [
152 dict(
153 fieldname="address_in_arabic",
154 label="Address in Arabic",
155 fieldtype="Data",
156 insert_after="address_line2",
157 )
Deepesh Gargc81d4732021-11-08 17:14:03 +0530158 ],
Ankush Menat494bd9e2022-03-28 18:52:46 +0530159 "Company": [
160 dict(
161 fieldname="company_name_in_arabic",
162 label="Company Name In Arabic",
163 fieldtype="Data",
164 insert_after="company_name",
165 )
166 ],
Deepesh Gargc81d4732021-11-08 17:14:03 +0530167 }
Ahmad9dae36b2021-09-17 01:51:32 +0500168
Deepesh Garg615dd9d2022-02-13 19:24:10 +0530169 create_custom_fields(custom_fields, ignore_validate=True, update=True)
ahmadpak2a5beec2021-10-30 17:18:45 +0300170
Ankush Menat494bd9e2022-03-28 18:52:46 +0530171
Deepesh Gargc81d4732021-11-08 17:14:03 +0530172def update_regional_tax_settings(country, company):
173 create_ksa_vat_setting(company)