From 56e31d05e960415fe1ad21611bc880490524ceb6 Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Thu, 31 Aug 2017 14:19:58 +0530 Subject: [PATCH] [Fix] POS customer field is hang while searching customer, make error log if sync has failed (#10607) --- erpnext/accounts/doctype/sales_invoice/pos.py | 29 ++++++++++++------- erpnext/accounts/page/pos/pos.js | 15 ++++------ 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py index f36fdf79071..2b3459ad273 100644 --- a/erpnext/accounts/doctype/sales_invoice/pos.py +++ b/erpnext/accounts/doctype/sales_invoice/pos.py @@ -320,8 +320,7 @@ def make_invoice(doc_list={}, email_queue_list={}, customers_list={}): si_doc.set_posting_time = 1 si_doc.customer = get_customer_id(doc) si_doc.due_date = doc.get('posting_date') - submit_invoice(si_doc, name, doc) - name_list.append(name) + name_list = submit_invoice(si_doc, name, doc, name_list) else: name_list.append(name) @@ -475,19 +474,29 @@ def validate_item(doc): frappe.db.commit() -def submit_invoice(si_doc, name, doc): +def submit_invoice(si_doc, name, doc, name_list): try: si_doc.insert() si_doc.submit() frappe.db.commit() + name_list.append(name) except Exception as e: if frappe.message_log: frappe.message_log.pop() frappe.db.rollback() - save_invoice(e, si_doc, name) + frappe.log_error(frappe.get_traceback()) + name_list = save_invoice(e, si_doc, name, name_list) -def save_invoice(e, si_doc, name): - if not frappe.db.exists('Sales Invoice', {'offline_pos_name': name}): - si_doc.docstatus = 0 - si_doc.flags.ignore_mandatory = True - si_doc.due_date = si_doc.posting_date - si_doc.insert() + return name_list + +def save_invoice(e, si_doc, name, name_list): + try: + if not frappe.db.exists('Sales Invoice', {'offline_pos_name': name}): + si_doc.docstatus = 0 + si_doc.flags.ignore_mandatory = True + si_doc.due_date = si_doc.posting_date + si_doc.insert() + name_list.append(name) + except Exception: + frappe.log_error(frappe.get_traceback()) + + return name_list diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js index e362db0738f..33b41e9ee44 100644 --- a/erpnext/accounts/page/pos/pos.js +++ b/erpnext/accounts/page/pos/pos.js @@ -732,14 +732,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ input = input.toLowerCase(); item = this.get_item(item.value); - var searchtext = - Object.keys(item) - .filter(key => ['customer_name', 'customer_group', 'value', 'label', 'email_id', 'phone', 'mobile_no'].includes(key)) - .map(key => item[key]) - .join(" ") - .toLowerCase(); - - return searchtext.includes(input) + return item.searchtext.includes(input) }, item: function (item, input) { var d = this.get_item(item.value); @@ -813,7 +806,11 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ territory: c.territory, phone: contact ? contact["phone"] : '', mobile_no: contact ? contact["mobile_no"] : '', - email_id: contact ? contact["email_id"] : '' + email_id: contact ? contact["email_id"] : '', + searchtext: ['customer_name', 'customer_group', 'value', + 'label', 'email_id', 'phone', 'mobile_no'] + .map(key => c[key]).join(' ') + .toLowerCase() } });