From 0ebcc2cf2c7c3a7c764bdf378822e542ade73253 Mon Sep 17 00:00:00 2001 From: Dany Robert Date: Wed, 23 Aug 2023 04:51:09 +0000 Subject: [PATCH] fix: round item_wise_tax_detail in taxes --- erpnext/controllers/taxes_and_totals.py | 9 +++++++-- erpnext/public/js/controllers/taxes_and_totals.js | 11 +++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/erpnext/controllers/taxes_and_totals.py b/erpnext/controllers/taxes_and_totals.py index 243b5eb96e..39d2cf632a 100644 --- a/erpnext/controllers/taxes_and_totals.py +++ b/erpnext/controllers/taxes_and_totals.py @@ -483,8 +483,13 @@ class calculate_taxes_and_totals(object): # store tax breakup for each item key = item.item_code or item.item_name item_wise_tax_amount = current_tax_amount * self.doc.conversion_rate - if tax.item_wise_tax_detail.get(key): - item_wise_tax_amount += tax.item_wise_tax_detail[key][1] + if frappe.flags.round_row_wise_tax: + item_wise_tax_amount = flt(item_wise_tax_amount, tax.precision("tax_amount")) + if tax.item_wise_tax_detail.get(key): + item_wise_tax_amount += flt(tax.item_wise_tax_detail[key][1], tax.precision("tax_amount")) + else: + if tax.item_wise_tax_detail.get(key): + item_wise_tax_amount += tax.item_wise_tax_detail[key][1] tax.item_wise_tax_detail[key] = [tax_rate, flt(item_wise_tax_amount)] diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js index 8062ce05cd..81dcc06471 100644 --- a/erpnext/public/js/controllers/taxes_and_totals.js +++ b/erpnext/public/js/controllers/taxes_and_totals.js @@ -480,8 +480,15 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { } let item_wise_tax_amount = current_tax_amount * this.frm.doc.conversion_rate; - if (tax_detail && tax_detail[key]) - item_wise_tax_amount += tax_detail[key][1]; + if (frappe.flags.round_row_wise_tax) { + item_wise_tax_amount = flt(item_wise_tax_amount, precision("tax_amount", tax)); + if (tax_detail && tax_detail[key]) { + item_wise_tax_amount += flt(tax_detail[key][1], precision("tax_amount", tax)); + } + } else { + if (tax_detail && tax_detail[key]) + item_wise_tax_amount += tax_detail[key][1]; + } tax_detail[key] = [tax_rate, flt(item_wise_tax_amount, precision("base_tax_amount", tax))]; }