refactor: barebones hook on all doctypes with 'company' field

(cherry picked from commit ec194ef076)
This commit is contained in:
ruthra kumar
2024-02-07 20:54:29 +05:30
committed by Mergify
parent e908003358
commit cf6cb80d18
2 changed files with 25 additions and 1 deletions

View File

@@ -299,7 +299,10 @@ period_closing_doctypes = [
doc_events = {
"*": {
"validate": "erpnext.support.doctype.service_level_agreement.service_level_agreement.apply",
"validate": [
"erpnext.support.doctype.service_level_agreement.service_level_agreement.apply",
"erpnext.setup.doctype.transaction_deletion_record.transaction_deletion_record.check_for_running_deletion_job",
],
},
tuple(period_closing_doctypes): {
"validate": "erpnext.accounts.doctype.accounting_period.accounting_period.validate_accounting_period_on_doc_save",

View File

@@ -453,3 +453,24 @@ def get_doctypes_to_be_ignored():
doctypes_to_be_ignored.extend(frappe.get_hooks("company_data_to_be_ignored") or [])
return doctypes_to_be_ignored
def check_for_running_deletion_job(doc, method=None):
df = qb.DocType("DocField")
if (
not_allowed := qb.from_(df)
.select(df.parent)
.where((df.fieldname == "company") & (df.parent == doc.doctype))
.run()
):
if running_deletion_jobs := frappe.db.get_all(
"Transaction Deletion Record",
filters={"docstatus": 1, "company": doc.company, "status": "Running"},
):
frappe.throw(
_(
"Transaction Deletion job {0} is running for this Company. Cannot make any transactions until the deletion job is completed"
).format(
get_link_to_form("Transaction Deletion Record", running_deletion_jobs[0].name)
)
)