Merge branch 'develop'
diff --git a/erpnext/__version__.py b/erpnext/__version__.py
index 2a74e29..feb367b 100644
--- a/erpnext/__version__.py
+++ b/erpnext/__version__.py
@@ -1,2 +1,2 @@
from __future__ import unicode_literals
-__version__ = '6.3.1'
+__version__ = '6.3.2'
diff --git a/erpnext/accounts/doctype/tax_rule/tax_rule.json b/erpnext/accounts/doctype/tax_rule/tax_rule.json
index 60011dd..a327c21 100644
--- a/erpnext/accounts/doctype/tax_rule/tax_rule.json
+++ b/erpnext/accounts/doctype/tax_rule/tax_rule.json
@@ -580,7 +580,7 @@
"is_submittable": 0,
"issingle": 0,
"istable": 0,
- "modified": "2015-09-15 12:29:34.435839",
+ "modified": "2015-09-24 07:59:06.502058",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Tax Rule",
@@ -601,7 +601,7 @@
"print": 1,
"read": 1,
"report": 1,
- "role": "Administrator",
+ "role": "Accounts Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
diff --git a/erpnext/accounts/doctype/tax_rule/test_tax_rule.py b/erpnext/accounts/doctype/tax_rule/test_tax_rule.py
index 3e175fa..a09d81b 100644
--- a/erpnext/accounts/doctype/tax_rule/test_tax_rule.py
+++ b/erpnext/accounts/doctype/tax_rule/test_tax_rule.py
@@ -12,25 +12,15 @@
class TestTaxRule(unittest.TestCase):
def setUp(self):
frappe.db.sql("delete from `tabTax Rule` where use_for_shopping_cart <> 1")
-
- def test_customer_group(self):
- tax_rule = make_tax_rule(customer= "_Test Customer", customer_group= "_Test Customer Group 1",
- sales_tax_template = "_Test Sales Taxes and Charges Template")
- self.assertRaises(IncorrectCustomerGroup, tax_rule.save)
-
- def test_supplier_type(self):
- tax_rule = make_tax_rule(tax_type= "Purchase", supplier= "_Test Supplier", supplier_type= "_Test Supplier Type 1",
- purchase_tax_template = "_Test Purchase Taxes and Charges Template")
- self.assertRaises(IncorrectSupplierType, tax_rule.save)
-
- def test_conflict(self):
+
+ def test_conflict(self):
tax_rule1 = make_tax_rule(customer= "_Test Customer",
sales_tax_template = "_Test Sales Taxes and Charges Template", priority = 1)
tax_rule1.save()
tax_rule2 = make_tax_rule(customer= "_Test Customer",
sales_tax_template = "_Test Sales Taxes and Charges Template", priority = 1)
-
+
self.assertRaises(ConflictingTaxRule, tax_rule2.save)
def test_conflict_with_non_overlapping_dates(self):
@@ -40,25 +30,25 @@
tax_rule2 = make_tax_rule(customer= "_Test Customer",
sales_tax_template = "_Test Sales Taxes and Charges Template", priority = 1, to_date = "2013-01-01")
-
+
tax_rule2.save()
self.assertTrue(tax_rule2.name)
- def test_conflict_with_overlapping_dates(self):
+ def test_conflict_with_overlapping_dates(self):
tax_rule1 = make_tax_rule(customer= "_Test Customer",
sales_tax_template = "_Test Sales Taxes and Charges Template", priority = 1, from_date = "2015-01-01", to_date = "2015-01-05")
tax_rule1.save()
tax_rule2 = make_tax_rule(customer= "_Test Customer",
sales_tax_template = "_Test Sales Taxes and Charges Template", priority = 1, from_date = "2015-01-03", to_date = "2015-01-09")
-
+
self.assertRaises(ConflictingTaxRule, tax_rule2.save)
-
+
def test_tax_template(self):
tax_rule = make_tax_rule()
self.assertEquals(tax_rule.purchase_tax_template, None)
-
-
+
+
def test_select_tax_rule_based_on_customer(self):
make_tax_rule(customer= "_Test Customer",
sales_tax_template = "_Test Sales Taxes and Charges Template", save=1)
@@ -68,8 +58,8 @@
make_tax_rule(customer= "_Test Customer 2",
sales_tax_template = "_Test Sales Taxes and Charges Template 2", save=1)
-
- self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer 2"}),
+
+ self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer 2"}),
"_Test Sales Taxes and Charges Template 2")
def test_select_tax_rule_based_on_better_match(self):
@@ -78,18 +68,18 @@
make_tax_rule(customer= "_Test Customer", billing_city = "Test City1", billing_state = "Test State",
sales_tax_template = "_Test Sales Taxes and Charges Template 1", save=1)
-
- self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer", "billing_city": "Test City", "billing_state": "Test State"}),
+
+ self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer", "billing_city": "Test City", "billing_state": "Test State"}),
"_Test Sales Taxes and Charges Template")
-
+
def test_select_tax_rule_based_on_state_match(self):
- make_tax_rule(customer= "_Test Customer", shipping_state = "Test State",
+ make_tax_rule(customer= "_Test Customer", shipping_state = "Test State",
sales_tax_template = "_Test Sales Taxes and Charges Template", save=1)
- make_tax_rule(customer= "_Test Customer", shipping_state = "Test State12",
+ make_tax_rule(customer= "_Test Customer", shipping_state = "Test State12",
sales_tax_template = "_Test Sales Taxes and Charges Template 1", priority=2, save=1)
-
- self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer", "shipping_state": "Test State"}),
+
+ self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer", "shipping_state": "Test State"}),
"_Test Sales Taxes and Charges Template")
def test_select_tax_rule_based_on_better_priority(self):
@@ -98,18 +88,18 @@
make_tax_rule(customer= "_Test Customer", billing_city = "Test City",
sales_tax_template = "_Test Sales Taxes and Charges Template 1", priority=2, save=1)
-
- self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer", "billing_city": "Test City"}),
+
+ self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer", "billing_city": "Test City"}),
"_Test Sales Taxes and Charges Template 1")
def test_select_tax_rule_based_cross_matching_keys(self):
- make_tax_rule(customer= "_Test Customer", billing_city = "Test City",
+ make_tax_rule(customer= "_Test Customer", billing_city = "Test City",
sales_tax_template = "_Test Sales Taxes and Charges Template", save=1)
make_tax_rule(customer= "_Test Customer 1", billing_city = "Test City 1",
sales_tax_template = "_Test Sales Taxes and Charges Template 1", save=1)
-
- self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer", "billing_city": "Test City 1"}),
+
+ self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer", "billing_city": "Test City 1"}),
None)
def test_select_tax_rule_based_cross_partially_keys(self):
@@ -118,24 +108,23 @@
make_tax_rule(billing_city = "Test City 1",
sales_tax_template = "_Test Sales Taxes and Charges Template 1", save=1)
-
- self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer", "billing_city": "Test City 1"}),
+
+ self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer", "billing_city": "Test City 1"}),
"_Test Sales Taxes and Charges Template 1")
-
+
def make_tax_rule(**args):
args = frappe._dict(args)
-
+
tax_rule = frappe.new_doc("Tax Rule")
-
+
for key, val in args.iteritems():
if key != "save":
tax_rule.set(key, val)
-
+
tax_rule.company = args.company or "_Test Company"
-
+
if args.save:
tax_rule.insert()
-
+
return tax_rule
-
\ No newline at end of file
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index e5e3903..2053694 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -29,7 +29,7 @@
"""
app_icon = "icon-th"
app_color = "#e74c3c"
-app_version = "6.3.1"
+app_version = "6.3.2"
github_link = "https://github.com/frappe/erpnext"
error_report_email = "support@erpnext.com"
diff --git a/erpnext/patches/v6_2/fix_missing_default_taxes_and_lead.py b/erpnext/patches/v6_2/fix_missing_default_taxes_and_lead.py
index 9c16f63..b0cfc3d 100644
--- a/erpnext/patches/v6_2/fix_missing_default_taxes_and_lead.py
+++ b/erpnext/patches/v6_2/fix_missing_default_taxes_and_lead.py
@@ -2,6 +2,11 @@
import frappe
def execute():
+ # remove missing lead
+ for customer in frappe.db.sql_list("""select name from `tabCustomer`
+ where ifnull(lead_name, '')!='' and not exists (select name from `tabLead` where name=`tabCustomer`.lead_name)"""):
+ frappe.db.set_value("Customer", customer, "lead_name", None)
+
# remove missing default taxes
for customer in frappe.db.sql_list("""select name from `tabCustomer`
where ifnull(default_taxes_and_charges, '')!='' and not exists (
@@ -18,8 +23,3 @@
c = frappe.get_doc("Supplier", supplier)
c.default_taxes_and_charges = None
c.save()
-
- # remove missing lead
- for customer in frappe.db.sql_list("""select name from `tabCustomer`
- where ifnull(lead_name, '')!='' and not exists (select name from `tabLead` where name=`tabCustomer`.lead_name)"""):
- frappe.db.set_value("Customer", customer, "lead_name", None)
diff --git a/erpnext/patches/v6_3/convert_applicable_territory.py b/erpnext/patches/v6_3/convert_applicable_territory.py
index b693ce5..69ec18f 100644
--- a/erpnext/patches/v6_3/convert_applicable_territory.py
+++ b/erpnext/patches/v6_3/convert_applicable_territory.py
@@ -5,6 +5,7 @@
frappe.reload_doc("accounts", "doctype", "shipping_rule_country")
frappe.reload_doctype("Price List")
frappe.reload_doctype("Shipping Rule")
+ frappe.reload_doctype("Shopping Cart Settings")
# for price list
countries = frappe.db.sql_list("select name from tabCountry")
diff --git a/setup.py b/setup.py
index a6c2164..f2827d2 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
from setuptools import setup, find_packages
-version = "6.3.1"
+version = "6.3.2"
with open("requirements.txt", "r") as f:
install_requires = f.readlines()