Filters for multiselect dialog for DN/PR in Sales/Purchase Invoice (#8882)
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index 63de878..b48fb20 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -79,7 +79,8 @@
get_query_filters: {
docstatus: 1,
status: ["!=", "Closed"],
- company: me.frm.doc.company
+ company: me.frm.doc.company,
+ is_return: 0
}
})
}, __("Get items from"));
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index f235722..007afe4 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -142,11 +142,12 @@
target: me.frm,
date_field: "posting_date",
setters: {
- company: me.frm.doc.company
+ customer: me.frm.doc.customer || undefined
},
get_query: function() {
var filters = {
docstatus: 1,
+ company: me.frm.doc.company
};
if(me.frm.doc.customer) filters["customer"] = me.frm.doc.customer;
return {
diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py
index 2f98e86..0fc08c1 100644
--- a/erpnext/controllers/queries.py
+++ b/erpnext/controllers/queries.py
@@ -222,19 +222,21 @@
"_txt": txt.replace('%', '')
})
-def get_delivery_notes_to_be_billed(doctype, txt, searchfield, start, page_len, filters):
- return frappe.db.sql("""select `tabDelivery Note`.name, `tabDelivery Note`.customer_name
+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 status not in ("Stopped", "Closed") %(fcond)s
+ `tabDelivery Note`.docstatus = 1 and `tabDelivery Note`.is_return = 0
+ and status not in ("Stopped", "Closed") %(fcond)s
and (`tabDelivery Note`.per_billed < 100 or `tabDelivery Note`.grand_total = 0)
%(mcond)s order by `tabDelivery Note`.`%(key)s` asc
- limit %(start)s, %(page_len)s""" % {
- "key": searchfield,
- "fcond": get_filters_cond(doctype, filters, []),
- "mcond": get_match_cond(doctype),
- "start": "%(start)s", "page_len": "%(page_len)s", "txt": "%(txt)s"
- }, { "start": start, "page_len": page_len, "txt": ("%%%s%%" % txt) })
+ """ % {
+ "key": searchfield,
+ "fcond": get_filters_cond(doctype, filters, []),
+ "mcond": get_match_cond(doctype),
+ "txt": "%(txt)s"
+ }, { "txt": ("%%%s%%" % txt) }, as_dict=as_dict)
def get_batch_no(doctype, txt, searchfield, start, page_len, filters):
cond = ""