Merge pull request #3287 from rmehta/customer-fix

Customer fix
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index e0f0e3b..1853fc9 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -421,8 +421,3 @@
 			})
 
 	return all_outstanding_vouchers
-
-@frappe.whitelist()
-def get_letter_head(company):
-	return frappe.db.get_value("Company",company,"default_letter_head")
-
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index a96f5e9..c8b2b64 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -194,6 +194,7 @@
 		var fn = function() {
 			if(me.frm.doc.company && me.frm.fields_dict.currency) {
 				var company_currency = me.get_company_currency();
+				var company_doc = frappe.get_doc(":Company", me.frm.doc.company);
 				if (!me.frm.doc.currency) {
 					me.frm.set_value("currency", company_currency);
 				}
@@ -204,6 +205,12 @@
 				if (me.frm.doc.price_list_currency == company_currency) {
 					me.frm.set_value('plc_conversion_rate', 1.0);
 				}
+				if (company_doc.default_letter_head) {
+					me.frm.set_value("letter_head", company_doc.default_letter_head);
+				}
+				if (company_doc.default_terms) {
+					me.frm.set_value("tc_name", company_doc.default_terms);
+				}
 
 				me.frm.script_manager.trigger("currency");
 				me.apply_pricing_rule();
@@ -213,7 +220,6 @@
 		if (this.frm.doc.posting_date) var date = this.frm.doc.posting_date;
 		else var date = this.frm.doc.transaction_date;
 		erpnext.get_fiscal_year(this.frm.doc.company, date, fn);
-		erpnext.get_letter_head(this.frm.doc.company);
 
 		if(this.frm.doc.company) {
 			erpnext.last_selected_company = this.frm.doc.company;
diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js
index 355fe7d..5476d14 100644
--- a/erpnext/public/js/utils.js
+++ b/erpnext/public/js/utils.js
@@ -105,21 +105,7 @@
 
 			d.show();
 		});
-	},
-
-	get_letter_head: function(company) {
-		frappe.call({
-			type:"GET",
-			method: "erpnext.accounts.utils.get_letter_head",
-			args: {
-				"company": company
-			},
-			callback: function(r) {
-				if (!r.exe)	cur_frm.set_value("letter_head", r.message);
-			}
-		});
-	},
-
+	}
 });
 
 
diff --git a/erpnext/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py
index 19a9aae..f82e2fb 100644
--- a/erpnext/selling/doctype/customer/customer.py
+++ b/erpnext/selling/doctype/customer/customer.py
@@ -76,7 +76,7 @@
 
 	def validate_name_with_customer_group(self):
 		if frappe.db.exists("Customer Group", self.name):
-			frappe.throw(_("A Customer Group exists with same name please change the Customer name or rename the Customer Group"))
+			frappe.throw(_("A Customer Group exists with same name please change the Customer name or rename the Customer Group"), frappe.NameError)
 
 	def delete_customer_address(self):
 		addresses = frappe.db.sql("""select name, lead from `tabAddress`
@@ -125,9 +125,9 @@
 
 	billing_this_year = frappe.db.sql("""select sum(base_grand_total)
 		from `tabSales Invoice`
-		where customer=%s and docstatus = 1 and fiscal_year = %s""", 
+		where customer=%s and docstatus = 1 and fiscal_year = %s""",
 		(customer, frappe.db.get_default("fiscal_year")))
-		
+
 	total_unpaid = frappe.db.sql("""select sum(outstanding_amount)
 		from `tabSales Invoice`
 		where customer=%s and docstatus = 1""", customer)
