From b517f26085f67834e447a97a3fa16e6c08e4b291 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Tue, 26 May 2026 09:51:40 +0530 Subject: [PATCH] refactor: atomic summarization step for process pcv (cherry picked from commit 6cb7971342b6425894e4b3b040d4a5b2ed0faa08) --- .../process_period_closing_voucher.py | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.py b/erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.py index 471bc997837..e85ebd29e52 100644 --- a/erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.py +++ b/erpnext/accounts/doctype/process_period_closing_voucher/process_period_closing_voucher.py @@ -289,15 +289,22 @@ def schedule_next_date(docname: str): ) # Ensure both normal and opening balances are processed for all dates if total_no_of_dates == completed: - frappe.enqueue( - method="erpnext.accounts.doctype.process_period_closing_voucher.process_period_closing_voucher.summarize_and_post_ledger_entries", - queue="long", - timeout="3600", - is_async=True, - enqueue_after_commit=True, - docname=docname, + from erpnext.accounts.doctype.process_payment_reconciliation.process_payment_reconciliation import ( + is_job_running, ) + job_name = f"summarize_{docname}" + if not is_job_running(job_name): + frappe.enqueue( + method="erpnext.accounts.doctype.process_period_closing_voucher.process_period_closing_voucher.summarize_and_post_ledger_entries", + queue="long", + timeout="3600", + is_async=True, + job_name=job_name, + enqueue_after_commit=True, + docname=docname, + ) + def make_dict_json_compliant(dimension_wise_balance) -> dict: """