diff --git a/erpnext/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py index 21f6578df4..e219fdb475 100644 --- a/erpnext/selling/doctype/customer/customer.py +++ b/erpnext/selling/doctype/customer/customer.py @@ -6,7 +6,7 @@ import frappe from frappe.model.naming import make_autoname from frappe import _, msgprint, throw import frappe.defaults -from frappe.utils import flt +from frappe.utils import flt, cint, cstr from frappe.desk.reportview import build_match_conditions from erpnext.utilities.transaction_base import TransactionBase from erpnext.utilities.address_and_contact import load_address_and_contact @@ -23,12 +23,21 @@ class Customer(TransactionBase): def autoname(self): cust_master_name = frappe.defaults.get_global_default('cust_master_name') if cust_master_name == 'Customer Name': - self.name = self.customer_name + self.name = self.get_cusotmer_name() else: if not self.naming_series: frappe.throw(_("Series is mandatory"), frappe.MandatoryError) self.name = make_autoname(self.naming_series+'.#####') + + def get_cusotmer_name(self): + if frappe.db.get_value("Customer", self.customer_name): + count = frappe.db.sql("""select ifnull(max(SUBSTRING_INDEX(name, ' ', -1)), 0) from tabCustomer + where name like '%{0} - %'""".format(self.customer_name), as_list=1)[0][0] + count = cint(count)+ 1 + return "{0} - {1}".format(self.customer_name, cstr(count)) + + return self.customer_name def validate(self): self.flags.is_new_doc = self.is_new() @@ -225,4 +234,4 @@ def get_credit_limit(customer, company): credit_limit = frappe.db.get_value("Customer Group", customer_group, "credit_limit") or \ frappe.db.get_value("Company", company, "credit_limit") - return credit_limit + return credit_limit \ No newline at end of file diff --git a/erpnext/shopping_cart/cart.py b/erpnext/shopping_cart/cart.py index 22f920faa6..aa6e5e3ae5 100644 --- a/erpnext/shopping_cart/cart.py +++ b/erpnext/shopping_cart/cart.py @@ -303,7 +303,6 @@ def get_customer(user=None): contact.insert(ignore_permissions=True) return customer - def get_address_docs(doctype=None, txt=None, filters=None, limit_start=0, limit_page_length=20, party=None): if not party: party = get_customer()