summaryrefslogtreecommitdiff
path: root/addons/l10n_it_edi/data/invoice_it_template.xml
blob: d151aee611b183e9c395f96f7cad2cddcf3ff22a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data>
        <template id="account_invoice_line_it_FatturaPA">
            <t t-set="taxes" t-value="line.tax_ids.compute_all(line.price_unit)"/>
            <DettaglioLinee>
                <NumeroLinea t-esc="line_counter"/>
                <CodiceArticolo t-if="line.product_id.barcode">
                    <!--2.2.1.3-->
                    <CodiceTipo>EAN</CodiceTipo>
                    <CodiceValore t-esc="line.product_id.barcode"/>
                </CodiceArticolo>
                 <CodiceArticolo t-if="line.product_id.default_code">
                    <CodiceTipo>INTERNAL</CodiceTipo>
                    <CodiceValore t-esc="line.product_id.default_code"/>
                </CodiceArticolo>
                <Descrizione>
                    <t t-esc="line.name[:1000]"/>
                    <t t-if="not line.name" t-esc="'NO NAME'"/>
                </Descrizione>
                <Quantita t-esc="format_numbers(line.quantity)"/>
                <UnitaMisura t-if="line.product_uom_id.category_id != env.ref('uom.product_uom_categ_unit')" t-esc="line.product_uom_id.name"/>
                <PrezzoUnitario t-esc="format_monetary(taxes['total_excluded'], currency)"/>
                <ScontoMaggiorazione t-if="line.discount != 0">
                    <!-- [2.2.1.10] -->
                    <Tipo t-esc="discount_type(line.discount)"/>
                    <Percentuale t-esc="format_numbers(abs(line.discount))"/>
                </ScontoMaggiorazione>
                <PrezzoTotale t-esc="format_monetary(line.price_subtotal, currency)"/>
                <!-- without tax, must include any discounts and any extra charge-->
                <AliquotaIVA t-if="line.tax_ids.amount_type == 'percent'" t-esc="format_numbers(line.tax_ids.amount)"/>
                <AliquotaIVA t-if="line.tax_ids.amount_type != 'percent'" t-esc="'0.00'"/>
                <Natura t-if="line.tax_ids.l10n_it_has_exoneration" t-esc="line.tax_ids.l10n_it_kind_exoneration"/>
            </DettaglioLinee>
        </template>

        <template id="account_invoice_it_FatturaPA_sede">
            <Sede>
                <Indirizzo><t t-if="partner.street" t-esc="partner.street"/> <t t-if="partner.street2" t-esc="partner.street2"/></Indirizzo>
                <CAP><t t-if="partner.country_id.code != 'IT'" t-esc="'00000'"/><t t-else="" t-esc="partner.zip"/></CAP>
                <Comune t-esc="partner.city"/>
                <Provincia t-if="partner.country_id.code == 'IT'" t-esc="partner.state_id.code"/>
                <Nazione t-esc="partner.country_id.code"/>
            </Sede>
        </template>

        <template id="account_invoice_it_FatturaPA_export">
            <t t-set="currency" t-value="record.currency_id or record.company_currency_id"/>
            <t t-set="bank" t-value="record.partner_bank_id"/>
                <p:FatturaElettronica  t-att-versione="formato_trasmissione" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 http://www.fatturapa.gov.it/export/fatturazione/sdi/fatturapa/v1.2/Schema_del_file_xml_FatturaPA_versione_1.2.xsd">
                <FatturaElettronicaHeader>
                    <DatiTrasmissione>
                        <IdTrasmittente>
                            <IdPaese t-esc="get_vat_country(record.company_id.vat)"/>
                            <IdCodice t-esc="get_vat_number(record.company_id.vat)"/>
                        </IdTrasmittente>
                        <ProgressivoInvio t-esc="record.name.replace('/','')[-10:]"/>
                        <FormatoTrasmissione t-esc="formato_trasmissione"/>
                        <CodiceDestinatario t-if="record.commercial_partner_id.l10n_it_pa_index and record.commercial_partner_id.country_id.code == 'IT'" t-esc="record.commercial_partner_id.l10n_it_pa_index.upper()"/>
                        <CodiceDestinatario t-if="not record.commercial_partner_id.l10n_it_pa_index and record.commercial_partner_id.country_id.code == 'IT'" t-esc="'0000000'"/>
                        <CodiceDestinatario t-if="record.commercial_partner_id.country_id.code != 'IT'" t-esc="'XXXXXXX'"/>
                        <ContattiTrasmittente>
                            <Telefono t-if="format_phone(record.company_id.partner_id.phone)" t-esc="format_phone(record.company_id.partner_id.phone)"/>
                            <Telefono t-if="not format_phone(record.company_id.partner_id.phone) and format_phone(record.company_id.partner_id.mobile)" t-esc="format_phone(record.company_id.partner_id.mobile)"/>
                            <Email t-if="record.company_id.email" t-esc="record.company_id.email"/>
                        </ContattiTrasmittente>
                        <PECDestinatario t-if="record.commercial_partner_id.l10n_it_pec_email" t-esc="record.commercial_partner_id.l10n_it_pec_email"/>
                    </DatiTrasmissione>
                    <CedentePrestatore>
                        <DatiAnagrafici>
                            <IdFiscaleIVA>
                                <IdPaese t-esc="get_vat_country(record.company_id.vat)"/>
                                <IdCodice t-esc="get_vat_number(record.company_id.vat)"/>
                            </IdFiscaleIVA>
                            <CodiceFiscale t-if="record.company_id.l10n_it_codice_fiscale and not test_mode" t-esc="record.company_id.l10n_it_codice_fiscale"/>
                            <Anagrafica>
                                <Denominazione t-esc="record.company_id.partner_id.display_name"/>
                            </Anagrafica>
                            <RegimeFiscale t-esc="record.company_id.l10n_it_tax_system"/>
                        </DatiAnagrafici>
                        <t t-call="l10n_it_edi.account_invoice_it_FatturaPA_sede">
                            <t t-set="partner" t-value="record.company_id.partner_id"/>
                        </t>
                        <IscrizioneREA t-if="record.company_id.l10n_it_has_eco_index">
                            <!--1.2.4-->
                            <Ufficio t-esc="record.company_id.l10n_it_eco_index_office.code"/>
                            <NumeroREA t-esc="record.company_id.l10n_it_eco_index_number"/>
                            <CapitaleSociale t-if="record.company_id.l10n_it_eco_index_share_capital != 0" t-esc="format_numbers_two(record.company_id.l10n_it_eco_index_share_capital)"/>
                            <SocioUnico t-if="record.company_id.l10n_it_eco_index_sole_shareholder != 'NO'" t-esc="record.company_id.l10n_it_eco_index_sole_shareholder"/>
                            <StatoLiquidazione t-esc="record.company_id.l10n_it_eco_index_liquidation_state"/>
                        </IscrizioneREA>
                    </CedentePrestatore>
                    <RappresentanteFiscale t-if="record.company_id.l10n_it_has_tax_representative">
                        <!--1.3-->
                        <DatiAnagrafici>
                            <IdFiscaleIVA>
                                <IdPaese t-esc="get_vat_country(record.company_id.l10n_it_tax_representative_partner_id.vat)"/>
                                <IdCodice t-esc="get_vat_number(record.company_id.l10n_it_tax_representative_partner_id.vat)"/>
                            </IdFiscaleIVA>
                            <CodiceFiscale t-if="record.company_id.l10n_it_tax_representative_partner_id.l10n_it_codice_fiscale" t-esc="record.company_id.l10n_it_tax_representative_partner_id.l10n_it_codice_fiscale"/>
                            <Anagrafica>
                                <Denominazione t-if="record.company_id.l10n_it_tax_representative_partner_id.is_company" t-esc="record.company_id.l10n_it_tax_representative_partner_id.display_name"/>
                                <Nome t-if="not record.company_id.l10n_it_tax_representative_partner_id.is_company" t-esc="' '.join(record.company_id.l10n_it_tax_representative_partner_id.name.split()[:1])"/>
                                <Cognome t-if="not record.company_id.l10n_it_tax_representative_partner_id.is_company" t-esc="' '.join(record.company_id.l10n_it_tax_representative_partner_id.name.split()[1:])"/>
                            </Anagrafica>
                        </DatiAnagrafici>
                    </RappresentanteFiscale>
                    <CessionarioCommittente>
                        <DatiAnagrafici>
                            <IdFiscaleIVA t-if="record.commercial_partner_id.vat and in_eu(record.commercial_partner_id)">
                                <IdPaese t-esc="get_vat_country(record.commercial_partner_id.vat)"/>
                                <IdCodice t-esc="get_vat_number(record.commercial_partner_id.vat)"/>
                            </IdFiscaleIVA>
                            <IdFiscaleIVA t-if="record.commercial_partner_id.vat and not in_eu(record.commercial_partner_id)">
                                <IdPaese t-esc="record.commercial_partner_id.country_id.code"/>
                                <IdCodice t-esc="'OO99999999999'"/>
                            </IdFiscaleIVA>
                            <IdFiscaleIVA t-if="not record.commercial_partner_id.vat and record.commercial_partner_id.country_id.code != 'IT'">
                                <IdCodice t-esc="'0000000'"/>
                            </IdFiscaleIVA>
                            <CodiceFiscale t-if="not record.commercial_partner_id.vat" t-esc="record.commercial_partner_id.l10n_it_codice_fiscale"/>
                            <CodiceFiscale t-if="not record.commercial_partner_id.vat and not record.commercial_partner_id.l10n_it_codice_fiscale" t-esc="99999999999"/>
                            <Anagrafica>
                                <Denominazione t-if="record.commercial_partner_id.is_company" t-esc="record.commercial_partner_id.display_name"/>
                                <Nome t-if="not record.commercial_partner_id.is_company" t-esc="' '.join(record.commercial_partner_id.name.split()[:1])"/>
                                <Cognome t-if="not record.commercial_partner_id.is_company" t-esc="' '.join(record.commercial_partner_id.name.split()[1:])"/>
                            </Anagrafica>
                        </DatiAnagrafici>
                        <t t-call="l10n_it_edi.account_invoice_it_FatturaPA_sede">
                            <t t-set="partner" t-value="record.commercial_partner_id"/>
                        </t>
                    </CessionarioCommittente>
                </FatturaElettronicaHeader>
                <FatturaElettronicaBody>
                    <DatiGenerali>
                        <DatiGeneraliDocumento>
                            <!--2.1.1-->
                            <TipoDocumento t-esc="document_type"/>
                            <Divisa t-esc="currency.name"/>
                            <Data t-esc="format_date(record.invoice_date)"/>
                            <Numero t-esc="record.name[-20:]"/>
                            <DatiBollo t-if="record.l10n_it_stamp_duty">
                                <!--2.1.1.6-->
                                <BolloVirtuale>SI</BolloVirtuale>
                                <ImportoBollo t-esc="format_numbers(record.l10n_it_stamp_duty)"/>
                            </DatiBollo>
                        </DatiGeneraliDocumento>
                        <DatiOrdineAcquisto t-if="record.ref">
                            <IdDocumento t-esc="record.ref" />
                        </DatiOrdineAcquisto>
                        <DatiDDT t-if="record.l10n_it_ddt_id">
                            <!--2.1.8-->
                            <NumeroDDT t-esc="record.l10n_it_ddt_id.name"/>
                            <DataDDT t-esc="format_date(record.l10n_it_ddt_id.date)"/>
                        </DatiDDT>
                    </DatiGenerali>
                    <DatiBeniServizi>
                        <!-- Invoice lines. -->
                        <t t-set="line_counter" t-value="0"/>
                        <t t-foreach="record.invoice_line_ids.filtered(lambda l: not l.display_type)" t-as="line">
                            <t t-set="line_counter" t-value="line_counter + 1"/>
                            <t t-call="l10n_it_edi.account_invoice_line_it_FatturaPA"/>
                        </t>
                        <t t-foreach="record.line_ids.filtered(lambda line: line.tax_line_id)" t-as="tax_line">
                            <DatiRiepilogo>
                                <!--2.2.2-->
                                <AliquotaIVA t-esc="format_numbers(tax_line.tax_line_id.amount)"/>
                                <Natura t-if="tax_line.tax_line_id.l10n_it_has_exoneration" t-esc="tax_line.tax_line_id.l10n_it_kind_exoneration"/>
                                <ImponibileImporto t-esc="format_monetary(tax_line.tax_base_amount, currency)"/>
                                <Imposta t-esc="format_monetary(tax_line.price_unit, currency)"/>
                                <EsigibilitaIVA t-if="not tax_line.tax_line_id.l10n_it_has_exoneration or tax_line.tax_line_id.l10n_it_kind_exoneration=='N6'" t-esc="tax_line.tax_line_id.l10n_it_vat_due_date"/>
                                <RiferimentoNormativo t-if="tax_line.tax_line_id.l10n_it_has_exoneration" t-esc="tax_line.tax_line_id.l10n_it_law_reference"/>
                            </DatiRiepilogo>
                        </t>
                        <!-- 0% tax lines -->
                        <t t-foreach="tax_map" t-as="tax">
                            <DatiRiepilogo>
                                <AliquotaIVA t-esc="format_numbers(tax.amount)"/>
                                <Natura t-if="tax.l10n_it_has_exoneration" t-esc="tax.l10n_it_kind_exoneration"/>
                                <ImponibileImporto t-esc="format_monetary(tax_map[tax], currency)"/>
                                <Imposta t-esc="format_monetary(0.00, currency)"/>
                                <EsigibilitaIVA t-if="not tax.l10n_it_has_exoneration or tax.l10n_it_kind_exoneration=='N6'" t-esc="tax.l10n_it_vat_due_date"/>
                                <RiferimentoNormativo t-if="tax.l10n_it_has_exoneration" t-esc="tax.l10n_it_law_reference"/>
                            </DatiRiepilogo>
                        </t>
                    </DatiBeniServizi>
                    <DatiPagamento>
                        <t t-set="payments" t-value="record.line_ids.filtered(lambda line: line.account_id.user_type_id.type in ('receivable', 'payable'))"/>
                        <CondizioniPagamento><t t-if="len(payments) == 1">TP02</t><t t-else="">TP01</t></CondizioniPagamento>
                        <DettaglioPagamento>
                            <t t-set="company_bank_account" t-value="record.partner_bank_id"/>
                            <ModalitaPagamento t-if="company_bank_account">MP05</ModalitaPagamento>
                            <DataScadenzaPagamento t-esc="format_date(record.invoice_date_due)"/>
                            <ImportoPagamento t-esc="format_numbers_two(record.amount_total)"/>
                            <IstitutoFinanziario t-if="company_bank_account.bank_id" t-esc="company_bank_account.bank_id.name[:80]"/>
                            <IBAN t-if="company_bank_account.acc_type == 'iban'" t-esc="company_bank_account.sanitized_acc_number"/>
                            <BIC t-if="company_bank_account.acc_type == 'bank' and company_bank_account.bank_id.bic" t-esc="company_bank_account.bank_id.bic"/>
                            <CodicePagamento t-esc="record.payment_reference[:60]"/>
                        </DettaglioPagamento>
                    </DatiPagamento>
                    <Allegati t-if="pdf">
                        <NomeAttachment t-esc="pdf_name"/>
                        <FormatoAttachment>PDF</FormatoAttachment>
                        <Attachment t-esc="pdf"/>
                    </Allegati>
                </FatturaElettronicaBody>
            </p:FatturaElettronica>
        </template>
    </data>
</odoo>