Merge pull request #4174 from saurabh6790/shopping_cart
[fix] order.html rate display
diff --git a/erpnext/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py
index 21f6578..01e4813 100644
--- a/erpnext/selling/doctype/customer/customer.py
+++ b/erpnext/selling/doctype/customer/customer.py
@@ -6,7 +6,7 @@
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 @@
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_customer_name()
else:
if not self.naming_series:
frappe.throw(_("Series is mandatory"), frappe.MandatoryError)
self.name = make_autoname(self.naming_series+'.#####')
+
+ def get_customer_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 @@
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/selling/doctype/customer/test_customer.py b/erpnext/selling/doctype/customer/test_customer.py
index f18194f..0bbe534 100644
--- a/erpnext/selling/doctype/customer/test_customer.py
+++ b/erpnext/selling/doctype/customer/test_customer.py
@@ -68,13 +68,41 @@
frappe.rename_doc("Customer", "_Test Customer 1 Renamed", "_Test Customer 1")
def test_freezed_customer(self):
+ make_test_records("Customer")
+ make_test_records("Item")
+
frappe.db.set_value("Customer", "_Test Customer", "is_frozen", 1)
from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
so = make_sales_order(do_not_save= True)
+
self.assertRaises(CustomerFrozen, so.save)
frappe.db.set_value("Customer", "_Test Customer", "is_frozen", 0)
so.save()
+
+ def test_duplicate_customer(self):
+ if not frappe.db.get_value("Customer", "_Test Customer 1"):
+ test_customer_1 = frappe.get_doc({
+ "customer_group": "_Test Customer Group",
+ "customer_name": "_Test Customer 1",
+ "customer_type": "Individual",
+ "doctype": "Customer",
+ "territory": "_Test Territory"
+ }).insert(ignore_permissions=True)
+ else:
+ test_customer_1 = frappe.get_doc("Customer", "_Test Customer 1")
+
+ duplicate_customer = frappe.get_doc({
+ "customer_group": "_Test Customer Group",
+ "customer_name": "_Test Customer 1",
+ "customer_type": "Individual",
+ "doctype": "Customer",
+ "territory": "_Test Territory"
+ }).insert(ignore_permissions=True)
+
+ self.assertEquals("_Test Customer 1", test_customer_1.name)
+ self.assertEquals("_Test Customer 1 - 1", duplicate_customer.name)
+ self.assertEquals(test_customer_1.customer_name, duplicate_customer.customer_name)
\ No newline at end of file
diff --git a/erpnext/templates/pages/order.html b/erpnext/templates/pages/order.html
index 7376392..046e6f6 100644
--- a/erpnext/templates/pages/order.html
+++ b/erpnext/templates/pages/order.html
@@ -53,8 +53,10 @@
</div>
<div class="col-sm-2 col-xs-3 text-right">
{{ d.get_formatted("amount") }}
+ <!-- output of get_formatted("rate") is unicode, to replace unicode use
+ _("text {0}").decode("utf8").format(val) -->
<p class="text-muted small">{{
- _("Rate: {0}").format(d.get_formatted("rate")) }}</p>
+ _("Rate: {0}").decode("utf8").format(d.get_formatted("rate")) }}</p>
</div>
</div>
{% endfor %}