fix: deduct advances adjusted for threshold check for tcs
This commit is contained in:
@@ -327,7 +327,7 @@ def get_tax_amount(party_type, parties, inv, tax_details, posting_date, pan_no=N
|
|||||||
tax_amount = 0
|
tax_amount = 0
|
||||||
else:
|
else:
|
||||||
# if no TCS has been charged in FY,
|
# if no TCS has been charged in FY,
|
||||||
# then chargeable value is "prev invoices + advances" value which cross the threshold
|
# then chargeable value is "prev invoices + advances - advance_adjusted" value which cross the threshold
|
||||||
tax_amount = get_tcs_amount(parties, inv, tax_details, vouchers, advance_vouchers)
|
tax_amount = get_tcs_amount(parties, inv, tax_details, vouchers, advance_vouchers)
|
||||||
|
|
||||||
if cint(tax_details.round_off_tax_amount):
|
if cint(tax_details.round_off_tax_amount):
|
||||||
@@ -631,9 +631,12 @@ def get_tcs_amount(parties, inv, tax_details, vouchers, adv_vouchers):
|
|||||||
)
|
)
|
||||||
|
|
||||||
cumulative_threshold = tax_details.get("cumulative_threshold", 0)
|
cumulative_threshold = tax_details.get("cumulative_threshold", 0)
|
||||||
|
advance_adjusted = get_advance_adjusted_in_invoice(inv)
|
||||||
|
|
||||||
current_invoice_total = get_invoice_total_without_tcs(inv, tax_details)
|
current_invoice_total = get_invoice_total_without_tcs(inv, tax_details)
|
||||||
total_invoiced_amt = current_invoice_total + invoiced_amt + advance_amt - credit_note_amt
|
total_invoiced_amt = (
|
||||||
|
current_invoice_total + invoiced_amt + advance_amt - credit_note_amt - advance_adjusted
|
||||||
|
)
|
||||||
|
|
||||||
if cumulative_threshold and total_invoiced_amt >= cumulative_threshold:
|
if cumulative_threshold and total_invoiced_amt >= cumulative_threshold:
|
||||||
chargeable_amt = total_invoiced_amt - cumulative_threshold
|
chargeable_amt = total_invoiced_amt - cumulative_threshold
|
||||||
@@ -642,6 +645,14 @@ def get_tcs_amount(parties, inv, tax_details, vouchers, adv_vouchers):
|
|||||||
return tcs_amount
|
return tcs_amount
|
||||||
|
|
||||||
|
|
||||||
|
def get_advance_adjusted_in_invoice(inv):
|
||||||
|
advances_adjusted = 0
|
||||||
|
for row in inv.get("advances", []):
|
||||||
|
advances_adjusted += row.allocated_amount
|
||||||
|
|
||||||
|
return advances_adjusted
|
||||||
|
|
||||||
|
|
||||||
def get_invoice_total_without_tcs(inv, tax_details):
|
def get_invoice_total_without_tcs(inv, tax_details):
|
||||||
tcs_tax_row = [d for d in inv.taxes if d.account_head == tax_details.account_head]
|
tcs_tax_row = [d for d in inv.taxes if d.account_head == tax_details.account_head]
|
||||||
tcs_tax_row_amount = tcs_tax_row[0].base_tax_amount if tcs_tax_row else 0
|
tcs_tax_row_amount = tcs_tax_row[0].base_tax_amount if tcs_tax_row else 0
|
||||||
|
|||||||
Reference in New Issue
Block a user