fix: apply grand total to default payment mode in Sales and POS invoices

This commit is contained in:
diptanilsaha
2025-08-18 13:23:23 +05:30
parent fb34991980
commit 605f513ce3
6 changed files with 27 additions and 4 deletions

View File

@@ -55,6 +55,16 @@ erpnext.selling.POSInvoiceController = class POSInvoiceController extends erpnex
}); });
erpnext.accounts.dimensions.setup_dimension_filters(this.frm, this.frm.doctype); erpnext.accounts.dimensions.setup_dimension_filters(this.frm, this.frm.doctype);
if (this.frm.doc.pos_profile) {
frappe.db
.get_value("POS Profile", this.frm.doc.pos_profile, "disable_grand_total_to_default_mop")
.then((r) => {
if (!r.exc) {
this.frm.skip_default_payment = r.message.disable_grand_total_to_default_mop;
}
});
}
} }
onload_post_render(frm) { onload_post_render(frm) {
@@ -113,6 +123,7 @@ erpnext.selling.POSInvoiceController = class POSInvoiceController extends erpnex
this.frm.meta.default_print_format = r.message.print_format || ""; this.frm.meta.default_print_format = r.message.print_format || "";
this.frm.doc.campaign = r.message.campaign; this.frm.doc.campaign = r.message.campaign;
this.frm.allow_print_before_pay = r.message.allow_print_before_pay; this.frm.allow_print_before_pay = r.message.allow_print_before_pay;
this.frm.skip_default_payment = r.message.skip_default_payment;
} }
this.frm.script_manager.trigger("update_stock"); this.frm.script_manager.trigger("update_stock");
this.calculate_taxes_and_totals(); this.calculate_taxes_and_totals();

View File

@@ -681,6 +681,7 @@ class POSInvoice(SalesInvoice):
"print_format": print_format, "print_format": print_format,
"campaign": profile.get("campaign"), "campaign": profile.get("campaign"),
"allow_print_before_pay": profile.get("allow_print_before_pay"), "allow_print_before_pay": profile.get("allow_print_before_pay"),
"skip_default_payment": profile.get("disable_grand_total_to_default_mop"),
} }
@frappe.whitelist() @frappe.whitelist()

View File

@@ -58,6 +58,13 @@ erpnext.accounts.SalesInvoiceController = class SalesInvoiceController extends (
me.frm.script_manager.trigger("is_pos"); me.frm.script_manager.trigger("is_pos");
me.frm.refresh_fields(); me.frm.refresh_fields();
frappe.db
.get_value("POS Profile", this.frm.doc.pos_profile, "disable_grand_total_to_default_mop")
.then((r) => {
if (!r.exc) {
me.frm.skip_default_payment = r.message.disable_grand_total_to_default_mop;
}
});
} }
erpnext.queries.setup_warehouse_query(this.frm); erpnext.queries.setup_warehouse_query(this.frm);
} }
@@ -506,8 +513,9 @@ erpnext.accounts.SalesInvoiceController = class SalesInvoiceController extends (
}, },
callback: function (r) { callback: function (r) {
if (!r.exc) { if (!r.exc) {
if (r.message && r.message.print_format) { if (r.message) {
me.frm.pos_print_format = r.message.print_format; me.frm.pos_print_format = r.message.print_format;
me.frm.skip_default_payment = r.message.skip_default_payment;
} }
me.frm.trigger("update_stock"); me.frm.trigger("update_stock");
if (me.frm.doc.taxes_and_charges) { if (me.frm.doc.taxes_and_charges) {

View File

@@ -700,6 +700,7 @@ class SalesInvoice(SellingController):
"allow_edit_discount": pos.get("allow_user_to_edit_discount"), "allow_edit_discount": pos.get("allow_user_to_edit_discount"),
"campaign": pos.get("campaign"), "campaign": pos.get("campaign"),
"allow_print_before_pay": pos.get("allow_print_before_pay"), "allow_print_before_pay": pos.get("allow_print_before_pay"),
"skip_default_payment": pos.get("disable_grand_total_to_default_mop"),
} }
def update_time_sheet(self, sales_invoice): def update_time_sheet(self, sales_invoice):

View File

@@ -931,8 +931,11 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments {
set_default_payment(total_amount_to_pay, update_paid_amount) { set_default_payment(total_amount_to_pay, update_paid_amount) {
var me = this; var me = this;
var payment_status = true; var payment_status = true;
if(this.frm.doc.is_pos && (update_paid_amount===undefined || update_paid_amount)) { if (
this.frm.doc.is_pos
&& !cint(this.frm.skip_default_payment)
&& (update_paid_amount===undefined || update_paid_amount)
) {
$.each(this.frm.doc['payments'] || [], function(index, data) { $.each(this.frm.doc['payments'] || [], function(index, data) {
if(data.default && payment_status && total_amount_to_pay > 0) { if(data.default && payment_status && total_amount_to_pay > 0) {
let base_amount, amount; let base_amount, amount;

View File

@@ -342,7 +342,6 @@ erpnext.PointOfSale.Payment = class {
} }
render_payment_section() { render_payment_section() {
this.remove_grand_total_from_default_mop();
this.render_payment_mode_dom(); this.render_payment_mode_dom();
this.make_invoice_fields_control(); this.make_invoice_fields_control();
this.update_totals_section(); this.update_totals_section();