refactor: rollback for retries and UI alerts
This commit is contained in:
parent
0aa1636d04
commit
c320288690
@ -12,7 +12,7 @@ frappe.ui.form.on("Bulk Transaction Log", {
|
|||||||
if (frm.doc.failed) {
|
if (frm.doc.failed) {
|
||||||
frm.add_custom_button(__('Retry Failed Transactions'), function() {
|
frm.add_custom_button(__('Retry Failed Transactions'), function() {
|
||||||
frappe.call({
|
frappe.call({
|
||||||
method: "erpnext.utilities.bulk_transaction.retry_failed_transactions",
|
method: "erpnext.utilities.bulk_transaction.retry",
|
||||||
args: {date: frm.doc.date}
|
args: {date: frm.doc.date}
|
||||||
}).then(()=> { });
|
}).then(()=> { });
|
||||||
});
|
});
|
||||||
|
|||||||
@ -3,7 +3,7 @@ from datetime import date, datetime
|
|||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
from frappe.utils import today
|
from frappe.utils import get_link_to_form, today
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
@ -30,7 +30,7 @@ def transaction_processing(data, from_doctype, to_doctype):
|
|||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def retry_failed_transactions(date: str | None):
|
def retry(date: str | None):
|
||||||
if date:
|
if date:
|
||||||
failed_docs = frappe.db.get_all(
|
failed_docs = frappe.db.get_all(
|
||||||
"Bulk Transaction Log Detail",
|
"Bulk Transaction Log Detail",
|
||||||
@ -38,9 +38,21 @@ def retry_failed_transactions(date: str | None):
|
|||||||
fields=["name", "transaction_name", "from_doctype", "to_doctype"],
|
fields=["name", "transaction_name", "from_doctype", "to_doctype"],
|
||||||
)
|
)
|
||||||
if not failed_docs:
|
if not failed_docs:
|
||||||
frappe.msgprint("There are no Failed transactions")
|
frappe.msgprint(_("There are no Failed transactions"))
|
||||||
return
|
else:
|
||||||
|
job = frappe.enqueue(
|
||||||
|
retry_failed_transactions,
|
||||||
|
failed_docs=failed_docs,
|
||||||
|
)
|
||||||
|
frappe.msgprint(
|
||||||
|
_("Job: {0} has been triggered for processing failed transactions").format(
|
||||||
|
get_link_to_form("RQ Job", job.id)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def retry_failed_transactions(failed_docs: list | None):
|
||||||
|
if failed_docs:
|
||||||
for log in failed_docs:
|
for log in failed_docs:
|
||||||
try:
|
try:
|
||||||
frappe.db.savepoint("before_creation_state")
|
frappe.db.savepoint("before_creation_state")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user