mirror of
https://github.com/frappe/erpnext.git
synced 2026-03-21 11:15:10 +00:00
fix(report): filter sales / purchase orders based on date filters
(cherry picked from commit 936d7d4342)
This commit is contained in:
@@ -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);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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")))
|
||||||
|
|||||||
@@ -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);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user