odoo-addon-l10n-it-vat-registries 16.0.1.4.0.2__py3-none-any.whl → 18.0.1.0.0.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/l10n_it_vat_registries/README.rst +13 -6
- odoo/addons/l10n_it_vat_registries/__manifest__.py +2 -2
- odoo/addons/l10n_it_vat_registries/i18n/am.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/ar.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/bg.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/bs.po +2 -57
- odoo/addons/l10n_it_vat_registries/i18n/ca.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/ca_ES.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/cs.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/da.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/de.po +2 -57
- odoo/addons/l10n_it_vat_registries/i18n/el_GR.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/en_AU.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/en_GB.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/es.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/es_AR.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/es_CL.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/es_CO.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/es_CR.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/es_DO.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/es_EC.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/es_ES.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/es_MX.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/es_PE.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/es_PY.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/es_VE.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/et.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/eu.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/fa.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/fi.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/fr.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/fr_CA.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/fr_CH.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/fr_FR.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/gl.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/gl_ES.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/he.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/hi.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/hr.po +2 -57
- odoo/addons/l10n_it_vat_registries/i18n/hr_HR.po +2 -57
- odoo/addons/l10n_it_vat_registries/i18n/hu.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/id.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/it.po +46 -137
- odoo/addons/l10n_it_vat_registries/i18n/ja.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/ko.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/l10n_it_vat_registries.pot +31 -62
- odoo/addons/l10n_it_vat_registries/i18n/lo.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/lt.po +2 -57
- odoo/addons/l10n_it_vat_registries/i18n/lt_LT.po +2 -57
- odoo/addons/l10n_it_vat_registries/i18n/lv.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/mk.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/mn.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/nb.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/nb_NO.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/nl.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/nl_BE.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/pl.po +3 -58
- odoo/addons/l10n_it_vat_registries/i18n/pt.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/pt_BR.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/pt_PT.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/ro.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/ru.po +3 -58
- odoo/addons/l10n_it_vat_registries/i18n/sk.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/sl.po +4 -57
- odoo/addons/l10n_it_vat_registries/i18n/sr.po +2 -57
- odoo/addons/l10n_it_vat_registries/i18n/sr@latin.po +2 -57
- odoo/addons/l10n_it_vat_registries/i18n/sv.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/th.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/tr.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/uk.po +2 -57
- odoo/addons/l10n_it_vat_registries/i18n/vi.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/vi_VN.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/zh_CN.po +0 -55
- odoo/addons/l10n_it_vat_registries/i18n/zh_TW.po +0 -55
- odoo/addons/l10n_it_vat_registries/models/account_journal.py +5 -0
- odoo/addons/l10n_it_vat_registries/models/account_tax_registry.py +6 -0
- odoo/addons/l10n_it_vat_registries/models/vat_registry.py +19 -0
- odoo/addons/l10n_it_vat_registries/readme/CONFIGURE.md +6 -0
- odoo/addons/l10n_it_vat_registries/readme/CREDITS.md +1 -0
- odoo/addons/l10n_it_vat_registries/report/report_registro_iva.xml +278 -212
- odoo/addons/l10n_it_vat_registries/report/reports.xml +0 -14
- odoo/addons/l10n_it_vat_registries/security/vat_registry_security.xml +0 -2
- odoo/addons/l10n_it_vat_registries/static/description/index.html +9 -4
- odoo/addons/l10n_it_vat_registries/tests/test_registry.py +20 -46
- odoo/addons/l10n_it_vat_registries/views/account_journal_view.xml +1 -2
- odoo/addons/l10n_it_vat_registries/views/account_tax_registry_view.xml +15 -5
- odoo/addons/l10n_it_vat_registries/views/account_view.xml +0 -2
- odoo/addons/l10n_it_vat_registries/wizard/__init__.py +0 -1
- odoo/addons/l10n_it_vat_registries/wizard/print_registro_iva.py +63 -30
- odoo/addons/l10n_it_vat_registries/wizard/print_registro_iva.xml +28 -17
- {odoo_addon_l10n_it_vat_registries-16.0.1.4.0.2.dist-info → odoo_addon_l10n_it_vat_registries-18.0.1.0.0.6.dist-info}/METADATA +19 -13
- odoo_addon_l10n_it_vat_registries-18.0.1.0.0.6.dist-info/RECORD +103 -0
- odoo/addons/l10n_it_vat_registries/wizard/report_registro_iva_xlsx.py +0 -161
- odoo_addon_l10n_it_vat_registries-16.0.1.4.0.2.dist-info/RECORD +0 -104
- {odoo_addon_l10n_it_vat_registries-16.0.1.4.0.2.dist-info → odoo_addon_l10n_it_vat_registries-18.0.1.0.0.6.dist-info}/WHEEL +0 -0
- {odoo_addon_l10n_it_vat_registries-16.0.1.4.0.2.dist-info → odoo_addon_l10n_it_vat_registries-18.0.1.0.0.6.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,5 @@
|
|
1
1
|
<?xml version="1.0" ?>
|
2
2
|
<odoo noupdate="1">
|
3
|
-
|
4
3
|
<record id="action_report_registro_iva" model="ir.actions.report">
|
5
4
|
<field name="name">Invoices VAT Registry</field>
|
6
5
|
<field name="model">account.move</field>
|
@@ -12,17 +11,4 @@
|
|
12
11
|
ref="l10n_it_account.l10n_it_account_a4_landscape"
|
13
12
|
/>
|
14
13
|
</record>
|
15
|
-
|
16
|
-
<record id="action_report_registro_iva_xlsx" model="ir.actions.report">
|
17
|
-
<field name="name">Invoices VAT Registry XLSX</field>
|
18
|
-
<field name="model">account.move</field>
|
19
|
-
<field name="report_type">xlsx</field>
|
20
|
-
<field
|
21
|
-
name="report_name"
|
22
|
-
>l10n_it_vat_registries.report_registro_iva_xlsx</field>
|
23
|
-
<field
|
24
|
-
name="report_file"
|
25
|
-
>l10n_it_vat_registries.report_registro_iva_xlsx</field>
|
26
|
-
</record>
|
27
|
-
|
28
14
|
</odoo>
|
@@ -1,6 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="utf-8" ?>
|
2
2
|
<odoo noupdate="1">
|
3
|
-
|
4
3
|
<record id="tax_registry_comp_rule" model="ir.rule">
|
5
4
|
<field name="name">tax_registry multi-company</field>
|
6
5
|
<field name="model_id" ref="model_account_tax_registry" />
|
@@ -9,5 +8,4 @@
|
|
9
8
|
name="domain_force"
|
10
9
|
>['|',('company_id','=',False),('company_id','in',company_ids)]</field>
|
11
10
|
</record>
|
12
|
-
|
13
11
|
</odoo>
|
@@ -367,9 +367,9 @@ ul.auto-toc {
|
|
367
367
|
!! This file is generated by oca-gen-addon-readme !!
|
368
368
|
!! changes will be overwritten. !!
|
369
369
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
370
|
-
!! source digest: sha256:
|
370
|
+
!! source digest: sha256:d7dfc4dbdd66950f08f75a81de4358d7372782e9ce8acef57533c072167b5a3d
|
371
371
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
372
|
-
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/l10n-italy/tree/
|
372
|
+
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/l10n-italy/tree/18.0/l10n_it_vat_registries"><img alt="OCA/l10n-italy" src="https://img.shields.io/badge/github-OCA%2Fl10n--italy-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/l10n-italy-18-0/l10n-italy-18-0-l10n_it_vat_registries"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/l10n-italy&target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
373
373
|
<p>Law: Decreto del Presidente della Repubblica del 26 ottobre 1972 n. 633
|
374
374
|
<a class="reference external" href="https://goo.gl/31yTVj">https://goo.gl/31yTVj</a></p>
|
375
375
|
<p><strong>Table of contents</strong></p>
|
@@ -410,6 +410,8 @@ possibile configurare i registri IVA, ad esempio ‘vendite’, ‘acquisti’ o
|
|
410
410
|
‘corrispettivi’. Per associare un registro contabile a un registro IVA,
|
411
411
|
aprire il registro tramite Contabilità -> Configurazione -> Contabilità
|
412
412
|
-> Registri e impostare il campo “Registro IVA”.</p>
|
413
|
+
<p>Per le operazioni in inversione contabile è importante impostare
|
414
|
+
“Includere registrazioni inversione contabile” nel registro IVA vendite.</p>
|
413
415
|
<p>Se non ci sono movimenti contabili da stampare, la stampa viene generata
|
414
416
|
con totale zero.</p>
|
415
417
|
<p><strong>English</strong></p>
|
@@ -431,6 +433,8 @@ registries you can configure VAT registries, like ‘Sales’, ‘Purchases’
|
|
431
433
|
or ‘corrispettivi’. In order to link a journal to a VAT registry, open
|
432
434
|
journal by Accounting -> Configuration -> Accounting -> Journals and set
|
433
435
|
the ‘VAT registry’ field.</p>
|
436
|
+
<p>For reverse charge operations it is important to set “Include reverse
|
437
|
+
charge moves” in sales VAT registry</p>
|
434
438
|
<p>If there are no account moves to be printed, the report is printed with
|
435
439
|
total equal to zero.</p>
|
436
440
|
</div>
|
@@ -456,7 +460,7 @@ you can directly journals and layout in the fields below.</p>
|
|
456
460
|
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/l10n-italy/issues">GitHub Issues</a>.
|
457
461
|
In case of trouble, please check there if your issue has already been reported.
|
458
462
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
459
|
-
<a class="reference external" href="https://github.com/OCA/l10n-italy/issues/new?body=module:%20l10n_it_vat_registries%0Aversion:%
|
463
|
+
<a class="reference external" href="https://github.com/OCA/l10n-italy/issues/new?body=module:%20l10n_it_vat_registries%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
460
464
|
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
461
465
|
</div>
|
462
466
|
<div class="section" id="credits">
|
@@ -482,6 +486,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
|
|
482
486
|
<p>The development of this module has been financially supported by:</p>
|
483
487
|
<ul class="simple">
|
484
488
|
<li>Odoo Italia Network</li>
|
489
|
+
<li>APS Odoo Italia</li>
|
485
490
|
</ul>
|
486
491
|
</div>
|
487
492
|
<div class="section" id="maintainers">
|
@@ -493,7 +498,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
|
|
493
498
|
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
494
499
|
mission is to support the collaborative development of Odoo features and
|
495
500
|
promote its widespread use.</p>
|
496
|
-
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/l10n-italy/tree/
|
501
|
+
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/l10n-italy/tree/18.0/l10n_it_vat_registries">OCA/l10n-italy</a> project on GitHub.</p>
|
497
502
|
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
|
498
503
|
</div>
|
499
504
|
</div>
|
@@ -1,42 +1,35 @@
|
|
1
1
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
2
2
|
|
3
|
-
import io
|
4
|
-
from zipfile import ZipFile
|
5
|
-
|
6
3
|
from odoo import fields
|
7
4
|
from odoo.tests.common import TransactionCase
|
8
5
|
|
9
6
|
|
10
7
|
class TestRegistry(TransactionCase):
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
cls.test_date = fields.Date.today()
|
16
|
-
cls.journal = cls.env["account.journal"].search(
|
8
|
+
def test_invoice_and_report(self):
|
9
|
+
test_date = fields.Date.today()
|
10
|
+
self.journal = self.env["account.journal"].search(
|
17
11
|
[("type", "=", "sale")], limit=1
|
18
12
|
)
|
19
|
-
|
13
|
+
self.ova = self.env["account.account"].search(
|
20
14
|
[("account_type", "=", "asset_current")],
|
21
15
|
limit=1,
|
22
16
|
)
|
23
|
-
|
17
|
+
tax = self.env["account.tax"].create(
|
24
18
|
{
|
25
19
|
"name": "Tax 10.0",
|
26
20
|
"amount": 10.0,
|
27
21
|
"amount_type": "fixed",
|
28
22
|
}
|
29
23
|
)
|
30
|
-
|
24
|
+
tax_registry = self.env["account.tax.registry"].create(
|
31
25
|
{
|
32
26
|
"name": "Sales",
|
33
27
|
"layout_type": "customer",
|
34
|
-
"journal_ids": [(6, 0, [
|
28
|
+
"journal_ids": [(6, 0, [self.journal.id])],
|
35
29
|
}
|
36
30
|
)
|
37
|
-
|
38
|
-
|
39
|
-
cls.env["account.account"]
|
31
|
+
invoice_line_account = (
|
32
|
+
self.env["account.account"]
|
40
33
|
.search(
|
41
34
|
[("account_type", "=", "expense")],
|
42
35
|
limit=1,
|
@@ -44,36 +37,35 @@ class TestRegistry(TransactionCase):
|
|
44
37
|
.id
|
45
38
|
)
|
46
39
|
|
47
|
-
|
40
|
+
invoice = self.env["account.move"].create(
|
48
41
|
{
|
49
|
-
"partner_id":
|
50
|
-
"invoice_date":
|
42
|
+
"partner_id": self.env.ref("base.res_partner_2").id,
|
43
|
+
"invoice_date": test_date,
|
51
44
|
"move_type": "out_invoice",
|
52
|
-
"journal_id":
|
45
|
+
"journal_id": self.journal.id,
|
53
46
|
"invoice_line_ids": [
|
54
47
|
(
|
55
48
|
0,
|
56
49
|
None,
|
57
50
|
{
|
58
|
-
"product_id":
|
51
|
+
"product_id": self.env.ref("product.product_product_4").id,
|
59
52
|
"quantity": 1.0,
|
60
53
|
"price_unit": 100.0,
|
61
54
|
"name": "product that cost 100",
|
62
|
-
"account_id":
|
63
|
-
"tax_ids": [(6, 0, [
|
55
|
+
"account_id": invoice_line_account,
|
56
|
+
"tax_ids": [(6, 0, [tax.id])],
|
64
57
|
},
|
65
58
|
)
|
66
59
|
],
|
67
60
|
}
|
68
61
|
)
|
69
|
-
|
62
|
+
invoice.action_post()
|
70
63
|
|
71
|
-
def test_invoice_and_report(self):
|
72
64
|
wizard = self.env["wizard.registro.iva"].create(
|
73
65
|
{
|
74
|
-
"from_date":
|
75
|
-
"to_date":
|
76
|
-
"tax_registry_id":
|
66
|
+
"from_date": test_date,
|
67
|
+
"to_date": test_date,
|
68
|
+
"tax_registry_id": tax_registry.id,
|
77
69
|
"layout_type": "supplier",
|
78
70
|
"fiscal_page_base": 0,
|
79
71
|
}
|
@@ -92,24 +84,6 @@ class TestRegistry(TransactionCase):
|
|
92
84
|
|
93
85
|
self.assertTrue(b"Tax 10.0" in html[0])
|
94
86
|
|
95
|
-
# XLSX
|
96
|
-
res = wizard.print_registro_xlsx()
|
97
|
-
|
98
|
-
report_name = "l10n_it_vat_registries.report_registro_iva_xlsx"
|
99
|
-
domain = [
|
100
|
-
("report_type", "=", "xlsx"),
|
101
|
-
("report_name", "=", report_name),
|
102
|
-
]
|
103
|
-
report = self.env["ir.actions.report"].search(domain)
|
104
|
-
data = res["context"]["report_action"]["data"]
|
105
|
-
xlsx, _type = report._render_xlsx(report_name, data["ids"], data)
|
106
|
-
|
107
|
-
# basic reading of a file
|
108
|
-
# we don't want to depend on other non-standard libraries such as openpyxl
|
109
|
-
f = io.BytesIO(xlsx)
|
110
|
-
with ZipFile(f, "r").open("xl/sharedStrings.xml", "r") as wf:
|
111
|
-
self.assertTrue(self.invoice.partner_id.name.encode("utf8") in wf.read())
|
112
|
-
|
113
87
|
def test_no_report_from_invoice(self):
|
114
88
|
"""Check that the report is not available from invoice context menu."""
|
115
89
|
report_id = self.ref("l10n_it_vat_registries.action_report_registro_iva")
|
@@ -1,6 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="utf-8" ?>
|
2
2
|
<odoo>
|
3
|
-
|
4
3
|
<record id="view_account_journal_form" model="ir.ui.view">
|
5
4
|
<field name="name">account.journal.form</field>
|
6
5
|
<field name="model">account.journal</field>
|
@@ -8,8 +7,8 @@
|
|
8
7
|
<field name="arch" type="xml">
|
9
8
|
<field name="type" position="after">
|
10
9
|
<field name="tax_registry_id" />
|
10
|
+
<field name="rc_tax_registry_id" invisible="type != 'purchase'" />
|
11
11
|
</field>
|
12
12
|
</field>
|
13
13
|
</record>
|
14
|
-
|
15
14
|
</odoo>
|
@@ -1,6 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="utf-8" ?>
|
2
2
|
<odoo>
|
3
|
-
|
4
3
|
<record id="view_account_tax_registry_form" model="ir.ui.view">
|
5
4
|
<field name="name">account.tax.registry.form</field>
|
6
5
|
<field name="model">account.tax.registry</field>
|
@@ -14,6 +13,17 @@
|
|
14
13
|
</group>
|
15
14
|
<separator string="Journals" />
|
16
15
|
<field name="journal_ids" />
|
16
|
+
<separator string="RC Journals" />
|
17
|
+
<group>
|
18
|
+
<field name="include_rc_moves" />
|
19
|
+
</group>
|
20
|
+
<group>
|
21
|
+
<field
|
22
|
+
name="rc_journal_ids"
|
23
|
+
invisible="not include_rc_moves"
|
24
|
+
widget="many2many_tags"
|
25
|
+
/>
|
26
|
+
</group>
|
17
27
|
</form>
|
18
28
|
</field>
|
19
29
|
</record>
|
@@ -21,11 +31,12 @@
|
|
21
31
|
<record id="action_account_tax_registry_form" model="ir.actions.act_window">
|
22
32
|
<field name="name">VAT registries</field>
|
23
33
|
<field name="res_model">account.tax.registry</field>
|
24
|
-
<field name="view_mode">
|
34
|
+
<field name="view_mode">list,form</field>
|
25
35
|
<field name="help" type="html">
|
26
|
-
|
36
|
+
<p class="oe_view_nocontent_create">
|
27
37
|
Click to add a VAT registry.
|
28
|
-
</p
|
38
|
+
</p>
|
39
|
+
<p>
|
29
40
|
A VAT registry is used to group several journals in one registry.
|
30
41
|
</p>
|
31
42
|
</field>
|
@@ -35,5 +46,4 @@
|
|
35
46
|
id="menu_action_account_tax_registry_form"
|
36
47
|
parent="account.account_account_menu"
|
37
48
|
/>
|
38
|
-
|
39
49
|
</odoo>
|
@@ -33,12 +33,23 @@ class WizardRegistroIva(models.TransientModel):
|
|
33
33
|
)
|
34
34
|
journal_ids = fields.Many2many(
|
35
35
|
"account.journal",
|
36
|
-
"
|
36
|
+
"wizard_vat_registries_journals_rel",
|
37
|
+
"wizard_id",
|
37
38
|
"journal_id",
|
38
|
-
"registro_id",
|
39
39
|
string="Journals",
|
40
40
|
help="Select journals you want retrieve documents from",
|
41
41
|
)
|
42
|
+
include_rc_moves = fields.Boolean(
|
43
|
+
string="Include reverse charge moves",
|
44
|
+
)
|
45
|
+
rc_journal_ids = fields.Many2many(
|
46
|
+
"account.journal",
|
47
|
+
"wizard_vat_registries_rc_journals_rel",
|
48
|
+
"wizard_id",
|
49
|
+
"journal_id",
|
50
|
+
string="Reverse charge journals",
|
51
|
+
help="Select journals you want retrieve reverse charge documents from",
|
52
|
+
)
|
42
53
|
message = fields.Char(size=64, readonly=True)
|
43
54
|
only_totals = fields.Boolean(string="Prints only totals")
|
44
55
|
fiscal_page_base = fields.Integer("Last printed page", required=True)
|
@@ -52,6 +63,8 @@ class WizardRegistroIva(models.TransientModel):
|
|
52
63
|
self.layout_type = self.tax_registry_id.layout_type
|
53
64
|
self.entry_order = self.tax_registry_id.entry_order
|
54
65
|
self.show_full_contact_addess = self.tax_registry_id.show_full_contact_addess
|
66
|
+
self.include_rc_moves = self.tax_registry_id.include_rc_moves
|
67
|
+
self.rc_journal_ids = self.tax_registry_id.rc_journal_ids
|
55
68
|
|
56
69
|
@api.onchange("date_range_id")
|
57
70
|
def on_change_date_range_id(self):
|
@@ -72,6 +85,15 @@ class WizardRegistroIva(models.TransientModel):
|
|
72
85
|
("state", "=", "posted"),
|
73
86
|
]
|
74
87
|
|
88
|
+
def _include_rc_journals(self):
|
89
|
+
if (
|
90
|
+
self.include_rc_moves
|
91
|
+
and self.rc_journal_ids
|
92
|
+
and self.layout_type == "customer"
|
93
|
+
):
|
94
|
+
return True
|
95
|
+
return False
|
96
|
+
|
75
97
|
def _get_move_ids(self, wizard):
|
76
98
|
MAPPING = {
|
77
99
|
"journal_date_name": "journal_id, date, name",
|
@@ -82,24 +104,49 @@ class WizardRegistroIva(models.TransientModel):
|
|
82
104
|
self._get_move_ids_domain(),
|
83
105
|
order=order,
|
84
106
|
)
|
107
|
+
if wizard._include_rc_journals():
|
108
|
+
LAMBDA_MAPPING = {
|
109
|
+
"journal_date_name": lambda m: (m.journal_id, m.date, m.name),
|
110
|
+
"date_name": lambda m: (m.date, m.name),
|
111
|
+
}
|
112
|
+
order = LAMBDA_MAPPING[wizard.entry_order]
|
113
|
+
rc_moves = (
|
114
|
+
self.env["account.move"]
|
115
|
+
.search(
|
116
|
+
[
|
117
|
+
("date", ">=", wizard.from_date),
|
118
|
+
("date", "<=", wizard.to_date),
|
119
|
+
("journal_id", "in", [j.id for j in wizard.rc_journal_ids]),
|
120
|
+
("state", "=", "posted"),
|
121
|
+
]
|
122
|
+
)
|
123
|
+
.filtered(lambda m: m.l10n_it_edi_is_self_invoice)
|
124
|
+
)
|
125
|
+
moves |= rc_moves
|
126
|
+
moves = moves.sorted(order)
|
85
127
|
return moves.ids
|
86
128
|
|
87
|
-
def
|
129
|
+
def print_registro(self):
|
88
130
|
self.ensure_one()
|
89
|
-
|
131
|
+
wizard = self
|
132
|
+
if not wizard.journal_ids:
|
90
133
|
raise UserError(
|
91
134
|
_(
|
92
135
|
"No journals found in the current selection.\n"
|
93
136
|
"Please load them before to retry!"
|
94
137
|
)
|
95
138
|
)
|
139
|
+
move_ids = self._get_move_ids(wizard)
|
140
|
+
|
96
141
|
datas_form = {}
|
97
|
-
datas_form["from_date"] =
|
98
|
-
datas_form["to_date"] =
|
99
|
-
datas_form["journal_ids"] = [j.id for j in
|
100
|
-
|
101
|
-
|
102
|
-
datas_form["
|
142
|
+
datas_form["from_date"] = wizard.from_date
|
143
|
+
datas_form["to_date"] = wizard.to_date
|
144
|
+
datas_form["journal_ids"] = [j.id for j in wizard.journal_ids]
|
145
|
+
if wizard._include_rc_journals():
|
146
|
+
datas_form["rc_journal_ids"] = [j.id for j in wizard.rc_journal_ids]
|
147
|
+
datas_form["fiscal_page_base"] = wizard.fiscal_page_base
|
148
|
+
datas_form["registry_type"] = wizard.layout_type
|
149
|
+
datas_form["year_footer"] = wizard.year_footer
|
103
150
|
|
104
151
|
lang_code = self.env.company.partner_id.lang
|
105
152
|
lang = self.env["res.lang"]
|
@@ -107,28 +154,14 @@ class WizardRegistroIva(models.TransientModel):
|
|
107
154
|
date_format = lang_id.date_format
|
108
155
|
datas_form["date_format"] = date_format
|
109
156
|
|
110
|
-
if
|
111
|
-
datas_form["tax_registry_name"] =
|
157
|
+
if wizard.tax_registry_id:
|
158
|
+
datas_form["tax_registry_name"] = wizard.tax_registry_id.name
|
112
159
|
else:
|
113
160
|
datas_form["tax_registry_name"] = ""
|
114
|
-
datas_form["only_totals"] =
|
115
|
-
datas_form["entry_order"] =
|
116
|
-
datas_form["show_full_contact_addess"] =
|
117
|
-
|
118
|
-
|
119
|
-
def print_registro(self):
|
120
|
-
move_ids = self._get_move_ids(self)
|
121
|
-
datas_form = self._get_datas_form()
|
122
|
-
|
161
|
+
datas_form["only_totals"] = wizard.only_totals
|
162
|
+
datas_form["entry_order"] = wizard.entry_order
|
163
|
+
datas_form["show_full_contact_addess"] = wizard.show_full_contact_addess
|
164
|
+
# report_name = 'l10n_it_vat_registries.report_registro_iva'
|
123
165
|
report_name = "l10n_it_vat_registries.action_report_registro_iva"
|
124
166
|
datas = {"ids": move_ids, "model": "account.move", "form": datas_form}
|
125
167
|
return self.env.ref(report_name).report_action(self, data=datas)
|
126
|
-
|
127
|
-
def print_registro_xlsx(self):
|
128
|
-
move_ids = self._get_move_ids(self)
|
129
|
-
datas_form = self._get_datas_form()
|
130
|
-
|
131
|
-
report_name = "l10n_it_vat_registries.action_report_registro_iva_xlsx"
|
132
|
-
datas = {"ids": move_ids, "model": "account.move", "form": datas_form}
|
133
|
-
moves = self.env["account.move"].browse(move_ids)
|
134
|
-
return self.env.ref(report_name).report_action(moves, data=datas)
|
@@ -32,28 +32,39 @@
|
|
32
32
|
height="250"
|
33
33
|
domain="[('type', 'in', ('sale','purchase'))]"
|
34
34
|
/>
|
35
|
-
<group string="Layout">
|
36
|
-
<
|
37
|
-
|
38
|
-
|
39
|
-
<
|
35
|
+
<group string="Layout" colspan="2">
|
36
|
+
<group colspan="2">
|
37
|
+
<field name="layout_type" />
|
38
|
+
</group>
|
39
|
+
<group>
|
40
|
+
<field
|
41
|
+
name="include_rc_moves"
|
42
|
+
invisible="layout_type != 'customer'"
|
43
|
+
/>
|
44
|
+
</group>
|
45
|
+
<group>
|
46
|
+
<field
|
47
|
+
name="rc_journal_ids"
|
48
|
+
domain="[('type', '=', 'purchase')]"
|
49
|
+
invisible="not include_rc_moves or layout_type != 'customer'"
|
50
|
+
widget="many2many_tags"
|
51
|
+
/>
|
52
|
+
</group>
|
53
|
+
<group colspan="2">
|
54
|
+
<field name="show_full_contact_addess" />
|
55
|
+
<field name="only_totals" />
|
56
|
+
<field name="fiscal_page_base" />
|
57
|
+
</group>
|
40
58
|
</group>
|
41
59
|
<field name="message" nolabel="1" colspan="2" />
|
42
60
|
</group>
|
43
61
|
<footer>
|
44
62
|
<button
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
or
|
51
|
-
<button
|
52
|
-
string="Print XLSX"
|
53
|
-
name="print_registro_xlsx"
|
54
|
-
type="object"
|
55
|
-
class="oe_highlight"
|
56
|
-
/>
|
63
|
+
string="Print"
|
64
|
+
name="print_registro"
|
65
|
+
type="object"
|
66
|
+
class="oe_highlight"
|
67
|
+
/>
|
57
68
|
or
|
58
69
|
<button string="Cancel" class="oe_link" special="cancel" />
|
59
70
|
</footer>
|
@@ -1,12 +1,11 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: odoo-addon-l10n_it_vat_registries
|
3
|
-
Version:
|
3
|
+
Version: 18.0.1.0.0.6
|
4
4
|
Requires-Python: >=3.10
|
5
|
-
Requires-Dist: odoo-addon-account_tax_balance
|
6
|
-
Requires-Dist: odoo-addon-date_range
|
7
|
-
Requires-Dist: odoo-addon-l10n_it_account
|
8
|
-
Requires-Dist: odoo
|
9
|
-
Requires-Dist: odoo>=16.0a,<16.1dev
|
5
|
+
Requires-Dist: odoo-addon-account_tax_balance==18.0.*
|
6
|
+
Requires-Dist: odoo-addon-date_range==18.0.*
|
7
|
+
Requires-Dist: odoo-addon-l10n_it_account==18.0.*
|
8
|
+
Requires-Dist: odoo==18.0.*
|
10
9
|
Summary: ITA - Registri IVA
|
11
10
|
Home-page: https://github.com/OCA/l10n-italy
|
12
11
|
License: AGPL-3
|
@@ -14,7 +13,7 @@ Author: Agile Business Group, Odoo Community Association (OCA), LinkIt Srl
|
|
14
13
|
Author-email: support@odoo-community.org
|
15
14
|
Classifier: Programming Language :: Python
|
16
15
|
Classifier: Framework :: Odoo
|
17
|
-
Classifier: Framework :: Odoo ::
|
16
|
+
Classifier: Framework :: Odoo :: 18.0
|
18
17
|
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
|
19
18
|
Classifier: Development Status :: 5 - Production/Stable
|
20
19
|
|
@@ -27,7 +26,7 @@ ITA - Registri IVA
|
|
27
26
|
!! This file is generated by oca-gen-addon-readme !!
|
28
27
|
!! changes will be overwritten. !!
|
29
28
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
30
|
-
!! source digest: sha256:
|
29
|
+
!! source digest: sha256:d7dfc4dbdd66950f08f75a81de4358d7372782e9ce8acef57533c072167b5a3d
|
31
30
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
32
31
|
|
33
32
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
|
@@ -37,13 +36,13 @@ ITA - Registri IVA
|
|
37
36
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
38
37
|
:alt: License: AGPL-3
|
39
38
|
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--italy-lightgray.png?logo=github
|
40
|
-
:target: https://github.com/OCA/l10n-italy/tree/
|
39
|
+
:target: https://github.com/OCA/l10n-italy/tree/18.0/l10n_it_vat_registries
|
41
40
|
:alt: OCA/l10n-italy
|
42
41
|
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
43
|
-
:target: https://translation.odoo-community.org/projects/l10n-italy-
|
42
|
+
:target: https://translation.odoo-community.org/projects/l10n-italy-18-0/l10n-italy-18-0-l10n_it_vat_registries
|
44
43
|
:alt: Translate me on Weblate
|
45
44
|
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
|
46
|
-
:target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-italy&target_branch=
|
45
|
+
:target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-italy&target_branch=18.0
|
47
46
|
:alt: Try me on Runboat
|
48
47
|
|
49
48
|
|badge1| |badge2| |badge3| |badge4| |badge5|
|
@@ -83,6 +82,9 @@ possibile configurare i registri IVA, ad esempio 'vendite', 'acquisti' o
|
|
83
82
|
aprire il registro tramite Contabilità -> Configurazione -> Contabilità
|
84
83
|
-> Registri e impostare il campo "Registro IVA".
|
85
84
|
|
85
|
+
Per le operazioni in inversione contabile è importante impostare
|
86
|
+
"Includere registrazioni inversione contabile" nel registro IVA vendite.
|
87
|
+
|
86
88
|
Se non ci sono movimenti contabili da stampare, la stampa viene generata
|
87
89
|
con totale zero.
|
88
90
|
|
@@ -108,6 +110,9 @@ or 'corrispettivi'. In order to link a journal to a VAT registry, open
|
|
108
110
|
journal by Accounting -> Configuration -> Accounting -> Journals and set
|
109
111
|
the 'VAT registry' field.
|
110
112
|
|
113
|
+
For reverse charge operations it is important to set "Include reverse
|
114
|
+
charge moves" in sales VAT registry
|
115
|
+
|
111
116
|
If there are no account moves to be printed, the report is printed with
|
112
117
|
total equal to zero.
|
113
118
|
|
@@ -140,7 +145,7 @@ Bug Tracker
|
|
140
145
|
Bugs are tracked on `GitHub Issues <https://github.com/OCA/l10n-italy/issues>`_.
|
141
146
|
In case of trouble, please check there if your issue has already been reported.
|
142
147
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
143
|
-
`feedback <https://github.com/OCA/l10n-italy/issues/new?body=module:%20l10n_it_vat_registries%0Aversion:%
|
148
|
+
`feedback <https://github.com/OCA/l10n-italy/issues/new?body=module:%20l10n_it_vat_registries%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
144
149
|
|
145
150
|
Do not contact contributors directly about support or help with technical issues.
|
146
151
|
|
@@ -167,6 +172,7 @@ Other credits
|
|
167
172
|
The development of this module has been financially supported by:
|
168
173
|
|
169
174
|
- Odoo Italia Network
|
175
|
+
- APS Odoo Italia
|
170
176
|
|
171
177
|
Maintainers
|
172
178
|
-----------
|
@@ -181,6 +187,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
|
|
181
187
|
mission is to support the collaborative development of Odoo features and
|
182
188
|
promote its widespread use.
|
183
189
|
|
184
|
-
This module is part of the `OCA/l10n-italy <https://github.com/OCA/l10n-italy/tree/
|
190
|
+
This module is part of the `OCA/l10n-italy <https://github.com/OCA/l10n-italy/tree/18.0/l10n_it_vat_registries>`_ project on GitHub.
|
185
191
|
|
186
192
|
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|