mirror of
https://github.com/frappe/erpnext.git
synced 2026-03-24 13:42:10 +01:00
fix(italy): fix e-invoice ScontoMaggiorazione structure and included_in_print_rate support (backport #53334) (#53568)
Co-authored-by: Arturo <tamburro92@users.noreply.github.com>
This commit is contained in:
@@ -18,25 +18,27 @@
|
||||
<Nazione>{{ address.country_code }}</Nazione>
|
||||
{%- 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 %}
|
||||
<ScontoMaggiorazione>
|
||||
{%- if item.discount_percentage > 0.0 %}
|
||||
<Tipo>SC</Tipo>
|
||||
<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>
|
||||
{%- 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 -%}
|
||||
|
||||
{%- set has_inclusive_tax = doc.taxes | selectattr("included_in_print_rate") | list | length > 0 -%}
|
||||
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<p:FatturaElettronica xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
|
||||
xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2"
|
||||
@@ -179,6 +181,7 @@
|
||||
</DatiGenerali>
|
||||
<DatiBeniServizi>
|
||||
{%- 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>
|
||||
<NumeroLinea>{{ item.idx }}</NumeroLinea>
|
||||
<CodiceArticolo>
|
||||
@@ -188,8 +191,9 @@
|
||||
<Descrizione>{{ html2text(item.description or '') or item.item_name }}</Descrizione>
|
||||
<Quantita>{{ format_float(item.qty) }}</Quantita>
|
||||
<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>
|
||||
{{ 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) %}
|
||||
<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>
|
||||
<AliquotaIVA>{{ format_float(item.tax_rate, item_meta.get_field("tax_rate").precision) }}</AliquotaIVA>
|
||||
{%- if item.tax_exemption_reason %}
|
||||
|
||||
Reference in New Issue
Block a user