feat(payment-entry): warn user before cancelling reconciled payment entry

(cherry picked from commit f0ba54d957)
This commit is contained in:
khushi8112
2026-06-02 14:47:39 +05:30
committed by Mergify
parent b89a34970b
commit 61d6d2f344
2 changed files with 42 additions and 0 deletions

View File

@@ -1726,6 +1726,35 @@ frappe.ui.form.on("Payment Entry", {
}, },
}); });
}, },
before_cancel: function (frm) {
return new Promise((resolve, reject) => {
frappe.call({
method: "erpnext.accounts.doctype.payment_entry.payment_entry.get_linked_bank_transactions",
args: { payment_entry: frm.doc.name },
callback: function (r) {
const linked = r.message || [];
if (!linked.length) {
resolve();
return;
}
const bt_links = linked
.map((name) => frappe.utils.get_form_link("Bank Transaction", name, true))
.join(", ");
frappe.confirm(
__(
"This Payment Entry is reconciled with {0}. Cancelling will automatically unreconcile it. Do you want to proceed?",
[bt_links]
),
() => resolve(),
() => reject(),
__("Yes"),
__("No")
);
},
});
});
},
}); });
frappe.ui.form.on("Payment Entry Reference", { frappe.ui.form.on("Payment Entry Reference", {

View File

@@ -3568,3 +3568,16 @@ def make_payment_order(source_name, target_doc=None):
@erpnext.allow_regional @erpnext.allow_regional
def add_regional_gl_entries(gl_entries, doc): def add_regional_gl_entries(gl_entries, doc):
return return
@frappe.whitelist()
def get_linked_bank_transactions(payment_entry: str) -> list:
frappe.has_permission("Payment Entry", ptype="read", doc=payment_entry, throw=True)
return frappe.get_all(
"Bank Transaction Payments",
filters={
"payment_document": "Payment Entry",
"payment_entry": payment_entry,
},
pluck="parent",
)