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 d4c2e6c77d
commit b31e43e3db
2 changed files with 25 additions and 1 deletions

View File

@@ -312,7 +312,10 @@ period_closing_doctypes = [
doc_events = { 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): { tuple(period_closing_doctypes): {
"validate": "erpnext.accounts.doctype.accounting_period.accounting_period.validate_accounting_period_on_doc_save", "validate": "erpnext.accounts.doctype.accounting_period.accounting_period.validate_accounting_period_on_doc_save",

View File

@@ -450,3 +450,24 @@ def get_doctypes_to_be_ignored():
doctypes_to_be_ignored.extend(frappe.get_hooks("company_data_to_be_ignored") or []) doctypes_to_be_ignored.extend(frappe.get_hooks("company_data_to_be_ignored") or [])
return doctypes_to_be_ignored 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)
)
)