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()