fix: show create payment entries as an inner button on row selection

This commit is contained in:
Shllokkk
2026-07-21 14:22:10 +05:30
parent 48aef307f9
commit 4485179375

View File

@@ -177,17 +177,25 @@ frappe.query_reports["Accounts Payable"] = {
return Object.assign(options, {
checkboxColumn: true,
events: {
onCheckRow: () => erpnext.accounts.toggle_create_pe_primary_action(frappe.query_report),
onCheckRow: () => toggle_create_pe_button(frappe.query_report),
},
});
},
after_refresh: function (report) {
report.datatable?.rowmanager?.checkAll(false);
report.page.clear_primary_action();
toggle_create_pe_button(report);
},
onload: function (report) {
if (frappe.model.can_create("Payment Entry")) {
report.create_pe_btn = report.page
.add_inner_button(__("Create Payment Entries"), function () {
create_payment_entries_from_payable_report(report);
})
.toggle(false);
}
report.page.add_inner_button(__("Accounts Payable Summary"), function () {
var filters = report.get_values();
frappe.set_route("query-report", "Accounts Payable Summary", { company: filters.company });
@@ -199,25 +207,17 @@ frappe.query_reports["Accounts Payable"] = {
},
};
frappe.provide("erpnext.accounts");
erpnext.accounts.toggle_create_pe_primary_action = function (report) {
if (!report || !report.datatable || !frappe.model.can_create("Payment Entry")) return;
function toggle_create_pe_button(report) {
if (!report || !report.create_pe_btn || !report.datatable) return;
const has_purchase_invoice = report.datatable.rowmanager
.getCheckedRows()
.some((i) => report.datatable.datamanager.data[i]?.voucher_type === "Purchase Invoice");
if (has_purchase_invoice) {
report.page.set_primary_action(__("Create Payment Entries"), () =>
erpnext.accounts.create_payment_entries_from_payable_report(report)
);
} else {
report.page.clear_primary_action();
}
};
report.create_pe_btn.toggle(has_purchase_invoice);
}
erpnext.accounts.create_payment_entries_from_payable_report = function (report) {
function create_payment_entries_from_payable_report(report) {
const datatable = report.datatable;
if (!datatable) return;
@@ -340,7 +340,7 @@ erpnext.accounts.create_payment_entries_from_payable_report = function (report)
},
});
dialog.show();
};
}
erpnext.utils.add_dimensions("Accounts Payable", 10);