hi I want to insert a column in the sales invoice print format that shows item wise sales tax amount
kindly advise us
1 Like
Any update
<table border = 2; width = "650">
<tbody>
<tr>
<th><font size = "1">Sr</font></th>
<th><font size = "1">Description</font></th>
<th><font size = "1">Tariff/HSN</font></th>
<th class="text-right"><font size = "1">Quantity</font></th>
<th class="text-right"><font size = "1">Rate</font></th>
<th class="text-right"><font size = "1">Amount</font></th>
<th class="text-right"><font size = "1">CGST Rate</font></th>
<th class="text-right"><font size = "1">CGST Amount</font></th>
<th class="text-right"><font size = "1">SGST Rate</font></th>
<th class="text-right"><font size = "1">SGST Amount</font></th>
<th class="text-right"><font size = "1">IGST Rate</font></th>
<th class="text-right"><font size = "1">IGST Amount</font></th>
</font>
</tr>
{% set cgst_rate = [] -%}
{% set sgst_rate = [] -%}
{% set igst_rate = [] -%}
{% set cgst_account_head = [] -%}
{% set sgst_account_head = [] -%}
{% set igst_account_head = [] -%}
{% set tot_cgst_amount = [] %}
{% set tot_sgst_amount = [] %}
{% set grand_total = {"qty":0.0, "amount":0.0, "cgst_amt":0.0, "sgst_amt":0.0, "igst_amt":0.0} %}
{%- for row in doc.taxes -%}
{% if 'CGST' in row.account_head -%}
{% set _ = cgst_account_head.append(row.account_head) %}
{% set _ = cgst_rate.append(row.rate) %}
{%- endif -%}
{% if 'SGST' in row.account_head -%}
{% set _ = sgst_account_head.append(row.account_head) %}
{% set _ = sgst_rate.append(row.rate) %}
{%- endif -%}
{% if 'IGST' in row.account_head -%}
{% set _ = igst_account_head.append(row.account_head) %}
{% set _ = igst_rate.append(row.rate) %}
{%- endif -%}
{%- endfor -%}
{%- for row in doc.items -%}
<tr>
{% set cgst_amt = [] -%}
{% set sgst_amt = [] -%}
{% set igst_amt = [] -%}
{% set it_cgst_rate = [] -%}
{% set it_sgst_rate = [] -%}
{% set it_igst_rate = [] -%}
{% set rate_found_item = 0 -%}
{%- set item_record = frappe.get_doc("Item", row.item_code) -%}
{% for item_tax in item_record.taxes %}
{% if item_tax.tax_type == igst_account_head[0] %}
{% set _ = it_igst_rate.append(item_tax.tax_rate) %}
{% set _ = igst_amt.append(row.amount * it_igst_rate[0] / 100) -%}
{% set rate_found_item = 1 -%}
{% endif %}
{% if item_tax.tax_type == sgst_account_head[0] %}
{% set _ = it_sgst_rate.append(item_tax.tax_rate) %}
{% set _ = sgst_amt.append(row.amount * it_sgst_rate[0] / 100) -%}
{% set rate_found_item = 1 -%}
{% endif %}
{% if item_tax.tax_type == cgst_account_head[0] %}
{% set _ = it_cgst_rate.append(item_tax.tax_rate) %}
{% set _ = cgst_amt.append(row.amount * it_cgst_rate[0] / 100) -%}
{% set rate_found_item = 1 -%}
{% endif %}
{% endfor %}
{% if rate_found_item == 0 %}
{% if cgst_rate[0] -%}
{% set _ = cgst_amt.append((row.amount * cgst_rate[0])/100) -%}
{% set _= it_cgst_rate.append(cgst_rate[0]) -%}
{% set rate_found_inv = 1 -%}
{%- endif -%}
{% if sgst_rate[0] -%}
{% set _ = sgst_amt.append((row.amount * sgst_rate[0])/100) -%}
{% set _= it_sgst_rate.append(sgst_rate[0]) -%}
{%- endif -%}
{% if igst_rate[0] -%}
{% set _ = igst_amt.append((row.amount * igst_rate[0])/100) -%}
{% set _= it_igst_rate.append(igst_rate[0]) -%}
{% set rate_found_inv = 1 -%}
{%- endif -%}
{% endif %}
{% if not it_cgst_rate[0] %}
{% set _ = it_cgst_rate.append(0) %}
{% set _ = cgst_amt.append(0) %}
{% endif %}
{% if not it_sgst_rate[0] %}
{% set _ = it_sgst_rate.append(0) %}
{% set _ = sgst_amt.append(0) %}
{% endif %}
{% if not it_igst_rate[0] %}
{% set _ = it_igst_rate.append(0) %}
{% set _ = igst_amt.append(0) %}
{% endif %}
{% set temp_cgst_amt = grand_total["cgst_amt"] + cgst_amt[0] %}
{% set temp_sgst_amt = grand_total["sgst_amt"] + sgst_amt[0] %}
{% set temp_igst_amt = grand_total["igst_amt"] + igst_amt[0] %}
{% set temp_qty = grand_total["qty"] + row.qty %}
{% set temp_amount = grand_total["amount"] + row.amount %}
{% set check = grand_total.update({"qty": temp_qty, "amount": temp_amount, "cgst_amt":temp_cgst_amt, "sgst_amt":temp_sgst_amt, "igst_amt":temp_igst_amt}) %}
<td style="width: 5%;"><font size = "1">{{ row.idx }}</font></td>
<td style="width: 15%;"><font size = "1">
{% if row.item_code != row.item_name -%}
<b>{{ row.item_code}}</b><br>
{%- endif %}
{{ row.item_name }}
</font></td>
<td style="width: 10%;"><font size = "1">{{ row.gst_hsn_code }}</font></td>
<td style="width: 10%; text-align: left;"><font size = "1">{{ row.uom or row.stock_uom }} {{ row.qty }} </font></td>
<td style="width: 5%; text-align: right;"><font size = "1">{{
row.get_formatted("rate", doc) }}</font></td>
<td style="width: 10%; text-align: right;"><font size = "1">{{
row.get_formatted("amount", doc) }}</font></td>
<td style="width: 4%; text-align: right;"><font size = "1">{{
it_cgst_rate[0] }}%</font></td>
<td style="width: 10%; text-align: right;"><font size = "1">{{
"₹ {:,.2f}".format(cgst_amt[0]) }}</font></td>
<td style="width: 4%; text-align: right;"><font size = "1">{{
it_sgst_rate[0] }}%</font></td>
<td style="width: 10%; text-align: right;"><font size = "1">{{
"₹ {:,.2f}".format(sgst_amt[0]) }}</font></td>
<td style="width: 4%; text-align: right;"><font size = "1">{{
it_igst_rate[0] }}%</font></td>
<td style="width: 10%; text-align: right;"><font size = "1">{{
"₹ {:,.2f}".format(igst_amt[0]) }}</font></td>
</tr>
{%- endfor -%}
<tr>
<td style="width: 5%;"><font size = "1"></font></td>
<td style="width: 15%;"><font size = "1"><b>
Total
</b></font></td>
<td style="width: 10%;"><font size = "1"></font></td>
<td style="width: 10%; text-align: left;"><font size = "1"><b> {{ grand_total["qty"] }} </b></font></td>
<td style="width: 5%; text-align: right;"><font size = "1"></font></td>
<td style="width: 10%; text-align: right;"><font size = "1"><b>{{
"₹ {:,.2f}".format(grand_total["amount"]) }}</b></font></td>
<td style="width: 4%; text-align: right;"><font size = "1"><font></td>
<td style="width: 10%; text-align: right;"><font size = "1"><b>{{
"₹ {:,.2f}".format(grand_total["cgst_amt"]) }}</b></font></td>
<td style="width: 4%; text-align: right;"><font size = "1"></font></td>
<td style="width: 10%; text-align: right;"><font size = "1"><b>{{
"₹ {:,.2f}".format(grand_total["sgst_amt"]) }}</b></font></td>
<td style="width: 4%; text-align: right;"><font size = "1"></font></td>
<td style="width: 10%; text-align: right;"><font size = "1"><b>{{
"₹ {:,.2f}".format(grand_total["igst_amt"]) }}</b></font></td>
</tr>
</tbody>
</table>
2 Likes
Thanks for your reply can you tell me where is the location for copying this custom Script
in sales invoice items customization form
I am a beginner so kindly advise us.
Find in Global Search > Print Format List
Thanks to @UmaG for sharing such a helpfull complete Jinja Code link.
thanks for your reply after update following error show
jinja2.exceptions.UndefinedError: ‘erpnext.stock.doctype.item_tax.item_tax.ItemTax object’ has no attribute ‘tax_rate’
Have you configured Item Tax Template ?
no, we don’t configure item tax template just calculate GST Text item wise
Required Item Tax Template to be created. No need to assign at Item Level