Skip to content

Commit

Permalink
fix: Unequal debit and credit issue on RCM Invoice (#24838)
Browse files Browse the repository at this point in the history
* fix: Unequal debit and credit issue on RCM Invoice

* fix: Travis
  • Loading branch information
deepeshgarg007 authored Mar 15, 2021
1 parent e838d1c commit 7f2e45e
Showing 1 changed file with 24 additions and 17 deletions.
41 changes: 24 additions & 17 deletions erpnext/regional/india/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -693,25 +693,12 @@ def update_grand_total_for_rcm(doc, method):
if country != 'India':
return

if not doc.total_taxes_and_charges:
gst_tax, base_gst_tax = get_gst_tax_amount(doc)

if not base_gst_tax:
return

if doc.reverse_charge == 'Y':
gst_accounts = get_gst_accounts(doc.company)
gst_account_list = gst_accounts.get('cgst_account') + gst_accounts.get('sgst_account') \
+ gst_accounts.get('igst_account')

base_gst_tax = 0
gst_tax = 0

for tax in doc.get('taxes'):
if tax.category not in ("Total", "Valuation and Total"):
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

doc.taxes_and_charges_added -= gst_tax
doc.total_taxes_and_charges -= gst_tax
doc.base_taxes_and_charges_added -= base_gst_tax
Expand Down Expand Up @@ -745,7 +732,9 @@ def make_regional_gl_entries(gl_entries, doc):
if country != 'India':
return gl_entries

if not doc.total_taxes_and_charges:
gst_tax, base_gst_tax = get_gst_tax_amount(doc)

if not base_gst_tax:
return gl_entries

if doc.reverse_charge == 'Y':
Expand Down Expand Up @@ -775,3 +764,21 @@ def make_regional_gl_entries(gl_entries, doc):
)

return gl_entries

def get_gst_tax_amount(doc):
gst_accounts = get_gst_accounts(doc.company)
gst_account_list = gst_accounts.get('cgst_account', []) + gst_accounts.get('sgst_account', []) \
+ gst_accounts.get('igst_account', [])

base_gst_tax = 0
gst_tax = 0

for tax in doc.get('taxes'):
if tax.category not in ("Total", "Valuation and Total"):
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

return gst_tax, base_gst_tax

0 comments on commit 7f2e45e

Please sign in to comment.