From f6d738b3c5ab1a7b4d05b5d2298798f570968242 Mon Sep 17 00:00:00 2001 From: tundebabzy Date: Mon, 18 Sep 2017 12:40:09 +0100 Subject: [PATCH] Delivery note to billing issue (#10726) (#10766) * allow invoices to be made from sales returns * Update queries.py --- erpnext/controllers/queries.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py index 11c07909760..7ada8ccc2f2 100644 --- a/erpnext/controllers/queries.py +++ b/erpnext/controllers/queries.py @@ -227,21 +227,30 @@ def get_project_name(doctype, txt, searchfield, start, page_len, filters): "_txt": txt.replace('%', '') }) + def get_delivery_notes_to_be_billed(doctype, txt, searchfield, start, page_len, filters, as_dict): return frappe.db.sql(""" select `tabDelivery Note`.name, `tabDelivery Note`.customer, `tabDelivery Note`.posting_date from `tabDelivery Note` where `tabDelivery Note`.`%(key)s` like %(txt)s and - `tabDelivery Note`.docstatus = 1 and `tabDelivery Note`.is_return = 0 + `tabDelivery Note`.docstatus = 1 and status not in ("Stopped", "Closed") %(fcond)s - and (`tabDelivery Note`.per_billed < 100 or `tabDelivery Note`.grand_total = 0) + and ( + (`tabDelivery Note`.is_return = 0 and `tabDelivery Note`.per_billed < 100) + or `tabDelivery Note`.grand_total = 0 + or ( + `tabDelivery Note`.is_return = 1 + and return_against in (select name from `tabDelivery Note` where per_billed < 100) + ) + ) %(mcond)s order by `tabDelivery Note`.`%(key)s` asc """ % { "key": searchfield, "fcond": get_filters_cond(doctype, filters, []), "mcond": get_match_cond(doctype), "txt": "%(txt)s" - }, { "txt": ("%%%s%%" % txt) }, as_dict=as_dict) + }, {"txt": ("%%%s%%" % txt)}, as_dict=as_dict) + def get_batch_no(doctype, txt, searchfield, start, page_len, filters): cond = ""