mirror of
https://github.com/frappe/erpnext.git
synced 2026-02-18 00:55:02 +00:00
refactor: link running doc validation to company master
(cherry picked from commit 5a3afea8c7)
# Conflicts:
# erpnext/setup/doctype/company/company.js
# erpnext/setup/doctype/company/company.py
This commit is contained in:
@@ -169,6 +169,7 @@ frappe.ui.form.on("Company", {
|
||||
},
|
||||
|
||||
delete_company_transactions: function (frm) {
|
||||
<<<<<<< HEAD
|
||||
frappe.verify_password(function () {
|
||||
var d = frappe.prompt(
|
||||
{
|
||||
@@ -200,6 +201,48 @@ frappe.ui.form.on("Company", {
|
||||
onerror: function () {
|
||||
frappe.msgprint(__("Wrong Password"));
|
||||
},
|
||||
=======
|
||||
frappe.call({
|
||||
method: "erpnext.setup.doctype.transaction_deletion_record.transaction_deletion_record.is_deletion_doc_running",
|
||||
args: {
|
||||
company: frm.doc.name,
|
||||
},
|
||||
freeze: true,
|
||||
callback: function (r) {
|
||||
if (!r.exc) {
|
||||
frappe.verify_password(function () {
|
||||
var d = frappe.prompt(
|
||||
{
|
||||
fieldtype: "Data",
|
||||
fieldname: "company_name",
|
||||
label: __("Please enter the company name to confirm"),
|
||||
reqd: 1,
|
||||
description: __(
|
||||
"Please make sure you really want to delete all the transactions for this company. Your master data will remain as it is. This action cannot be undone."
|
||||
),
|
||||
},
|
||||
function (data) {
|
||||
if (data.company_name !== frm.doc.name) {
|
||||
frappe.msgprint(__("Company name not same"));
|
||||
return;
|
||||
}
|
||||
frappe.call({
|
||||
method: "erpnext.setup.doctype.company.company.create_transaction_deletion_request",
|
||||
args: {
|
||||
company: data.company_name,
|
||||
},
|
||||
freeze: true,
|
||||
callback: function (r, rt) {},
|
||||
onerror: function () {
|
||||
frappe.msgprint(__("Wrong Password"));
|
||||
},
|
||||
});
|
||||
},
|
||||
__("Delete all the Transactions for this Company"),
|
||||
__("Delete")
|
||||
);
|
||||
d.get_primary_btn().addClass("btn-danger");
|
||||
>>>>>>> 5a3afea8c7 (refactor: link running doc validation to company master)
|
||||
});
|
||||
},
|
||||
__("Delete all the Transactions for this Company"),
|
||||
|
||||
@@ -11,7 +11,11 @@ from frappe.cache_manager import clear_defaults_cache
|
||||
from frappe.contacts.address_and_contact import load_address_and_contact
|
||||
from frappe.custom.doctype.property_setter.property_setter import make_property_setter
|
||||
from frappe.desk.page.setup_wizard.setup_wizard import make_records
|
||||
<<<<<<< HEAD
|
||||
from frappe.utils import cint, formatdate, get_timestamp, today
|
||||
=======
|
||||
from frappe.utils import cint, formatdate, get_link_to_form, get_timestamp, today
|
||||
>>>>>>> 5a3afea8c7 (refactor: link running doc validation to company master)
|
||||
from frappe.utils.nestedset import NestedSet, rebuild_tree
|
||||
|
||||
from erpnext.accounts.doctype.account.account import get_account_currency
|
||||
@@ -812,6 +816,25 @@ def get_default_company_address(name, sort_key="is_primary_address", existing_ad
|
||||
|
||||
@frappe.whitelist()
|
||||
def create_transaction_deletion_request(company):
|
||||
<<<<<<< HEAD
|
||||
tdr = frappe.get_doc({"doctype": "Transaction Deletion Record", "company": company})
|
||||
tdr.insert()
|
||||
tdr.submit()
|
||||
=======
|
||||
from erpnext.setup.doctype.transaction_deletion_record.transaction_deletion_record import (
|
||||
is_deletion_doc_running,
|
||||
)
|
||||
|
||||
is_deletion_doc_running(company)
|
||||
|
||||
tdr = frappe.get_doc({"doctype": "Transaction Deletion Record", "company": company})
|
||||
tdr.submit()
|
||||
tdr.start_deletion_tasks()
|
||||
|
||||
frappe.msgprint(
|
||||
_("A Transaction Deletion Document: {0} is triggered for {0}").format(
|
||||
get_link_to_form("Transaction Deletion Record", tdr.name)
|
||||
),
|
||||
frappe.bold(company),
|
||||
)
|
||||
>>>>>>> 5a3afea8c7 (refactor: link running doc validation to company master)
|
||||
|
||||
@@ -477,7 +477,25 @@ def get_doctypes_to_be_ignored():
|
||||
return doctypes_to_be_ignored
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def is_deletion_doc_running(company: str | None = None, err_msg: str | None = None):
|
||||
if company:
|
||||
if running_deletion_jobs := frappe.db.get_all(
|
||||
"Transaction Deletion Record",
|
||||
filters={"docstatus": 1, "company": company, "status": "Running"},
|
||||
):
|
||||
if not err_msg:
|
||||
err_msg = ""
|
||||
frappe.throw(
|
||||
title=_("Deletion in Progress!"),
|
||||
msg=_("Transaction Deletion Document: {0} is running for this Company. {1}").format(
|
||||
get_link_to_form("Transaction Deletion Record", running_deletion_jobs[0].name), err_msg
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
def check_for_running_deletion_job(doc, method=None):
|
||||
# Check if DocType has 'company' field
|
||||
df = qb.DocType("DocField")
|
||||
if (
|
||||
not_allowed := qb.from_(df)
|
||||
@@ -485,14 +503,6 @@ def check_for_running_deletion_job(doc, method=None):
|
||||
.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)
|
||||
)
|
||||
)
|
||||
is_deletion_doc_running(
|
||||
doc.company, _("Cannot make any transactions until the deletion job is completed")
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user