From c2eb771c4d228458a95db99dbbb2f96c4a00db02 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 23:07:58 +0530 Subject: [PATCH] fix: Patch for reposting account closing balance (backport #43905) (#43909) fix: Patch for reposting account closing balance (#43905) (cherry picked from commit 3a0d27b393a6224e9213d23c022f9b45687d7508) Co-authored-by: Nabin Hait --- erpnext/patches.txt | 2 +- .../patches/v14_0/update_closing_balances.py | 21 ++++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 515a299504a..f48dc00fc8e 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -315,7 +315,7 @@ erpnext.patches.v15_0.update_asset_value_for_manual_depr_entries erpnext.patches.v15_0.update_gpa_and_ndb_for_assdeprsch erpnext.patches.v14_0.create_accounting_dimensions_for_closing_balance erpnext.patches.v14_0.set_period_start_end_date_in_pcv -erpnext.patches.v14_0.update_closing_balances #14-07-2023 +erpnext.patches.v14_0.update_closing_balances #29-10-2024 execute:frappe.db.set_single_value("Accounts Settings", "merge_similar_account_heads", 0) erpnext.patches.v14_0.update_reference_type_in_journal_entry_accounts erpnext.patches.v14_0.update_subscription_details diff --git a/erpnext/patches/v14_0/update_closing_balances.py b/erpnext/patches/v14_0/update_closing_balances.py index f216f209d4f..31c7e85d875 100644 --- a/erpnext/patches/v14_0/update_closing_balances.py +++ b/erpnext/patches/v14_0/update_closing_balances.py @@ -25,7 +25,8 @@ def execute(): company_wise_order.setdefault(pcv.company, []) if pcv.period_end_date not in company_wise_order[pcv.company]: pcv_doc = frappe.get_doc("Period Closing Voucher", pcv.name) - pcv_doc.pl_accounts_reverse_gle = get_pcv_gl_entries(pcv, gle_fields) + pcv_doc.pl_accounts_reverse_gle = get_pcv_gl_entries_for_pl_accounts(pcv, gle_fields) + pcv_doc.closing_account_gle = get_pcv_gl_entries_for_closing_accounts(pcv, gle_fields) closing_entries = pcv_doc.get_account_closing_balances() make_closing_entries(closing_entries, pcv.name, pcv.company, pcv.period_end_date) @@ -38,6 +39,7 @@ def get_gle_fields(): accounting_dimension_fields = get_accounting_dimensions() gle_fields = [ "name", + "company", "posting_date", "account", "account_currency", @@ -61,14 +63,27 @@ def get_period_closing_vouchers(company): ) -def get_pcv_gl_entries(pcv, gle_fields): +def get_pcv_gl_entries_for_pl_accounts(pcv, gle_fields): + return get_gl_entries(pcv, gle_fields, {"account": ["!=", pcv.closing_account_head]}) + + +def get_pcv_gl_entries_for_closing_accounts(pcv, gle_fields): + return get_gl_entries(pcv, gle_fields, {"account": pcv.closing_account_head}) + + +def get_gl_entries(pcv, gle_fields, accounts_filter=None): + filters = {"voucher_no": pcv.name, "is_cancelled": 0} + if accounts_filter: + filters.update(accounts_filter) + gl_entries = frappe.db.get_all( "GL Entry", - filters={"voucher_no": pcv.name, "account": ["!=", pcv.closing_account_head], "is_cancelled": 0}, + filters=filters, fields=gle_fields, ) for entry in gl_entries: entry["is_period_closing_voucher_entry"] = 1 entry["closing_date"] = pcv.period_end_date entry["period_closing_voucher"] = pcv.name + return gl_entries