diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/l10n_it_edi/data | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/l10n_it_edi/data')
| -rw-r--r-- | addons/l10n_it_edi/data/account_edi_data.xml | 11 | ||||
| -rw-r--r-- | addons/l10n_it_edi/data/account_invoice_demo.xml | 33 | ||||
| -rw-r--r-- | addons/l10n_it_edi/data/invoice_it_template.xml | 210 |
3 files changed, 254 insertions, 0 deletions
diff --git a/addons/l10n_it_edi/data/account_edi_data.xml b/addons/l10n_it_edi/data/account_edi_data.xml new file mode 100644 index 00000000..fb454fff --- /dev/null +++ b/addons/l10n_it_edi/data/account_edi_data.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data> + + <record id="edi_fatturaPA" model="account.edi.format"> + <field name="name">Fattura PA (IT)</field> + <field name="code">fattura_pa</field> + </record> + + </data> +</odoo>
\ No newline at end of file diff --git a/addons/l10n_it_edi/data/account_invoice_demo.xml b/addons/l10n_it_edi/data/account_invoice_demo.xml new file mode 100644 index 00000000..e298f08c --- /dev/null +++ b/addons/l10n_it_edi/data/account_invoice_demo.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data noupdate="1"> + <!-- add VAT, codice fiscal and tax system for main company --> + <record id="l10n_it.demo_company_it" model="res.company"> + <field name="l10n_it_codice_fiscale">09814700101</field> + <field name="l10n_it_tax_system">RF01</field> + <field name="zip">12345</field> + </record> + + <record id="partner_demo_it" model="res.partner"> + <field name="name">Palazzo dell'Arte</field> + <field name="vat">IT00000010215</field> + <field name="street">Piazza Marconi 5</field> + <field name="city">Cremona</field> + <field name="country_id" ref="base.it"/> + <field name="state_id" ref="base.state_it_cr"/> + <field name="zip">26000</field> + <field name="email">info@partner.itexample.com</field> + <field name="website">www.itexample.com</field> + </record> + + <record id="base.res_partner_2" model="res.partner"> + <field name="vat">IT00079760328</field> + <field name="l10n_it_pa_index">XS00001</field> + </record> + <record id="base.res_partner_12" model="res.partner"> + <field name="vat">IT00140390501</field> + <field name="l10n_it_pa_index">XS00001</field> + </record> + + </data> +</odoo> diff --git a/addons/l10n_it_edi/data/invoice_it_template.xml b/addons/l10n_it_edi/data/invoice_it_template.xml new file mode 100644 index 00000000..d151aee6 --- /dev/null +++ b/addons/l10n_it_edi/data/invoice_it_template.xml @@ -0,0 +1,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> |
