mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-14 15:11:52 +00:00
feat(accounts): add configurable job timeout for Process Period Closing Voucher
Adds a `pcv_job_timeout` Int field (default 3600s) to Accounts Settings so admins can tune the enqueue timeout for PCV background jobs without a code change. All three `frappe.enqueue` calls in `process_period_closing_voucher.py` now read this value at runtime. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> (cherry picked from commit13b6c4a165) # Conflicts: # erpnext/accounts/doctype/accounts_settings/accounts_settings.json (cherry picked from commitc97be8abe1) # Conflicts: # erpnext/accounts/doctype/accounts_settings/accounts_settings.json
This commit is contained in:
@@ -86,6 +86,7 @@
|
|||||||
"period_closing_settings_section",
|
"period_closing_settings_section",
|
||||||
"ignore_account_closing_balance",
|
"ignore_account_closing_balance",
|
||||||
"use_legacy_controller_for_pcv",
|
"use_legacy_controller_for_pcv",
|
||||||
|
"pcv_job_timeout",
|
||||||
"column_break_25",
|
"column_break_25",
|
||||||
"reports_tab",
|
"reports_tab",
|
||||||
"remarks_section",
|
"remarks_section",
|
||||||
@@ -612,11 +613,42 @@
|
|||||||
"label": "Use legacy controller for Period Closing Voucher"
|
"label": "Use legacy controller for Period Closing Voucher"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
<<<<<<< HEAD
|
||||||
|
"fieldname": "payment_entry_settings",
|
||||||
|
"fieldtype": "Section Break",
|
||||||
|
"label": "Payment Entry Settings"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "show_account_balance",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Show Account Balance"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "show_party_balance",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Show Party Balance"
|
||||||
|
=======
|
||||||
|
"default": "3600",
|
||||||
|
"description": "Timeout (in seconds) for each background job enqueued by Process Period Closing Voucher",
|
||||||
|
"fieldname": "pcv_job_timeout",
|
||||||
|
"fieldtype": "Int",
|
||||||
|
"label": "PCV Job Timeout (seconds)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
>>>>>>> c97be8abe1 (feat(accounts): add configurable job timeout for Process Period Closing Voucher)
|
||||||
"description": "Users with this role will be notified if the asset depreciation gets failed",
|
"description": "Users with this role will be notified if the asset depreciation gets failed",
|
||||||
"fieldname": "role_to_notify_on_depreciation_failure",
|
"fieldname": "role_to_notify_on_depreciation_failure",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
"label": "Role to Notify on Depreciation Failure",
|
"label": "Role to Notify on Depreciation Failure",
|
||||||
"options": "Role"
|
"options": "Role"
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
>>>>>>> 13b6c4a165 (feat(accounts): add configurable job timeout for Process Period Closing Voucher)
|
||||||
|
>>>>>>> c97be8abe1 (feat(accounts): add configurable job timeout for Process Period Closing Voucher)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"default": "30, 60, 90, 120",
|
"default": "30, 60, 90, 120",
|
||||||
|
|||||||
@@ -95,6 +95,8 @@ def start_pcv_processing(docname: str):
|
|||||||
frappe.has_permission("Process Payment Reconciliation", "write", doc=docname, throw=True)
|
frappe.has_permission("Process Payment Reconciliation", "write", doc=docname, throw=True)
|
||||||
frappe.db.set_value("Process Period Closing Voucher", docname, "status", "Running")
|
frappe.db.set_value("Process Period Closing Voucher", docname, "status", "Running")
|
||||||
|
|
||||||
|
timeout = frappe.db.get_single_value("Accounts Settings", "pcv_job_timeout") or 3600
|
||||||
|
|
||||||
ppcvd = qb.DocType("Process Period Closing Voucher Detail")
|
ppcvd = qb.DocType("Process Period Closing Voucher Detail")
|
||||||
if normal_balances := (
|
if normal_balances := (
|
||||||
qb.from_(ppcvd)
|
qb.from_(ppcvd)
|
||||||
@@ -121,7 +123,7 @@ def start_pcv_processing(docname: str):
|
|||||||
frappe.enqueue(
|
frappe.enqueue(
|
||||||
method="erpnext.accounts.doctype.process_period_closing_voucher.process_period_closing_voucher.process_individual_date",
|
method="erpnext.accounts.doctype.process_period_closing_voucher.process_period_closing_voucher.process_individual_date",
|
||||||
queue="long",
|
queue="long",
|
||||||
timeout="3600",
|
timeout=timeout,
|
||||||
is_async=True,
|
is_async=True,
|
||||||
enqueue_after_commit=True,
|
enqueue_after_commit=True,
|
||||||
docname=docname,
|
docname=docname,
|
||||||
@@ -247,6 +249,8 @@ def get_gle_for_closing_account(pcv, dimension_balance, dimensions):
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def schedule_next_date(docname: str):
|
def schedule_next_date(docname: str):
|
||||||
|
timeout = frappe.db.get_single_value("Accounts Settings", "pcv_job_timeout") or 3600
|
||||||
|
|
||||||
ppcvd = qb.DocType("Process Period Closing Voucher Detail")
|
ppcvd = qb.DocType("Process Period Closing Voucher Detail")
|
||||||
if to_process := (
|
if to_process := (
|
||||||
qb.from_(ppcvd)
|
qb.from_(ppcvd)
|
||||||
@@ -272,7 +276,7 @@ def schedule_next_date(docname: str):
|
|||||||
frappe.enqueue(
|
frappe.enqueue(
|
||||||
method="erpnext.accounts.doctype.process_period_closing_voucher.process_period_closing_voucher.process_individual_date",
|
method="erpnext.accounts.doctype.process_period_closing_voucher.process_period_closing_voucher.process_individual_date",
|
||||||
queue="long",
|
queue="long",
|
||||||
timeout="3600",
|
timeout=timeout,
|
||||||
is_async=True,
|
is_async=True,
|
||||||
enqueue_after_commit=True,
|
enqueue_after_commit=True,
|
||||||
docname=docname,
|
docname=docname,
|
||||||
@@ -302,7 +306,7 @@ def schedule_next_date(docname: str):
|
|||||||
frappe.enqueue(
|
frappe.enqueue(
|
||||||
method="erpnext.accounts.doctype.process_period_closing_voucher.process_period_closing_voucher.summarize_and_post_ledger_entries",
|
method="erpnext.accounts.doctype.process_period_closing_voucher.process_period_closing_voucher.summarize_and_post_ledger_entries",
|
||||||
queue="long",
|
queue="long",
|
||||||
timeout="3600",
|
timeout=timeout,
|
||||||
is_async=True,
|
is_async=True,
|
||||||
job_name=job_name,
|
job_name=job_name,
|
||||||
enqueue_after_commit=True,
|
enqueue_after_commit=True,
|
||||||
|
|||||||
Reference in New Issue
Block a user