Skip to content

Commit 084d2e2

Browse files
committed
Merge PR #4815 into 18.0
Signed-off-by eLBati
2 parents 22f3cdb + 9efbec6 commit 084d2e2

23 files changed

Lines changed: 1123 additions & 2 deletions

l10n_it_account_vat_period_end_settlement/models/account.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -728,13 +728,23 @@ def _get_credit_debit_lines(self, statement):
728728
credit_accounts = tax._get_credit_accounts()
729729
if debit_accounts:
730730
if (
731-
all(debit_accounts.ids) in statement.account_ids.ids
731+
all(
732+
[
733+
acc_id in statement.account_ids.ids
734+
for acc_id in debit_accounts.ids
735+
]
736+
)
732737
or not statement.account_ids
733738
):
734739
self._set_debit_lines(tax, debit_line_ids, statement)
735740
if credit_accounts:
736741
if (
737-
all(credit_accounts.ids) in statement.account_ids.ids
742+
all(
743+
[
744+
acc_id in statement.account_ids.ids
745+
for acc_id in credit_accounts.ids
746+
]
747+
)
738748
or not statement.account_ids
739749
):
740750
self._set_credit_lines(tax, credit_line_ids, statement)
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
=========================
2+
ITA - Data competenza IVA
3+
=========================
4+
5+
..
6+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7+
!! This file is generated by oca-gen-addon-readme !!
8+
!! changes will be overwritten. !!
9+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10+
!! source digest: sha256:70a0ea62957dbf4fb2c20e88c2b07a5a1df58fac45d4f2c89218a168a726ddfc
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_vat_settlement_date
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_vat_settlement_date
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+
Aggiunge la data competenza IVA per le fatture fornitori.
34+
35+
**English**
36+
37+
Add settlement date for bills.
38+
39+
**Table of contents**
40+
41+
.. contents::
42+
:local:
43+
44+
Bug Tracker
45+
===========
46+
47+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/l10n-italy/issues>`_.
48+
In case of trouble, please check there if your issue has already been reported.
49+
If you spotted it first, help us to smash it by providing a detailed and welcomed
50+
`feedback <https://github.com/OCA/l10n-italy/issues/new?body=module:%20l10n_it_vat_settlement_date%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
51+
52+
Do not contact contributors directly about support or help with technical issues.
53+
54+
Credits
55+
=======
56+
57+
Authors
58+
-------
59+
60+
* Marco Colombo
61+
62+
Contributors
63+
------------
64+
65+
- `Aion Tech <https://aiontech.company/>`__:
66+
67+
- Simone Rubino <simone.rubino@aion-tech.it>
68+
69+
Maintainers
70+
-----------
71+
72+
This module is maintained by the OCA.
73+
74+
.. image:: https://odoo-community.org/logo.png
75+
:alt: Odoo Community Association
76+
:target: https://odoo-community.org
77+
78+
OCA, or the Odoo Community Association, is a nonprofit organization whose
79+
mission is to support the collaborative development of Odoo features and
80+
promote its widespread use.
81+
82+
This module is part of the `OCA/l10n-italy <https://github.com/OCA/l10n-italy/tree/18.0/l10n_it_vat_settlement_date>`_ project on GitHub.
83+
84+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Copyright 2021 Marco Colombo (<https://github/TheMule71)
2+
# Copyright 2024 Simone Rubino - Aion Tech
3+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
4+
5+
{
6+
"name": "ITA - Data competenza IVA",
7+
"version": "18.0.1.0.0",
8+
"category": "Localization/Italy",
9+
"summary": "Settlement date for VAT Statement",
10+
"license": "AGPL-3",
11+
"author": "Marco Colombo, Odoo Community Association (OCA)",
12+
"website": "https://github.com/OCA/l10n-italy"
13+
"/tree/18.0/l10n_it_vat_settlement_date",
14+
"depends": [
15+
"account",
16+
"account_tax_balance",
17+
"l10n_it_account_vat_period_end_settlement",
18+
"l10n_it_vat_registries",
19+
"l10n_it_vat_settlement_communication",
20+
],
21+
"data": [
22+
"views/account_move_views.xml",
23+
"reports/report_registro_iva.xml",
24+
],
25+
}
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * l10n_it_vat_settlement_date
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 16.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"POT-Creation-Date: 2024-03-27 10:09+0000\n"
10+
"PO-Revision-Date: 2025-05-18 09:27+0000\n"
11+
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
12+
"Language-Team: \n"
13+
"Language: it\n"
14+
"MIME-Version: 1.0\n"
15+
"Content-Type: text/plain; charset=UTF-8\n"
16+
"Content-Transfer-Encoding: \n"
17+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
18+
"X-Generator: Weblate 5.10.4\n"
19+
20+
#. module: l10n_it_vat_settlement_date
21+
#: model_terms:ir.ui.view,arch_db:l10n_it_vat_settlement_date.report_registro_iva
22+
msgid "<span>VAT Settlement date</span>"
23+
msgstr "<span>Data competenza IVA</span>"
24+
25+
#. module: l10n_it_vat_settlement_date
26+
#: model:ir.model,name:l10n_it_vat_settlement_date.model_account_move
27+
msgid "Journal Entry"
28+
msgstr "Registrazione contabile"
29+
30+
#. module: l10n_it_vat_settlement_date
31+
#: model:ir.model,name:l10n_it_vat_settlement_date.model_account_move_line
32+
msgid "Journal Item"
33+
msgstr "Movimento contabile"
34+
35+
#. module: l10n_it_vat_settlement_date
36+
#: model:ir.model,name:l10n_it_vat_settlement_date.model_account_tax
37+
msgid "Tax"
38+
msgstr "Imposta"
39+
40+
#. module: l10n_it_vat_settlement_date
41+
#: model:ir.model.fields,field_description:l10n_it_vat_settlement_date.field_account_bank_statement_line__l10n_it_vat_settlement_date
42+
#: model:ir.model.fields,field_description:l10n_it_vat_settlement_date.field_account_move__l10n_it_vat_settlement_date
43+
#: model:ir.model.fields,field_description:l10n_it_vat_settlement_date.field_account_move_line__l10n_it_vat_settlement_date
44+
#: model:ir.model.fields,field_description:l10n_it_vat_settlement_date.field_account_payment__l10n_it_vat_settlement_date
45+
msgid "VAT Settlement Date"
46+
msgstr "Data competenza IVA"
47+
48+
#. module: l10n_it_vat_settlement_date
49+
#: model:ir.model,name:l10n_it_vat_settlement_date.model_report_account_vat_period_end_statement_vat_statement
50+
msgid "VAT Statement report"
51+
msgstr "Report liquidazione IVA"
52+
53+
#. module: l10n_it_vat_settlement_date
54+
#: model:ir.model,name:l10n_it_vat_settlement_date.model_account_vat_period_end_statement
55+
msgid "VAT period end statement"
56+
msgstr "Dichiarazione IVA di fine periodo"
57+
58+
#. module: l10n_it_vat_settlement_date
59+
#. odoo-python
60+
#: code:addons/l10n_it_vat_settlement_date/wizard/report_registro_iva_xlsx.py:0
61+
#, python-format
62+
msgid "VAT settlement date"
63+
msgstr "Data competenza IVA"
64+
65+
#. module: l10n_it_vat_settlement_date
66+
#: model:ir.model,name:l10n_it_vat_settlement_date.model_comunicazione_liquidazione_vp
67+
msgid "VAT statement communication - VP table"
68+
msgstr "Comunicazione liquidazione IVA. Quadro VP"
69+
70+
#. module: l10n_it_vat_settlement_date
71+
#: model:ir.model,name:l10n_it_vat_settlement_date.model_report_l10n_it_vat_registries_report_registro_iva_xlsx
72+
msgid "XLSX report for VAT registries"
73+
msgstr "Resoconto XLSX per registri IVA"
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * l10n_it_vat_settlement_date
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 16.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"Last-Translator: \n"
10+
"Language-Team: \n"
11+
"MIME-Version: 1.0\n"
12+
"Content-Type: text/plain; charset=UTF-8\n"
13+
"Content-Transfer-Encoding: \n"
14+
"Plural-Forms: \n"
15+
16+
#. module: l10n_it_vat_settlement_date
17+
#: model_terms:ir.ui.view,arch_db:l10n_it_vat_settlement_date.report_registro_iva
18+
msgid "<span>VAT Settlement date</span>"
19+
msgstr ""
20+
21+
#. module: l10n_it_vat_settlement_date
22+
#: model:ir.model,name:l10n_it_vat_settlement_date.model_account_move
23+
msgid "Journal Entry"
24+
msgstr ""
25+
26+
#. module: l10n_it_vat_settlement_date
27+
#: model:ir.model,name:l10n_it_vat_settlement_date.model_account_move_line
28+
msgid "Journal Item"
29+
msgstr ""
30+
31+
#. module: l10n_it_vat_settlement_date
32+
#: model:ir.model,name:l10n_it_vat_settlement_date.model_account_tax
33+
msgid "Tax"
34+
msgstr ""
35+
36+
#. module: l10n_it_vat_settlement_date
37+
#: model:ir.model.fields,field_description:l10n_it_vat_settlement_date.field_account_bank_statement_line__l10n_it_vat_settlement_date
38+
#: model:ir.model.fields,field_description:l10n_it_vat_settlement_date.field_account_move__l10n_it_vat_settlement_date
39+
#: model:ir.model.fields,field_description:l10n_it_vat_settlement_date.field_account_move_line__l10n_it_vat_settlement_date
40+
#: model:ir.model.fields,field_description:l10n_it_vat_settlement_date.field_account_payment__l10n_it_vat_settlement_date
41+
msgid "VAT Settlement Date"
42+
msgstr ""
43+
44+
#. module: l10n_it_vat_settlement_date
45+
#: model:ir.model,name:l10n_it_vat_settlement_date.model_report_account_vat_period_end_statement_vat_statement
46+
msgid "VAT Statement report"
47+
msgstr ""
48+
49+
#. module: l10n_it_vat_settlement_date
50+
#: model:ir.model,name:l10n_it_vat_settlement_date.model_account_vat_period_end_statement
51+
msgid "VAT period end statement"
52+
msgstr ""
53+
54+
#. module: l10n_it_vat_settlement_date
55+
#. odoo-python
56+
#: code:addons/l10n_it_vat_settlement_date/wizard/report_registro_iva_xlsx.py:0
57+
#, python-format
58+
msgid "VAT settlement date"
59+
msgstr ""
60+
61+
#. module: l10n_it_vat_settlement_date
62+
#: model:ir.model,name:l10n_it_vat_settlement_date.model_comunicazione_liquidazione_vp
63+
msgid "VAT statement communication - VP table"
64+
msgstr ""
65+
66+
#. module: l10n_it_vat_settlement_date
67+
#: model:ir.model,name:l10n_it_vat_settlement_date.model_report_l10n_it_vat_registries_report_registro_iva_xlsx
68+
msgid "XLSX report for VAT registries"
69+
msgstr ""
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
2+
3+
from . import account_move
4+
from . import account_move_line
5+
from . import account_tax
6+
from . import account_vat_period_end_statement
7+
from . import comunicazione_liquidazione
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Copyright (c) 2021 Marco Colombo (https://github/TheMule71)
2+
# Copyright 2024 Simone Rubino - Aion Tech
3+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
4+
5+
from odoo import api, fields, models
6+
7+
8+
class AccountMove(models.Model):
9+
_inherit = "account.move"
10+
11+
l10n_it_vat_settlement_date = fields.Date(
12+
string="VAT Settlement Date",
13+
compute="_compute_l10n_it_vat_settlement_date",
14+
store=True,
15+
readonly=False,
16+
copy=False,
17+
)
18+
19+
@api.depends(
20+
"date",
21+
"invoice_date",
22+
)
23+
def _compute_l10n_it_vat_settlement_date(self):
24+
for move in self:
25+
settlement_date = (
26+
move.date or move.invoice_date or fields.Date.context_today(move)
27+
)
28+
move.l10n_it_vat_settlement_date = settlement_date
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Copyright (c) 2021 Marco Colombo (https://github/TheMule71)
2+
# Copyright 2024 Simone Rubino - Aion Tech
3+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
4+
5+
from odoo import api, fields, models
6+
7+
8+
class AccountMoveLine(models.Model):
9+
_inherit = "account.move.line"
10+
11+
l10n_it_vat_settlement_date = fields.Date(
12+
string="VAT Settlement Date",
13+
compute="_compute_l10n_it_vat_settlement_date",
14+
index=True,
15+
store=True,
16+
copy=False,
17+
readonly=False,
18+
)
19+
20+
@api.depends(
21+
"move_id.l10n_it_vat_settlement_date",
22+
)
23+
def _compute_l10n_it_vat_settlement_date(self):
24+
for line in self:
25+
move = line.move_id
26+
line.l10n_it_vat_settlement_date = move.l10n_it_vat_settlement_date
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Copyright (c) 2021 Marco Colombo (https://github/TheMule71)
2+
# Copyright 2024 Simone Rubino - Aion Tech
3+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
4+
5+
from odoo import models
6+
from odoo.osv import expression
7+
8+
9+
class AccountTax(models.Model):
10+
_inherit = "account.tax"
11+
12+
def _get_settlement_date_domain(self, domain):
13+
"""Create a copy of `domain`
14+
where the settlement date is used instead of move date."""
15+
# Substitute `date` with the settlement date in domain terms
16+
settlement_domain = []
17+
for term in domain:
18+
if term[0] == "date":
19+
# 'tuple' object does not support item assignment
20+
# so we have to create another term with the new date
21+
term = "l10n_it_vat_settlement_date", *term[1:]
22+
settlement_domain.append(term)
23+
return settlement_domain
24+
25+
def _inject_vat_settlement_date_domain(self, domain):
26+
"""Create a new domain where the settlement date is used instead of move date.
27+
28+
The domain falls back on the move date if the settlement date is empty.
29+
"""
30+
settlement_domain = self._get_settlement_date_domain(domain)
31+
domain = expression.OR(
32+
[
33+
settlement_domain,
34+
expression.AND(
35+
[
36+
[("l10n_it_vat_settlement_date", "=", None)],
37+
domain,
38+
]
39+
),
40+
]
41+
)
42+
return domain
43+
44+
def get_move_line_partial_domain(self, from_date, to_date, company_ids):
45+
domain = super().get_move_line_partial_domain(from_date, to_date, company_ids)
46+
if self.env.context.get("use_l10n_it_vat_settlement_date"):
47+
domain = self._inject_vat_settlement_date_domain(domain)
48+
return domain

0 commit comments

Comments
 (0)