From 2541ab178a607e9be4a81774b96f1774fb884748 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Tue, 6 Apr 2021 23:40:46 +0530 Subject: [PATCH 1/2] fix: RCM tax calculation --- erpnext/regional/india/utils.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/erpnext/regional/india/utils.py b/erpnext/regional/india/utils.py index a808048d17d..0f70f4abf9e 100644 --- a/erpnext/regional/india/utils.py +++ b/erpnext/regional/india/utils.py @@ -817,7 +817,11 @@ def get_gst_tax_amount(doc): continue if flt(tax.base_tax_amount_after_discount_amount) and tax.account_head in gst_account_list: - base_gst_tax += tax.base_tax_amount_after_discount_amount - gst_tax += tax.tax_amount_after_discount_amount + if tax.add_deduct_tax == "Add": + base_gst_tax += tax.base_tax_amount_after_discount_amount + gst_tax += tax.tax_amount_after_discount_amount + else: + base_gst_tax -= tax.base_tax_amount_after_discount_amount + gst_tax -= tax.tax_amount_after_discount_amount return gst_tax, base_gst_tax From 83df26197b62ddc0aa716dddd6ffda1fd1c71729 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 11 Apr 2021 18:45:22 +0530 Subject: [PATCH 2/2] fix: Rounding adjustment for RCM --- erpnext/regional/india/utils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/erpnext/regional/india/utils.py b/erpnext/regional/india/utils.py index 0f70f4abf9e..5d5c2e9610c 100644 --- a/erpnext/regional/india/utils.py +++ b/erpnext/regional/india/utils.py @@ -748,16 +748,18 @@ def update_grand_total_for_rcm(doc, method): update_totals(gst_tax, base_gst_tax, doc) def update_totals(gst_tax, base_gst_tax, doc): - doc.base_grand_total -= base_gst_tax doc.grand_total -= gst_tax + doc.base_grand_total = (doc.grand_total * doc.conversion_rate) if doc.meta.get_field("rounded_total"): if not doc.is_rounded_total_disabled(): doc.rounded_total = round_based_on_smallest_currency_fraction(doc.grand_total, doc.currency, doc.precision("rounded_total")) + doc.base_rounded_total += doc.rounded_total * doc.conversion_rate doc.rounding_adjustment += flt(doc.rounded_total - doc.grand_total, doc.precision("rounding_adjustment")) + doc.base_rounding_adjustment = doc.rounding_adjustment * doc.conversion_rate calculate_outstanding_amount(doc)