fix: Mode of payment getting overwritten by defautl mode of payment for returns

This commit is contained in:
Deepesh Garg
2020-10-12 13:32:49 +05:30
parent 103866a367
commit 772ccde33f
2 changed files with 48 additions and 33 deletions

View File

@@ -629,6 +629,13 @@ class calculate_taxes_and_totals(object):
self.doc.other_charges_calculation = get_itemised_tax_breakup_html(self.doc) self.doc.other_charges_calculation = get_itemised_tax_breakup_html(self.doc)
def update_paid_amount_for_return(self, total_amount_to_pay): def update_paid_amount_for_return(self, total_amount_to_pay):
existing_amount = 0
for payment in self.doc.payments:
existing_amount += payment.amount
# do not override user entered amount if equal to total_amount_to_pay
if existing_amount != total_amount_to_pay:
default_mode_of_payment = frappe.db.get_value('Sales Invoice Payment', default_mode_of_payment = frappe.db.get_value('Sales Invoice Payment',
{'parent': self.doc.pos_profile, 'default': 1}, {'parent': self.doc.pos_profile, 'default': 1},
['mode_of_payment', 'type', 'account'], as_dict=1) ['mode_of_payment', 'type', 'account'], as_dict=1)

View File

@@ -672,6 +672,12 @@ erpnext.taxes_and_totals = erpnext.payments.extend({
); );
} }
let existing_amount = 0
$.each(this.frm.doc.payments || [], function(i, row) {
existing_amount += row.amount;
})
if (existing_amount != total_amount_to_pay) {
frappe.db.get_value('Sales Invoice Payment', {'parent': this.frm.doc.pos_profile, 'default': 1}, frappe.db.get_value('Sales Invoice Payment', {'parent': this.frm.doc.pos_profile, 'default': 1},
['mode_of_payment', 'account', 'type'], (value) => { ['mode_of_payment', 'account', 'type'], (value) => {
if (this.frm.is_dirty()) { if (this.frm.is_dirty()) {
@@ -687,10 +693,12 @@ erpnext.taxes_and_totals = erpnext.payments.extend({
this.frm.set_value('is_pos', 1); this.frm.set_value('is_pos', 1);
} }
this.frm.refresh_fields(); this.frm.refresh_fields();
this.calculate_paid_amount();
} }
}, 'Sales Invoice'); }, 'Sales Invoice');
} else {
this.calculate_paid_amount(); this.calculate_paid_amount();
}
}, },
set_default_payment: function(total_amount_to_pay, update_paid_amount) { set_default_payment: function(total_amount_to_pay, update_paid_amount) {