odoo-addon-l10n-es-vat-book 16.0.2.0.2__py3-none-any.whl → 16.0.2.1.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.
Potentially problematic release.
This version of odoo-addon-l10n-es-vat-book might be problematic. Click here for more details.
- odoo/addons/l10n_es_vat_book/README.rst +11 -7
- odoo/addons/l10n_es_vat_book/__manifest__.py +3 -2
- odoo/addons/l10n_es_vat_book/data/aeat_vat_book_map_data.xml +88 -8
- odoo/addons/l10n_es_vat_book/i18n/l10n_es_vat_book.pot +16 -1
- odoo/addons/l10n_es_vat_book/models/l10n_es_vat_book.py +5 -0
- odoo/addons/l10n_es_vat_book/models/l10n_es_vat_book_line.py +10 -0
- odoo/addons/l10n_es_vat_book/readme/CONTRIBUTORS.rst +1 -0
- odoo/addons/l10n_es_vat_book/readme/DESCRIPTION.rst +3 -3
- odoo/addons/l10n_es_vat_book/readme/ROADMAP.rst +3 -0
- odoo/addons/l10n_es_vat_book/report/vat_book_xlsx.py +206 -117
- odoo/addons/l10n_es_vat_book/static/description/index.html +10 -6
- odoo/addons/l10n_es_vat_book/tests/test_l10n_es_aeat_vat_book.py +6 -1
- odoo/addons/l10n_es_vat_book/views/l10n_es_vat_book.xml +4 -1
- {odoo_addon_l10n_es_vat_book-16.0.2.0.2.dist-info → odoo_addon_l10n_es_vat_book-16.0.2.1.0.dist-info}/METADATA +13 -9
- {odoo_addon_l10n_es_vat_book-16.0.2.0.2.dist-info → odoo_addon_l10n_es_vat_book-16.0.2.1.0.dist-info}/RECORD +17 -17
- {odoo_addon_l10n_es_vat_book-16.0.2.0.2.dist-info → odoo_addon_l10n_es_vat_book-16.0.2.1.0.dist-info}/WHEEL +0 -0
- {odoo_addon_l10n_es_vat_book-16.0.2.0.2.dist-info → odoo_addon_l10n_es_vat_book-16.0.2.1.0.dist-info}/top_level.txt +0 -0
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
:target: https://odoo-community.org/get-involved?utm_source=readme
|
|
3
3
|
:alt: Odoo Community Association
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
==================================
|
|
6
|
+
Libros registro del IVA y del IRPF
|
|
7
|
+
==================================
|
|
8
8
|
|
|
9
9
|
..
|
|
10
10
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
11
11
|
!! This file is generated by oca-gen-addon-readme !!
|
|
12
12
|
!! changes will be overwritten. !!
|
|
13
13
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
14
|
-
!! source digest: sha256:
|
|
14
|
+
!! source digest: sha256:c8f8ebdce0bb4bd0ca6a82f3deaca17349e4b5cb15737855e91697344f6b38f2
|
|
15
15
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
16
16
|
|
|
17
17
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -32,10 +32,10 @@ Libro de IVA
|
|
|
32
32
|
|
|
33
33
|
|badge1| |badge2| |badge3| |badge4| |badge5|
|
|
34
34
|
|
|
35
|
-
Módulo que calcula
|
|
35
|
+
Módulo que calcula los libros de IVA e IRPF español.
|
|
36
36
|
|
|
37
|
-
Esto módulo introduce el menú "
|
|
38
|
-
Declaraciones AEAT
|
|
37
|
+
Esto módulo introduce el menú "Libros de IVA y del IRPF" en Contabilidad -\> Informe
|
|
38
|
+
-\> Declaraciones AEAT.
|
|
39
39
|
|
|
40
40
|
Es posible visualizar e imprimir por separado:
|
|
41
41
|
|
|
@@ -100,6 +100,9 @@ Funcionalidades del Libro Registro de IVA no incluídas por el momento:
|
|
|
100
100
|
|
|
101
101
|
* Criterio de caja
|
|
102
102
|
* Regímenes especiales de seguros, de agencias de viaje o de bienes usados.
|
|
103
|
+
* Clave de operación.
|
|
104
|
+
* Deducible en periodo posterior.
|
|
105
|
+
* Actividad
|
|
103
106
|
|
|
104
107
|
Bug Tracker
|
|
105
108
|
===========
|
|
@@ -132,6 +135,7 @@ Contributors
|
|
|
132
135
|
* Pedro M. Baeza
|
|
133
136
|
* Carlos Dauden
|
|
134
137
|
* Ernesto Tejeda
|
|
138
|
+
* Eduardo Ezerouali
|
|
135
139
|
* Omar Castiñeira <omar@comunitea.com>
|
|
136
140
|
* Fernando La Chica <fernandolachica@gmail.com>
|
|
137
141
|
* Victor Garcia <victor.garcia@kayuulab.com>
|
|
@@ -6,11 +6,12 @@
|
|
|
6
6
|
# Copyright 2020 Tecnativa - Carlos Daudén
|
|
7
7
|
# Copyright 2022 Comunitea - Omar Castiñeira
|
|
8
8
|
# Copyright 2018-2023 Tecnativa - Pedro M. Baeza
|
|
9
|
+
# Copyright 2026 Tecnativa - Eduardo Ezerouali
|
|
9
10
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
10
11
|
|
|
11
12
|
{
|
|
12
|
-
"name": "
|
|
13
|
-
"version": "16.0.2.0
|
|
13
|
+
"name": "Libros registro del IVA y del IRPF",
|
|
14
|
+
"version": "16.0.2.1.0",
|
|
14
15
|
"author": "PRAXYA, ForgeFlow, Tecnativa, Odoo Community Association (OCA)",
|
|
15
16
|
"website": "https://github.com/OCA/l10n-spain",
|
|
16
17
|
"license": "AGPL-3",
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<field name="name">IVA repercutido</field>
|
|
5
5
|
<field name="book_type">issued</field>
|
|
6
6
|
<field name="special_tax_group" eval="False" />
|
|
7
|
-
<field name="fee_type_xlsx_column">
|
|
8
|
-
<field name="fee_amount_xlsx_column">
|
|
7
|
+
<field name="fee_type_xlsx_column">W</field>
|
|
8
|
+
<field name="fee_amount_xlsx_column">X</field>
|
|
9
9
|
<field
|
|
10
10
|
name="tax_agency_ids"
|
|
11
11
|
eval="[ Command.link(ref('l10n_es_aeat.aeat_tax_agency_spain')) ]"
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
<field name="name">IVA soportado</field>
|
|
43
43
|
<field name="book_type">received</field>
|
|
44
44
|
<field name="special_tax_group" eval="False" />
|
|
45
|
-
<field name="fee_type_xlsx_column">
|
|
46
|
-
<field name="fee_amount_xlsx_column">
|
|
45
|
+
<field name="fee_type_xlsx_column">AB</field>
|
|
46
|
+
<field name="fee_amount_xlsx_column">AC</field>
|
|
47
47
|
<field
|
|
48
48
|
name="tax_agency_ids"
|
|
49
49
|
eval="[ Command.link(ref('l10n_es_aeat.aeat_tax_agency_spain')) ]"
|
|
@@ -141,8 +141,8 @@
|
|
|
141
141
|
<field name="name">Recargo Eq.</field>
|
|
142
142
|
<field name="book_type">issued</field>
|
|
143
143
|
<field name="special_tax_group">req</field>
|
|
144
|
-
<field name="fee_type_xlsx_column">
|
|
145
|
-
<field name="fee_amount_xlsx_column">
|
|
144
|
+
<field name="fee_type_xlsx_column">Y</field>
|
|
145
|
+
<field name="fee_amount_xlsx_column">Z</field>
|
|
146
146
|
<field
|
|
147
147
|
name="tax_agency_ids"
|
|
148
148
|
eval="[ Command.link(ref('l10n_es_aeat.aeat_tax_agency_spain')) ]"
|
|
@@ -162,8 +162,8 @@
|
|
|
162
162
|
<field name="name">Recargo Eq.</field>
|
|
163
163
|
<field name="book_type">received</field>
|
|
164
164
|
<field name="special_tax_group">req</field>
|
|
165
|
-
<field name="fee_type_xlsx_column">
|
|
166
|
-
<field name="fee_amount_xlsx_column">
|
|
165
|
+
<field name="fee_type_xlsx_column">AE</field>
|
|
166
|
+
<field name="fee_amount_xlsx_column">AF</field>
|
|
167
167
|
<field
|
|
168
168
|
name="tax_agency_ids"
|
|
169
169
|
eval="[ Command.link(ref('l10n_es_aeat.aeat_tax_agency_spain')) ]"
|
|
@@ -179,4 +179,84 @@
|
|
|
179
179
|
]"
|
|
180
180
|
/>
|
|
181
181
|
</record>
|
|
182
|
+
<record id="aeat_vat_book_map_line_s_irpf" model="aeat.vat.book.map.line">
|
|
183
|
+
<field name="name">Retención del IRPF</field>
|
|
184
|
+
<field name="book_type">issued</field>
|
|
185
|
+
<field name="special_tax_group">irpf</field>
|
|
186
|
+
<field name="fee_type_xlsx_column">AE</field>
|
|
187
|
+
<field name="fee_amount_xlsx_column">AF</field>
|
|
188
|
+
<field
|
|
189
|
+
name="tax_agency_ids"
|
|
190
|
+
eval="[ Command.link(ref('l10n_es_aeat.aeat_tax_agency_spain')) ]"
|
|
191
|
+
/>
|
|
192
|
+
<field
|
|
193
|
+
name="tax_tmpl_ids"
|
|
194
|
+
eval="[
|
|
195
|
+
(4, ref('l10n_es.account_tax_template_s_irpf1')),
|
|
196
|
+
(4, ref('l10n_es.account_tax_template_s_irpf2')),
|
|
197
|
+
(4, ref('l10n_es.account_tax_template_s_irpf7')),
|
|
198
|
+
(4, ref('l10n_es.account_tax_template_s_irpf9')),
|
|
199
|
+
(4, ref('l10n_es.account_tax_template_s_irpf15')),
|
|
200
|
+
(4, ref('l10n_es.account_tax_template_s_irpf18')),
|
|
201
|
+
(4, ref('l10n_es.account_tax_template_s_irpf19')),
|
|
202
|
+
(4, ref('l10n_es.account_tax_template_s_irpf19a')),
|
|
203
|
+
(4, ref('l10n_es.account_tax_template_s_irpf195a')),
|
|
204
|
+
(4, ref('l10n_es.account_tax_template_s_irpf20')),
|
|
205
|
+
(4, ref('l10n_es.account_tax_template_s_irpf20a')),
|
|
206
|
+
(4, ref('l10n_es.account_tax_template_s_irpf21')),
|
|
207
|
+
(4, ref('l10n_es.account_tax_template_s_irpf21a')),
|
|
208
|
+
(4, ref('l10n_es.account_tax_template_s_irpf24')),
|
|
209
|
+
(4, ref('l10n_es.account_tax_template_s_irpf24_rdc')),
|
|
210
|
+
(4, ref('l10n_es.account_tax_template_s_irpfnrue0')),
|
|
211
|
+
(4, ref('l10n_es.account_tax_template_s_irpfnrnue0')),
|
|
212
|
+
(4, ref('l10n_es.account_tax_template_s_irpfnrnue24')),
|
|
213
|
+
(4, ref('l10n_es.account_tax_template_s_irpfnrue19')),
|
|
214
|
+
]"
|
|
215
|
+
/>
|
|
216
|
+
</record>
|
|
217
|
+
<record id="aeat_vat_book_map_line_p_irpf" model="aeat.vat.book.map.line">
|
|
218
|
+
<field name="name">Retención del IRPF</field>
|
|
219
|
+
<field name="book_type">received</field>
|
|
220
|
+
<field name="special_tax_group">irpf</field>
|
|
221
|
+
<field name="fee_type_xlsx_column">AK</field>
|
|
222
|
+
<field name="fee_amount_xlsx_column">AL</field>
|
|
223
|
+
<field
|
|
224
|
+
name="tax_agency_ids"
|
|
225
|
+
eval="[ Command.link(ref('l10n_es_aeat.aeat_tax_agency_spain')) ]"
|
|
226
|
+
/>
|
|
227
|
+
<field
|
|
228
|
+
name="tax_tmpl_ids"
|
|
229
|
+
eval="[
|
|
230
|
+
(4, ref('l10n_es.account_tax_template_p_irpf1')),
|
|
231
|
+
(4, ref('l10n_es.account_tax_template_p_irpf2')),
|
|
232
|
+
(4, ref('l10n_es.account_tax_template_p_irpf7')),
|
|
233
|
+
(4, ref('l10n_es.account_tax_template_p_irpf7e')),
|
|
234
|
+
(4, ref('l10n_es.account_tax_template_p_irpf9')),
|
|
235
|
+
(4, ref('l10n_es.account_tax_template_p_irpf15')),
|
|
236
|
+
(4, ref('l10n_es.account_tax_template_p_irpf15e')),
|
|
237
|
+
(4, ref('l10n_es.account_tax_template_p_irpf18')),
|
|
238
|
+
(4, ref('l10n_es.account_tax_template_p_irpf19')),
|
|
239
|
+
(4, ref('l10n_es.account_tax_template_p_irpf19a')),
|
|
240
|
+
(4, ref('l10n_es.account_tax_template_p_irpf19ca')),
|
|
241
|
+
(4, ref('l10n_es.account_tax_template_p_irpf19cs')),
|
|
242
|
+
(4, ref('l10n_es.account_tax_template_p_irpf195a')),
|
|
243
|
+
(4, ref('l10n_es.account_tax_template_p_irpf20')),
|
|
244
|
+
(4, ref('l10n_es.account_tax_template_p_irpf20a')),
|
|
245
|
+
(4, ref('l10n_es.account_tax_template_p_irpf21a')),
|
|
246
|
+
(4, ref('l10n_es.account_tax_template_p_irpf21p')),
|
|
247
|
+
(4, ref('l10n_es.account_tax_template_p_irpf21p')),
|
|
248
|
+
(4, ref('l10n_es.account_tax_template_p_irpf21t')),
|
|
249
|
+
(4, ref('l10n_es.account_tax_template_p_irpf21td')),
|
|
250
|
+
(4, ref('l10n_es.account_tax_template_p_irpf21te')),
|
|
251
|
+
(4, ref('l10n_es.account_tax_template_p_irpf24')),
|
|
252
|
+
(4, ref('l10n_es.account_tax_template_p_irpf24_rdc')),
|
|
253
|
+
(4, ref('l10n_es.account_tax_template_p_irpf35cya')),
|
|
254
|
+
(4, ref('l10n_es.account_tax_template_p_irpfnrue0p')),
|
|
255
|
+
(4, ref('l10n_es.account_tax_template_p_irpfnrnue24p')),
|
|
256
|
+
(4, ref('l10n_es.account_tax_template_p_irpfnrue19p')),
|
|
257
|
+
(4, ref('l10n_es.account_tax_template_p_rp19')),
|
|
258
|
+
(4, ref('l10n_es.account_tax_template_p_rrD19')),
|
|
259
|
+
]"
|
|
260
|
+
/>
|
|
261
|
+
</record>
|
|
182
262
|
</odoo>
|
|
@@ -456,7 +456,7 @@ msgstr ""
|
|
|
456
456
|
|
|
457
457
|
#. module: l10n_es_vat_book
|
|
458
458
|
#: model:ir.ui.menu,name:l10n_es_vat_book.menu_vat_book_report
|
|
459
|
-
msgid "
|
|
459
|
+
msgid "Libros del IVA y del IRPF"
|
|
460
460
|
msgstr ""
|
|
461
461
|
|
|
462
462
|
#. module: l10n_es_vat_book
|
|
@@ -484,6 +484,11 @@ msgstr ""
|
|
|
484
484
|
msgid "Model number"
|
|
485
485
|
msgstr ""
|
|
486
486
|
|
|
487
|
+
#. module: l10n_es_vat_book
|
|
488
|
+
#: model:ir.model.fields.selection,name:l10n_es_vat_book.selection__l10n_es_vat_book__vat_settlement_period__monthly
|
|
489
|
+
msgid "Monthly"
|
|
490
|
+
msgstr ""
|
|
491
|
+
|
|
487
492
|
#. module: l10n_es_vat_book
|
|
488
493
|
#: model:ir.model.fields,field_description:l10n_es_vat_book.field_l10n_es_vat_book_line_tax__move_line_ids
|
|
489
494
|
#: model_terms:ir.ui.view,arch_db:l10n_es_vat_book.view_vat_book_line_form
|
|
@@ -575,6 +580,11 @@ msgstr ""
|
|
|
575
580
|
msgid "Previous declaration number"
|
|
576
581
|
msgstr ""
|
|
577
582
|
|
|
583
|
+
#. module: l10n_es_vat_book
|
|
584
|
+
#: model:ir.model.fields.selection,name:l10n_es_vat_book.selection__l10n_es_vat_book__vat_settlement_period__quarterly
|
|
585
|
+
msgid "Quarterly"
|
|
586
|
+
msgstr ""
|
|
587
|
+
|
|
578
588
|
#. module: l10n_es_vat_book
|
|
579
589
|
#: model:ir.model.fields.selection,name:l10n_es_vat_book.selection__l10n_es_vat_book_line_tax__special_tax_group__req
|
|
580
590
|
msgid "R.Eq."
|
|
@@ -887,6 +897,11 @@ msgstr ""
|
|
|
887
897
|
msgid "Vat Number Xlsx"
|
|
888
898
|
msgstr ""
|
|
889
899
|
|
|
900
|
+
#. module: l10n_es_vat_book
|
|
901
|
+
#: model:ir.model.fields,field_description:l10n_es_vat_book.field_l10n_es_vat_book__vat_settlement_period
|
|
902
|
+
msgid "Vat Settlement Period"
|
|
903
|
+
msgstr ""
|
|
904
|
+
|
|
890
905
|
#. module: l10n_es_vat_book
|
|
891
906
|
#: model:ir.actions.report,name:l10n_es_vat_book.act_report_vat_book_invoices_issued_html
|
|
892
907
|
#: model:ir.actions.report,name:l10n_es_vat_book.act_report_vat_book_invoices_issued_pdf
|
|
@@ -122,6 +122,11 @@ class L10nEsVatBook(models.Model):
|
|
|
122
122
|
error_count = fields.Integer(
|
|
123
123
|
compute="_compute_error_count",
|
|
124
124
|
)
|
|
125
|
+
vat_settlement_period = fields.Selection(
|
|
126
|
+
selection=[("monthly", "Monthly"), ("quarterly", "Quarterly")],
|
|
127
|
+
default="monthly",
|
|
128
|
+
required=True,
|
|
129
|
+
)
|
|
125
130
|
|
|
126
131
|
def _compute_error_count(self):
|
|
127
132
|
vat_book_exception_group = self.env["l10n.es.vat.book.line"].read_group(
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
# Daniel Rodriguez Lijo <drl.9319@gmail.com>
|
|
3
3
|
# Copyright 2017 ForgeFlow, S.L. <contact@forgeflow.com>
|
|
4
4
|
# Copyright 2019 Tecnativa - Carlos Dauden
|
|
5
|
+
# Copyright 2026 Tecnativa - Eduardo Ezerouali
|
|
5
6
|
# License AGPL-3 - See https://www.gnu.org/licenses/agpl-3.0
|
|
6
7
|
|
|
8
|
+
|
|
7
9
|
from odoo import api, fields, models
|
|
8
10
|
|
|
9
11
|
|
|
@@ -64,3 +66,11 @@ class L10nEsVatBookLine(models.Model):
|
|
|
64
66
|
def _compute_tax_rate(self):
|
|
65
67
|
for rec in self:
|
|
66
68
|
rec.tax_rate = rec.tax_id.amount
|
|
69
|
+
|
|
70
|
+
def _get_settlement_period(self):
|
|
71
|
+
self.ensure_one()
|
|
72
|
+
month = self.move_id.date.month
|
|
73
|
+
if self.vat_book_id.vat_settlement_period == "quarterly":
|
|
74
|
+
return "{}T".format(int(((month - 1) / 3) + 1))
|
|
75
|
+
else:
|
|
76
|
+
return "{:02d}".format(month)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
Módulo que calcula
|
|
1
|
+
Módulo que calcula los libros de IVA e IRPF español.
|
|
2
2
|
|
|
3
|
-
Esto módulo introduce el menú "
|
|
4
|
-
Declaraciones AEAT
|
|
3
|
+
Esto módulo introduce el menú "Libros de IVA y del IRPF" en Contabilidad -\> Informe
|
|
4
|
+
-\> Declaraciones AEAT.
|
|
5
5
|
|
|
6
6
|
Es posible visualizar e imprimir por separado:
|
|
7
7
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# Copyright 2019 Tecnativa - Carlos Dauden
|
|
2
|
+
# Copyright 2026 Tecnativa - Eduardo Ezerouali
|
|
2
3
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
|
3
4
|
|
|
4
5
|
from odoo import fields, models
|
|
@@ -62,37 +63,49 @@ class VatNumberXlsx(models.AbstractModel):
|
|
|
62
63
|
sheet.write("A3", "NIF: %s" % book.company_vat)
|
|
63
64
|
sheet.merge_range("A4:D4", "NOMBRE/RAZÓN SOCIAL: %s" % book.company_id.name)
|
|
64
65
|
|
|
65
|
-
sheet.merge_range("
|
|
66
|
-
sheet.merge_range("
|
|
66
|
+
sheet.merge_range("A6:B6", "Autoliquidación", header_format)
|
|
67
|
+
sheet.merge_range("C6:E6", "Actividad", header_format)
|
|
68
|
+
sheet.merge_range("K6:M6", "Identificación de la Factura", header_format)
|
|
69
|
+
sheet.merge_range("N6:P6", "NIF Destinatario", header_format)
|
|
67
70
|
|
|
68
|
-
sheet.
|
|
69
|
-
sheet.
|
|
70
|
-
sheet.write("C7", "
|
|
71
|
-
sheet.write("D7", "
|
|
72
|
-
sheet.write("E7", "
|
|
73
|
-
sheet.
|
|
74
|
-
sheet.
|
|
75
|
-
sheet.
|
|
76
|
-
sheet.merge_range("I6:I7", "
|
|
77
|
-
sheet.merge_range("J6:J7", "
|
|
78
|
-
sheet.
|
|
79
|
-
sheet.
|
|
80
|
-
sheet.
|
|
81
|
-
sheet.
|
|
82
|
-
sheet.
|
|
83
|
-
|
|
71
|
+
sheet.write("A7", "Ejercicio", subheader_format)
|
|
72
|
+
sheet.write("B7", "Periodo", subheader_format)
|
|
73
|
+
sheet.write("C7", "Código", subheader_format)
|
|
74
|
+
sheet.write("D7", "Tipo", subheader_format)
|
|
75
|
+
sheet.write("E7", "Grupo o Epígrafe del IAE", subheader_format)
|
|
76
|
+
sheet.merge_range("F6:F7", "Tipo de factura", header_format)
|
|
77
|
+
sheet.merge_range("G6:G7", "Concepto de Ingreso", header_format)
|
|
78
|
+
sheet.merge_range("H6:H7", "Ingreso Computable", header_format)
|
|
79
|
+
sheet.merge_range("I6:I7", "Fecha Expedición", header_format)
|
|
80
|
+
sheet.merge_range("J6:J7", "Fecha Operación", header_format)
|
|
81
|
+
sheet.write("K7", "Serie", subheader_format)
|
|
82
|
+
sheet.write("L7", "Número", subheader_format)
|
|
83
|
+
sheet.write("M7", "Número-Final", subheader_format)
|
|
84
|
+
sheet.write("N7", "Tipo", subheader_format)
|
|
85
|
+
sheet.write("O7", "Código País", subheader_format)
|
|
86
|
+
sheet.write("P7", "Identificación", subheader_format)
|
|
87
|
+
sheet.merge_range("Q6:Q7", "Nombre Destinatario", header_format)
|
|
88
|
+
sheet.merge_range("R6:R7", "Clave de Operación", header_format)
|
|
89
|
+
sheet.merge_range("S6:S7", "Calificación de la operación", header_format)
|
|
90
|
+
sheet.merge_range("T6:T7", "Operación Exenta", header_format)
|
|
91
|
+
sheet.merge_range("U6:U7", "Total Factura", header_format)
|
|
92
|
+
sheet.merge_range("V6:V7", "Base Imponible", header_format)
|
|
93
|
+
sheet.merge_range("W6:W7", "Tipo de IVA", header_format)
|
|
94
|
+
sheet.merge_range("X6:X7", "Cuota IVA Repercutida", header_format)
|
|
95
|
+
last_col = "X"
|
|
84
96
|
for line in self._get_vat_book_map_lines("issued"):
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
97
|
+
if line.special_tax_group != "irpf":
|
|
98
|
+
sheet.merge_range(
|
|
99
|
+
"{0}6:{0}7".format(line.fee_type_xlsx_column),
|
|
100
|
+
"Tipo de {}".format(line.name),
|
|
101
|
+
header_format,
|
|
102
|
+
)
|
|
103
|
+
sheet.merge_range(
|
|
104
|
+
"{0}6:{0}7".format(line.fee_amount_xlsx_column),
|
|
105
|
+
"Cuota {}".format(line.name),
|
|
106
|
+
header_format,
|
|
107
|
+
)
|
|
108
|
+
last_col = line.fee_amount_xlsx_column
|
|
96
109
|
next_col = excel_col_number(last_col) + 1
|
|
97
110
|
# Las filas empiezan por 0, por eso se resta 1
|
|
98
111
|
sheet.merge_range(
|
|
@@ -110,18 +123,37 @@ class VatNumberXlsx(models.AbstractModel):
|
|
|
110
123
|
sheet.write(6, next_col, "Medio Utilizado", subheader_format)
|
|
111
124
|
next_col += 1
|
|
112
125
|
sheet.write(6, next_col, "Identificación Medio Utilizado", subheader_format)
|
|
126
|
+
next_col += 1
|
|
127
|
+
sheet.merge_range(
|
|
128
|
+
5,
|
|
129
|
+
next_col,
|
|
130
|
+
6,
|
|
131
|
+
next_col,
|
|
132
|
+
"Tipo de Retención del IRPF",
|
|
133
|
+
header_format,
|
|
134
|
+
)
|
|
135
|
+
next_col += 1
|
|
136
|
+
sheet.merge_range(
|
|
137
|
+
5,
|
|
138
|
+
next_col,
|
|
139
|
+
6,
|
|
140
|
+
next_col,
|
|
141
|
+
"Importe Retenido del IRPF",
|
|
142
|
+
header_format,
|
|
143
|
+
)
|
|
113
144
|
|
|
114
|
-
sheet.set_column("A:
|
|
115
|
-
sheet.set_column("
|
|
116
|
-
sheet.set_column("
|
|
117
|
-
sheet.set_column("
|
|
118
|
-
sheet.set_column("
|
|
119
|
-
sheet.set_column("
|
|
120
|
-
sheet.set_column("
|
|
121
|
-
sheet.set_column("
|
|
122
|
-
sheet.set_column("
|
|
123
|
-
sheet.set_column("
|
|
124
|
-
sheet.set_column("
|
|
145
|
+
sheet.set_column("A:G", 14)
|
|
146
|
+
sheet.set_column("H:H", 16, decimal_format)
|
|
147
|
+
sheet.set_column("I:J", 16, date_format)
|
|
148
|
+
sheet.set_column("K:K", 14)
|
|
149
|
+
sheet.set_column("L:L", 17)
|
|
150
|
+
sheet.set_column("M:M", 17)
|
|
151
|
+
sheet.set_column("N:N", 8)
|
|
152
|
+
sheet.set_column("O:O", 12)
|
|
153
|
+
sheet.set_column("P:P", 14)
|
|
154
|
+
sheet.set_column("Q:Q", 40)
|
|
155
|
+
sheet.set_column("R:T", 16)
|
|
156
|
+
sheet.set_column("U:Z", 14, decimal_format)
|
|
125
157
|
|
|
126
158
|
next_col = excel_col_number(last_col) + 1
|
|
127
159
|
sheet.set_column(next_col, next_col, 14, date_format)
|
|
@@ -131,6 +163,11 @@ class VatNumberXlsx(models.AbstractModel):
|
|
|
131
163
|
sheet.set_column(next_col, next_col, 14)
|
|
132
164
|
next_col += 1
|
|
133
165
|
sheet.set_column(next_col, next_col, 30)
|
|
166
|
+
next_col += 1
|
|
167
|
+
sheet.set_column(next_col, next_col, 16)
|
|
168
|
+
next_col += 1
|
|
169
|
+
sheet.set_column(next_col, next_col, 16)
|
|
170
|
+
|
|
134
171
|
if draft_export:
|
|
135
172
|
next_col += 1
|
|
136
173
|
sheet.write(5, next_col, "Impuesto (Solo borrador)")
|
|
@@ -149,30 +186,29 @@ class VatNumberXlsx(models.AbstractModel):
|
|
|
149
186
|
country_code, identifier_type, vat_number = (
|
|
150
187
|
line.partner_id and line.partner_id._parse_aeat_vat_info() or ("ES", "", "")
|
|
151
188
|
)
|
|
152
|
-
sheet.write("A" + str(row),
|
|
153
|
-
|
|
154
|
-
sheet.write("
|
|
155
|
-
sheet.write(
|
|
156
|
-
sheet.write("
|
|
157
|
-
sheet.write("
|
|
189
|
+
sheet.write("A" + str(row), str(line.vat_book_id.year))
|
|
190
|
+
sheet.write("B" + str(row), str(line.vat_book_id.period_type))
|
|
191
|
+
sheet.write("I" + str(row), self.format_boe_date(line.invoice_date))
|
|
192
|
+
# sheet.write('J' + str(row), self.format_boe_date(line.invoice_date))
|
|
193
|
+
sheet.write("K" + str(row), line.ref[:-20])
|
|
194
|
+
sheet.write("L" + str(row), line.ref[-20:])
|
|
195
|
+
sheet.write("M" + str(row), "") # Final number
|
|
196
|
+
sheet.write("N" + str(row), identifier_type)
|
|
158
197
|
if country_code != "ES":
|
|
159
|
-
sheet.write("
|
|
160
|
-
sheet.write("
|
|
198
|
+
sheet.write("O" + str(row), country_code)
|
|
199
|
+
sheet.write("P" + str(row), vat_number)
|
|
161
200
|
if not vat_number and (
|
|
162
201
|
line.partner_id.aeat_anonymous_cash_customer or not line.partner_id
|
|
163
202
|
):
|
|
164
|
-
sheet.write("
|
|
203
|
+
sheet.write("Q" + str(row), "Venta anónima")
|
|
165
204
|
else:
|
|
166
|
-
sheet.write("
|
|
167
|
-
#
|
|
168
|
-
# sheet.write('J' + str(row),
|
|
169
|
-
# line.invoice_id.refund_invoice_id.number or '')
|
|
170
|
-
sheet.write("K" + str(row), "") # Operation Key
|
|
205
|
+
sheet.write("Q" + str(row), (line.partner_id.name or "")[:40])
|
|
206
|
+
sheet.write("R" + str(row), "") # Operation Key
|
|
171
207
|
if with_total:
|
|
172
|
-
sheet.write("
|
|
173
|
-
sheet.write("
|
|
174
|
-
sheet.write("
|
|
175
|
-
sheet.write("
|
|
208
|
+
sheet.write("U" + str(row), line.total_amount)
|
|
209
|
+
sheet.write("V" + str(row), tax_line.base_amount)
|
|
210
|
+
sheet.write("W" + str(row), tax_line.tax_id.amount)
|
|
211
|
+
sheet.write("X" + str(row), tax_line.tax_amount)
|
|
176
212
|
if tax_line.special_tax_id:
|
|
177
213
|
map_vals = line.vat_book_id.get_special_taxes_dic()[
|
|
178
214
|
tax_line.special_tax_id.id
|
|
@@ -216,41 +252,58 @@ class VatNumberXlsx(models.AbstractModel):
|
|
|
216
252
|
sheet.write("A3", "NIF: %s" % book.company_vat)
|
|
217
253
|
sheet.merge_range("A4:D4", "NOMBRE/RAZÓN SOCIAL: %s" % book.company_id.name)
|
|
218
254
|
|
|
255
|
+
sheet.merge_range("A6:B6", "Autoliquidación", header_format)
|
|
256
|
+
sheet.merge_range("C6:E6", "Actividad", header_format)
|
|
219
257
|
sheet.merge_range(
|
|
220
|
-
"
|
|
258
|
+
"K6:L6", "Identificación Factura del Expedidor", header_format
|
|
221
259
|
)
|
|
222
|
-
sheet.merge_range("
|
|
260
|
+
sheet.merge_range("P6:R6", "NIF Expedidor", header_format)
|
|
261
|
+
sheet.merge_range("X6:Y6", "Periodo Deducción", header_format)
|
|
223
262
|
|
|
224
|
-
sheet.
|
|
225
|
-
sheet.
|
|
226
|
-
sheet.write("C7", "
|
|
227
|
-
sheet.write("D7", "
|
|
228
|
-
sheet.
|
|
229
|
-
sheet.merge_range("F6:F7", "
|
|
230
|
-
sheet.
|
|
231
|
-
sheet.
|
|
232
|
-
sheet.
|
|
233
|
-
sheet.merge_range("J6:J7", "
|
|
234
|
-
sheet.
|
|
235
|
-
sheet.
|
|
236
|
-
sheet.merge_range("M6:M7", "
|
|
237
|
-
sheet.merge_range("N6:N7", "
|
|
238
|
-
sheet.merge_range("O6:O7", "
|
|
239
|
-
sheet.
|
|
240
|
-
sheet.
|
|
241
|
-
|
|
263
|
+
sheet.write("A7", "Ejercicio", subheader_format)
|
|
264
|
+
sheet.write("B7", "Periodo", subheader_format)
|
|
265
|
+
sheet.write("C7", "Código", subheader_format)
|
|
266
|
+
sheet.write("D7", "Tipo", subheader_format)
|
|
267
|
+
sheet.write("E7", "Grupo o Epígrafe del IAE", subheader_format)
|
|
268
|
+
sheet.merge_range("F6:F7", "Tipo de factura", header_format)
|
|
269
|
+
sheet.merge_range("G6:G7", "Concepto de Gasto", header_format)
|
|
270
|
+
sheet.merge_range("H6:H7", "Gasto Deducible", header_format)
|
|
271
|
+
sheet.merge_range("I6:I7", "Fecha Expedición", header_format)
|
|
272
|
+
sheet.merge_range("J6:J7", "Fecha Operación", header_format)
|
|
273
|
+
sheet.write("K7", "(Serie-Número)", subheader_format)
|
|
274
|
+
sheet.write("L7", "Número-Final", subheader_format)
|
|
275
|
+
sheet.merge_range("M6:M7", "Fecha Recepción", header_format)
|
|
276
|
+
sheet.merge_range("N6:N7", "Número Recepción", header_format)
|
|
277
|
+
sheet.merge_range("O6:O7", "Número Recepción Final", header_format)
|
|
278
|
+
sheet.write("P7", "Tipo", subheader_format)
|
|
279
|
+
sheet.write("Q7", "Código País", subheader_format)
|
|
280
|
+
sheet.write("R7", "Identificación", subheader_format)
|
|
281
|
+
sheet.merge_range("S6:S7", "Nombre Expedidor", header_format)
|
|
282
|
+
sheet.merge_range("T6:T7", "Clave de Operación", header_format)
|
|
283
|
+
sheet.merge_range("U6:U7", "Bien de Inversión", header_format)
|
|
284
|
+
sheet.merge_range("V6:V7", "Inversión del Sujeto Pasivo", header_format)
|
|
285
|
+
sheet.merge_range("W6:W7", "Deducible en Periodo Posterior", header_format)
|
|
286
|
+
sheet.write("X7", "Ejercicio", header_format)
|
|
287
|
+
sheet.write("Y7", "Periodo", header_format)
|
|
288
|
+
sheet.merge_range("Z6:Z7", "Total Factura", header_format)
|
|
289
|
+
sheet.merge_range("AA6:AA7", "Base Imponible", header_format)
|
|
290
|
+
sheet.merge_range("AB6:AB7", "Tipo de IVA", header_format)
|
|
291
|
+
sheet.merge_range("AC6:AC7", "Cuota IVA Soportado", header_format)
|
|
292
|
+
sheet.merge_range("AD6:AD7", "Cuota Deducible", header_format)
|
|
293
|
+
last_col = "AD"
|
|
242
294
|
for line in self._get_vat_book_map_lines("received"):
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
295
|
+
if line.special_tax_group != "irpf":
|
|
296
|
+
sheet.merge_range(
|
|
297
|
+
"{0}6:{0}7".format(line.fee_type_xlsx_column),
|
|
298
|
+
"Tipo de {}".format(line.name),
|
|
299
|
+
header_format,
|
|
300
|
+
)
|
|
301
|
+
sheet.merge_range(
|
|
302
|
+
"{0}6:{0}7".format(line.fee_amount_xlsx_column),
|
|
303
|
+
"Cuota {}".format(line.name),
|
|
304
|
+
header_format,
|
|
305
|
+
)
|
|
306
|
+
last_col = line.fee_amount_xlsx_column
|
|
254
307
|
next_col = excel_col_number(last_col) + 1
|
|
255
308
|
# Las filas empiezan por 0, por eso se resta 1
|
|
256
309
|
sheet.merge_range(
|
|
@@ -268,16 +321,44 @@ class VatNumberXlsx(models.AbstractModel):
|
|
|
268
321
|
sheet.write(6, next_col, "Medio Utilizado", subheader_format)
|
|
269
322
|
next_col += 1
|
|
270
323
|
sheet.write(6, next_col, "Identificación Medio Utilizado", subheader_format)
|
|
324
|
+
next_col += 1
|
|
325
|
+
sheet.merge_range(
|
|
326
|
+
5,
|
|
327
|
+
next_col,
|
|
328
|
+
6,
|
|
329
|
+
next_col,
|
|
330
|
+
"Tipo de Retención del IRPF",
|
|
331
|
+
header_format,
|
|
332
|
+
)
|
|
333
|
+
next_col += 1
|
|
334
|
+
sheet.merge_range(
|
|
335
|
+
5,
|
|
336
|
+
next_col,
|
|
337
|
+
6,
|
|
338
|
+
next_col,
|
|
339
|
+
"Importe Retenido del IRPF",
|
|
340
|
+
header_format,
|
|
341
|
+
)
|
|
342
|
+
next_col += 1
|
|
343
|
+
sheet.merge_range(
|
|
344
|
+
5,
|
|
345
|
+
next_col,
|
|
346
|
+
6,
|
|
347
|
+
next_col,
|
|
348
|
+
"Registro Acuerdo Facturación",
|
|
349
|
+
header_format,
|
|
350
|
+
)
|
|
271
351
|
|
|
272
|
-
sheet.set_column("A:
|
|
273
|
-
sheet.set_column("
|
|
274
|
-
sheet.set_column("
|
|
275
|
-
sheet.set_column("
|
|
276
|
-
sheet.set_column("
|
|
277
|
-
sheet.set_column("
|
|
278
|
-
sheet.set_column("
|
|
279
|
-
sheet.set_column("
|
|
280
|
-
sheet.set_column("
|
|
352
|
+
sheet.set_column("A:G", 14)
|
|
353
|
+
sheet.set_column("H:H", 16, decimal_format)
|
|
354
|
+
sheet.set_column("I:J", 16, date_format)
|
|
355
|
+
sheet.set_column("K:O", 17)
|
|
356
|
+
sheet.set_column("P:P", 8)
|
|
357
|
+
sheet.set_column("Q:Q", 12)
|
|
358
|
+
sheet.set_column("R:R", 14)
|
|
359
|
+
sheet.set_column("S:S", 40)
|
|
360
|
+
sheet.set_column("T:Y", 16)
|
|
361
|
+
sheet.set_column("Z:AF", 14, decimal_format)
|
|
281
362
|
next_col = excel_col_number(last_col) + 1
|
|
282
363
|
sheet.set_column(next_col, next_col, 14, date_format)
|
|
283
364
|
next_col += 1
|
|
@@ -286,6 +367,13 @@ class VatNumberXlsx(models.AbstractModel):
|
|
|
286
367
|
sheet.set_column(next_col, next_col, 14)
|
|
287
368
|
next_col += 1
|
|
288
369
|
sheet.set_column(next_col, next_col, 30)
|
|
370
|
+
next_col += 1
|
|
371
|
+
sheet.set_column(next_col, next_col, 14, decimal_format)
|
|
372
|
+
next_col += 1
|
|
373
|
+
sheet.set_column(next_col, next_col, 14, decimal_format)
|
|
374
|
+
next_col += 1
|
|
375
|
+
sheet.set_column(next_col, next_col, 16)
|
|
376
|
+
|
|
289
377
|
if draft_export:
|
|
290
378
|
next_col += 1
|
|
291
379
|
sheet.write(5, next_col, "Impuesto (Solo borrador)")
|
|
@@ -305,29 +393,30 @@ class VatNumberXlsx(models.AbstractModel):
|
|
|
305
393
|
country_code, identifier_type, vat_number = (
|
|
306
394
|
line.partner_id and line.partner_id._parse_aeat_vat_info() or ("ES", "", "")
|
|
307
395
|
)
|
|
308
|
-
sheet.write("A" + str(row),
|
|
396
|
+
sheet.write("A" + str(row), str(line.vat_book_id.year))
|
|
397
|
+
sheet.write("B" + str(row), str(line.vat_book_id.period_type))
|
|
398
|
+
sheet.write("I" + str(row), self.format_boe_date(line.invoice_date))
|
|
309
399
|
if date_invoice and date_invoice != line.invoice_date:
|
|
310
|
-
sheet.write("
|
|
311
|
-
sheet.write("
|
|
312
|
-
sheet.write("
|
|
313
|
-
sheet.write("
|
|
314
|
-
sheet.write("
|
|
315
|
-
sheet.write("
|
|
400
|
+
sheet.write("J" + str(row), self.format_boe_date(date_invoice))
|
|
401
|
+
sheet.write("K" + str(row), (line.external_ref or "")[:40])
|
|
402
|
+
sheet.write("L" + str(row), "")
|
|
403
|
+
sheet.write("N" + str(row), line.ref[:20])
|
|
404
|
+
sheet.write("O" + str(row), "")
|
|
405
|
+
sheet.write("P" + str(row), identifier_type)
|
|
316
406
|
if country_code != "ES":
|
|
317
|
-
sheet.write("
|
|
318
|
-
sheet.write("
|
|
319
|
-
sheet.write("
|
|
320
|
-
#
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
sheet.write("L" + str(row), "") # Operation Key
|
|
407
|
+
sheet.write("Q" + str(row), country_code)
|
|
408
|
+
sheet.write("R" + str(row), vat_number)
|
|
409
|
+
sheet.write("S" + str(row), (line.partner_id.name or "")[:40])
|
|
410
|
+
sheet.write("T" + str(row), "") # Operation Key
|
|
411
|
+
sheet.write("X" + str(row), line.move_id.date.year)
|
|
412
|
+
sheet.write("Y" + str(row), line._get_settlement_period())
|
|
324
413
|
if with_total:
|
|
325
|
-
sheet.write("
|
|
326
|
-
sheet.write("
|
|
327
|
-
sheet.write("
|
|
328
|
-
sheet.write("
|
|
414
|
+
sheet.write("Z" + str(row), line.total_amount)
|
|
415
|
+
sheet.write("AA" + str(row), tax_line.base_amount)
|
|
416
|
+
sheet.write("AB" + str(row), tax_line.tax_id.amount)
|
|
417
|
+
sheet.write("AC" + str(row), tax_line.tax_amount)
|
|
329
418
|
if tax_line.tax_id not in self._get_undeductible_taxes(line.vat_book_id):
|
|
330
|
-
sheet.write("
|
|
419
|
+
sheet.write("AD" + str(row), tax_line.deductible_amount)
|
|
331
420
|
if tax_line.special_tax_id:
|
|
332
421
|
map_vals = line.vat_book_id.get_special_taxes_dic()[
|
|
333
422
|
tax_line.special_tax_id.id
|
|
@@ -366,18 +366,18 @@ ul.auto-toc {
|
|
|
366
366
|
<a class="reference external image-reference" href="https://odoo-community.org/get-involved?utm_source=readme">
|
|
367
367
|
<img alt="Odoo Community Association" src="https://odoo-community.org/readme-banner-image" />
|
|
368
368
|
</a>
|
|
369
|
-
<div class="section" id="
|
|
370
|
-
<h1>
|
|
369
|
+
<div class="section" id="libros-registro-del-iva-y-del-irpf">
|
|
370
|
+
<h1>Libros registro del IVA y del IRPF</h1>
|
|
371
371
|
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
372
372
|
!! This file is generated by oca-gen-addon-readme !!
|
|
373
373
|
!! changes will be overwritten. !!
|
|
374
374
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
375
|
-
!! source digest: sha256:
|
|
375
|
+
!! source digest: sha256:c8f8ebdce0bb4bd0ca6a82f3deaca17349e4b5cb15737855e91697344f6b38f2
|
|
376
376
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
|
377
377
|
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.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/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/l10n-spain/tree/16.0/l10n_es_vat_book"><img alt="OCA/l10n-spain" src="https://img.shields.io/badge/github-OCA%2Fl10n--spain-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/l10n-spain-16-0/l10n-spain-16-0-l10n_es_vat_book"><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-spain&target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
|
378
|
-
<p>Módulo que calcula
|
|
379
|
-
<p>Esto módulo introduce el menú “
|
|
380
|
-
|
|
378
|
+
<p>Módulo que calcula los libros de IVA e IRPF español.</p>
|
|
379
|
+
<p>Esto módulo introduce el menú “Libros de IVA y del IRPF” en Contabilidad -> Informe
|
|
380
|
+
-> Declaraciones AEAT.</p>
|
|
381
381
|
<p>Es posible visualizar e imprimir por separado:</p>
|
|
382
382
|
<ul class="simple">
|
|
383
383
|
<li>Libro Registro de Facturas Emitidas</li>
|
|
@@ -446,6 +446,9 @@ informado siguiendo lo especificado en el formato BOE.</p>
|
|
|
446
446
|
<ul class="simple">
|
|
447
447
|
<li>Criterio de caja</li>
|
|
448
448
|
<li>Regímenes especiales de seguros, de agencias de viaje o de bienes usados.</li>
|
|
449
|
+
<li>Clave de operación.</li>
|
|
450
|
+
<li>Deducible en periodo posterior.</li>
|
|
451
|
+
<li>Actividad</li>
|
|
449
452
|
</ul>
|
|
450
453
|
</div>
|
|
451
454
|
<div class="section" id="bug-tracker">
|
|
@@ -476,6 +479,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
|
|
|
476
479
|
<li>Pedro M. Baeza</li>
|
|
477
480
|
<li>Carlos Dauden</li>
|
|
478
481
|
<li>Ernesto Tejeda</li>
|
|
482
|
+
<li>Eduardo Ezerouali</li>
|
|
479
483
|
</ul>
|
|
480
484
|
</li>
|
|
481
485
|
<li>Omar Castiñeira <<a class="reference external" href="mailto:omar@comunitea.com">omar@comunitea.com</a>></li>
|
|
@@ -27,6 +27,7 @@ class TestL10nEsAeatVatBookBase(TestL10nEsAeatModBase):
|
|
|
27
27
|
"P_REQ05": (270, 1.35),
|
|
28
28
|
"P_REQ014": (280, 3.92),
|
|
29
29
|
"P_REQ52": (290, 15.08),
|
|
30
|
+
"P_IRPF19": (1024, 194.56),
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
|
|
@@ -77,7 +78,7 @@ class TestL10nEsAeatVatBook(TestL10nEsAeatVatBookBase):
|
|
|
77
78
|
self.assertEqual(line.base_amount, 0.0)
|
|
78
79
|
self.assertEqual(line.tax_amount, 0.0)
|
|
79
80
|
# Check tax summary for received invoices
|
|
80
|
-
self.assertEqual(len(vat_book.received_tax_summary_ids),
|
|
81
|
+
self.assertEqual(len(vat_book.received_tax_summary_ids), 7)
|
|
81
82
|
rec_summaries = sorted(
|
|
82
83
|
vat_book.received_tax_summary_ids,
|
|
83
84
|
key=lambda line: line.tax_amount,
|
|
@@ -107,6 +108,10 @@ class TestL10nEsAeatVatBook(TestL10nEsAeatVatBookBase):
|
|
|
107
108
|
line = rec_summaries[5]
|
|
108
109
|
self.assertAlmostEqual(line.base_amount, 270)
|
|
109
110
|
self.assertAlmostEqual(line.tax_amount, 1.35)
|
|
111
|
+
# P_IRPF19 - 19% Impuesto sobre la resta fisica
|
|
112
|
+
line = rec_summaries[6]
|
|
113
|
+
self.assertAlmostEqual(line.base_amount, 1024)
|
|
114
|
+
self.assertAlmostEqual(line.tax_amount, -194.56)
|
|
110
115
|
# Let's dig into this tax detail for checking the deductible amount
|
|
111
116
|
tax_line = vat_book.received_line_ids.tax_line_ids.filtered(
|
|
112
117
|
lambda x: "account_tax_template_p_iva0_nd" in x.tax_id.get_external_id()
|
|
@@ -93,6 +93,9 @@
|
|
|
93
93
|
</page>
|
|
94
94
|
</notebook>
|
|
95
95
|
</xpath>
|
|
96
|
+
<field name="period_type" position="after">
|
|
97
|
+
<field name="vat_settlement_period" />
|
|
98
|
+
</field>
|
|
96
99
|
</field>
|
|
97
100
|
</record>
|
|
98
101
|
<record id="l10n_es_vat_book_action" model="ir.actions.act_window">
|
|
@@ -121,7 +124,7 @@
|
|
|
121
124
|
id="menu_vat_book_report"
|
|
122
125
|
parent="l10n_es_aeat.menu_root_aeat"
|
|
123
126
|
action="l10n_es_vat_book_action"
|
|
124
|
-
name="
|
|
127
|
+
name="Libros del IVA y del IRPF"
|
|
125
128
|
/>
|
|
126
129
|
<!-- sequence="340" -->
|
|
127
130
|
</odoo>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: odoo-addon-l10n_es_vat_book
|
|
3
|
-
Version: 16.0.2.0
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 16.0.2.1.0
|
|
4
|
+
Summary: Libros registro del IVA y del IRPF
|
|
5
5
|
Home-page: https://github.com/OCA/l10n-spain
|
|
6
6
|
Author: PRAXYA, ForgeFlow, Tecnativa, Odoo Community Association (OCA)
|
|
7
7
|
Author-email: support@odoo-community.org
|
|
@@ -19,16 +19,16 @@ Requires-Dist: odoo<16.1dev,>=16.0a
|
|
|
19
19
|
:target: https://odoo-community.org/get-involved?utm_source=readme
|
|
20
20
|
:alt: Odoo Community Association
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
==================================
|
|
23
|
+
Libros registro del IVA y del IRPF
|
|
24
|
+
==================================
|
|
25
25
|
|
|
26
26
|
..
|
|
27
27
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
28
28
|
!! This file is generated by oca-gen-addon-readme !!
|
|
29
29
|
!! changes will be overwritten. !!
|
|
30
30
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
31
|
-
!! source digest: sha256:
|
|
31
|
+
!! source digest: sha256:c8f8ebdce0bb4bd0ca6a82f3deaca17349e4b5cb15737855e91697344f6b38f2
|
|
32
32
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
33
33
|
|
|
34
34
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -49,10 +49,10 @@ Libro de IVA
|
|
|
49
49
|
|
|
50
50
|
|badge1| |badge2| |badge3| |badge4| |badge5|
|
|
51
51
|
|
|
52
|
-
Módulo que calcula
|
|
52
|
+
Módulo que calcula los libros de IVA e IRPF español.
|
|
53
53
|
|
|
54
|
-
Esto módulo introduce el menú "
|
|
55
|
-
Declaraciones AEAT
|
|
54
|
+
Esto módulo introduce el menú "Libros de IVA y del IRPF" en Contabilidad -\> Informe
|
|
55
|
+
-\> Declaraciones AEAT.
|
|
56
56
|
|
|
57
57
|
Es posible visualizar e imprimir por separado:
|
|
58
58
|
|
|
@@ -117,6 +117,9 @@ Funcionalidades del Libro Registro de IVA no incluídas por el momento:
|
|
|
117
117
|
|
|
118
118
|
* Criterio de caja
|
|
119
119
|
* Regímenes especiales de seguros, de agencias de viaje o de bienes usados.
|
|
120
|
+
* Clave de operación.
|
|
121
|
+
* Deducible en periodo posterior.
|
|
122
|
+
* Actividad
|
|
120
123
|
|
|
121
124
|
Bug Tracker
|
|
122
125
|
===========
|
|
@@ -149,6 +152,7 @@ Contributors
|
|
|
149
152
|
* Pedro M. Baeza
|
|
150
153
|
* Carlos Dauden
|
|
151
154
|
* Ernesto Tejeda
|
|
155
|
+
* Eduardo Ezerouali
|
|
152
156
|
* Omar Castiñeira <omar@comunitea.com>
|
|
153
157
|
* Fernando La Chica <fernandolachica@gmail.com>
|
|
154
158
|
* Victor Garcia <victor.garcia@kayuulab.com>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
odoo/addons/l10n_es_vat_book/README.rst,sha256=
|
|
1
|
+
odoo/addons/l10n_es_vat_book/README.rst,sha256=RqaXC5HdxjAvHlRZ5rl_MWQaBeFXGGKr_apaMu5iT6c,5479
|
|
2
2
|
odoo/addons/l10n_es_vat_book/__init__.py,sha256=RYGen4VvN9c8GXvMfZMuO7ERiyRCUJfuAbgo0aC3DEU,42
|
|
3
|
-
odoo/addons/l10n_es_vat_book/__manifest__.py,sha256=
|
|
4
|
-
odoo/addons/l10n_es_vat_book/data/aeat_vat_book_map_data.xml,sha256=
|
|
3
|
+
odoo/addons/l10n_es_vat_book/__manifest__.py,sha256=dVZrHmO1ta88TA7hXcMTqloXH9_8TYWKQIWxWmOJYww,1344
|
|
4
|
+
odoo/addons/l10n_es_vat_book/data/aeat_vat_book_map_data.xml,sha256=06OvS4sT8Y2mcN5dP7v_PQxw_jHwJJv1fdSfFdvUNxc,13717
|
|
5
5
|
odoo/addons/l10n_es_vat_book/i18n/bg.po,sha256=UpA4gRrxJVLMfVS3O6h5cJUUa5rGVs7QuDm6w3vSUq8,35992
|
|
6
6
|
odoo/addons/l10n_es_vat_book/i18n/ca.po,sha256=VKPE69I3FzMQTwi14NhQTHEk9f6HcuiVia4N5sR8I-A,41569
|
|
7
7
|
odoo/addons/l10n_es_vat_book/i18n/cs.po,sha256=Z54o4KbZ-auf5XAbksSvKtKpRnH1eAHqX1YTZRHVraw,35910
|
|
@@ -13,7 +13,7 @@ odoo/addons/l10n_es_vat_book/i18n/eu.po,sha256=v3Cy4v9yfuhlhhCJj0KpVO5KC_PnsOokh
|
|
|
13
13
|
odoo/addons/l10n_es_vat_book/i18n/fr.po,sha256=GV3o6XGLe821B4dZO41oL4eeKZ1RclAGMUc6PMKLfTk,35896
|
|
14
14
|
odoo/addons/l10n_es_vat_book/i18n/gl.po,sha256=bGaMoTHsxjX7iQG6h3pScvcNueDnlN7vvDLT5f1h8D4,35959
|
|
15
15
|
odoo/addons/l10n_es_vat_book/i18n/hr.po,sha256=AVm1fgYxYUkWwdELJWXBtuKrXijeysnRUNpViNkK2rM,35942
|
|
16
|
-
odoo/addons/l10n_es_vat_book/i18n/l10n_es_vat_book.pot,sha256=
|
|
16
|
+
odoo/addons/l10n_es_vat_book/i18n/l10n_es_vat_book.pot,sha256=J3Gu3f1dcdS_favKJytQkoQCT4BgZp2vxBPfLJVCTX8,35985
|
|
17
17
|
odoo/addons/l10n_es_vat_book/i18n/nl.po,sha256=URHn9264MyfxQfU8EaEV_rAdBkW0H0gTIIRV_XHY5wY,35894
|
|
18
18
|
odoo/addons/l10n_es_vat_book/i18n/pl.po,sha256=exSDDscqM8rZJDRHLm5Kx6TX7XkU7vO5TVGZgIBLrpM,36050
|
|
19
19
|
odoo/addons/l10n_es_vat_book/i18n/pt.po,sha256=sS4FJNmytAFkjIi0BCjr8RSIxj3lanPo1l_sYYBZ4Q8,35907
|
|
@@ -26,36 +26,36 @@ odoo/addons/l10n_es_vat_book/i18n/vi.po,sha256=IZ3miUJaRO-ZSr7R-U95hNiZtkt68fjpF
|
|
|
26
26
|
odoo/addons/l10n_es_vat_book/migrations/16.0.2.0.0/post-migration.py,sha256=QRoxJbbiygJ1P0Q3QVlzP6ZeVMxQfcUIf5BnpRqwJng,283
|
|
27
27
|
odoo/addons/l10n_es_vat_book/models/__init__.py,sha256=V0ONDc9wKn8JF0Soh2NCORHEAQ7EcOn16SNkxjA50WU,226
|
|
28
28
|
odoo/addons/l10n_es_vat_book/models/aeat_vat_book_map_line.py,sha256=IWdvWME1lnp4WBg93duQGkwr6Zpy9wE5wM0MQ5A1Q24,1437
|
|
29
|
-
odoo/addons/l10n_es_vat_book/models/l10n_es_vat_book.py,sha256=
|
|
30
|
-
odoo/addons/l10n_es_vat_book/models/l10n_es_vat_book_line.py,sha256=
|
|
29
|
+
odoo/addons/l10n_es_vat_book/models/l10n_es_vat_book.py,sha256=3jTZEB89GPBkCgrzak7kzISyO1uJu6oUvyN62M40qOE,22344
|
|
30
|
+
odoo/addons/l10n_es_vat_book/models/l10n_es_vat_book_line.py,sha256=4nWchnxlYyD45x5tD4XU0jhymMNTlCE0YvYQbv35Mzg,2481
|
|
31
31
|
odoo/addons/l10n_es_vat_book/models/l10n_es_vat_book_line_tax.py,sha256=Uoid5DEQc07Bz5r7JqfKbkd91LGqR_1tsfq1VXkaSQw,2440
|
|
32
32
|
odoo/addons/l10n_es_vat_book/models/l10n_es_vat_book_summary.py,sha256=jKvai8td7NQwT2suuY-dA1AfQxRvM6VBIVuHZnfwSrY,1208
|
|
33
33
|
odoo/addons/l10n_es_vat_book/models/l10n_es_vat_book_tax_summary.py,sha256=No6PJ34A-V16ij_1h5zqsGI6wpg1i-g57ZQX_R8YyY8,1260
|
|
34
34
|
odoo/addons/l10n_es_vat_book/readme/CONFIGURE.rst,sha256=p0gkMvzeKo8w5Gjz4rVE5iuQx2gd-sd9nChaeUs45fI,348
|
|
35
|
-
odoo/addons/l10n_es_vat_book/readme/CONTRIBUTORS.rst,sha256=
|
|
36
|
-
odoo/addons/l10n_es_vat_book/readme/DESCRIPTION.rst,sha256=
|
|
35
|
+
odoo/addons/l10n_es_vat_book/readme/CONTRIBUTORS.rst,sha256=w1cTtiwV_HIDETbZXoH2L7fEa95QXSJCSKJHCjQbBoU,556
|
|
36
|
+
odoo/addons/l10n_es_vat_book/readme/DESCRIPTION.rst,sha256=M6y3oJ8y9Zuhl8oKrDyvm7By6-mya_4jrAUfbMs41n4,478
|
|
37
37
|
odoo/addons/l10n_es_vat_book/readme/INSTALL.rst,sha256=1TNDm0rcwK_MCjZJ8Lmu1Ua3OXI2Ri4OuTmtXDGJ8KQ,580
|
|
38
|
-
odoo/addons/l10n_es_vat_book/readme/ROADMAP.rst,sha256=
|
|
38
|
+
odoo/addons/l10n_es_vat_book/readme/ROADMAP.rst,sha256=dZ-2DOOpRMy6cgVhwHWrzjRjvIaF8GXga4tW-z1rzyA,237
|
|
39
39
|
odoo/addons/l10n_es_vat_book/readme/USAGE.rst,sha256=GJzyBMLql5WxrlQDRzb1VEK2fo7momxhEH_KSKEtxlY,220
|
|
40
40
|
odoo/addons/l10n_es_vat_book/report/__init__.py,sha256=QS0o-fQFNABxF_-bBmduhokP3PWyj7GhHU2mEeGdKXI,28
|
|
41
41
|
odoo/addons/l10n_es_vat_book/report/common_templates.xml,sha256=bGTZrPV2YG8G6p7YSr3J-6shOxAT10EZqaQeKBuylFg,10054
|
|
42
42
|
odoo/addons/l10n_es_vat_book/report/report_views.xml,sha256=CiXGZY8KFwZFqAxjWMYWXIR0iUSBxaS67eCl9lMxAQk,2277
|
|
43
43
|
odoo/addons/l10n_es_vat_book/report/vat_book_invoices_issued.xml,sha256=9RnQeHVKFBXG2hQH-Vf41oHs1yrz2sknaj4bDhKrs7Y,4127
|
|
44
44
|
odoo/addons/l10n_es_vat_book/report/vat_book_invoices_received.xml,sha256=l43OPxfR2IlVACmyRWgEYp7x62Q0k9bQG7jdEFwjwIs,4121
|
|
45
|
-
odoo/addons/l10n_es_vat_book/report/vat_book_xlsx.py,sha256=
|
|
45
|
+
odoo/addons/l10n_es_vat_book/report/vat_book_xlsx.py,sha256=ryqTddQupZ8gVHZVreUKcg5QqsSePJ95X5Bp19VD9uE,20002
|
|
46
46
|
odoo/addons/l10n_es_vat_book/report/vat_book_xlsx.xml,sha256=sZd6sU-mnZUN-odM8R5MHtt6XfuXkVxPEkyP8XjJMf8,576
|
|
47
47
|
odoo/addons/l10n_es_vat_book/security/ir.model.access.csv,sha256=D-VRSm4gZ7A0LOlIH9JL-EXkH7EzbubObuFL634GuUs,871
|
|
48
48
|
odoo/addons/l10n_es_vat_book/security/ir_rule.xml,sha256=4HkdO_WPIAK6hXcVUIFTLmzl0af-tVplhO-o2Xsic1M,521
|
|
49
49
|
odoo/addons/l10n_es_vat_book/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
|
50
|
-
odoo/addons/l10n_es_vat_book/static/description/index.html,sha256=
|
|
50
|
+
odoo/addons/l10n_es_vat_book/static/description/index.html,sha256=fnQxTg1nMGgYLcyaxtd4GkskMip7FF8VSi34LuOa9S0,16809
|
|
51
51
|
odoo/addons/l10n_es_vat_book/tests/__init__.py,sha256=4dynCSzE14Nz6hAqV9vEmx8lEt3Byn-gqNKA0-wj7uc,41
|
|
52
|
-
odoo/addons/l10n_es_vat_book/tests/test_l10n_es_aeat_vat_book.py,sha256=
|
|
52
|
+
odoo/addons/l10n_es_vat_book/tests/test_l10n_es_aeat_vat_book.py,sha256=Bq1c4Ggs19z9_4h0-B8hLcurJ6uQ8VqvJmT-jyRw_bk,6212
|
|
53
53
|
odoo/addons/l10n_es_vat_book/views/aeat_vat_book_map_view.xml,sha256=57r8qyI1KZCeoqDrs7bBt2K3UF85vJxi0ZXWMDUsZuc,1278
|
|
54
|
-
odoo/addons/l10n_es_vat_book/views/l10n_es_vat_book.xml,sha256=
|
|
54
|
+
odoo/addons/l10n_es_vat_book/views/l10n_es_vat_book.xml,sha256=pA4Qi8JSf2OXP7O9JyqU5LLHNo4Qe-6rVhP1NWlLeu0,5794
|
|
55
55
|
odoo/addons/l10n_es_vat_book/views/l10n_es_vat_book_line.xml,sha256=DyJY5YXkzqNjepNI88FKklb-DZs-Kg2Fn5-rfXdWevI,4760
|
|
56
56
|
odoo/addons/l10n_es_vat_book/views/l10n_es_vat_book_summary.xml,sha256=PTX2BDmnE6bIZjlMlRH6R479DdZgDPzG0WO_e-iC2gU,1333
|
|
57
57
|
odoo/addons/l10n_es_vat_book/views/l10n_es_vat_book_tax_summary.xml,sha256=HGDXXDWt3hVT3HEd-QXg_w9DGsiiZ_BDBG1YJUtVZ4Y,2086
|
|
58
|
-
odoo_addon_l10n_es_vat_book-16.0.2.0.
|
|
59
|
-
odoo_addon_l10n_es_vat_book-16.0.2.0.
|
|
60
|
-
odoo_addon_l10n_es_vat_book-16.0.2.0.
|
|
61
|
-
odoo_addon_l10n_es_vat_book-16.0.2.0.
|
|
58
|
+
odoo_addon_l10n_es_vat_book-16.0.2.1.0.dist-info/METADATA,sha256=j2EK_7H4nJxkHE-4itHIVeoohxIFNZzc3BM72L-__lw,6133
|
|
59
|
+
odoo_addon_l10n_es_vat_book-16.0.2.1.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
60
|
+
odoo_addon_l10n_es_vat_book-16.0.2.1.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
|
|
61
|
+
odoo_addon_l10n_es_vat_book-16.0.2.1.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|