How to Set Default From Date = 3 Months Back and To Date = Today in Query Report?

I have a Query Report in ERPNext and I want to set default values for two Date filters:

From Date: Today - 3M
To Date: Today

But ERPNext is not interpreting these correctly. Instead of subtracting 3 months from today’s date, it’s giving a completely wrong date like 01-01-2003.

What is the correct way to set default filter values 3 months back & today in a Query Report ?

You can use this property for the Date filter:

  1. default: frappe.datetime.add_months(frappe.datetime.get_today(), -3),

  2. default: frappe.datetime.get_today()

How it will look:

{
	fieldname: "from_date",
	label: __("From Date"),
	fieldtype: "Date",
	default: frappe.datetime.add_months(frappe.datetime.get_today(), -3),
	//reqd: 1, optional property
},
{
	fieldname: "to_date",
	label: __("To Date"),
	fieldtype: "Date",
	default: frappe.datetime.get_today()
	//reqd: 1, optional property
},

This code is not working

default: frappe.datetime.add_months(frappe.datetime.get_today(), -3),
default: frappe.datetime.get_today()

Could you send your full code?

frappe.query_reports[“Delivery Pending Report”] = {

“filters”: [

    {

“fieldname”: “from_date”,

“label”: __(“From Date”),

“fieldtype”: “Date”,

“default”: “frappe.datetime.add_months(frappe.datetime.get_today(), -3)”

    },

    {

“fieldname”: “to_date”,

“label”: __(“To Date”),

“fieldtype”: “Date”,

“default”: “frappe.datetime.get_today()”

    },

    {

“fieldname”: “sales_partner”,

“label”: __(“Agent”),

“fieldtype”: “Link”,

“options”: “Sales Partner”

    },

    {

“fieldname”: “customer”,

“label”: __(“Customer”),

“fieldtype”: “Link”,

“options”: “Customer”

    }

\],

};

These are functions, do not enclose them in quotes (““):

Wrong: “default”: “frappe.datetime.add_months(frappe.datetime.get_today(), -3)”
Correct: “default”: frappe.datetime.add_months(frappe.datetime.get_today(), -3)

Did you remove the quotes for the “frappe.datetime.get_today()” too?

Correct: “default”: frappe.datetime.get_today()

Thanks For helping

1 Like

Anytime