From 7b6ed4f16e7c572495c1c15388cfd6f5308ee57a Mon Sep 17 00:00:00 2001 From: Himanshu Mishra Date: Tue, 28 May 2019 23:51:22 +0530 Subject: [PATCH 1/2] Update status_updater.py --- erpnext/controllers/status_updater.py | 30 +++++++++++++++++---------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py index 29bd014fc8d..204e7c3fc90 100644 --- a/erpnext/controllers/status_updater.py +++ b/erpnext/controllers/status_updater.py @@ -316,19 +316,27 @@ class StatusUpdater(Document): .format(frappe.db.escape(frappe.session.user)) def update_billing_status_for_zero_amount_refdoc(self, ref_dt): - ref_fieldname = ref_dt.lower().replace(" ", "_") - zero_amount_refdoc = [] - all_zero_amount_refdoc = frappe.db.sql_list("""select name from `tab%s` - where docstatus=1 and base_net_total = 0""" % ref_dt) + ref_fieldname = frappe.scrub(ref_dt) - for item in self.get("items"): - if item.get(ref_fieldname) \ - and item.get(ref_fieldname) in all_zero_amount_refdoc \ - and item.get(ref_fieldname) not in zero_amount_refdoc: - zero_amount_refdoc.append(item.get(ref_fieldname)) + ref_docs = [item.get(ref_fieldname) for item in (self.get('items') or []) if item.get(ref_fieldname)] + if not ref_docs: + return - if zero_amount_refdoc: - self.update_billing_status(zero_amount_refdoc, ref_dt, ref_fieldname) + zero_amount_refdocs = frappe.db.sql_list(f""" + SELECT + name + from + `tab{ref_dt}` + where + docstatus = 1 + and base_net_total = 0 + and name in %(ref_docs)s + """, { + 'ref_docs': ref_docs + }) + + if zero_amount_refdocs: + self.update_billing_status(zero_amount_refdocs, ref_dt, ref_fieldname) def update_billing_status(self, zero_amount_refdoc, ref_dt, ref_fieldname): for ref_dn in zero_amount_refdoc: From d355741462f61fd85999643a8c88bbec109c0dce Mon Sep 17 00:00:00 2001 From: Himanshu Mishra Date: Tue, 28 May 2019 23:54:03 +0530 Subject: [PATCH 2/2] Python 2 compatibility -_- --- erpnext/controllers/status_updater.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py index 204e7c3fc90..2484586d041 100644 --- a/erpnext/controllers/status_updater.py +++ b/erpnext/controllers/status_updater.py @@ -322,7 +322,7 @@ class StatusUpdater(Document): if not ref_docs: return - zero_amount_refdocs = frappe.db.sql_list(f""" + zero_amount_refdocs = frappe.db.sql_list(""" SELECT name from @@ -331,7 +331,7 @@ class StatusUpdater(Document): docstatus = 1 and base_net_total = 0 and name in %(ref_docs)s - """, { + """.format(ref_dt=ref_dt), { 'ref_docs': ref_docs })