fix: inventory dimension filter not overriding with existing filter for stock ledger report

This commit is contained in:
Rohit Waghchaure 2023-02-20 12:20:03 +05:30
parent 192a3395a5
commit 0e388ba872
2 changed files with 8 additions and 3 deletions

View File

@ -221,9 +221,9 @@ $.extend(erpnext.utils, {
callback: function(r) {
if (r.message && r.message.length) {
r.message.forEach((dimension) => {
let found = filters.some(el => el.fieldname === dimension['fieldname']);
let existing_filter = filters.filter(el => el.fieldname === dimension['fieldname']);
if (!found) {
if (!existing_filter.length) {
filters.splice(index, 0, {
"fieldname": dimension["fieldname"],
"label": __(dimension["doctype"]),
@ -232,6 +232,11 @@ $.extend(erpnext.utils, {
return frappe.db.get_link_options(dimension["doctype"], txt);
},
});
} else {
existing_filter[0]['fieldtype'] = "MultiSelectList";
existing_filter[0]['get_data'] = function(txt) {
return frappe.db.get_link_options(dimension["doctype"], txt);
}
}
});
}

View File

@ -306,7 +306,7 @@ def get_stock_ledger_entries(filters, items):
query = query.where(sle.item_code.isin(items))
for field in ["voucher_no", "batch_no", "project", "company"]:
if filters.get(field):
if filters.get(field) and field not in inventory_dimension_fields:
query = query.where(sle[field] == filters.get(field))
query = apply_warehouse_filter(query, sle, filters)