Merge branch 'develop' of https://github.com/frappe/erpnext into multi-currency
[fix][patch] delete item variant attributes if no variants exists against that item
diff --git a/README.md b/README.md
index d91136f..8be3f22 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-# ERPNext - Open source ERP for small and medium-size business [![Build Status](https://travis-ci.org/frappe/erpnext.png)](https://travis-ci.org/frappe/erpnext)
+# ERPNext - ERP made simple
 
-[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/frappe/erpnext?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+[![Build Status](https://travis-ci.org/frappe/erpnext.png)](https://travis-ci.org/frappe/erpnext) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/frappe/erpnext?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
 
 [https://erpnext.com](https://erpnext.com)
 
diff --git a/erpnext/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py
index 7f632b1..079bc36 100644
--- a/erpnext/accounts/doctype/account/account.py
+++ b/erpnext/accounts/doctype/account/account.py
@@ -7,6 +7,8 @@
 from frappe import throw, _
 from frappe.model.document import Document
 
+class RootNotEditable(frappe.ValidationError): pass
+
 class Account(Document):
 	nsm_parent_field = 'parent_account'
 
@@ -68,7 +70,7 @@
 		# does not exists parent
 		if frappe.db.exists("Account", self.name):
 			if not frappe.db.get_value("Account", self.name, "parent_account"):
-				throw(_("Root cannot be edited."))
+				throw(_("Root cannot be edited."), RootNotEditable)
 
 	def validate_frozen_accounts_modifier(self):
 		old_value = frappe.db.get_value("Account", self.name, "freeze_account")
diff --git a/erpnext/patches/v5_7/item_template_attributes.py b/erpnext/patches/v5_7/item_template_attributes.py
index 9536f16..9f141b5 100644
--- a/erpnext/patches/v5_7/item_template_attributes.py
+++ b/erpnext/patches/v5_7/item_template_attributes.py
@@ -72,8 +72,6 @@
 		for attribute, value in item_attributes:
 			attribute_value_options.setdefault(attribute, []).append(value)
 
-		save_attributes_in_template(item, attribute_value_options)
-
 		possible_combinations = get_possible_combinations(attribute_value_options)
 
 		for variant in all_variants:
@@ -89,6 +87,8 @@
 					save_attributes_in_variant(variant, combination)
 					break
 
+		save_attributes_in_template(item, attribute_value_options)
+
 	frappe.delete_doc("DocType", "Item Variant")
 
 def save_attributes_in_template(item, attribute_value_options):
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.py b/erpnext/setup/page/setup_wizard/setup_wizard.py
index e578f87..77ad90a 100644
--- a/erpnext/setup/page/setup_wizard/setup_wizard.py
+++ b/erpnext/setup/page/setup_wizard/setup_wizard.py
@@ -15,6 +15,7 @@
 import install_fixtures
 from .sample_data import make_sample_data
 from erpnext.accounts.utils import FiscalYearError
+from erpnext.accounts.doctype.account.account import RootNotEditable
 
 @frappe.whitelist()
 def setup_account(args=None):
@@ -303,6 +304,7 @@
 	return fy
 
 def create_taxes(args):
+	
 	for i in xrange(1,6):
 		if args.get("tax_" + str(i)):
 			# replace % in case someone also enters the % symbol
@@ -320,6 +322,9 @@
 					pass
 				else:
 					raise
+			except RootNotEditable, e:
+				pass
+				
 def make_tax_head(args, i, tax_group, tax_rate):
 	return frappe.get_doc({
 		"doctype":"Account",