odoo-addon-l10n-it-vat-registries 16.0.1.3.0__py3-none-any.whl → 16.0.1.4.0__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.
@@ -7,7 +7,7 @@ ITA - Registri IVA
7
7
  !! This file is generated by oca-gen-addon-readme !!
8
8
  !! changes will be overwritten. !!
9
9
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
- !! source digest: sha256:984ddaec0944bea31bd6890c11e4f14076bb94ca951c566d4e1960741481b88b
10
+ !! source digest: sha256:d0ea45cf9b52cfe3008aa85d0253415706583df2e25119c599113f829169ee7b
11
11
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
12
 
13
13
  .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
@@ -6,7 +6,7 @@
6
6
  # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
7
7
 
8
8
  {
9
- "version": "16.0.1.3.0",
9
+ "version": "16.0.1.4.0",
10
10
  "name": "ITA - Registri IVA",
11
11
  "category": "Localization/Italy",
12
12
  "author": "Agile Business Group, Odoo Community Association (OCA), LinkIt Srl",
@@ -20,6 +20,7 @@
20
20
  "web",
21
21
  "account_tax_balance",
22
22
  "date_range",
23
+ "report_xlsx_helper",
23
24
  ],
24
25
  "data": [
25
26
  "security/ir.model.access.csv",
@@ -10,24 +10,27 @@ msgstr ""
10
10
  "Project-Id-Version: Odoo Server 10.0\n"
11
11
  "Report-Msgid-Bugs-To: \n"
12
12
  "POT-Creation-Date: 2017-05-12 02:40+0000\n"
13
- "PO-Revision-Date: 2017-05-12 02:40+0000\n"
14
- "Last-Translator: Niki Waibel <niki.waibel@gmail.com>, 2017\n"
13
+ "PO-Revision-Date: 2025-04-15 12:24+0000\n"
14
+ "Last-Translator: BitStab <bitstab@users.noreply.translation.odoo-"
15
+ "community.org>\n"
15
16
  "Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
16
17
  "Language: de\n"
17
18
  "MIME-Version: 1.0\n"
18
19
  "Content-Type: text/plain; charset=UTF-8\n"
19
20
  "Content-Transfer-Encoding: \n"
20
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
21
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
22
+ "X-Generator: Weblate 5.10.4\n"
21
23
 
22
24
  #. module: l10n_it_vat_registries
23
25
  #: model_terms:ir.actions.act_window,help:l10n_it_vat_registries.action_account_tax_registry_form
24
26
  msgid "A VAT registry is used to group several journals in one registry."
25
27
  msgstr ""
28
+ "Ein Umsatzsteuerregister dient der Zusammenfassung mehrerer Buchungsregister."
26
29
 
27
30
  #. module: l10n_it_vat_registries
28
31
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.report_registro_iva
29
32
  msgid "BUSINESS NAME"
30
- msgstr ""
33
+ msgstr "UNTERNEHMENSBEZEICHNUNG"
31
34
 
32
35
  #. module: l10n_it_vat_registries
33
36
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.wizard_registro_iva
@@ -37,12 +40,12 @@ msgstr "Abbrechen"
37
40
  #. module: l10n_it_vat_registries
38
41
  #: model_terms:ir.actions.act_window,help:l10n_it_vat_registries.action_account_tax_registry_form
39
42
  msgid "Click to add a VAT registry."
40
- msgstr ""
43
+ msgstr "Fügen Sie mit einem Klick ein Mehrwertsteuerregister hinzu."
41
44
 
42
45
  #. module: l10n_it_vat_registries
43
46
  #: model:ir.model.fields,field_description:l10n_it_vat_registries.field_account_tax_registry__company_id
44
47
  msgid "Company"
45
- msgstr ""
48
+ msgstr "Unternehmen"
46
49
 
47
50
  #. module: l10n_it_vat_registries
48
51
  #: model:ir.model.fields,field_description:l10n_it_vat_registries.field_account_tax_registry__create_uid
@@ -59,29 +62,32 @@ msgstr "Angelegt am"
59
62
  #. module: l10n_it_vat_registries
60
63
  #: model:ir.model.fields.selection,name:l10n_it_vat_registries.selection__account_tax_registry__layout_type__customer
61
64
  #: model:ir.model.fields.selection,name:l10n_it_vat_registries.selection__wizard_registro_iva__layout_type__customer
65
+ #, fuzzy
62
66
  msgid "Customer Invoices"
63
- msgstr ""
67
+ msgstr "Kundenrechnungen"
64
68
 
65
69
  #. module: l10n_it_vat_registries
66
70
  #: model:ir.model.fields.selection,name:l10n_it_vat_registries.selection__account_tax_registry__entry_order__date_name
67
71
  #: model:ir.model.fields.selection,name:l10n_it_vat_registries.selection__wizard_registro_iva__entry_order__date_name
68
72
  msgid "Date - Number"
69
- msgstr ""
73
+ msgstr "Datum - Nummer"
70
74
 
71
75
  #. module: l10n_it_vat_registries
72
76
  #: model:ir.model.fields,field_description:l10n_it_vat_registries.field_wizard_registro_iva__date_range_id
77
+ #, fuzzy
73
78
  msgid "Date range"
74
- msgstr ""
79
+ msgstr "Datumsbereich"
75
80
 
76
81
  #. module: l10n_it_vat_registries
77
82
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.report_registro_iva
78
83
  msgid "Deductible"
79
- msgstr ""
84
+ msgstr "Selbstbehalt"
80
85
 
81
86
  #. module: l10n_it_vat_registries
82
87
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.report_registro_iva
88
+ #, fuzzy
83
89
  msgid "Description"
84
- msgstr ""
90
+ msgstr "Beschreibung"
85
91
 
86
92
  #. module: l10n_it_vat_registries
87
93
  #: model:ir.model.fields,field_description:l10n_it_vat_registries.field_account_tax_registry__display_name
@@ -93,12 +99,12 @@ msgstr "Anzeigename"
93
99
  #: model:ir.model.fields,field_description:l10n_it_vat_registries.field_account_tax_registry__entry_order
94
100
  #: model:ir.model.fields,field_description:l10n_it_vat_registries.field_wizard_registro_iva__entry_order
95
101
  msgid "Entry Order"
96
- msgstr ""
102
+ msgstr "Auftrag eingeben"
97
103
 
98
104
  #. module: l10n_it_vat_registries
99
105
  #: model:ir.model.fields,field_description:l10n_it_vat_registries.field_account_tax__exclude_from_registries
100
106
  msgid "Exclude from VAT registries"
101
- msgstr ""
107
+ msgstr "Aus dem Mehrwertsteuerregister ausschließen"
102
108
 
103
109
  #. module: l10n_it_vat_registries
104
110
  #: model:ir.model.fields,field_description:l10n_it_vat_registries.field_wizard_registro_iva__from_date
@@ -19,7 +19,10 @@ msgid "A VAT registry is used to group several journals in one registry."
19
19
  msgstr ""
20
20
 
21
21
  #. module: l10n_it_vat_registries
22
+ #. odoo-python
23
+ #: code:addons/l10n_it_vat_registries/wizard/report_registro_iva_xlsx.py:0
22
24
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.report_registro_iva
25
+ #, python-format
23
26
  msgid "BUSINESS NAME"
24
27
  msgstr ""
25
28
 
@@ -111,12 +114,18 @@ msgid "ID"
111
114
  msgstr ""
112
115
 
113
116
  #. module: l10n_it_vat_registries
117
+ #. odoo-python
118
+ #: code:addons/l10n_it_vat_registries/wizard/report_registro_iva_xlsx.py:0
114
119
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.report_registro_iva
120
+ #, python-format
115
121
  msgid "INV. DATE"
116
122
  msgstr ""
117
123
 
118
124
  #. module: l10n_it_vat_registries
125
+ #. odoo-python
126
+ #: code:addons/l10n_it_vat_registries/wizard/report_registro_iva_xlsx.py:0
119
127
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.report_registro_iva
128
+ #, python-format
120
129
  msgid "INV. NUM."
121
130
  msgstr ""
122
131
 
@@ -125,6 +134,11 @@ msgstr ""
125
134
  msgid "Invoices VAT Registry"
126
135
  msgstr ""
127
136
 
137
+ #. module: l10n_it_vat_registries
138
+ #: model:ir.actions.report,name:l10n_it_vat_registries.action_report_registro_iva_xlsx
139
+ msgid "Invoices VAT Registry XLSX"
140
+ msgstr ""
141
+
128
142
  #. module: l10n_it_vat_registries
129
143
  #: model:ir.model,name:l10n_it_vat_registries.model_account_journal
130
144
  msgid "Journal"
@@ -186,6 +200,13 @@ msgstr ""
186
200
  msgid "Move line %s has too many base taxes"
187
201
  msgstr ""
188
202
 
203
+ #. module: l10n_it_vat_registries
204
+ #. odoo-python
205
+ #: code:addons/l10n_it_vat_registries/wizard/report_registro_iva_xlsx.py:0
206
+ #, python-format
207
+ msgid "N/A"
208
+ msgstr ""
209
+
189
210
  #. module: l10n_it_vat_registries
190
211
  #: model:ir.model.fields,field_description:l10n_it_vat_registries.field_account_tax_registry__name
191
212
  msgid "Name"
@@ -210,23 +231,37 @@ msgstr ""
210
231
  msgid "Print"
211
232
  msgstr ""
212
233
 
234
+ #. module: l10n_it_vat_registries
235
+ #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.wizard_registro_iva
236
+ msgid "Print XLSX"
237
+ msgstr ""
238
+
213
239
  #. module: l10n_it_vat_registries
214
240
  #: model:ir.model.fields,field_description:l10n_it_vat_registries.field_wizard_registro_iva__only_totals
215
241
  msgid "Prints only totals"
216
242
  msgstr ""
217
243
 
218
244
  #. module: l10n_it_vat_registries
245
+ #. odoo-python
246
+ #: code:addons/l10n_it_vat_registries/wizard/report_registro_iva_xlsx.py:0
219
247
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.report_registro_iva
248
+ #, python-format
220
249
  msgid "REASON"
221
250
  msgstr ""
222
251
 
223
252
  #. module: l10n_it_vat_registries
253
+ #. odoo-python
254
+ #: code:addons/l10n_it_vat_registries/wizard/report_registro_iva_xlsx.py:0
224
255
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.report_registro_iva
256
+ #, python-format
225
257
  msgid "REG. DATE"
226
258
  msgstr ""
227
259
 
228
260
  #. module: l10n_it_vat_registries
261
+ #. odoo-python
262
+ #: code:addons/l10n_it_vat_registries/wizard/report_registro_iva_xlsx.py:0
229
263
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.report_registro_iva
264
+ #, python-format
230
265
  msgid "REG. NUM."
231
266
  msgstr ""
232
267
 
@@ -264,18 +299,27 @@ msgid "Supplier Invoices"
264
299
  msgstr ""
265
300
 
266
301
  #. module: l10n_it_vat_registries
302
+ #. odoo-python
303
+ #: code:addons/l10n_it_vat_registries/wizard/report_registro_iva_xlsx.py:0
267
304
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.report_registro_iva
305
+ #, python-format
268
306
  msgid "TIN"
269
307
  msgstr ""
270
308
 
271
309
  #. module: l10n_it_vat_registries
310
+ #. odoo-python
311
+ #: code:addons/l10n_it_vat_registries/wizard/report_registro_iva_xlsx.py:0
272
312
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.report_registro_iva
313
+ #, python-format
273
314
  msgid "TOTAL"
274
315
  msgstr ""
275
316
 
276
317
  #. module: l10n_it_vat_registries
318
+ #. odoo-python
319
+ #: code:addons/l10n_it_vat_registries/wizard/report_registro_iva_xlsx.py:0
277
320
  #: model:ir.model,name:l10n_it_vat_registries.model_account_tax
278
321
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.report_registro_iva
322
+ #, python-format
279
323
  msgid "Tax"
280
324
  msgstr ""
281
325
 
@@ -285,7 +329,10 @@ msgid "Tax Journal"
285
329
  msgstr ""
286
330
 
287
331
  #. module: l10n_it_vat_registries
332
+ #. odoo-python
333
+ #: code:addons/l10n_it_vat_registries/wizard/report_registro_iva_xlsx.py:0
288
334
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.report_registro_iva
335
+ #, python-format
289
336
  msgid "Tax description"
290
337
  msgstr ""
291
338
 
@@ -295,7 +342,10 @@ msgid "Tax registry"
295
342
  msgstr ""
296
343
 
297
344
  #. module: l10n_it_vat_registries
345
+ #. odoo-python
346
+ #: code:addons/l10n_it_vat_registries/wizard/report_registro_iva_xlsx.py:0
298
347
  #: model_terms:ir.ui.view,arch_db:l10n_it_vat_registries.report_registro_iva
348
+ #, python-format
299
349
  msgid "Taxable"
300
350
  msgstr ""
301
351
 
@@ -341,6 +391,11 @@ msgstr ""
341
391
  msgid "Value printed near number of page in the footer"
342
392
  msgstr ""
343
393
 
394
+ #. module: l10n_it_vat_registries
395
+ #: model:ir.model,name:l10n_it_vat_registries.model_report_l10n_it_vat_registries_report_registro_iva_xlsx
396
+ msgid "XLSX report for VAT registries"
397
+ msgstr ""
398
+
344
399
  #. module: l10n_it_vat_registries
345
400
  #: model:ir.model.fields,field_description:l10n_it_vat_registries.field_wizard_registro_iva__year_footer
346
401
  msgid "Year for Footer"
@@ -13,4 +13,16 @@
13
13
  />
14
14
  </record>
15
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
+
16
28
  </odoo>
@@ -367,7 +367,7 @@ 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:984ddaec0944bea31bd6890c11e4f14076bb94ca951c566d4e1960741481b88b
370
+ !! source digest: sha256:d0ea45cf9b52cfe3008aa85d0253415706583df2e25119c599113f829169ee7b
371
371
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
372
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/16.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-16-0/l10n-italy-16-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&amp;target_branch=16.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
@@ -1,35 +1,42 @@
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
+
3
6
  from odoo import fields
4
7
  from odoo.tests.common import TransactionCase
5
8
 
6
9
 
7
10
  class TestRegistry(TransactionCase):
8
- def test_invoice_and_report(self):
9
- test_date = fields.Date.today()
10
- self.journal = self.env["account.journal"].search(
11
+ @classmethod
12
+ def setUpClass(cls):
13
+ super().setUpClass()
14
+
15
+ cls.test_date = fields.Date.today()
16
+ cls.journal = cls.env["account.journal"].search(
11
17
  [("type", "=", "sale")], limit=1
12
18
  )
13
- self.ova = self.env["account.account"].search(
19
+ cls.ova = cls.env["account.account"].search(
14
20
  [("account_type", "=", "asset_current")],
15
21
  limit=1,
16
22
  )
17
- tax = self.env["account.tax"].create(
23
+ cls.tax = cls.env["account.tax"].create(
18
24
  {
19
25
  "name": "Tax 10.0",
20
26
  "amount": 10.0,
21
27
  "amount_type": "fixed",
22
28
  }
23
29
  )
24
- tax_registry = self.env["account.tax.registry"].create(
30
+ cls.tax_registry = cls.env["account.tax.registry"].create(
25
31
  {
26
32
  "name": "Sales",
27
33
  "layout_type": "customer",
28
- "journal_ids": [(6, 0, [self.journal.id])],
34
+ "journal_ids": [(6, 0, [cls.journal.id])],
29
35
  }
30
36
  )
31
- invoice_line_account = (
32
- self.env["account.account"]
37
+
38
+ cls.invoice_line_account = (
39
+ cls.env["account.account"]
33
40
  .search(
34
41
  [("account_type", "=", "expense")],
35
42
  limit=1,
@@ -37,35 +44,36 @@ class TestRegistry(TransactionCase):
37
44
  .id
38
45
  )
39
46
 
40
- invoice = self.env["account.move"].create(
47
+ cls.invoice = cls.env["account.move"].create(
41
48
  {
42
- "partner_id": self.env.ref("base.res_partner_2").id,
43
- "invoice_date": test_date,
49
+ "partner_id": cls.env.ref("base.res_partner_2").id,
50
+ "invoice_date": cls.test_date,
44
51
  "move_type": "out_invoice",
45
- "journal_id": self.journal.id,
52
+ "journal_id": cls.journal.id,
46
53
  "invoice_line_ids": [
47
54
  (
48
55
  0,
49
56
  None,
50
57
  {
51
- "product_id": self.env.ref("product.product_product_4").id,
58
+ "product_id": cls.env.ref("product.product_product_4").id,
52
59
  "quantity": 1.0,
53
60
  "price_unit": 100.0,
54
61
  "name": "product that cost 100",
55
- "account_id": invoice_line_account,
56
- "tax_ids": [(6, 0, [tax.id])],
62
+ "account_id": cls.invoice_line_account,
63
+ "tax_ids": [(6, 0, [cls.tax.id])],
57
64
  },
58
65
  )
59
66
  ],
60
67
  }
61
68
  )
62
- invoice.action_post()
69
+ cls.invoice.action_post()
63
70
 
71
+ def test_invoice_and_report(self):
64
72
  wizard = self.env["wizard.registro.iva"].create(
65
73
  {
66
- "from_date": test_date,
67
- "to_date": test_date,
68
- "tax_registry_id": tax_registry.id,
74
+ "from_date": self.test_date,
75
+ "to_date": self.test_date,
76
+ "tax_registry_id": self.tax_registry.id,
69
77
  "layout_type": "supplier",
70
78
  "fiscal_page_base": 0,
71
79
  }
@@ -84,6 +92,24 @@ class TestRegistry(TransactionCase):
84
92
 
85
93
  self.assertTrue(b"Tax 10.0" in html[0])
86
94
 
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
+
87
113
  def test_no_report_from_invoice(self):
88
114
  """Check that the report is not available from invoice context menu."""
89
115
  report_id = self.ref("l10n_it_vat_registries.action_report_registro_iva")
@@ -1,3 +1,4 @@
1
1
  # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
2
2
 
3
+ from . import report_registro_iva_xlsx
3
4
  from . import print_registro_iva
@@ -84,25 +84,22 @@ class WizardRegistroIva(models.TransientModel):
84
84
  )
85
85
  return moves.ids
86
86
 
87
- def print_registro(self):
87
+ def _get_datas_form(self):
88
88
  self.ensure_one()
89
- wizard = self
90
- if not wizard.journal_ids:
89
+ if not self.journal_ids:
91
90
  raise UserError(
92
91
  _(
93
92
  "No journals found in the current selection.\n"
94
93
  "Please load them before to retry!"
95
94
  )
96
95
  )
97
- move_ids = self._get_move_ids(wizard)
98
-
99
96
  datas_form = {}
100
- datas_form["from_date"] = wizard.from_date
101
- datas_form["to_date"] = wizard.to_date
102
- datas_form["journal_ids"] = [j.id for j in wizard.journal_ids]
103
- datas_form["fiscal_page_base"] = wizard.fiscal_page_base
104
- datas_form["registry_type"] = wizard.layout_type
105
- datas_form["year_footer"] = wizard.year_footer
97
+ datas_form["from_date"] = self.from_date
98
+ datas_form["to_date"] = self.to_date
99
+ datas_form["journal_ids"] = [j.id for j in self.journal_ids]
100
+ datas_form["fiscal_page_base"] = self.fiscal_page_base
101
+ datas_form["registry_type"] = self.layout_type
102
+ datas_form["year_footer"] = self.year_footer
106
103
 
107
104
  lang_code = self.env.company.partner_id.lang
108
105
  lang = self.env["res.lang"]
@@ -110,14 +107,28 @@ class WizardRegistroIva(models.TransientModel):
110
107
  date_format = lang_id.date_format
111
108
  datas_form["date_format"] = date_format
112
109
 
113
- if wizard.tax_registry_id:
114
- datas_form["tax_registry_name"] = wizard.tax_registry_id.name
110
+ if self.tax_registry_id:
111
+ datas_form["tax_registry_name"] = self.tax_registry_id.name
115
112
  else:
116
113
  datas_form["tax_registry_name"] = ""
117
- datas_form["only_totals"] = wizard.only_totals
118
- datas_form["entry_order"] = wizard.entry_order
119
- datas_form["show_full_contact_addess"] = wizard.show_full_contact_addess
120
- # report_name = 'l10n_it_vat_registries.report_registro_iva'
114
+ datas_form["only_totals"] = self.only_totals
115
+ datas_form["entry_order"] = self.entry_order
116
+ datas_form["show_full_contact_addess"] = self.show_full_contact_addess
117
+ return datas_form
118
+
119
+ def print_registro(self):
120
+ move_ids = self._get_move_ids(self)
121
+ datas_form = self._get_datas_form()
122
+
121
123
  report_name = "l10n_it_vat_registries.action_report_registro_iva"
122
124
  datas = {"ids": move_ids, "model": "account.move", "form": datas_form}
123
125
  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)
@@ -48,6 +48,13 @@
48
48
  class="oe_highlight"
49
49
  />
50
50
  or
51
+ <button
52
+ string="Print XLSX"
53
+ name="print_registro_xlsx"
54
+ type="object"
55
+ class="oe_highlight"
56
+ />
57
+ or
51
58
  <button string="Cancel" class="oe_link" special="cancel" />
52
59
  </footer>
53
60
  </form>
@@ -0,0 +1,161 @@
1
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
2
+
3
+ import logging
4
+
5
+ from odoo import _, models
6
+ from odoo.tools.misc import formatLang
7
+
8
+ from odoo.addons.report_xlsx_helper.report.report_xlsx_format import (
9
+ FORMATS,
10
+ XLS_HEADERS,
11
+ )
12
+
13
+ _logger = logging.getLogger(__name__)
14
+
15
+
16
+ class ReportRegistroIvaXlsx(models.AbstractModel):
17
+ _name = "report.l10n_it_vat_registries.report_registro_iva_xlsx"
18
+ _inherit = [
19
+ "report.report_xlsx.abstract",
20
+ "report.l10n_it_vat_registries.report_registro_iva",
21
+ ]
22
+ _description = "XLSX report for VAT registries"
23
+
24
+ # to override
25
+ def _get_vat_settlement_date_col_spec(self):
26
+ return {}
27
+
28
+ def _get_ws_params(self, workbook, data, objects):
29
+ registry_type = data["form"]["registry_type"]
30
+ titles = {
31
+ "customer": "Registro IVA vendite",
32
+ "supplier": "Registro IVA acquisti",
33
+ "corrispettivi": "Registro corrispettivi",
34
+ }
35
+ title = data["form"]["tax_registry_name"] or titles.get(registry_type, _("N/A"))
36
+
37
+ col_specs = {
38
+ "date": {
39
+ "header": {"value": _("REG. DATE")},
40
+ "lines": {"value": self._render("format_date(move.date,date_format)")},
41
+ "width": 20,
42
+ },
43
+ "no": {
44
+ "header": {"value": _("REG. NUM.")},
45
+ "lines": {"value": self._render("move.name")},
46
+ "width": 20,
47
+ },
48
+ "reason": {
49
+ "header": {"value": _("REASON")},
50
+ "lines": {"value": self._render("line['invoice_type']")},
51
+ "width": 20,
52
+ },
53
+ "inv_date": {
54
+ "header": {"value": _("INV. DATE")},
55
+ "lines": {
56
+ "value": self._render(
57
+ "format_date(line['invoice_date'],date_format)"
58
+ )
59
+ },
60
+ "width": 20,
61
+ },
62
+ "inv_name": {
63
+ "header": {"value": _("INV. NUM.")},
64
+ "lines": {
65
+ "value": self._render(
66
+ "move.ref if move.journal_id.type == 'purchase' "
67
+ "else move.name"
68
+ )
69
+ },
70
+ "width": 20,
71
+ },
72
+ "partner": {
73
+ "header": {"value": _("BUSINESS NAME")},
74
+ "lines": {"value": self._render("move.partner_id.name")},
75
+ "width": 20,
76
+ },
77
+ "tin": {
78
+ "header": {"value": _("TIN")},
79
+ "lines": {"value": self._render("move.partner_id.vat")},
80
+ "width": 20,
81
+ },
82
+ "total": {
83
+ "header": {"value": _("TOTAL")},
84
+ "lines": {
85
+ "value": self._render("formatLang(env, invoice_total(move))")
86
+ },
87
+ "width": 20,
88
+ },
89
+ "tax_name": {
90
+ "header": {"value": _("Tax description")},
91
+ "lines": {"value": self._render("line['tax_code_name']")},
92
+ "width": 20,
93
+ },
94
+ "taxable": {
95
+ "header": {"value": _("Taxable")},
96
+ "lines": {"value": self._render("formatLang(env, line['base'])")},
97
+ "width": 20,
98
+ },
99
+ "tax": {
100
+ "header": {"value": _("Tax")},
101
+ "lines": {"value": self._render("formatLang(env, line['tax'])")},
102
+ "width": 20,
103
+ },
104
+ }
105
+
106
+ col_specs.update(self._get_vat_settlement_date_col_spec())
107
+ wanted = col_specs.keys()
108
+ if registry_type == "corrispettivi":
109
+ wanted -= ["reason", "inv_date", "inv_name", "partner", "tin"]
110
+
111
+ return [
112
+ {
113
+ "ws_name": "vat_registry",
114
+ "title": title,
115
+ "wanted_list": wanted,
116
+ "col_specs": col_specs,
117
+ "generate_ws_method": "generate_ws",
118
+ }
119
+ ]
120
+
121
+ def generate_ws(self, workbook, ws, ws_params, data, objects):
122
+ ws.set_landscape()
123
+ ws.fit_to_pages(1, 0)
124
+ ws.set_header(XLS_HEADERS["xls_headers"]["standard"])
125
+ ws.set_footer(XLS_HEADERS["xls_footers"]["standard"])
126
+
127
+ self._set_column_width(ws, ws_params)
128
+
129
+ row_pos = 0
130
+ row_pos = self._write_ws_title(ws, row_pos, ws_params)
131
+
132
+ row_pos = self._write_line(
133
+ ws,
134
+ row_pos,
135
+ ws_params,
136
+ col_specs_section="header",
137
+ default_format=FORMATS["format_theader_yellow_left"],
138
+ )
139
+
140
+ ws.freeze_panes(row_pos, 0)
141
+
142
+ for move in objects:
143
+ inv_taxes, used_taxes = self._get_tax_lines(move, data["form"])
144
+
145
+ for line in inv_taxes:
146
+ row_pos = self._write_line(
147
+ ws,
148
+ row_pos,
149
+ ws_params,
150
+ col_specs_section="lines",
151
+ render_space={
152
+ "env": self.env,
153
+ "move": move,
154
+ "line": line,
155
+ "format_date": self._format_date,
156
+ "date_format": data["form"]["date_format"],
157
+ "formatLang": formatLang,
158
+ "invoice_total": self._get_move_total,
159
+ },
160
+ default_format=FORMATS["format_tcell_left"],
161
+ )
@@ -1,10 +1,11 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-l10n_it_vat_registries
3
- Version: 16.0.1.3.0
3
+ Version: 16.0.1.4.0
4
4
  Requires-Python: >=3.10
5
5
  Requires-Dist: odoo-addon-account_tax_balance>=16.0dev,<16.1dev
6
6
  Requires-Dist: odoo-addon-date_range>=16.0dev,<16.1dev
7
7
  Requires-Dist: odoo-addon-l10n_it_account>=16.0dev,<16.1dev
8
+ Requires-Dist: odoo-addon-report_xlsx_helper>=16.0dev,<16.1dev
8
9
  Requires-Dist: odoo>=16.0a,<16.1dev
9
10
  Summary: ITA - Registri IVA
10
11
  Home-page: https://github.com/OCA/l10n-italy
@@ -26,7 +27,7 @@ ITA - Registri IVA
26
27
  !! This file is generated by oca-gen-addon-readme !!
27
28
  !! changes will be overwritten. !!
28
29
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
29
- !! source digest: sha256:984ddaec0944bea31bd6890c11e4f14076bb94ca951c566d4e1960741481b88b
30
+ !! source digest: sha256:d0ea45cf9b52cfe3008aa85d0253415706583df2e25119c599113f829169ee7b
30
31
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
31
32
 
32
33
  .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
@@ -1,6 +1,6 @@
1
- odoo/addons/l10n_it_vat_registries/README.rst,sha256=gX6JtR0b062gKMoUwR-nZvQCah6MoF9hvBMVKS_TSB0,6044
1
+ odoo/addons/l10n_it_vat_registries/README.rst,sha256=bN2FKaEsuDVsHFxZVkUDYdRmnx7i_bMLAjveIqWcxiU,6044
2
2
  odoo/addons/l10n_it_vat_registries/__init__.py,sha256=JqDSCLCkAweuTaARbhG1B8Lkrgg-ZjR4Jbkty4ySwok,107
3
- odoo/addons/l10n_it_vat_registries/__manifest__.py,sha256=yQMKzXohCtR-SiYwRNK9G0DC97HAXUfBj5Lo9L_jkJY,1181
3
+ odoo/addons/l10n_it_vat_registries/__manifest__.py,sha256=GE3-rDQvtqBmxYTI1OkW_d5qsFZFQL_WSuM674H5iW0,1211
4
4
  odoo/addons/l10n_it_vat_registries/i18n/am.po,sha256=WSOaUM9dqbuAtMfVaIZobLtQGt7A34XNRDAHh2GEmGI,13362
5
5
  odoo/addons/l10n_it_vat_registries/i18n/ar.po,sha256=xtcNUJQqSCS9IYb1So6yekqrPHJItYXHc1nVlp_15no,13520
6
6
  odoo/addons/l10n_it_vat_registries/i18n/bg.po,sha256=6Bc3CcemvSoutcf9vYiBojgLTEjMGZBjC9hrkp56gHw,13494
@@ -9,7 +9,7 @@ odoo/addons/l10n_it_vat_registries/i18n/ca.po,sha256=KzSiRK9e-2uMX1hJLHajfK9sB3k
9
9
  odoo/addons/l10n_it_vat_registries/i18n/ca_ES.po,sha256=C12WV1viKpCb61IWYa50nFbNI-lZn-CcVGfgVqeJYpo,13301
10
10
  odoo/addons/l10n_it_vat_registries/i18n/cs.po,sha256=3xF_JbIYZQksaFj5XKBzXWyIjdTkoTS_idX09MQucmQ,13410
11
11
  odoo/addons/l10n_it_vat_registries/i18n/da.po,sha256=4qwQn-WXlaapLGNiVkb9K2YDAk7oPAY-8ZiGPe4Dnwg,13378
12
- odoo/addons/l10n_it_vat_registries/i18n/de.po,sha256=n8uB45qZeoGgCd58MoFZnkIVefAZQY95afVMWHOO5cg,13441
12
+ odoo/addons/l10n_it_vat_registries/i18n/de.po,sha256=5wJKB-t0VwB7cCmaBOxpfjQZ2Ao8AgD77yIQ-fI6KFE,13823
13
13
  odoo/addons/l10n_it_vat_registries/i18n/el_GR.po,sha256=8GFIGhrvDzwt_j3fjrAlvl5EjF6dKgIHpLRzhPWxo9U,13491
14
14
  odoo/addons/l10n_it_vat_registries/i18n/en_AU.po,sha256=2OMmGqJLsz4tCr3xVWISeI0YkXVQR_k1ElVavEw49m8,13303
15
15
  odoo/addons/l10n_it_vat_registries/i18n/en_GB.po,sha256=EBzlOrytvf5HQDX778BHKDp1LWCR99qb1ARuDzwQ96E,13392
@@ -44,7 +44,7 @@ odoo/addons/l10n_it_vat_registries/i18n/id.po,sha256=ZBRhDOsjcVHXZF-1bf0N0k3jHpd
44
44
  odoo/addons/l10n_it_vat_registries/i18n/it.po,sha256=hIyao3Chaht0tw6RcW1MXzMdqjKkWrFPK822Xdr2Z3E,15685
45
45
  odoo/addons/l10n_it_vat_registries/i18n/ja.po,sha256=RCldAxXo9zvNlFZt_ZSzw5SLoGr2fgfXcL3TtpHZuk8,13372
46
46
  odoo/addons/l10n_it_vat_registries/i18n/ko.po,sha256=-kbVO3RITQRxD98U3GhVrECJjOb-uKgJxHhBdjGOMDU,13373
47
- odoo/addons/l10n_it_vat_registries/i18n/l10n_it_vat_registries.pot,sha256=nLHKaJocMOXIkdlljA9exwqi52mIAyPZDtmWa2Zq1Qs,12972
47
+ odoo/addons/l10n_it_vat_registries/i18n/l10n_it_vat_registries.pot,sha256=i924DegGbppjrZvH97eP7cDLzJvRkpXsrao3cnp1cAE,14812
48
48
  odoo/addons/l10n_it_vat_registries/i18n/lo.po,sha256=fkmL0691B7LHKA3RYGtfPVN6qyXI4P-0pCQQagVHswA,13296
49
49
  odoo/addons/l10n_it_vat_registries/i18n/lt.po,sha256=wWHbtTdJu5lBJyYIpQCCkdVb-DhKLwyoBZJa_SV6QYA,13487
50
50
  odoo/addons/l10n_it_vat_registries/i18n/lt_LT.po,sha256=zeMkSjKtcUBqktAywwHGBPVRrtEXsJzd8gFMNnErJMs,13449
@@ -84,20 +84,21 @@ odoo/addons/l10n_it_vat_registries/readme/CREDITS.md,sha256=adgy2b0E705AYaKihyQS
84
84
  odoo/addons/l10n_it_vat_registries/readme/DESCRIPTION.md,sha256=wtW9ElobuDdencAdgRd6QzLDx1C5eeDzQOnDOLK-C4Q,96
85
85
  odoo/addons/l10n_it_vat_registries/readme/USAGE.md,sha256=DtBGHIk1gM695eu4_SwWqSeIyuX1mf4M5kArnojCkpY,792
86
86
  odoo/addons/l10n_it_vat_registries/report/report_registro_iva.xml,sha256=IKPPOt2ORvIz6ecjpShZkVII4bowMEEFvRYvTZN-i68,19785
87
- odoo/addons/l10n_it_vat_registries/report/reports.xml,sha256=Fa1gWHLxQQU1quNUmr0bkGASqhAC2IBqfbUDkmSkeCE,588
87
+ odoo/addons/l10n_it_vat_registries/report/reports.xml,sha256=PvUnJig1ovVTWakXlCNV0olE4O_bsjvNchJP7I-04iw,1059
88
88
  odoo/addons/l10n_it_vat_registries/security/ir.model.access.csv,sha256=60vgVGdBp4z_DW3k8g10Xsqn_lC3ISmsXRS8yFMIVSw,651
89
89
  odoo/addons/l10n_it_vat_registries/security/vat_registry_security.xml,sha256=Pv8n9zR3hlhuZcl2IgL76OuS8c1Q090zzB1TrpXHCMs,441
90
90
  odoo/addons/l10n_it_vat_registries/static/description/icon.png,sha256=xbRU_cSM3yeaxH2HArBlJ9csFUu0GYQitvLydbJnpAM,6167
91
- odoo/addons/l10n_it_vat_registries/static/description/index.html,sha256=g51TS_EGtFhOCySsm1iZ9rVDUn_WKPl6c0o2fI4OSJs,16687
91
+ odoo/addons/l10n_it_vat_registries/static/description/index.html,sha256=U6th_Oo52UMd3MQ3ozkyEZxxJFgHgEgb8jHi0l75DjY,16687
92
92
  odoo/addons/l10n_it_vat_registries/tests/__init__.py,sha256=dZJwSFx0LQvIqMT8R2Pw_Z0kaW0spztW5C03jAy5bPY,93
93
- odoo/addons/l10n_it_vat_registries/tests/test_registry.py,sha256=vBR20YFz6z2bnDlzXhfYHj5wS8rMfTxflSZsEFrNuYQ,3338
93
+ odoo/addons/l10n_it_vat_registries/tests/test_registry.py,sha256=JRJXzMcWjEKTPhNskNkl4uWAz60QF9hqgr0FX44sMY4,4233
94
94
  odoo/addons/l10n_it_vat_registries/views/account_journal_view.xml,sha256=TQwBBKqaIb-8mzfD4fBtaRGCVyqZZT5lTiltFrekZEI,493
95
95
  odoo/addons/l10n_it_vat_registries/views/account_tax_registry_view.xml,sha256=iXC4sFLvbX_SwmprHLjP_MyTsxXdKQeAhh2Mx_Xddoc,1377
96
96
  odoo/addons/l10n_it_vat_registries/views/account_view.xml,sha256=AHJosvsC4zr9CU8JKcPJr7crLsDPjBTlyAwUVWrrdyA,470
97
- odoo/addons/l10n_it_vat_registries/wizard/__init__.py,sha256=tQ0lmoCQMclXMoP1kPEjgE9hDNd_qX46lks89WDXYQ0,98
98
- odoo/addons/l10n_it_vat_registries/wizard/print_registro_iva.py,sha256=dO9S1s54e5-68X55Ie8HpY7dWeqfO66KTZMhsF73X2U,4556
99
- odoo/addons/l10n_it_vat_registries/wizard/print_registro_iva.xml,sha256=M8nhQh0PgYArzs8eS2V0OAwzgeELJ20AfXYVc4eC3pg,2869
100
- odoo_addon_l10n_it_vat_registries-16.0.1.3.0.dist-info/METADATA,sha256=pdUupej6fhlHjElXESTkpL7SxZTRi2FcqLcx8012lo0,6814
101
- odoo_addon_l10n_it_vat_registries-16.0.1.3.0.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
102
- odoo_addon_l10n_it_vat_registries-16.0.1.3.0.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
103
- odoo_addon_l10n_it_vat_registries-16.0.1.3.0.dist-info/RECORD,,
97
+ odoo/addons/l10n_it_vat_registries/wizard/__init__.py,sha256=mGqx5yofct5XGCZHYycLIyem9PVQYnLqcByZZgGQ8a0,137
98
+ odoo/addons/l10n_it_vat_registries/wizard/print_registro_iva.py,sha256=OqZ6R-37D3Ycc3EEMzj08CDZzk0I74TS55q4ameRlP8,4956
99
+ odoo/addons/l10n_it_vat_registries/wizard/print_registro_iva.xml,sha256=7Xd9r4BS9kUTuuMOJ-TSGtk7R7lvIY7su20hwr5J9jc,3121
100
+ odoo/addons/l10n_it_vat_registries/wizard/report_registro_iva_xlsx.py,sha256=Z5kJMyiwpNUiuOUZCaEFxxtSTKqPxIPfw95QzT6N0g4,5479
101
+ odoo_addon_l10n_it_vat_registries-16.0.1.4.0.dist-info/METADATA,sha256=crguvF06U5nG9B8Wz7e-xuB1ays0PohSqtW_etl6j7Q,6877
102
+ odoo_addon_l10n_it_vat_registries-16.0.1.4.0.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
103
+ odoo_addon_l10n_it_vat_registries-16.0.1.4.0.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
104
+ odoo_addon_l10n_it_vat_registries-16.0.1.4.0.dist-info/RECORD,,