From adc830b712c17a313f8a01ed4f5dd1c3f0a07145 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 25 May 2015 11:21:45 +0530 Subject: [PATCH] [fix] rename company abbr --- erpnext/setup/doctype/company/company.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py index d35892813c4..50f2865bb3a 100644 --- a/erpnext/setup/doctype/company/company.py +++ b/erpnext/setup/doctype/company/company.py @@ -27,8 +27,12 @@ class Company(Document): return exists def validate(self): + self.abbr = self.abbr.strip() if self.get('__islocal') and len(self.abbr) > 5: frappe.throw(_("Abbreviation cannot have more than 5 characters")) + + if not self.abbr.strip(): + frappe.throw(_("Abbr can not be blank or space")) self.previous_default_currency = frappe.db.get_value("Company", self.name, "default_currency") if self.default_currency and self.previous_default_currency and \ @@ -199,16 +203,19 @@ class Company(Document): @frappe.whitelist() def replace_abbr(company, old, new): + new = new.strip() + if not new: + frappe.throw(_("Abbr can not be blank or space")) + frappe.only_for("System Manager") frappe.db.set_value("Company", company, "abbr", new) def _rename_record(dt): for d in frappe.db.sql("select name from `tab%s` where company=%s" % (dt, '%s'), company): - parts = d[0].split(" - ") - if parts[-1].lower() == old.lower(): - name_without_abbr = " - ".join(parts[:-1]) - frappe.rename_doc(dt, d[0], name_without_abbr + " - " + new) + parts = d[0].rsplit(" - ", 1) + if len(parts) == 1 or parts[1].lower() == old.lower(): + frappe.rename_doc(dt, d[0], parts[0] + " - " + new) for dt in ["Account", "Cost Center", "Warehouse"]: _rename_record(dt)