update Monthly Absence Report to use quarter filter instead of date range

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Ali 2026-03-25 17:39:15 +04:00
parent 5477ad2e91
commit e883f8816f
1 changed files with 55 additions and 4 deletions

View File

@ -1,6 +1,16 @@
// Copyright (c) 2024, Company and contributors // Copyright (c) 2024, Company and contributors
// For license information, please see license.txt // For license information, please see license.txt
function get_quarter_dates(year, quarter) {
const quarters = {
"1": { from: year + "-01-01", to: year + "-03-31" },
"2": { from: year + "-04-01", to: year + "-06-30" },
"3": { from: year + "-07-01", to: year + "-09-30" },
"4": { from: year + "-10-01", to: year + "-12-31" }
};
return quarters[String(quarter)];
}
frappe.query_reports["Monthly Absence Report"] = { frappe.query_reports["Monthly Absence Report"] = {
"filters": [ "filters": [
{ {
@ -11,22 +21,63 @@ frappe.query_reports["Monthly Absence Report"] = {
reqd: 1, reqd: 1,
default: frappe.defaults.get_user_default("Company") default: frappe.defaults.get_user_default("Company")
}, },
{
fieldname: "year",
label: __("İl"),
fieldtype: "Int",
reqd: 1,
default: new Date().getFullYear(),
on_change: function() {
const year = frappe.query_report.get_filter_value("year");
const quarter = frappe.query_report.get_filter_value("quarter");
if (year && quarter) {
const dates = get_quarter_dates(year, quarter);
frappe.query_report.set_filter_value("from_date", dates.from);
frappe.query_report.set_filter_value("to_date", dates.to);
}
}
},
{
fieldname: "quarter",
label: __("Rüb"),
fieldtype: "Select",
options: "1\n2\n3\n4",
reqd: 1,
default: String(Math.ceil((new Date().getMonth() + 1) / 3)),
on_change: function() {
const year = frappe.query_report.get_filter_value("year");
const quarter = frappe.query_report.get_filter_value("quarter");
if (year && quarter) {
const dates = get_quarter_dates(year, quarter);
frappe.query_report.set_filter_value("from_date", dates.from);
frappe.query_report.set_filter_value("to_date", dates.to);
}
}
},
{ {
fieldname: "from_date", fieldname: "from_date",
label: __("Tarixdən"), label: __("Tarixdən"),
fieldtype: "Date", fieldtype: "Date",
reqd: 1, hidden: 1
default: frappe.datetime.add_months(frappe.datetime.get_today(), -1)
}, },
{ {
fieldname: "to_date", fieldname: "to_date",
label: __("Tarixə qədər"), label: __("Tarixə qədər"),
fieldtype: "Date", fieldtype: "Date",
reqd: 1, hidden: 1
default: frappe.datetime.get_today()
} }
], ],
"onload": function() {
const year = frappe.query_report.get_filter_value("year");
const quarter = frappe.query_report.get_filter_value("quarter");
if (year && quarter) {
const dates = get_quarter_dates(year, quarter);
frappe.query_report.set_filter_value("from_date", dates.from);
frappe.query_report.set_filter_value("to_date", dates.to);
}
},
"formatter": function (value, row, column, data, default_formatter) { "formatter": function (value, row, column, data, default_formatter) {
value = default_formatter(value, row, column, data); value = default_formatter(value, row, column, data);