Merge pull request #50465 from frappe/mergify/bp/version-15-hotfix/pr-50366

refactor: enqueue exchange rate revaluation per company (backport #50366)
This commit is contained in:
ruthra kumar
2025-11-11 13:29:25 +05:30
committed by GitHub

View File

@@ -1755,24 +1755,22 @@ def check_and_delete_linked_reports(report):
frappe.delete_doc("Desktop Icon", icon) frappe.delete_doc("Desktop Icon", icon)
def create_err_and_its_journals(companies: list | None = None) -> None: def create_err_and_its_journals(company: dict) -> None:
if companies: err = frappe.new_doc("Exchange Rate Revaluation")
for company in companies: err.company = company.name
err = frappe.new_doc("Exchange Rate Revaluation") err.posting_date = nowdate()
err.company = company.name err.rounding_loss_allowance = 0.0
err.posting_date = nowdate()
err.rounding_loss_allowance = 0.0
err.fetch_and_calculate_accounts_data() err.fetch_and_calculate_accounts_data()
if err.accounts: if err.accounts:
err.save().submit() err.save().submit()
response = err.make_jv_entries() response = err.make_jv_entries()
if company.submit_err_jv: if company.submit_err_jv:
jv = response.get("revaluation_jv", None) jv = response.get("revaluation_jv", None)
jv and frappe.get_doc("Journal Entry", jv).submit() jv and frappe.get_doc("Journal Entry", jv).submit()
jv = response.get("zero_balance_jv", None) jv = response.get("zero_balance_jv", None)
jv and frappe.get_doc("Journal Entry", jv).submit() jv and frappe.get_doc("Journal Entry", jv).submit()
def _auto_create_exchange_rate_revaluation_for(frequency: str) -> None: def _auto_create_exchange_rate_revaluation_for(frequency: str) -> None:
@@ -1785,7 +1783,14 @@ def _auto_create_exchange_rate_revaluation_for(frequency: str) -> None:
filters={"auto_exchange_rate_revaluation": 1, "auto_err_frequency": frequency}, filters={"auto_exchange_rate_revaluation": 1, "auto_err_frequency": frequency},
fields=["name", "submit_err_jv"], fields=["name", "submit_err_jv"],
) )
create_err_and_its_journals(companies)
if companies:
for company in companies:
frappe.enqueue(
"erpnext.accounts.utils.create_err_and_its_journals",
company=company,
queue="long",
)
def auto_create_exchange_rate_revaluation_daily() -> None: def auto_create_exchange_rate_revaluation_daily() -> None: