fix(report): filter sales / purchase orders based on date filters

(cherry picked from commit 936d7d4342)
This commit is contained in:
Ninad1306
2025-02-25 17:13:09 +05:30
committed by Mergify
parent 8799af9747
commit 2221bf1cba
3 changed files with 37 additions and 14 deletions

View File

@@ -19,6 +19,10 @@ frappe.query_reports["Purchase Order Analysis"] = {
width: "80", width: "80",
reqd: 1, reqd: 1,
default: frappe.datetime.add_months(frappe.datetime.get_today(), -1), default: frappe.datetime.add_months(frappe.datetime.get_today(), -1),
on_change: (report) => {
report.set_filter_value("name", []);
report.refresh();
},
}, },
{ {
fieldname: "to_date", fieldname: "to_date",
@@ -27,6 +31,10 @@ frappe.query_reports["Purchase Order Analysis"] = {
width: "80", width: "80",
reqd: 1, reqd: 1,
default: frappe.datetime.get_today(), default: frappe.datetime.get_today(),
on_change: (report) => {
report.set_filter_value("name", []);
report.refresh();
},
}, },
{ {
fieldname: "project", fieldname: "project",
@@ -38,13 +46,17 @@ frappe.query_reports["Purchase Order Analysis"] = {
{ {
fieldname: "name", fieldname: "name",
label: __("Purchase Order"), label: __("Purchase Order"),
fieldtype: "Link", fieldtype: "MultiSelectList",
width: "80", width: "80",
options: "Purchase Order", options: "Purchase Order",
get_query: () => { get_data: function (txt) {
return { let filters = { docstatus: 1 };
filters: { docstatus: 1 },
}; const from_date = frappe.query_report.get_filter_value("from_date");
const to_date = frappe.query_report.get_filter_value("to_date");
if (from_date && to_date) filters["transaction_date"] = ["between", [from_date, to_date]];
return frappe.db.get_link_options("Purchase Order", txt, filters);
}, },
}, },
{ {

View File

@@ -75,9 +75,11 @@ def get_data(filters):
.orderby(po.transaction_date) .orderby(po.transaction_date)
) )
for field in ("company", "name"): if filters.get("company"):
if filters.get(field): query = query.where(po.company == filters.get("company"))
query = query.where(po[field] == filters.get(field))
if filters.get("name"):
query = query.where(po.name.isin(filters.get("name")))
if filters.get("from_date") and filters.get("to_date"): if filters.get("from_date") and filters.get("to_date"):
query = query.where(po.transaction_date.between(filters.get("from_date"), filters.get("to_date"))) query = query.where(po.transaction_date.between(filters.get("from_date"), filters.get("to_date")))

View File

@@ -19,6 +19,10 @@ frappe.query_reports["Sales Order Analysis"] = {
width: "80", width: "80",
reqd: 1, reqd: 1,
default: frappe.datetime.add_months(frappe.datetime.get_today(), -1), default: frappe.datetime.add_months(frappe.datetime.get_today(), -1),
on_change: (report) => {
report.set_filter_value("sales_order", []);
report.refresh();
},
}, },
{ {
fieldname: "to_date", fieldname: "to_date",
@@ -27,6 +31,10 @@ frappe.query_reports["Sales Order Analysis"] = {
width: "80", width: "80",
reqd: 1, reqd: 1,
default: frappe.datetime.get_today(), default: frappe.datetime.get_today(),
on_change: (report) => {
report.set_filter_value("sales_order", []);
report.refresh();
},
}, },
{ {
fieldname: "sales_order", fieldname: "sales_order",
@@ -35,12 +43,13 @@ frappe.query_reports["Sales Order Analysis"] = {
width: "80", width: "80",
options: "Sales Order", options: "Sales Order",
get_data: function (txt) { get_data: function (txt) {
return frappe.db.get_link_options("Sales Order", txt); let filters = { docstatus: 1 };
},
get_query: () => { const from_date = frappe.query_report.get_filter_value("from_date");
return { const to_date = frappe.query_report.get_filter_value("to_date");
filters: { docstatus: 1 }, if (from_date && to_date) filters["transaction_date"] = ["between", [from_date, to_date]];
};
return frappe.db.get_link_options("Sales Order", txt, filters);
}, },
}, },
{ {