Skip to content

Commit

Permalink
refactor: barebones hook on all doctypes with 'company' field
Browse files Browse the repository at this point in the history
  • Loading branch information
ruthra-kumar committed Mar 16, 2024
1 parent 78c9cc6 commit ec194ef
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 1 deletion.
5 changes: 4 additions & 1 deletion erpnext/hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,10 @@

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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -450,3 +450,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)
)
)

0 comments on commit ec194ef

Please sign in to comment.