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 [](https://travis-ci.org/frappe/erpnext)
+# ERPNext - ERP made simple
-[](https://gitter.im/frappe/erpnext?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+[](https://travis-ci.org/frappe/erpnext) [](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",