Skip to content

Commit c0aaea3

Browse files
committed
[ADD] l10n_it_edi_td29
1 parent af9f849 commit c0aaea3

File tree

14 files changed

+784
-0
lines changed

14 files changed

+784
-0
lines changed

l10n_it_edi_td29/README.rst

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
==========================
2+
Italy - E-invoicing - TD29
3+
==========================
4+
5+
..
6+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7+
!! This file is generated by oca-gen-addon-readme !!
8+
!! changes will be overwritten. !!
9+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10+
!! source digest: sha256:3a01ab045147142ebb91404fe5efac3fdf059a507e2c961048891d84ad148e6c
11+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12+
13+
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
14+
:target: https://odoo-community.org/page/development-status
15+
:alt: Beta
16+
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
17+
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
18+
:alt: License: AGPL-3
19+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--italy-lightgray.png?logo=github
20+
:target: https://github.com/OCA/l10n-italy/tree/18.0/l10n_it_edi_td29
21+
:alt: OCA/l10n-italy
22+
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
23+
:target: https://translation.odoo-community.org/projects/l10n-italy-18-0/l10n-italy-18-0-l10n_it_edi_td29
24+
:alt: Translate me on Weblate
25+
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
26+
:target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-italy&target_branch=18.0
27+
:alt: Try me on Runboat
28+
29+
|badge1| |badge2| |badge3| |badge4| |badge5|
30+
31+
**Italiano**
32+
33+
Questo modulo aggiunge il supporto al tipo documento TD29 per la
34+
fatturazione elettronica italiana.
35+
36+
La TD29 è la "Comunicazione per la regolarizzazione delle fatture non
37+
emesse o irregolari" prevista dall'art. 6, comma 8, del D.Lgs. 471/97.
38+
39+
Quando il flag **TD29** è attivato su una fattura fornitore, il
40+
documento viene esportato con:
41+
42+
- ``<TipoDocumento>TD29</TipoDocumento>``
43+
- ``<CodiceDestinatario>0000000</CodiceDestinatario>`` (indirizzato al
44+
Sistema di Interscambio)
45+
46+
**Table of contents**
47+
48+
.. contents::
49+
:local:
50+
51+
Bug Tracker
52+
===========
53+
54+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/l10n-italy/issues>`_.
55+
In case of trouble, please check there if your issue has already been reported.
56+
If you spotted it first, help us to smash it by providing a detailed and welcomed
57+
`feedback <https://github.com/OCA/l10n-italy/issues/new?body=module:%20l10n_it_edi_td29%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
58+
59+
Do not contact contributors directly about support or help with technical issues.
60+
61+
Credits
62+
=======
63+
64+
Authors
65+
-------
66+
67+
* Nextev Srl
68+
69+
Contributors
70+
------------
71+
72+
- Nextev Srl <https://www.nextev.it>
73+
74+
Maintainers
75+
-----------
76+
77+
This module is maintained by the OCA.
78+
79+
.. image:: https://odoo-community.org/logo.png
80+
:alt: Odoo Community Association
81+
:target: https://odoo-community.org
82+
83+
OCA, or the Odoo Community Association, is a nonprofit organization whose
84+
mission is to support the collaborative development of Odoo features and
85+
promote its widespread use.
86+
87+
This module is part of the `OCA/l10n-italy <https://github.com/OCA/l10n-italy/tree/18.0/l10n_it_edi_td29>`_ project on GitHub.
88+
89+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

l10n_it_edi_td29/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Copyright 2026 Nextev Srl
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
from . import models

l10n_it_edi_td29/__manifest__.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright 2026 Nextev Srl
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
{
5+
"name": "Italy - E-invoicing - TD29",
6+
"version": "18.0.1.0.0",
7+
"category": "Accounting/Localizations/EDI",
8+
"development_status": "Beta",
9+
"summary": "Support for TD29 - Omitted/Irregular Invoice Communication",
10+
"author": "Nextev Srl, Odoo Community Association (OCA)",
11+
"website": "https://github.com/OCA/l10n-italy",
12+
"license": "AGPL-3",
13+
"depends": [
14+
"l10n_it_edi_extension",
15+
],
16+
"data": [
17+
"views/l10n_it_view.xml",
18+
],
19+
"installable": True,
20+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Copyright 2026 Nextev Srl
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
from . import account_move
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Copyright 2026 Nextev Srl
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
from odoo import api, fields, models
5+
6+
7+
class AccountMove(models.Model):
8+
_inherit = "account.move"
9+
10+
l10n_it_edi_is_td29 = fields.Boolean(
11+
string="TD29 - Omitted/Irregular Invoice Communication",
12+
copy=False,
13+
help="Check this box to generate a TD29 communication for omitted or "
14+
"irregular invoicing by the Italian seller/provider "
15+
"(art. 6, comma 8, D.Lgs. 471/97).",
16+
)
17+
18+
@api.depends("move_type", "line_ids.tax_tag_ids", "l10n_it_edi_is_td29")
19+
def _compute_l10n_it_edi_is_self_invoice(self):
20+
res = super()._compute_l10n_it_edi_is_self_invoice()
21+
for move in self:
22+
if move.l10n_it_edi_is_td29:
23+
move.l10n_it_edi_is_self_invoice = True
24+
return res
25+
26+
def _l10n_it_edi_get_document_type(self):
27+
if self.l10n_it_edi_is_td29:
28+
return "TD29"
29+
return super()._l10n_it_edi_get_document_type()
30+
31+
def _l10n_it_edi_get_values(self, pdf_values=None):
32+
res = super()._l10n_it_edi_get_values(pdf_values)
33+
if self.l10n_it_edi_is_td29:
34+
# TD29: CodiceDestinatario must always be "0000000"
35+
# and PECDestinatario must not be filled
36+
res["buyer_info"] = dict(res["buyer_info"], pa_index="0000000")
37+
return res

l10n_it_edi_td29/pyproject.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[build-system]
2+
requires = ["whool"]
3+
build-backend = "whool.buildapi"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Nextev Srl \<<https://www.nextev.it>\>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
**Italiano**
2+
3+
Questo modulo aggiunge il supporto al tipo documento TD29 per la fatturazione elettronica italiana.
4+
5+
La TD29 è la "Comunicazione per la regolarizzazione delle fatture non emesse o irregolari" prevista dall'art. 6, comma 8, del D.Lgs. 471/97.
6+
7+
Quando il flag **TD29** è attivato su una fattura fornitore, il documento viene esportato con:
8+
9+
- `<TipoDocumento>TD29</TipoDocumento>`
10+
- `<CodiceDestinatario>0000000</CodiceDestinatario>` (indirizzato al Sistema di Interscambio)

0 commit comments

Comments
 (0)