From 7eded60892f0cfd3eecb10e5ecf0f6ec5248e81c Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Thu, 9 Apr 2026 17:40:03 +0530 Subject: [PATCH 1/2] feat: show reconciled/unreconciled indicator in list view --- .../doctype/payment_entry/payment_entry_list.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry_list.js b/erpnext/accounts/doctype/payment_entry/payment_entry_list.js index 6974e58c78c..95be03d4f10 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry_list.js +++ b/erpnext/accounts/doctype/payment_entry/payment_entry_list.js @@ -1,4 +1,20 @@ frappe.listview_settings["Payment Entry"] = { + add_fields: ["unallocated_amount", "docstatus"], + get_indicator: function (doc) { + if (doc.docstatus === 2) { + return [__("Cancelled"), "red", "docstatus,=,2"]; + } + + if (doc.docstatus === 0) { + return [__("Draft"), "orange", "docstatus,=,0"]; + } + + if (flt(doc.unallocated_amount) > 0) { + return [__("Unreconciled"), "orange", "docstatus,=,1|unallocated_amount,>,0"]; + } + + return [__("Reconciled"), "green", "docstatus,=,1|unallocated_amount,=,0"]; + }, onload: function (listview) { if (listview.page.fields_dict.party_type) { listview.page.fields_dict.party_type.get_query = function () { From a48a29410e82bce815e0c0078b2c8d36797d0829 Mon Sep 17 00:00:00 2001 From: khushi8112 Date: Thu, 9 Apr 2026 18:05:39 +0530 Subject: [PATCH 2/2] fix: refresh after unreconcile --- erpnext/public/js/utils/unreconcile.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/erpnext/public/js/utils/unreconcile.js b/erpnext/public/js/utils/unreconcile.js index 4ccbf0106d7..1f9ffda7c24 100644 --- a/erpnext/public/js/utils/unreconcile.js +++ b/erpnext/public/js/utils/unreconcile.js @@ -140,7 +140,8 @@ erpnext.accounts.unreconcile_payment = { selected_allocations ); erpnext.accounts.unreconcile_payment.create_unreconcile_docs( - selection_map + selection_map, + frm ); d.hide(); } else { @@ -156,12 +157,23 @@ erpnext.accounts.unreconcile_payment = { } }, - create_unreconcile_docs(selection_map) { + create_unreconcile_docs(selection_map, frm) { frappe.call({ method: "erpnext.accounts.doctype.unreconcile_payment.unreconcile_payment.create_unreconcile_doc_for_selection", args: { selections: selection_map, }, + callback: function (r) { + if (r.exc) { + return; + } + + if (frm && !frm.is_new()) { + frm.reload_doc(); + } + + frappe.show_alert({ message: __("Unreconciled successfully"), indicator: "green" }); + }, }); }, };