diff --git a/erpnext/setup/doctype/company/company.json b/erpnext/setup/doctype/company/company.json
index 0e7b17a..db71d0f 100644
--- a/erpnext/setup/doctype/company/company.json
+++ b/erpnext/setup/doctype/company/company.json
@@ -53,14 +53,6 @@
    "read_only": 0
   }, 
   {
-   "fieldname": "default_letter_head", 
-   "fieldtype": "Link", 
-   "label": "Default Letter Head", 
-   "options": "Letter Head", 
-   "permlevel": 0, 
-   "precision": ""
-  }, 
-  {
    "fieldname": "domain", 
    "fieldtype": "Select", 
    "label": "Domain", 
@@ -72,10 +64,18 @@
    "fieldname": "charts_section", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
-   "label": "Country Settings", 
+   "label": "Default Values", 
    "permlevel": 0
   }, 
   {
+   "fieldname": "default_letter_head", 
+   "fieldtype": "Link", 
+   "label": "Default Letter Head", 
+   "options": "Letter Head", 
+   "permlevel": 0, 
+   "precision": ""
+  }, 
+  {
    "fieldname": "default_holiday_list", 
    "fieldtype": "Link", 
    "label": "Default Holiday List", 
@@ -118,9 +118,17 @@
    "permlevel": 0
   }, 
   {
+   "fieldname": "default_terms", 
+   "fieldtype": "Link", 
+   "label": "Default Terms", 
+   "options": "Terms and Conditions", 
+   "permlevel": 0, 
+   "precision": ""
+  }, 
+  {
    "fieldname": "default_settings", 
    "fieldtype": "Section Break", 
-   "label": "Default Settings", 
+   "label": "Accounts Settings", 
    "oldfieldtype": "Section Break", 
    "permlevel": 0, 
    "read_only": 0
@@ -406,7 +414,7 @@
  ], 
  "icon": "icon-building", 
  "idx": 1, 
- "modified": "2015-05-04 11:22:42.116328", 
+ "modified": "2015-05-19 02:00:41.055138", 
  "modified_by": "Administrator", 
  "module": "Setup", 
  "name": "Company", 
diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py
index ad89114..d358928 100644
--- a/erpnext/setup/doctype/company/company.py
+++ b/erpnext/setup/doctype/company/company.py
@@ -63,6 +63,8 @@
 		if self.default_currency:
 			frappe.db.set_value("Currency", self.default_currency, "enabled", 1)
 
+		frappe.clear_cache()
+
 	def install_country_fixtures(self):
 		if os.path.exists(os.path.join(os.path.dirname(__file__), "fixtures", self.country.lower())):
 			frappe.get_attr("erpnext.setup.doctype.company.fixtures.{0}.install".format(self.country.lower()))(self)
@@ -167,7 +169,7 @@
 			where defkey='Company' and defvalue=%s""", (newdn, olddn))
 
 		frappe.defaults.clear_cache()
-		
+
 	def on_trash(self):
 		"""
 			Trash accounts and cost centers for this company if no gl entry exists
@@ -178,7 +180,7 @@
 			frappe.db.sql("delete from `tabAccount` where company = %s", self.name)
 
 			# delete cost center child table - budget detail
-			frappe.db.sql("""delete bd.* from `tabBudget Detail` bd, `tabCost Center` cc 
+			frappe.db.sql("""delete bd.* from `tabBudget Detail` bd, `tabCost Center` cc
 				where bd.parent = cc.name and cc.company = %s""", self.name)
 			#delete cost center
 			frappe.db.sql("delete from `tabCost Center` WHERE company = %s", self.name)
diff --git a/erpnext/startup/boot.py b/erpnext/startup/boot.py
index 48efa27..474af2c 100644
--- a/erpnext/startup/boot.py
+++ b/erpnext/startup/boot.py
@@ -29,8 +29,9 @@
 			bootinfo.setup_complete = frappe.db.sql("""select name from
 				tabCompany limit 1""") and 'Yes' or 'No'
 
-		bootinfo.docs += frappe.db.sql("""select name, default_currency, cost_center
-            from `tabCompany`""", as_dict=1, update={"doctype":":Company"})
+		bootinfo.docs += frappe.db.sql("""select name, default_currency, cost_center,
+			default_terms, default_letter_head from `tabCompany`""",
+			as_dict=1, update={"doctype":":Company"})
 
 def load_country_and_currency(bootinfo):
 	country = frappe.db.get_default("country")