mirror of
https://github.com/frappe/erpnext.git
synced 2026-04-11 19:05:08 +00:00
fix(italy): fix e-invoice ScontoMaggiorazione structure and included_in_print_rate support (#53334)
This commit is contained in:
@@ -18,25 +18,27 @@
|
|||||||
<Nazione>{{ address.country_code }}</Nazione>
|
<Nazione>{{ address.country_code }}</Nazione>
|
||||||
{%- endmacro %}
|
{%- endmacro %}
|
||||||
|
|
||||||
{%- macro render_discount_or_margin(item) -%}
|
{%- macro render_discount_or_margin(item, tax_divisor) -%}
|
||||||
{%- if (item.discount_percentage and item.discount_percentage > 0.0) or item.margin_type %}
|
{%- if item.discount_percentage and item.discount_percentage > 0.0 %}
|
||||||
<ScontoMaggiorazione>
|
<ScontoMaggiorazione>
|
||||||
{%- if item.discount_percentage > 0.0 %}
|
|
||||||
<Tipo>SC</Tipo>
|
<Tipo>SC</Tipo>
|
||||||
<Percentuale>{{ format_float(item.discount_percentage) }}</Percentuale>
|
<Percentuale>{{ format_float(item.discount_percentage) }}</Percentuale>
|
||||||
{%- endif %}
|
|
||||||
{%- if item.margin_rate_or_amount > 0.0 -%}
|
|
||||||
<Tipo>MG</Tipo>
|
|
||||||
{%- if item.margin_type == "Percentage" -%}
|
|
||||||
<Percentuale>{{ format_float(item.margin_rate_or_amount) }}</Percentuale>
|
|
||||||
{%- elif item.margin_type == "Amount" -%}
|
|
||||||
<Importo>{{ format_float(item.margin_rate_or_amount) }}</Importo>
|
|
||||||
{%- endif -%}
|
|
||||||
{%- endif %}
|
|
||||||
</ScontoMaggiorazione>
|
</ScontoMaggiorazione>
|
||||||
{%- endif -%}
|
{%- endif %}
|
||||||
|
{%- if item.margin_rate_or_amount and item.margin_rate_or_amount > 0.0 %}
|
||||||
|
<ScontoMaggiorazione>
|
||||||
|
<Tipo>MG</Tipo>
|
||||||
|
{%- if item.margin_type == "Percentage" -%}
|
||||||
|
<Percentuale>{{ format_float(item.margin_rate_or_amount) }}</Percentuale>
|
||||||
|
{%- elif item.margin_type == "Amount" -%}
|
||||||
|
<Importo>{{ format_float(item.margin_rate_or_amount / tax_divisor) }}</Importo>
|
||||||
|
{%- endif -%}
|
||||||
|
</ScontoMaggiorazione>
|
||||||
|
{%- endif %}
|
||||||
{%- endmacro -%}
|
{%- endmacro -%}
|
||||||
|
|
||||||
|
{%- set has_inclusive_tax = doc.taxes | selectattr("included_in_print_rate") | list | length > 0 -%}
|
||||||
|
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
<p:FatturaElettronica xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
|
<p:FatturaElettronica xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
|
||||||
xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2"
|
xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2"
|
||||||
@@ -179,6 +181,7 @@
|
|||||||
</DatiGenerali>
|
</DatiGenerali>
|
||||||
<DatiBeniServizi>
|
<DatiBeniServizi>
|
||||||
{%- for item in doc.e_invoice_items %}
|
{%- 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 %}
|
||||||
<DettaglioLinee>
|
<DettaglioLinee>
|
||||||
<NumeroLinea>{{ item.idx }}</NumeroLinea>
|
<NumeroLinea>{{ item.idx }}</NumeroLinea>
|
||||||
<CodiceArticolo>
|
<CodiceArticolo>
|
||||||
@@ -188,8 +191,9 @@
|
|||||||
<Descrizione>{{ html2text(item.description or '') or item.item_name }}</Descrizione>
|
<Descrizione>{{ html2text(item.description or '') or item.item_name }}</Descrizione>
|
||||||
<Quantita>{{ format_float(item.qty) }}</Quantita>
|
<Quantita>{{ format_float(item.qty) }}</Quantita>
|
||||||
<UnitaMisura>{{ item.stock_uom }}</UnitaMisura>
|
<UnitaMisura>{{ item.stock_uom }}</UnitaMisura>
|
||||||
<PrezzoUnitario>{{ format_float(item.net_rate or item.price_list_rate or item.rate, item_meta.get_field("rate").precision) }}</PrezzoUnitario>
|
{%- set item_unit_net_price = (item.price_list_rate / tax_divisor) or (item.net_rate) or (item.rate / tax_divisor) %}
|
||||||
{{ render_discount_or_margin(item) }}
|
<PrezzoUnitario>{{ format_float(item_unit_net_price, item_meta.get_field("rate").precision) }}</PrezzoUnitario>
|
||||||
|
{{ render_discount_or_margin(item, tax_divisor) }}
|
||||||
<PrezzoTotale>{{ format_float(item.net_amount, item_meta.get_field("amount").precision) }}</PrezzoTotale>
|
<PrezzoTotale>{{ format_float(item.net_amount, item_meta.get_field("amount").precision) }}</PrezzoTotale>
|
||||||
<AliquotaIVA>{{ format_float(item.tax_rate, item_meta.get_field("tax_rate").precision) }}</AliquotaIVA>
|
<AliquotaIVA>{{ format_float(item.tax_rate, item_meta.get_field("tax_rate").precision) }}</AliquotaIVA>
|
||||||
{%- if item.tax_exemption_reason %}
|
{%- if item.tax_exemption_reason %}
|
||||||
|
|||||||
Reference in New Issue
Block a user