From e3fb7f4c4772b1313ad98513b954e0cf12057bcd Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Tue, 30 Dec 2025 15:11:02 +0530 Subject: [PATCH] fix: include budget with for multiple fiscal years --- .../budget_variance_report.js | 2 +- .../budget_variance_report.json | 49 ++++++++++--------- .../budget_variance_report.py | 18 +++++-- 3 files changed, 41 insertions(+), 28 deletions(-) diff --git a/erpnext/accounts/report/budget_variance_report/budget_variance_report.js b/erpnext/accounts/report/budget_variance_report/budget_variance_report.js index 989dfca042d..c74450191aa 100644 --- a/erpnext/accounts/report/budget_variance_report/budget_variance_report.js +++ b/erpnext/accounts/report/budget_variance_report/budget_variance_report.js @@ -6,7 +6,7 @@ frappe.query_reports["Budget Variance Report"] = { formatter: function (value, row, column, data, default_formatter) { value = default_formatter(value, row, column, data); - if (column.fieldname && column.fieldname.startsWith("variance")) { + if (column.fieldname.includes(__("variance"))) { if (data[column.fieldname] < 0) { value = "" + value + ""; } else if (data[column.fieldname] > 0) { diff --git a/erpnext/accounts/report/budget_variance_report/budget_variance_report.json b/erpnext/accounts/report/budget_variance_report/budget_variance_report.json index 8e49bc532d3..20593612f84 100644 --- a/erpnext/accounts/report/budget_variance_report/budget_variance_report.json +++ b/erpnext/accounts/report/budget_variance_report/budget_variance_report.json @@ -1,35 +1,40 @@ { - "add_total_row": 0, - "apply_user_permissions": 1, - "creation": "2013-06-18 12:56:36", - "disabled": 0, - "docstatus": 0, - "doctype": "Report", - "idx": 3, - "is_standard": "Yes", - "modified": "2017-02-24 20:19:06.964033", - "modified_by": "Administrator", - "module": "Accounts", - "name": "Budget Variance Report", - "owner": "Administrator", - "ref_doctype": "Cost Center", - "report_name": "Budget Variance Report", - "report_type": "Script Report", + "add_total_row": 0, + "add_translate_data": 0, + "columns": [], + "creation": "2013-06-18 12:56:36", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "filters": [], + "idx": 3, + "is_standard": "Yes", + "letter_head": null, + "modified": "2025-12-30 14:51:02.061226", + "modified_by": "Administrator", + "module": "Accounts", + "name": "Budget Variance Report", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Cost Center", + "report_name": "Budget Variance Report", + "report_type": "Script Report", "roles": [ { "role": "Accounts Manager" - }, + }, { "role": "Auditor" - }, + }, { "role": "Accounts User" - }, + }, { "role": "Sales User" - }, + }, { "role": "Purchase User" } - ] -} \ No newline at end of file + ], + "timeout": 0 +} diff --git a/erpnext/accounts/report/budget_variance_report/budget_variance_report.py b/erpnext/accounts/report/budget_variance_report/budget_variance_report.py index 65fa430bd5b..6854ffecc0f 100644 --- a/erpnext/accounts/report/budget_variance_report/budget_variance_report.py +++ b/erpnext/accounts/report/budget_variance_report/budget_variance_report.py @@ -41,11 +41,12 @@ def get_month_list(start_date, end_date): def fetch_budget_accounts(filters): budget_against_field = frappe.scrub(filters["budget_against"]) - budget_records = frappe.db.sql( + + return frappe.db.sql( f""" SELECT b.name, - b.account, + b.account, b.{budget_against_field} AS dimension, b.budget_amount, b.from_fiscal_year, @@ -58,12 +59,19 @@ def fetch_budget_accounts(filters): b.company = %s AND b.docstatus = 1 AND b.budget_against = %s - AND (%s BETWEEN b.from_fiscal_year AND b.to_fiscal_year OR %s BETWEEN b.from_fiscal_year AND b.to_fiscal_year) + AND ( + b.from_fiscal_year <= %s + AND b.to_fiscal_year >= %s + ) """, - (filters.company, filters.budget_against, filters.from_fiscal_year, filters.to_fiscal_year), + ( + filters.company, + filters.budget_against, + filters.to_fiscal_year, + filters.from_fiscal_year, + ), as_dict=True, ) - return budget_records def build_budget_map(budget_records, filters):