diff --git a/erpnext/regional/italy/e-invoice.xml b/erpnext/regional/italy/e-invoice.xml
index 7c436a2b449..ef1e94ff27b 100644
--- a/erpnext/regional/italy/e-invoice.xml
+++ b/erpnext/regional/italy/e-invoice.xml
@@ -18,25 +18,27 @@
{{ address.country_code }}
{%- endmacro %}
-{%- macro render_discount_or_margin(item) -%}
-{%- if (item.discount_percentage and item.discount_percentage > 0.0) or item.margin_type %}
+{%- macro render_discount_or_margin(item, tax_divisor) -%}
+{%- if item.discount_percentage and item.discount_percentage > 0.0 %}
- {%- if item.discount_percentage > 0.0 %}
SC
{{ format_float(item.discount_percentage) }}
- {%- endif %}
- {%- if item.margin_rate_or_amount > 0.0 -%}
- MG
- {%- if item.margin_type == "Percentage" -%}
- {{ format_float(item.margin_rate_or_amount) }}
- {%- elif item.margin_type == "Amount" -%}
- {{ format_float(item.margin_rate_or_amount) }}
- {%- endif -%}
- {%- endif %}
-{%- endif -%}
+{%- endif %}
+{%- if item.margin_rate_or_amount and item.margin_rate_or_amount > 0.0 %}
+
+ MG
+ {%- if item.margin_type == "Percentage" -%}
+ {{ format_float(item.margin_rate_or_amount) }}
+ {%- elif item.margin_type == "Amount" -%}
+ {{ format_float(item.margin_rate_or_amount / tax_divisor) }}
+ {%- endif -%}
+
+{%- endif %}
{%- endmacro -%}
+{%- set has_inclusive_tax = doc.taxes | selectattr("included_in_print_rate") | list | length > 0 -%}
+
{%- for item in doc.e_invoice_items %}
+ {%- set tax_divisor = (1 + item.tax_rate / 100) if has_inclusive_tax and item.tax_rate else 1 %}
{{ item.idx }}
@@ -188,8 +191,9 @@
{{ html2text(item.description or '') or item.item_name }}
{{ format_float(item.qty) }}
{{ item.stock_uom }}
- {{ format_float(item.net_rate or item.price_list_rate or item.rate, item_meta.get_field("rate").precision) }}
- {{ render_discount_or_margin(item) }}
+ {%- set item_unit_net_price = (item.price_list_rate / tax_divisor) or (item.net_rate) or (item.rate / tax_divisor) %}
+ {{ format_float(item_unit_net_price, item_meta.get_field("rate").precision) }}
+ {{ render_discount_or_margin(item, tax_divisor) }}
{{ format_float(item.net_amount, item_meta.get_field("amount").precision) }}
{{ format_float(item.tax_rate, item_meta.get_field("tax_rate").precision) }}
{%- if item.tax_exemption_reason %}