[Feature] Countrywise sales tax template
diff --git a/erpnext/accounts/doctype/sales_taxes_and_charges_template/sales_taxes_and_charges_template.py b/erpnext/accounts/doctype/sales_taxes_and_charges_template/sales_taxes_and_charges_template.py
index 28964bb..3947450 100644
--- a/erpnext/accounts/doctype/sales_taxes_and_charges_template/sales_taxes_and_charges_template.py
+++ b/erpnext/accounts/doctype/sales_taxes_and_charges_template/sales_taxes_and_charges_template.py
@@ -4,12 +4,18 @@
from __future__ import unicode_literals
import frappe
from frappe import _
+from frappe.utils import flt
from frappe.model.document import Document
from erpnext.controllers.accounts_controller import validate_taxes_and_charges, validate_inclusive_tax
class SalesTaxesandChargesTemplate(Document):
def validate(self):
valdiate_taxes_and_charges_template(self)
+
+ def set_missing_values(self):
+ for data in self.taxes:
+ if data.charge_type == 'On Net Total' and flt(data.rate) == 0.0:
+ data.rate = frappe.db.get_value('Account', data.account_head, 'tax_rate')
def valdiate_taxes_and_charges_template(doc):
# default should not be disabled
diff --git a/erpnext/setup/setup_wizard/data/country_wise_tax.json b/erpnext/setup/setup_wizard/data/country_wise_tax.json
new file mode 100644
index 0000000..06f7f09
--- /dev/null
+++ b/erpnext/setup/setup_wizard/data/country_wise_tax.json
@@ -0,0 +1,1380 @@
+{
+ "Albania": {
+ "Albania VAT": {
+ "account_name": "VAT",
+ "tax_rate": 20.00
+ }
+ },
+ "Algeria": {
+ "Algeria VAT 17%": {
+ "account_name": "VAT 17%",
+ "tax_rate": 17.00,
+ "default": 1
+ },
+ "Algeria VAT 7%": {
+ "account_name": "VAT 7%",
+ "tax_rate": 7.00
+ }
+ },
+
+ "Andorra": {
+ "Andorra VAT": {
+ "account_name": "VAT",
+ "tax_rate": 4.50
+ }
+ },
+
+ "Angola": {
+ "Angola VAT": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Antigua And Barbuda": {
+ "Antigua & Barbuda Sales Tax": {
+ "account_name": "ABST",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Argentina": {
+ "Argentina Tax": {
+ "account_name": "VAT",
+ "tax_rate": 21.00
+ }
+ },
+
+ "Armenia": {
+ "Armenia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 20.00
+ }
+ },
+
+ "Aruba": {
+ "Aruba Tax": {
+ "account_name": "VAT",
+ "tax_rate": 1.50
+ }
+ },
+
+ "Australia": {
+ "Australia GST1": {
+ "account_name": "GST 10%",
+ "tax_rate": 10.00,
+ "default": 1
+ },
+ "Australia GST 2%": {
+ "account_name": "GST 2%",
+ "tax_rate": 2
+ }
+ },
+
+ "Austria": {
+ "Austria Tax": {
+ "account_name": "VAT",
+ "tax_rate": 20.00
+ }
+ },
+
+ "Azerbaijan": {
+ "Azerbaijan Tax": {
+ "account_name": "GST",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Bahamas": {
+ "Bahamas Tax": {
+ "account_name": "VAT",
+ "tax_rate": 7.50
+ }
+ },
+
+ "Bangladesh": {
+ "Bangladesh Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Barbados": {
+ "Barbados Tax": {
+ "account_name": "VAT",
+ "tax_rate": 17.50
+ }
+ },
+
+ "Belarus": {
+ "Belarus Tax": {
+ "account_name": "VAT",
+ "tax_rate": 20.00
+ }
+ },
+
+ "Belgium": {
+ "Belgium VAT 21%": {
+ "account_name": "VAT 21%",
+ "tax_rate": 21.00,
+ "default": 1
+ },
+ "Belgium VAT 12%": {
+ "account_name": "VAT 12%",
+ "tax_rate": 12
+ }
+ },
+
+ "Belize": {
+ "Belize Tax": {
+ "account_name": "GST",
+ "tax_rate": 12.50
+ }
+ },
+
+ "Benin": {
+ "Benin Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Bhutan": {
+ "Bhutan Tax": {
+ "account_name": "VAT",
+ "tax_rate": 50.00
+ }
+ },
+
+ "Bolivia": {
+ "Bolivia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 13.00
+ }
+ },
+
+ "Bosnia and Herzegovina": {
+ "Bosnia & Herzegovina Tax": {
+ "account_name": "VAT",
+ "tax_rate": 17.00
+ }
+ },
+
+ "Botswana": {
+ "Botswana Tax": {
+ "account_name": "VAT",
+ "tax_rate": 12.00
+ }
+ },
+
+ "Brazil": {
+ "Brazil ICMS 19%": {
+ "account_name": "ICMS 19%",
+ "tax_rate": 19.00,
+ "default": 1
+ },
+ "Brazil ICMS 17%": {
+ "account_name": "ICMS 17%",
+ "tax_rate": 17.00
+ },
+ "Brazil PIS 1.65%": {
+ "account_name": "PIS 1.65%",
+ "tax_rate": 1.65
+ },
+ "Brazil COFINS 7.6%": {
+ "account_name": "COFINS 7.6%",
+ "tax_rate": 7.6
+ },
+ "Brazil COFINS 5.0%": {
+ "account_name": "ISS 5%",
+ "tax_rate": 5.0
+ }
+ },
+
+ "Bulgaria": {
+ "Bulgaria VAT 20%": {
+ "account_name": "VAT 20%",
+ "tax_rate": 20.00,
+ "default": 1
+ },
+ "Bulgaria VAT 7%": {
+ "account_name": "VAT 7%",
+ "tax_rate": 7.00
+ }
+ },
+
+ "Burkina Faso": {
+ "Burkina Faso Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Burundi": {
+ "Burundi Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Cambodia": {
+ "Cambodia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Cameroon": {
+ "Cameroon Tax": {
+ "account_name": "VAT",
+ "tax_rate": 19.25
+ }
+ },
+
+ "Canada": {
+ "Canada GST 5%": {
+ "account_name": "GST",
+ "tax_rate": 5.00,
+ "default": 1
+ },
+ "Canada HST 15%": {
+ "account_name": "HST",
+ "tax_rate": 15.00
+ },
+ "Canada PST 8%": {
+ "account_name": "PST 8%",
+ "tax_rate": 8.00
+ },
+ "Canada PST 7%": {
+ "account_name": "PST 7%",
+ "tax_rate": 7.00
+ },
+ "Canada PST 5%": {
+ "account_name": "PST 5%",
+ "tax_rate": 5.00
+ }
+ },
+
+ "Cape Verde": {
+ "Cape Verde Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Central African Republic": {
+ "Central African Republic Tax": {
+ "account_name": "VAT",
+ "tax_rate": 19.00
+ }
+ },
+
+ "Chad": {
+ "Chad Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Chile": {
+ "Chile Tax": {
+ "account_name": "VAT",
+ "tax_rate": 19.00
+ }
+ },
+
+ "China": {
+ "China Tax": {
+ "account_name": "VAT",
+ "tax_rate": 17.00
+ }
+ },
+
+ "Colombia": {
+ "Colombia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 16.00
+ }
+ },
+
+ "Comoros": {
+ "Comoros Tax": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Congo": {
+ "Congo Tax": {
+ "account_name": "VAT",
+ "tax_rate": 16.00
+ }
+ },
+
+ "Costa Rica": {
+ "Costa Rica": {
+ "account_name": "VAT",
+ "tax_rate": 13.00
+ }
+ },
+
+ "Croatia": {
+ "Croatia VAT 25%": {
+ "account_name": "VAT 25%",
+ "tax_rate": 25.00,
+ "default": 1
+ },
+ "Croatia VAT 10%": {
+ "account_name": "VAT 10%",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Cuba": {
+ "Cuba Tax": {
+ "account_name": "VAT",
+ "tax_rate": 20.00
+ }
+ },
+
+ "Cyprus": {
+ "Cyprus Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Czech Republic": {
+ "Czech Republic VAT 21%": {
+ "account_name": "VAT 21%",
+ "tax_rate": 21.00,
+ "default": 1
+ },
+ "Czech Republic VAT 15%": {
+ "account_name": "VAT 15%",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Denmark": {
+ "Denmark Tax": {
+ "account_name": "VAT",
+ "tax_rate": 25.00
+ }
+ },
+
+ "Djibouti": {
+ "Dijbouti Tax": {
+ "account_name": "VAT",
+ "tax_rate": 33.00
+ }
+ },
+
+ "Dominica": {
+ "Dominica Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Dominican Republic": {
+ "Dominican Republic Tax": {
+ "account_name": "ITBIS",
+ "tax_rate": 16.00
+ }
+ },
+
+ "Ecuador": {
+ "Ecuador Tax": {
+ "account_name": "VAT",
+ "tax_rate": 12.00
+ }
+ },
+
+ "Egypt": {
+ "Egypt Tax": {
+ "account_name": "GST",
+ "tax_rate": 10.00
+ }
+ },
+
+ "El Salvador": {
+ "El Salvador Tax": {
+ "account_name": "VAT",
+ "tax_rate": 13.00
+ }
+ },
+
+ "Equatorial Guinea": {
+ "Equatorial Guinea": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Eritrea": {
+ "Eritrea Tax": {
+ "account_name": "VAT",
+ "tax_rate": 4.00
+ }
+ },
+
+ "Estonia": {
+ "Estonia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 20.00
+ }
+ },
+
+ "Ethiopia": {
+ "Ethiopia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Fiji": {
+ "Fiji Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Finland": {
+ "Finland Tax": {
+ "account_name": "VAT",
+ "tax_rate": 24.00
+ }
+ },
+
+ "France": {
+ "France VAT 19.6%": {
+ "account_name": "VAT 19.6%",
+ "tax_rate": 19.6,
+ "default": 1
+ },
+ "France VAT 5.5%": {
+ "account_name": "VAT 5.5%",
+ "tax_rate": 5.5
+ }
+ },
+
+ "Gabon": {
+ "Gabon Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Gambia": {
+ "Gambia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Georgia": {
+ "Georgia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Germany": {
+ "Germany VAT 19%": {
+ "account_name": "VAT 19%",
+ "tax_rate": 19.00,
+ "default": 1
+ },
+ "Germany VAT 7%": {
+ "account_name": "VAT 7%",
+ "tax_rate": 7.00
+ }
+ },
+
+ "Ghana": {
+ "Ghana Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Greece": {
+ "Greece VAT 23%": {
+ "account_name": "VAT 23%",
+ "tax_rate": 23.00,
+ "default": 1
+ },
+ "Greece VAT 9%": {
+ "account_name": "VAT 9%",
+ "tax_rate": 9.00
+ }
+ },
+
+ "Grenada": {
+ "Grenada Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Guam": {
+ "Guam Tax": {
+ "account_name": "VAT",
+ "tax_rate": 4.00
+ }
+ },
+
+ "Guatemala": {
+ "Guatemala Tax": {
+ "account_name": "IVA",
+ "tax_rate": 12.00
+ }
+ },
+
+ "Guinea": {
+ "Guinea Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Guyana": {
+ "Guyana Tax": {
+ "account_name": "GST",
+ "tax_rate": 16.00
+ }
+ },
+
+ "Haiti": {
+ "Haiti Tax": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Honduras": {
+ "Honduras Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Hungary": {
+ "Hungary Tax": {
+ "account_name": "VAT",
+ "tax_rate": 27.00
+ }
+ },
+
+ "Iceland": {
+ "Iceland VAT 25.5%": {
+ "account_name": "VAT 25.5%",
+ "tax_rate": 25.5,
+ "default": 1
+ },
+ "Iceland VAT 7.5%": {
+ "account_name": "VAT 7.5%",
+ "tax_rate": 7.5
+ }
+ },
+
+ "India": {
+ "India VAT 5%": {
+ "account_name": "VAT 5%",
+ "tax_rate": 5.00,
+ "default": 1
+ },
+ "India VAT 4%": {
+ "account_name": "VAT 4%",
+ "tax_rate": 4.00
+ },
+ "India VAT 14%": {
+ "account_name": "VAT 14%",
+ "tax_rate": 14.00
+ }
+ },
+
+ "Indonesia": {
+ "Indonesia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Iran": {
+ "Iran Tax": {
+ "account_name": "VAT",
+ "tax_rate": 7.00
+ }
+ },
+
+ "Ireland": {
+ "Ireland Tax": {
+ "account_name": "VAT",
+ "tax_rate": 23.00
+ }
+ },
+
+ "Isle Of Man": {
+ "Isle of Man VAT 20%": {
+ "account_name": "VAT",
+ "tax_rate": 20.00,
+ "default": 1
+ },
+ "Isle of Man VAT 5%": {
+ "account_name": "VAT",
+ "tax_rate": 5.00
+ }
+ },
+
+ "Israel": {
+ "Israel Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Italy": {
+ "Italy Tax": {
+ "account_name": "VAT",
+ "tax_rate": 22.00
+ }
+ },
+
+ "Ivory Coast": {
+ "Ivory Coast": {
+ "account_name": "Metric",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Jamaica": {
+ "Jamaica Tax": {
+ "account_name": "GCT",
+ "tax_rate": 16.50
+ }
+ },
+
+ "Japan": {
+ "Japan Tax": {
+ "account_name": "CT",
+ "tax_rate": 5.00
+ }
+ },
+
+ "Jordan": {
+ "Jordan Tax": {
+ "account_name": "VAT",
+ "tax_rate": 16.00
+ }
+ },
+
+ "Kazakhstan": {
+ "Kazakhstan Tax": {
+ "account_name": "VAT",
+ "tax_rate": 12.00
+ }
+ },
+
+ "Kenya": {
+ "Kenya Tax": {
+ "account_name": "VAT",
+ "tax_rate": 16.00
+ }
+ },
+
+ "Kosovo": {
+ "Kosovo Tax": {
+ "account_name": "VAT",
+ "tax_rate": 16.00
+ }
+ },
+
+ "Kyrgyzstan": {
+ "Kyrgyztan Tax": {
+ "account_name": "VAT",
+ "tax_rate": 12.00
+ }
+ },
+
+ "Lao People's Democratic Republic": {
+ "Lao Republic Tax": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Latvia": {
+ "Latvia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 20.00
+ }
+ },
+
+ "Lebanon": {
+ "Lebanon Tax": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Liechtenstein": {
+ "Liechtenstein Tax": {
+ "account_name": "VAT",
+ "tax_rate": 8.00
+ }
+ },
+
+ "Lithuania": {
+ "Lithunia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 21.00
+ }
+ },
+
+ "Luxembourg": {
+ "Luxembourg VAT 15%": {
+ "account_name": "VAT 15%",
+ "tax_rate": 15.00,
+ "default": 1
+ },
+ "Luxembourg VAT 3%": {
+ "account_name": "VAT 3%",
+ "tax_rate": 3.00
+ }
+ },
+
+ "Macedonia": {
+ "Macedonia VAT 18%": {
+ "account_name": "VAT",
+ "tax_rate": 18.00,
+ "default": 1
+ },
+ "Macedonia VAT 5%": {
+ "account_name": "VAT",
+ "tax_rate": 5.00
+ }
+ },
+
+ "Madagascar": {
+ "Madagascar Tax": {
+ "account_name": "VAT",
+ "tax_rate": 20.00
+ }
+ },
+
+ "Malawi": {
+ "Malawi Tax": {
+ "account_name": "VAT",
+ "tax_rate": 16.50
+ }
+ },
+
+ "Malaysia": {
+ "Malaysia GST 6%": {
+ "account_name": "GST",
+ "tax_rate": 6.00,
+ "default": 1
+ },
+ "Malaysia GST 5%": {
+ "account_name": "GST",
+ "tax_rate": 5.00
+ },
+ "Malaysia GST 10%": {
+ "account_name": "GST",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Mali": {
+ "Mali Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Malta": {
+ "Malta Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Mauritania": {
+ "Mauritania Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Mauritius": {
+ "Mauritius Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Mexico": {
+ "Mexico Tax": {
+ "account_name": "IVA",
+ "tax_rate": 16.00
+ }
+ },
+
+ "Micronesia": {
+ "Micronesia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 5.00
+ }
+ },
+
+ "Moldova": {
+ "Moldova VAT 20%": {
+ "account_name": "VAT 20%",
+ "tax_rate": 20.00,
+ "default": 1
+ },
+ "Moldova VAT 8%": {
+ "account_name": "VAT 8%",
+ "tax_rate": 8.00
+ }
+ },
+
+ "Monaco": {
+ "Monaco Tax 19.6%": {
+ "account_name": "VAT 19.6%",
+ "tax_rate": 19.6,
+ "default": 1
+ },
+ "Monaco Tax 5.5%": {
+ "account_name": "VAT 5,5%",
+ "tax_rate": 5.5
+ }
+ },
+
+ "Mongolia": {
+ "Mongolia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Montenegro": {
+ "Montenegro Tax 17%": {
+ "account_name": "VAT 17%",
+ "tax_rate": 17.00,
+ "default": 1
+ },
+ "Montenegro Tax 7%": {
+ "account_name": "VAT 7%",
+ "tax_rate": 7.00
+ }
+ },
+
+ "Morocco": {
+ "Morroco VAT 20%": {
+ "account_name": "VAT 20%",
+ "tax_rate": 20.00,
+ "default": 1
+ },
+ "Morroco VAT 10%": {
+ "account_name": "VAT 10%",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Mozambique": {
+ "Mozambique Tax": {
+ "account_name": "VAT",
+ "tax_rate": 17.00
+ }
+ },
+
+ "Myanmar": {
+ "Myanamar Tax": {
+ "account_name": "VAT",
+ "tax_rate": 30.00
+ }
+ },
+
+ "Namibia": {
+ "Namibia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Nepal": {
+ "Nepal Tax": {
+ "account_name": "VAT",
+ "tax_rate": 13.00
+ }
+ },
+
+ "Netherlands": {
+ "Netherlands VAT 21%": {
+ "account_name": "VAT 21%",
+ "tax_rate": 21.00,
+ "default": 1
+ },
+ "Netherlands VAT 6%": {
+ "account_name": "VAT 6%",
+ "tax_rate": 6.00
+ }
+ },
+
+ "New Zealand": {
+ "New Zealand": {
+ "account_name": "GST",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Nicaragua": {
+ "Nicaragua Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Nigeria": {
+ "Nigeria Tax": {
+ "account_name": "VAT",
+ "tax_rate": 5
+ }
+ },
+
+ "North Korea": {
+ "North Korea": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Norway": {
+ "Norway VAT 25%": {
+ "account_name": "VAT 25%",
+ "tax_rate": 25.00,
+ "default": 1
+ },
+ "Norway VAT 12%": {
+ "account_name": "VAT 12%",
+ "tax_rate": 12.00
+ }
+ },
+
+ "Pakistan": {
+ "Pakistan Tax": {
+ "account_name": "GST",
+ "tax_rate": 17.00
+ }
+ },
+
+ "Panama": {
+ "Panama Tax": {
+ "account_name": "VAT",
+ "tax_rate": 7.00
+ }
+ },
+
+ "Papua New Guinea": {
+ "Papua New Guinea Tax": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Paraguay": {
+ "Paraguay Tax": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Peru": {
+ "Peru Tax": {
+ "account_name": "VAT",
+ "tax_rate": 16.00
+ }
+ },
+
+ "Philippines": {
+ "Philippines Tax": {
+ "account_name": "VAT",
+ "tax_rate": 12.00
+ }
+ },
+
+ "Poland": {
+ "Poland VAT 23%": {
+ "account_name": "VAT 23%",
+ "tax_rate": 23.00,
+ "default": 1
+ },
+ "Poland VAT 7%": {
+ "account_name": "VAT 7%",
+ "tax_rate": 7
+ }
+ },
+
+ "Portugal": {
+ "Portugal Tax": {
+ "account_name": "VAT",
+ "tax_rate": 23.00
+ }
+ },
+
+ "Republic Of The Congo": {
+ "Congo Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Romania": {
+ "Romania Tax": {
+ "account_name": "VAT",
+ "tax_rate": 24.00
+ }
+ },
+
+ "Russia": {
+ "Russia VAT 18%": {
+ "account_name": "VAT 18%",
+ "tax_rate": 18.00,
+ "default": 1
+ },
+ "Russia VAT 10%": {
+ "account_name": "VAT 10%",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Rwanda": {
+ "Rwanda Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Senegal": {
+ "Senegal Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Serbia": {
+ "Serbia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 20.00
+ }
+ },
+
+ "Seychelles": {
+ "Seychelles Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Sierra Leone": {
+ "Sierra Leone Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Singapore": {
+ "Singapore Tax": {
+ "account_name": "GST",
+ "tax_rate": 7.00
+ }
+ },
+
+ "Slovakia": {
+ "Slovakia VAT 20%": {
+ "account_name": "VAT 20%",
+ "tax_rate": 20.00,
+ "default": 1
+ },
+ "Slovakia VAT 10%": {
+ "account_name": "VAT 10%",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Slovenia": {
+ "Slovenia VAT 22%": {
+ "account_name": "VAT 22%",
+ "tax_rate": 22.00,
+ "default": 1
+ },
+ "Slovenia VAT 8.5%": {
+ "account_name": "VAT 8.5%",
+ "tax_rate": 8.50
+ }
+ },
+
+ "Solomon Islands": {
+ "Solomon Islands Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Somalia": {
+ "Somalia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "South Africa": {
+ "South Africa Tax": {
+ "account_name": "VAT",
+ "tax_rate": 14.00
+ }
+ },
+
+ "South Korea": {
+ "South Korea Tax": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Spain": {
+ "Spain Tax": {
+ "account_name": "VAT",
+ "tax_rate": 21.00
+ }
+ },
+
+ "Sri Lanka": {
+ "Sri Lanka Tax": {
+ "account_name": "VAT",
+ "tax_rate": 12.00
+ }
+ },
+
+ "St Lucia": {
+ "St Lucia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Sudan": {
+ "Sudan Tax": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Suriname": {
+ "Suriname Tax": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Swaziland": {
+ "Swaziland tax": {
+ "account_name": "VAT",
+ "tax_rate": 14.00
+ }
+ },
+
+ "Sweden": {
+ "Sweden Tax": {
+ "account_name": "VAT",
+ "tax_rate": 25.00
+ }
+ },
+
+ "Switzerland": {
+ "Switzerland VAT 8%": {
+ "account_name": "VAT 8%",
+ "tax_rate": 8.00,
+ "default": 1
+ },
+ "Switzerland VAT 2.4%": {
+ "account_name": "VAT 2.4%",
+ "tax_rate": 2.40
+ }
+ },
+
+ "Taiwan": {
+ "Taiwan Tax": {
+ "account_name": "VAT",
+ "tax_rate": 5.00
+ }
+ },
+
+ "Tajikistan": {
+ "Tajikistan Tax": {
+ "account_name": "VAT",
+ "tax_rate": 20
+ }
+ },
+
+ "Tanzania": {
+ "Tanzania Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Thailand": {
+ "Thailand Tax": {
+ "account_name": "VAT",
+ "tax_rate": 7.00
+ }
+ },
+
+ "Togo": {
+ "Togo Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Tonga": {
+ "Tonga Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Trinidad And Tobago": {
+ "Trinidad & Tobago Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ },
+
+ "Tunisia": {
+ "Tunisia VAT 18%": {
+ "account_name": "VAT 18%",
+ "tax_rate": 18.00,
+ "default": 1
+ },
+ "Tunisia VAT 12%": {
+ "account_name": "VAT 12%",
+ "tax_rate": 12.00
+ },
+ "Tunisia VAT 6%": {
+ "account_name": "VAT 6%",
+ "tax_rate": 6.00
+ }
+ },
+
+ "Turkey": {
+ "Turkey Tax": {
+ "account_name": "VAT 18%",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Turkmenistan": {
+ "Turkmenistan Tax": {
+ "account_name": "VAT",
+ "tax_rate": 20.00
+ }
+ },
+
+ "Uganda": {
+ "Uganda Tax": {
+ "account_name": "VAT",
+ "tax_rate": 18.00
+ }
+ },
+
+ "Ukraine": {
+ "Ukraine Tax": {
+ "account_name": "VAT",
+ "tax_rate": 20.00
+ }
+ },
+
+ "United Kingdom": {
+ "United Kingdom Tax": {
+ "account_name": "VAT",
+ "tax_rate": 20.00
+ }
+ },
+
+ "United States": {
+ "US ST 6%": {
+ "account_name": "ST 6%",
+ "tax_rate": 6.00,
+ "default": 1
+ },
+ "US ST 4%": {
+ "account_name": "ST 4%",
+ "tax_rate": 4.00
+ },
+ "US ST 6.25%": {
+ "account_name": "ST 6.25%",
+ "tax_rate": 6.25
+ }
+ },
+
+ "Uruguay": {
+ "Uruguay Tax": {
+ "account_name": "VAT",
+ "tax_rate": 22.00
+ }
+ },
+
+ "Uzbekistan": {
+ "Uzbekistan Tax": {
+ "account_name": "VAT",
+ "tax_rate": 20.00
+ }
+ },
+
+ "Vanuatu": {
+ "Vanuatu Tax": {
+ "account_name": "VAT",
+ "tax_rate": 12.50
+ }
+ },
+
+ "Venezuela": {
+ "Venezuela Tax": {
+ "account_name": "VAT",
+ "tax_rate": 12.00
+ }
+ },
+
+ "Vietnam": {
+ "Vietnam Tax": {
+ "account_name": "VAT",
+ "tax_rate": 10.00
+ }
+ },
+
+ "Yemen": {
+ "Yemen Tax": {
+ "account_name": "VAT",
+ "tax_rate": 5.00
+ }
+ },
+
+ "Zambia": {
+ "Zambia Tax": {
+ "account_name": "VAT",
+ "tax_rate": 16.00
+ }
+ },
+
+ "Zimbabwe": {
+ "Zimbabwe Tax": {
+ "account_name": "VAT",
+ "tax_rate": 15.00
+ }
+ }
+}
\ No newline at end of file
diff --git a/erpnext/setup/setup_wizard/setup_wizard.py b/erpnext/setup/setup_wizard/setup_wizard.py
index 945dfb1..2c0c85c 100644
--- a/erpnext/setup/setup_wizard/setup_wizard.py
+++ b/erpnext/setup/setup_wizard/setup_wizard.py
@@ -4,6 +4,8 @@
from __future__ import unicode_literals
import frappe, copy
+import os
+import json
from frappe.utils import cstr, flt, getdate
from frappe import _
from frappe.utils.file_manager import save_file
@@ -15,57 +17,107 @@
from erpnext.setup.setup_wizard.domainify import setup_domain
def setup_complete(args=None):
- if frappe.db.sql("select name from tabCompany"):
- frappe.throw(_("Setup Already Complete!!"))
+ if frappe.db.sql("select name from tabCompany"):
+ frappe.throw(_("Setup Already Complete!!"))
- install_fixtures.install(args.get("country"))
+ install_fixtures.install(args.get("country"))
- create_price_lists(args)
- create_fiscal_year_and_company(args)
- create_users(args)
- set_defaults(args)
- create_territories()
- create_feed_and_todo()
- create_email_digest()
- create_letter_head(args)
- create_taxes(args)
- create_items(args)
- create_customers(args)
- create_suppliers(args)
+ create_price_lists(args)
+ create_fiscal_year_and_company(args)
+ create_sales_tax(args)
+ create_users(args)
+ set_defaults(args)
+ create_territories()
+ create_feed_and_todo()
+ create_email_digest()
+ create_letter_head(args)
+ create_taxes(args)
+ create_items(args)
+ create_customers(args)
+ create_suppliers(args)
- if args.domain.lower() == 'education':
- create_academic_year()
- create_academic_term()
- create_program(args)
- create_course(args)
- create_instructor(args)
- create_room(args)
+ if args.domain.lower() == 'education':
+ create_academic_year()
+ create_academic_term()
+ create_program(args)
+ create_course(args)
+ create_instructor(args)
+ create_room(args)
- if args.get('setup_website'):
- website_maker(args)
+ if args.get('setup_website'):
+ website_maker(args)
- create_logo(args)
+ create_logo(args)
- frappe.local.message_log = []
- setup_domain(args.get('domain'))
+ frappe.local.message_log = []
+ setup_domain(args.get('domain'))
- frappe.db.commit()
- login_as_first_user(args)
+ frappe.db.commit()
+ login_as_first_user(args)
- frappe.db.commit()
- frappe.clear_cache()
+ frappe.db.commit()
+ frappe.clear_cache()
- if args.get("add_sample_data"):
- try:
- make_sample_data()
- frappe.clear_cache()
- except:
- # clear message
- if frappe.message_log:
- frappe.message_log.pop()
+ if args.get("add_sample_data"):
+ try:
+ make_sample_data()
+ frappe.clear_cache()
+ except:
+ # clear message
+ if frappe.message_log:
+ frappe.message_log.pop()
- pass
+ pass
+def create_sales_tax(args):
+ country_wise_tax = get_country_wise_tax(args.get("country"))
+ if len(country_wise_tax)>0:
+ for sales_tax, tax_data in country_wise_tax.items():
+ account = create_account(tax_data, args)
+ if account:
+ create_sales_template(sales_tax, account, args)
+
+def create_account(tax_data, args):
+ try:
+ account = frappe.get_doc({
+ "doctype": "Account",
+ "is_group": 0,
+ "root_type": "Liability",
+ "company": args.get("company_name"),
+ "parent_account": "Duties and Taxes - %s"%(args.get('company_abbr')),
+ "account_name": tax_data.get('account_name'),
+ "account_type": "Tax",
+ "tax_rate": tax_data.get('tax_rate'),
+ "currency": args.get('currency')
+ }).insert(ignore_permissions=True)
+
+ return account.name
+ except:
+ return None
+
+def create_sales_template(sales_tax, account, args):
+ sales_tax_template = frappe.get_doc({
+ "doctype": "Sales Taxes and Charges Template",
+ "title": sales_tax,
+ "company": args.get("company_name"),
+ "taxes": [{
+ "doctype": "Sales Taxes and Charges",
+ "charge_type": "On Net Total",
+ "account_head": account,
+ "description": sales_tax.split("-")[0]
+ }]
+ }).insert(ignore_permissions=True)
+
+ sales_tax_template.set_missing_values()
+ sales_tax_template.save()
+
+def get_country_wise_tax(country):
+ data = {}
+ with open (os.path.join(os.path.dirname(__file__), "data", "country_wise_tax.json")) as countrywise_tax:
+ data = json.load(countrywise_tax).get(country)
+
+ return data
+
def create_fiscal_year_and_company(args):
if (args.get('fy_start_date')):
curr_fiscal_year = get_fy_details(args.get('fy_start_date'), args.get('fy_end_date'))