odoo-addon-l10n-es-verifactu-oca 18.0.1.2.1__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.
Files changed (78) hide show
  1. odoo/addons/l10n_es_verifactu_oca/README.rst +195 -0
  2. odoo/addons/l10n_es_verifactu_oca/__init__.py +3 -0
  3. odoo/addons/l10n_es_verifactu_oca/__manifest__.py +50 -0
  4. odoo/addons/l10n_es_verifactu_oca/data/ir_config_parameter.xml +9 -0
  5. odoo/addons/l10n_es_verifactu_oca/data/ir_cron.xml +13 -0
  6. odoo/addons/l10n_es_verifactu_oca/data/l10n.es.aeat.map.tax.line.tax.csv +50 -0
  7. odoo/addons/l10n_es_verifactu_oca/data/mail_activity_data.xml +11 -0
  8. odoo/addons/l10n_es_verifactu_oca/data/neutralize.sql +2 -0
  9. odoo/addons/l10n_es_verifactu_oca/data/template/account.fiscal.position-es_common.csv +27 -0
  10. odoo/addons/l10n_es_verifactu_oca/data/verifactu.map.csv +2 -0
  11. odoo/addons/l10n_es_verifactu_oca/data/verifactu.map.line.csv +8 -0
  12. odoo/addons/l10n_es_verifactu_oca/data/verifactu_registration_key_data.xml +205 -0
  13. odoo/addons/l10n_es_verifactu_oca/data/verifactu_tax_agency_data.xml +19 -0
  14. odoo/addons/l10n_es_verifactu_oca/hooks.py +43 -0
  15. odoo/addons/l10n_es_verifactu_oca/i18n/es.po +1682 -0
  16. odoo/addons/l10n_es_verifactu_oca/i18n/l10n_es_verifactu_oca.pot +1640 -0
  17. odoo/addons/l10n_es_verifactu_oca/migrations/18.0.1.1.0/pre-migration.py +25 -0
  18. odoo/addons/l10n_es_verifactu_oca/models/__init__.py +15 -0
  19. odoo/addons/l10n_es_verifactu_oca/models/account_chart_template.py +17 -0
  20. odoo/addons/l10n_es_verifactu_oca/models/account_fiscal_position.py +34 -0
  21. odoo/addons/l10n_es_verifactu_oca/models/account_journal.py +64 -0
  22. odoo/addons/l10n_es_verifactu_oca/models/account_move.py +631 -0
  23. odoo/addons/l10n_es_verifactu_oca/models/aeat_tax_agency.py +30 -0
  24. odoo/addons/l10n_es_verifactu_oca/models/res_company.py +48 -0
  25. odoo/addons/l10n_es_verifactu_oca/models/res_partner.py +26 -0
  26. odoo/addons/l10n_es_verifactu_oca/models/verifactu_chaining.py +37 -0
  27. odoo/addons/l10n_es_verifactu_oca/models/verifactu_developer.py +16 -0
  28. odoo/addons/l10n_es_verifactu_oca/models/verifactu_invoice_entry.py +398 -0
  29. odoo/addons/l10n_es_verifactu_oca/models/verifactu_invoice_entry_response.py +116 -0
  30. odoo/addons/l10n_es_verifactu_oca/models/verifactu_invoice_entry_response_line.py +47 -0
  31. odoo/addons/l10n_es_verifactu_oca/models/verifactu_map.py +68 -0
  32. odoo/addons/l10n_es_verifactu_oca/models/verifactu_mixin.py +485 -0
  33. odoo/addons/l10n_es_verifactu_oca/models/verifactu_registration_key.py +26 -0
  34. odoo/addons/l10n_es_verifactu_oca/readme/CONFIGURE.md +27 -0
  35. odoo/addons/l10n_es_verifactu_oca/readme/CONTRIBUTORS.md +18 -0
  36. odoo/addons/l10n_es_verifactu_oca/readme/DESCRIPTION.md +1 -0
  37. odoo/addons/l10n_es_verifactu_oca/readme/INSTALL.md +6 -0
  38. odoo/addons/l10n_es_verifactu_oca/readme/ROADMAP.md +30 -0
  39. odoo/addons/l10n_es_verifactu_oca/readme/USAGE.md +3 -0
  40. odoo/addons/l10n_es_verifactu_oca/security/ir.model.access.csv +23 -0
  41. odoo/addons/l10n_es_verifactu_oca/security/verifactu_security.xml +6 -0
  42. odoo/addons/l10n_es_verifactu_oca/static/description/icon.png +0 -0
  43. odoo/addons/l10n_es_verifactu_oca/static/description/index.html +551 -0
  44. odoo/addons/l10n_es_verifactu_oca/tests/__init__.py +2 -0
  45. odoo/addons/l10n_es_verifactu_oca/tests/common.py +281 -0
  46. odoo/addons/l10n_es_verifactu_oca/tests/json/verifactu_mocked_response_accepted_with_errors.json +35 -0
  47. odoo/addons/l10n_es_verifactu_oca/tests/json/verifactu_mocked_response_cancel.json +35 -0
  48. odoo/addons/l10n_es_verifactu_oca/tests/json/verifactu_mocked_response_cancel_incorrect.json +37 -0
  49. odoo/addons/l10n_es_verifactu_oca/tests/json/verifactu_mocked_response_cancel_with_errors.json +35 -0
  50. odoo/addons/l10n_es_verifactu_oca/tests/json/verifactu_mocked_response_correct.json +35 -0
  51. odoo/addons/l10n_es_verifactu_oca/tests/json/verifactu_mocked_response_duplicated.json +43 -0
  52. odoo/addons/l10n_es_verifactu_oca/tests/json/verifactu_mocked_response_incorrect.json +37 -0
  53. odoo/addons/l10n_es_verifactu_oca/tests/json/verifactu_out_invoice_s_iva10b_s_iva21s_dict.json +59 -0
  54. odoo/addons/l10n_es_verifactu_oca/tests/json/verifactu_out_invoice_s_iva21s_s_req52_dict.json +58 -0
  55. odoo/addons/l10n_es_verifactu_oca/tests/json/verifactu_out_refund_s_iva10b_s_iva10b_s_iva21s_dict.json +66 -0
  56. odoo/addons/l10n_es_verifactu_oca/tests/test_10n_es_verifactu.py +506 -0
  57. odoo/addons/l10n_es_verifactu_oca/tests/test_verifactu_invoice.py +348 -0
  58. odoo/addons/l10n_es_verifactu_oca/views/account_fiscal_position_view.xml +29 -0
  59. odoo/addons/l10n_es_verifactu_oca/views/account_journal_view.xml +22 -0
  60. odoo/addons/l10n_es_verifactu_oca/views/account_move_view.xml +237 -0
  61. odoo/addons/l10n_es_verifactu_oca/views/aeat_tax_agency_view.xml +31 -0
  62. odoo/addons/l10n_es_verifactu_oca/views/report_invoice.xml +53 -0
  63. odoo/addons/l10n_es_verifactu_oca/views/res_company_view.xml +50 -0
  64. odoo/addons/l10n_es_verifactu_oca/views/verifactu_chaining_view.xml +45 -0
  65. odoo/addons/l10n_es_verifactu_oca/views/verifactu_developer_view.xml +46 -0
  66. odoo/addons/l10n_es_verifactu_oca/views/verifactu_invoice_entry_response_view.xml +134 -0
  67. odoo/addons/l10n_es_verifactu_oca/views/verifactu_invoice_entry_view.xml +127 -0
  68. odoo/addons/l10n_es_verifactu_oca/views/verifactu_map_lines_view.xml +16 -0
  69. odoo/addons/l10n_es_verifactu_oca/views/verifactu_map_view.xml +54 -0
  70. odoo/addons/l10n_es_verifactu_oca/views/verifactu_registration_keys_view.xml +43 -0
  71. odoo/addons/l10n_es_verifactu_oca/wizards/__init__.py +2 -0
  72. odoo/addons/l10n_es_verifactu_oca/wizards/account_move_reversal.py +16 -0
  73. odoo/addons/l10n_es_verifactu_oca/wizards/verifactu_cancel_invoice_wizard.py +24 -0
  74. odoo/addons/l10n_es_verifactu_oca/wizards/verifactu_cancel_invoice_wizard_view.xml +35 -0
  75. odoo_addon_l10n_es_verifactu_oca-18.0.1.2.1.dist-info/METADATA +213 -0
  76. odoo_addon_l10n_es_verifactu_oca-18.0.1.2.1.dist-info/RECORD +78 -0
  77. odoo_addon_l10n_es_verifactu_oca-18.0.1.2.1.dist-info/WHEEL +5 -0
  78. odoo_addon_l10n_es_verifactu_oca-18.0.1.2.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,195 @@
1
+ .. image:: https://odoo-community.org/readme-banner-image
2
+ :target: https://odoo-community.org/get-involved?utm_source=readme
3
+ :alt: Odoo Community Association
4
+
5
+ =======================
6
+ Comunicación VERI*FACTU
7
+ =======================
8
+
9
+ ..
10
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
11
+ !! This file is generated by oca-gen-addon-readme !!
12
+ !! changes will be overwritten. !!
13
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
14
+ !! source digest: sha256:c3c2f451254cc2c78b8c6084c2aa5dcaf61491b6bcb95eedcf40dcc3a990fd0f
15
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16
+
17
+ .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
18
+ :target: https://odoo-community.org/page/development-status
19
+ :alt: Beta
20
+ .. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
21
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
22
+ :alt: License: AGPL-3
23
+ .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--spain-lightgray.png?logo=github
24
+ :target: https://github.com/OCA/l10n-spain/tree/18.0/l10n_es_verifactu_oca
25
+ :alt: OCA/l10n-spain
26
+ .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
27
+ :target: https://translation.odoo-community.org/projects/l10n-spain-18-0/l10n-spain-18-0-l10n_es_verifactu_oca
28
+ :alt: Translate me on Weblate
29
+ .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
30
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-spain&target_branch=18.0
31
+ :alt: Try me on Runboat
32
+
33
+ |badge1| |badge2| |badge3| |badge4| |badge5|
34
+
35
+ Módulo para la presentación inmediata de la facturación.
36
+
37
+ **Table of contents**
38
+
39
+ .. contents::
40
+ :local:
41
+
42
+ Installation
43
+ ============
44
+
45
+ Para instalar esté módulo necesita:
46
+
47
+ 1. Libreria Python Zeep, se puede instalar con el comando 'pip install
48
+ zeep'
49
+ 2. Libreria Python Requests, se puede instalar con el comando 'pip
50
+ install requests'
51
+
52
+ Configuration
53
+ =============
54
+
55
+ Para configurar este módulo es necesario:
56
+
57
+ 1. Acceder a Facturación/Contabilidad -> Configuración -> AEAT ->
58
+ Agencia Tributaria, podrás consultar las URLs del servicio SOAP de
59
+ Hacienda. Estas URLs pueden cambiar según comunidades
60
+ 2. El certificado enviado por la FMNT es en formato p12, este
61
+ certificado no se puede usar directamente con Zeep. Accede a
62
+ Facturación/Contabilidad -> Configuración -> AEAT -> Certificados
63
+ AEAT, y allí podrás: Subir el certificado p12 y extraer las claves
64
+ públicas y privadas con el botón "Obtener claves"
65
+ 3. Debes tener en cuenta que los certificados se alojan en una carpeta
66
+ accesible por la instalación de Odoo.
67
+ 4. Completar los datos de desarrollador y del encadenamiento a nivel de
68
+ compañía en la pestaña de VERI*FACTU.
69
+
70
+ En caso de que la obtención de claves no funcione y uses Linux, cuentas
71
+ con los siguientes comandos para tratar de solucionarlo:
72
+
73
+ - Clave pública: "openssl pkcs12 -in Certificado.p12 -nokeys -out
74
+ publicCert.crt -nodes"
75
+ - Clave privada: "openssl pkcs12 -in Certificado.p12 -nocerts -out
76
+ privateKey.pem -nodes"
77
+
78
+ 1. Establecer en las posiciones fiscales la clave de impuestos y la
79
+ clave de registro VERI*FACTU.
80
+ 2. Para aplicar las claves ejecute el asistente de actualización del
81
+ módulo accountchart_update.
82
+
83
+ Usage
84
+ =====
85
+
86
+ Cuando se valida una factura, automáticamente genera el registro de
87
+ envío para verifactu. Cada minuto se enviarán todos aquellos registros
88
+ pendientes de enviar mediante un cron.
89
+
90
+ Known issues / Roadmap
91
+ ======================
92
+
93
+ - Refactorización SII-VERI*FACTU en l10nes_aeat de los métodos que
94
+ sean comunes.
95
+ - Envío separado de la confirmación de la factura
96
+ (cron.trigger/queque.job)
97
+ - Control de errores del sistema, generar avisos. (caída de aeat,
98
+ errores de conexión, etc.)
99
+ - Posibilidad de consultar el estado de las facturas enviadas.
100
+ - Operaciones exentas y causas de exención.
101
+ - Crear un selection con todos los valores posibles de codigos de
102
+ error, para poder guardarlo y agrupar las facturas por ese código.
103
+ - Contemplar el tiempo de espera entre envíos de registros cuando
104
+ AEAT devuelve un tiempo superior a 60 segundos.
105
+ - Facturación de terceros o de destinatarios (autofacturación), con
106
+ los datos de los mismos.
107
+
108
+ CASOS NO CUBIERTOS: 1 - Modificación de facturas enviadas (AEAT
109
+ recomienda generar rectificativa). Según AEAT: Si los errores detectados
110
+ tras la emisión NO están contemplados en el ROF, pero afectan a campos
111
+ del registro de facturación (RF) generado al emitir la factura (que,
112
+ digamos, “no se ven” en la factura impresa, es decir, son campos
113
+ “internos”, como ciertas codificaciones tributarias), se debe corregir
114
+ la factura original (esos datos “internos” de la misma) y se debe
115
+ generar un RF de alta de subsanación de esa factura donde conste ya la
116
+ nueva información que proceda. Estos casos deberían ser MUY POCO
117
+ FRECUENTES. 2 - Anulación de facturas enviadas (AEAT recomienda generar
118
+ rectificativa). Según AEAT: "Si se considera que "toda la factura" en sí
119
+ misma está mal o no debería haberse emitido, siempre que para
120
+ solucionarlo no deba emplearse algún procedimiento (de rectificativa u
121
+ otro) previsto en el ROF, se podrá "anular" generando para ello un RF de
122
+ anulación. Estos casos deberían ser MUY POCO FRECUENTES."
123
+
124
+ Bug Tracker
125
+ ===========
126
+
127
+ Bugs are tracked on `GitHub Issues <https://github.com/OCA/l10n-spain/issues>`_.
128
+ In case of trouble, please check there if your issue has already been reported.
129
+ If you spotted it first, help us to smash it by providing a detailed and welcomed
130
+ `feedback <https://github.com/OCA/l10n-spain/issues/new?body=module:%20l10n_es_verifactu_oca%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
131
+
132
+ Do not contact contributors directly about support or help with technical issues.
133
+
134
+ Credits
135
+ =======
136
+
137
+ Authors
138
+ -------
139
+
140
+ * Aures Tic
141
+ * ForgeFlow
142
+ * Tecnativa
143
+ * Factor Libre
144
+
145
+ Contributors
146
+ ------------
147
+
148
+ - Aures TIC:
149
+
150
+ - Jose Zambudio
151
+ - Almudena de La Puente
152
+ - Anna Martínez
153
+
154
+ - ForgeFlow S.L.:
155
+
156
+ - Laura Cazorla
157
+ - Andreu Orensanz
158
+ - Jordi Ballester
159
+
160
+ - Ozono multimedia:
161
+
162
+ - Iván Antón
163
+
164
+ - SDi:
165
+
166
+ - Fernando La Chica
167
+
168
+ - Process control:
169
+
170
+ - Jorge Luis López
171
+
172
+ - Tecnativa:
173
+
174
+ - Pedro M. Baeza
175
+
176
+ - Factor Libre S.L.:
177
+
178
+ - Luis J. Salvatierra
179
+
180
+ Maintainers
181
+ -----------
182
+
183
+ This module is maintained by the OCA.
184
+
185
+ .. image:: https://odoo-community.org/logo.png
186
+ :alt: Odoo Community Association
187
+ :target: https://odoo-community.org
188
+
189
+ OCA, or the Odoo Community Association, is a nonprofit organization whose
190
+ mission is to support the collaborative development of Odoo features and
191
+ promote its widespread use.
192
+
193
+ This module is part of the `OCA/l10n-spain <https://github.com/OCA/l10n-spain/tree/18.0/l10n_es_verifactu_oca>`_ project on GitHub.
194
+
195
+ You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
@@ -0,0 +1,3 @@
1
+ from . import models
2
+ from . import wizards
3
+ from .hooks import pre_init_hook, post_init_hook
@@ -0,0 +1,50 @@
1
+ # Copyright 2024 Aures Tic - Jose Zambudio
2
+ # Copyright 2024,2025 Aures TIC - Almudena de La Puente
3
+ # Copyright 2024 FactorLibre - Aritz Olea
4
+ # Copyright 2024,2025 ForgeFlow S.L.
5
+ # Copyright 2025 Tecnativa - Pedro M. Baeza
6
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
7
+
8
+ {
9
+ "name": "Comunicación VERI*FACTU",
10
+ "version": "18.0.1.2.1",
11
+ "category": "Accounting/Localizations/EDI",
12
+ "website": "https://github.com/OCA/l10n-spain",
13
+ "author": "Aures Tic,"
14
+ "ForgeFlow,"
15
+ "Tecnativa,"
16
+ "Factor Libre,"
17
+ "Odoo Community Association (OCA)",
18
+ "license": "AGPL-3",
19
+ "installable": True,
20
+ "depends": ["account_invoice_refund_link", "l10n_es_aeat"],
21
+ "excludes": ["account_journal_restrict_mode"],
22
+ "data": [
23
+ "data/verifactu_tax_agency_data.xml",
24
+ "data/verifactu_registration_key_data.xml",
25
+ "data/l10n.es.aeat.map.tax.line.tax.csv", # should be before verifactu.map*
26
+ "data/verifactu.map.csv",
27
+ "data/verifactu.map.line.csv",
28
+ "data/ir_config_parameter.xml",
29
+ "data/ir_cron.xml",
30
+ "data/mail_activity_data.xml",
31
+ "security/verifactu_security.xml",
32
+ "security/ir.model.access.csv",
33
+ "views/aeat_tax_agency_view.xml",
34
+ "views/account_move_view.xml",
35
+ "views/account_fiscal_position_view.xml",
36
+ "views/res_company_view.xml",
37
+ "views/account_journal_view.xml",
38
+ "views/verifactu_map_view.xml",
39
+ "views/verifactu_map_lines_view.xml",
40
+ "views/verifactu_registration_keys_view.xml",
41
+ "views/verifactu_invoice_entry_view.xml",
42
+ "views/verifactu_chaining_view.xml",
43
+ "views/verifactu_developer_view.xml",
44
+ "views/report_invoice.xml",
45
+ "views/verifactu_invoice_entry_response_view.xml",
46
+ "wizards/verifactu_cancel_invoice_wizard_view.xml",
47
+ ],
48
+ "pre_init_hook": "pre_init_hook",
49
+ "post_init_hook": "post_init_hook",
50
+ }
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <!-- Copyright 2024 Almudena de La Puente <almudena@aurestic.es>
3
+ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
4
+ <odoo noupdate="1">
5
+ <record id="verifactu_batch" model="ir.config_parameter">
6
+ <field name="key">l10n_es_verifactu_oca.verifactu_batch</field>
7
+ <field name="value">1000</field>
8
+ </record>
9
+ </odoo>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <!-- Copyright 2024 Almudena de La Puente <almudena@aurestic.es>
3
+ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
4
+ <odoo noupdate="1">
5
+ <record forcecreate="True" id="invoice_entry_send_to_verifactu" model="ir.cron">
6
+ <field name="name">Send invoices to VERI*FACTU</field>
7
+ <field name="model_id" ref="model_verifactu_invoice_entry" />
8
+ <field name="state">code</field>
9
+ <field name="code">model._cron_send_documents_to_verifactu()</field>
10
+ <field name='interval_number'>1</field>
11
+ <field name='interval_type'>minutes</field>
12
+ </record>
13
+ </odoo>
@@ -0,0 +1,50 @@
1
+ id,name
2
+ s_iva21b,account_tax_template_s_iva21b
3
+ s_iva0b,account_tax_template_s_iva0b
4
+ s_iva2b,account_tax_template_s_iva2b
5
+ s_iva4b,account_tax_template_s_iva4b
6
+ s_iva5b,account_tax_template_s_iva5b
7
+ s_iva7-5b,account_tax_template_s_iva7-5b
8
+ s_iva10b,account_tax_template_s_iva10b
9
+ s_iva0_isp,account_tax_template_s_iva0_isp
10
+ s_iva_ns_b,account_tax_template_s_iva_ns_b
11
+ s_iva_e,account_tax_template_s_iva_e
12
+ s_iva0_sp_i,account_tax_template_s_iva0_sp_i
13
+ s_iva_ns,account_tax_template_s_iva_ns
14
+ s_iva21s,account_tax_template_s_iva21s
15
+ s_iva10s,account_tax_template_s_iva10s
16
+ s_iva0s,account_tax_template_s_iva0s
17
+ s_iva2s,account_tax_template_s_iva2s
18
+ s_iva4s,account_tax_template_s_iva4s
19
+ s_iva5s,account_tax_template_s_iva5s
20
+ s_iva7-5s,account_tax_template_s_iva7-5s
21
+ s_iva0_g_i,account_tax_template_s_iva0_g_i
22
+ s_iva0_g_e,account_tax_template_s_iva0_g_e
23
+ s_iva0_art22,account_tax_template_s_iva0_art22
24
+ s_iva0_art23,account_tax_template_s_iva0_art23
25
+ s_iva0_e,account_tax_template_s_iva0_e
26
+ s_iva0_nsd,account_tax_template_s_iva0_nsd
27
+ s_req52,account_tax_template_s_req52
28
+ s_req014,account_tax_template_s_req014
29
+ s_req062,account_tax_template_s_req062
30
+ s_req1,account_tax_template_s_req1
31
+ s_req05,account_tax_template_s_req05
32
+ s_req026,account_tax_template_s_req026
33
+ s_req0,account_tax_template_s_req0
34
+ s_irpf1,account_tax_template_s_irpf1
35
+ s_irpf2,account_tax_template_s_irpf2
36
+ s_irpf7,account_tax_template_s_irpf7
37
+ s_irpf9,account_tax_template_s_irpf9
38
+ s_irpf15,account_tax_template_s_irpf15
39
+ s_irpf18,account_tax_template_s_irpf18
40
+ s_irpf19,account_tax_template_s_irpf19
41
+ s_irpfnrue19,account_tax_template_s_irpf19
42
+ s_irpf19a,account_tax_template_s_irpf19a
43
+ s_irpf195a,account_tax_template_s_irpf195a
44
+ s_irpf20,account_tax_template_s_irpf20
45
+ s_irpf20a,account_tax_template_s_irpf20a
46
+ s_irpf21,account_tax_template_s_irpf21
47
+ s_irpf21a,account_tax_template_s_irpf21a
48
+ s_irpf24,account_tax_template_s_irpf24
49
+ s_irpfnrnue24,account_tax_template_s_irpf24
50
+ s_iva0_ns,account_tax_template_s_iva0_ns
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <odoo>
3
+ <record id="mail_activity_data_exception" model="mail.activity.type">
4
+ <field name="name">Exception</field>
5
+ <field name="icon">fa-exclamation-triangle</field>
6
+ <field name="sequence">5</field>
7
+ <field name="summary">Connection error with VERI*FACTU</field>
8
+ <field name="res_model">verifactu.invoice.entry.response</field>
9
+ <field name="default_user_id" ref="base.user_admin" />
10
+ </record>
11
+ </odoo>
@@ -0,0 +1,2 @@
1
+ -- DISABLE VERI*FACTU ON COMPANIES
2
+ UPDATE res_company SET verifactu_test = true;
@@ -0,0 +1,27 @@
1
+ id,verifactu_registration_key:id,verifactu_tax_key
2
+ "fp_nacional","verifactu_registration_keys_01","01"
3
+ "fp_intra","verifactu_registration_keys_01","01"
4
+ "fp_extra","verifactu_registration_keys_02","01"
5
+ "fp_not_subject_tai","verifactu_registration_keys_08","01"
6
+ "fp_recargo","verifactu_registration_keys_18","01"
7
+ "fp_recargo_isp","verifactu_registration_keys_18","01"
8
+ "fp_irpf1","verifactu_registration_keys_01","01"
9
+ "fp_irpf2","verifactu_registration_keys_01","01"
10
+ "fp_irpf7","verifactu_registration_keys_01","01"
11
+ "fp_irpf9","verifactu_registration_keys_01","01"
12
+ "fp_irpf15","verifactu_registration_keys_01","01"
13
+ "fp_irpf18","verifactu_registration_keys_01","01"
14
+ "fp_irpf19","verifactu_registration_keys_01","01"
15
+ "fp_irpf19a","verifactu_registration_keys_01","01"
16
+ "fp_irpf195a","verifactu_registration_keys_01","01"
17
+ "fp_irpf20","verifactu_registration_keys_01","01"
18
+ "fp_irpf24","verifactu_registration_keys_01","01"
19
+ "fp_irpf20a","verifactu_registration_keys_01","01"
20
+ "fp_irpf21","verifactu_registration_keys_01","01"
21
+ "fp_irpf21a","verifactu_registration_keys_01","01"
22
+ "fp_irpfnrnue24","verifactu_registration_keys_01","01"
23
+ "fp_irpfnrue19","verifactu_registration_keys_01","01"
24
+ "fp_irpfnrnue0",,"05"
25
+ "fp_ispn","verifactu_registration_keys_01","01"
26
+ "fp_reagyp_a","verifactu_registration_keys_19","01"
27
+ "fp_reagyp_gp","verifactu_registration_keys_19","01"
@@ -0,0 +1,2 @@
1
+ id,name
2
+ "verifactu_map","VERI*FACTU 1.0"
@@ -0,0 +1,8 @@
1
+ id,code,name,tax_xmlid_ids:id,verifactu_map_id:id
2
+ "verifactu_map_line_S1","S1","Operación Sujeta y No exenta - Sin inversión del sujeto pasivo.","s_iva21b,s_iva0b,s_iva2b,s_iva4b,s_iva5b,s_iva7-5b,s_iva10b,s_iva21s,s_iva10s,s_iva0s,s_iva2s,s_iva4s,s_iva5s,s_iva7-5s,s_iva0_g_i,s_iva0_sp_i,s_iva0_g_e,s_iva_e,s_iva0_e","verifactu_map"
3
+ "verifactu_map_line_S2","S2","Operación Sujeta y No exenta - Con Inversión del sujeto pasivo","s_iva0_isp","verifactu_map"
4
+ "verifactu_map_line_N1","N1","Operación No Sujeta artículo 7, 14, otros.",,"verifactu_map"
5
+ "verifactu_map_line_N2","N2","Operación No Sujeta por Reglas de localización.","s_iva_ns_b,s_iva_ns","verifactu_map"
6
+ "verifactu_map_line_RE","RE","Recargo Equivalencia","s_req52,s_req014,s_req062,s_req1,s_req05,s_req026,s_req0","verifactu_map"
7
+ "verifactu_map_line_tax_not_included","TaxNotIncludedInTotal","Impuestos no incluidos en ImporteTotal","s_irpf1,s_irpf2,s_irpf7,s_irpf9,s_irpf15,s_irpf18,s_irpf19,s_irpf19a,s_irpf195a,s_irpf20,s_irpf20a,s_irpf21,s_irpf21a,s_irpf24,s_irpfnrnue24,s_irpfnrue19","verifactu_map"
8
+ "verifactu_map_line_base_not_included","BaseNotIncludedInTotal","Bases no incluidas en ImporteTotal","s_iva0_art22,s_iva0_art23,s_iva0_g_e,s_iva0_g_i,s_iva0_nsd,s_iva0_ns","verifactu_map"
@@ -0,0 +1,205 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <!-- Copyright 2024 Almudena de La Puente <almudena@aurestic.es>
3
+ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
4
+ <odoo>
5
+ <record id="verifactu_registration_keys_01" model="verifactu.registration.key">
6
+ <field name="code">01</field>
7
+ <field name="name">Operación de régimen general</field>
8
+ <field name="verifactu_tax_key">01</field>
9
+ </record>
10
+ <record id="verifactu_registration_keys_02" model="verifactu.registration.key">
11
+ <field name="code">02</field>
12
+ <field name="name">Exportación</field>
13
+ <field name="verifactu_tax_key">01</field>
14
+ </record>
15
+ <record id="verifactu_registration_keys_03" model="verifactu.registration.key">
16
+ <field name="code">03</field>
17
+ <field
18
+ name="name"
19
+ >Operaciones a las que se aplique el régimen especial de bienes usados, objetos de arte, antigüedades y objetos de colección</field>
20
+ <field name="verifactu_tax_key">01</field>
21
+ </record>
22
+ <record id="verifactu_registration_keys_04" model="verifactu.registration.key">
23
+ <field name="code">04</field>
24
+ <field name="name">Régimen especial oro de inversión</field>
25
+ <field name="verifactu_tax_key">01</field>
26
+ </record>
27
+ <record id="verifactu_registration_keys_05" model="verifactu.registration.key">
28
+ <field name="code">05</field>
29
+ <field name="name">Régimen especial agencias de viajes</field>
30
+ <field name="verifactu_tax_key">01</field>
31
+ </record>
32
+ <record id="verifactu_registration_keys_06" model="verifactu.registration.key">
33
+ <field name="code">06</field>
34
+ <field
35
+ name="name"
36
+ >Régimen especial grupo de entidades en IVA (Nivel Avanzado)</field>
37
+ <field name="verifactu_tax_key">01</field>
38
+ </record>
39
+ <record id="verifactu_registration_keys_07" model="verifactu.registration.key">
40
+ <field name="code">07</field>
41
+ <field name="name">Régimen especial criterio de caja</field>
42
+ <field name="verifactu_tax_key">01</field>
43
+ </record>
44
+ <record id="verifactu_registration_keys_08" model="verifactu.registration.key">
45
+ <field name="code">08</field>
46
+ <field
47
+ name="name"
48
+ >Operaciones sujetas al IPSI / IGIC (Impuesto sobre la Producción, los Servicios y la Importación / Impuesto General Indirecto Canario)</field>
49
+ <field name="verifactu_tax_key">01</field>
50
+ </record>
51
+ <record id="verifactu_registration_keys_09" model="verifactu.registration.key">
52
+ <field name="code">09</field>
53
+ <field
54
+ name="name"
55
+ >Facturación de las prestaciones de servicios de agencias de viaje que actúan como mediadoras en nombre y por cuenta ajena (D.A.4ª RD1619/2012)</field>
56
+ <field name="verifactu_tax_key">01</field>
57
+ </record>
58
+ <record id="verifactu_registration_keys_10" model="verifactu.registration.key">
59
+ <field name="code">10</field>
60
+ <field
61
+ name="name"
62
+ >Cobros por cuenta de terceros de honorarios profesionales o de derechos derivados de la propiedad industrial, de autor u otros por cuenta de sus socios, asociados o colegiados efectuados por sociedades, asociaciones, colegios profesionales u otras entidades que realicen estas funciones de cobro</field>
63
+ <field name="verifactu_tax_key">01</field>
64
+ </record>
65
+ <record id="verifactu_registration_keys_11" model="verifactu.registration.key">
66
+ <field name="code">11</field>
67
+ <field name="name">Operaciones de arrendamiento de local de negocio.</field>
68
+ <field name="verifactu_tax_key">01</field>
69
+ </record>
70
+ <record id="verifactu_registration_keys_14" model="verifactu.registration.key">
71
+ <field name="code">14</field>
72
+ <field
73
+ name="name"
74
+ >Factura con IVA pendiente de devengo en certificaciones de obra cuyo destinatario sea una Administración Pública.</field>
75
+ <field name="verifactu_tax_key">01</field>
76
+ </record>
77
+ <record id="verifactu_registration_keys_15" model="verifactu.registration.key">
78
+ <field name="code">15</field>
79
+ <field
80
+ name="name"
81
+ >Factura con IVA pendiente de devengo en operaciones de tracto sucesivo</field>
82
+ <field name="verifactu_tax_key">01</field>
83
+ </record>
84
+ <record id="verifactu_registration_keys_17" model="verifactu.registration.key">
85
+ <field name="code">17</field>
86
+ <field
87
+ name="name"
88
+ >Operación acogida a alguno de los regímenes previstos en el Capítulo XI del Título IX (OSS e IOSS)</field>
89
+ <field name="verifactu_tax_key">01</field>
90
+ </record>
91
+ <record id="verifactu_registration_keys_18" model="verifactu.registration.key">
92
+ <field name="code">18</field>
93
+ <field name="name">Recargo de equivalencia.</field>
94
+ <field name="verifactu_tax_key">01</field>
95
+ </record>
96
+ <record id="verifactu_registration_keys_19" model="verifactu.registration.key">
97
+ <field name="code">19</field>
98
+ <field
99
+ name="name"
100
+ >Operaciones de actividades incluidas en el Régimen Especial de Agricultura, Ganadería y Pesca (REAGYP)</field>
101
+ <field name="verifactu_tax_key">01</field>
102
+ </record>
103
+ <record id="verifactu_registration_keys_20" model="verifactu.registration.key">
104
+ <field name="code">20</field>
105
+ <field name="name">Régimen simplificado</field>
106
+ <field name="verifactu_tax_key">01</field>
107
+ </record>
108
+
109
+ <record id="verifactu_registration_keys_igic_01" model="verifactu.registration.key">
110
+ <field name="code">01</field>
111
+ <field name="name">Operación de régimen general</field>
112
+ <field name="verifactu_tax_key">03</field>
113
+ </record>
114
+ <record id="verifactu_registration_keys_igic_02" model="verifactu.registration.key">
115
+ <field name="code">02</field>
116
+ <field name="name">Exportación</field>
117
+ <field name="verifactu_tax_key">03</field>
118
+ </record>
119
+ <record id="verifactu_registration_keys_igic_03" model="verifactu.registration.key">
120
+ <field name="code">03</field>
121
+ <field
122
+ name="name"
123
+ >Operaciones a las que se aplique el régimen especial de bienes usados, objetos de arte, antigüedades y objetos de colección</field>
124
+ <field name="verifactu_tax_key">03</field>
125
+ </record>
126
+ <record id="verifactu_registration_keys_igic_04" model="verifactu.registration.key">
127
+ <field name="code">04</field>
128
+ <field name="name">Régimen especial oro de inversión</field>
129
+ <field name="verifactu_tax_key">03</field>
130
+ </record>
131
+ <record id="verifactu_registration_keys_igic_05" model="verifactu.registration.key">
132
+ <field name="code">05</field>
133
+ <field name="name">Régimen especial agencias de viajes</field>
134
+ <field name="verifactu_tax_key">03</field>
135
+ </record>
136
+ <record id="verifactu_registration_keys_igic_06" model="verifactu.registration.key">
137
+ <field name="code">06</field>
138
+ <field
139
+ name="name"
140
+ >Régimen especial grupo de entidades en IGIC (Nivel Avanzado)</field>
141
+ <field name="verifactu_tax_key">01</field>
142
+ </record>
143
+ <record id="verifactu_registration_keys_igic_07" model="verifactu.registration.key">
144
+ <field name="code">07</field>
145
+ <field name="name">Régimen especial criterio de caja</field>
146
+ <field name="verifactu_tax_key">03</field>
147
+ </record>
148
+ <record id="verifactu_registration_keys_igic_08" model="verifactu.registration.key">
149
+ <field name="code">08</field>
150
+ <field
151
+ name="name"
152
+ >Operaciones sujetas al IPSI / IVA (Impuesto sobre la Producción, los Servicios y la Importación / Impuesto sobre el Valor Añadido).</field>
153
+ <field name="verifactu_tax_key">03</field>
154
+ </record>
155
+ <record id="verifactu_registration_keys_igic_09" model="verifactu.registration.key">
156
+ <field name="code">09</field>
157
+ <field
158
+ name="name"
159
+ >Facturación de las prestaciones de servicios de agencias de viaje que actúan como mediadoras en nombre y por cuenta ajena (D.A.4ª RD1619/2012)</field>
160
+ <field name="verifactu_tax_key">03</field>
161
+ </record>
162
+ <record id="verifactu_registration_keys_igic_10" model="verifactu.registration.key">
163
+ <field name="code">10</field>
164
+ <field
165
+ name="name"
166
+ >Cobros por cuenta de terceros de honorarios profesionales o de derechos derivados de la propiedad industrial, de autor u otros por cuenta de sus socios, asociados o colegiados efectuados por sociedades, asociaciones, colegios profesionales u otras entidades que realicen estas funciones de cobro.</field>
167
+ <field name="verifactu_tax_key">03</field>
168
+ </record>
169
+ <record id="verifactu_registration_keys_igic_11" model="verifactu.registration.key">
170
+ <field name="code">11</field>
171
+ <field name="name">Operaciones de arrendamiento de local de negocio.</field>
172
+ <field name="verifactu_tax_key">03</field>
173
+ </record>
174
+ <record id="verifactu_registration_keys_igic_14" model="verifactu.registration.key">
175
+ <field name="code">14</field>
176
+ <field
177
+ name="name"
178
+ >Factura con IGIC pendiente de devengo en certificaciones de obra cuyo destinatario sea una Administración Pública.</field>
179
+ <field name="verifactu_tax_key">03</field>
180
+ </record>
181
+ <record id="verifactu_registration_keys_igic_15" model="verifactu.registration.key">
182
+ <field name="code">15</field>
183
+ <field
184
+ name="name"
185
+ >Factura con IGIC pendiente de devengo en operaciones de tracto sucesivo.</field>
186
+ <field name="verifactu_tax_key">03</field>
187
+ </record>
188
+ <record id="verifactu_registration_keys_igic_17" model="verifactu.registration.key">
189
+ <field name="code">17</field>
190
+ <field name="name">Régimen especial de comerciante minorista</field>
191
+ <field name="verifactu_tax_key">03</field>
192
+ </record>
193
+ <record id="verifactu_registration_keys_igic_18" model="verifactu.registration.key">
194
+ <field name="code">18</field>
195
+ <field name="name">Régimen especial del pequeño empresario o profesional</field>
196
+ <field name="verifactu_tax_key">03</field>
197
+ </record>
198
+ <record id="verifactu_registration_keys_igic_19" model="verifactu.registration.key">
199
+ <field name="code">19</field>
200
+ <field
201
+ name="name"
202
+ >Operaciones interiores exentas por aplicación artículo 25 Ley 19/1994</field>
203
+ <field name="verifactu_tax_key">03</field>
204
+ </record>
205
+ </odoo>
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <!-- Copyright 2024 Jose Zambudio <jose@aurestic.es>
3
+ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
4
+ <odoo>
5
+ <record id="l10n_es_aeat.aeat_tax_agency_spain" model="aeat.tax.agency">
6
+ <field
7
+ name="verifactu_wsdl_out"
8
+ >https://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SistemaFacturacion.wsdl</field>
9
+ <field
10
+ name="verifactu_wsdl_out_test_address"
11
+ >https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP</field>
12
+ <field
13
+ name="verifactu_qr_base_url"
14
+ >https://www2.agenciatributaria.gob.es/wlpl/TIKE-CONT/ValidarQR</field>
15
+ <field
16
+ name="verifactu_qr_base_url_test_address"
17
+ >https://prewww2.aeat.es/wlpl/TIKE-CONT/ValidarQR</field>
18
+ </record>
19
+ </odoo>
@@ -0,0 +1,43 @@
1
+ # Copyright 2025 Tecnativa - Pedro M. Baeza
2
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
3
+ from odoo import tools
4
+
5
+
6
+ def pre_init_hook(env):
7
+ """Avoid the heavy compute methods, specially when account.move table is very
8
+ populated, pre-creating the columns and filling them with sane defaultes. Some of it
9
+ is done on post-init hook.
10
+ WARNING: For special cases like IGIC or other, the default value doesn't serve.
11
+ """
12
+ cr = env.cr
13
+ column_exists = tools.sql.column_exists
14
+ create_column = tools.sql.create_column
15
+ if not column_exists(cr, "account_move", "verifactu_refund_type"):
16
+ create_column(cr, "account_move", "verifactu_refund_type", "varchar")
17
+ cr.execute(
18
+ "UPDATE account_move SET verifactu_refund_type = 'I' "
19
+ "WHERE move_type = 'out_refund'"
20
+ )
21
+ if not column_exists(cr, "account_move", "verifactu_registration_key"):
22
+ create_column(cr, "account_move", "verifactu_registration_key", "int4")
23
+ # Initialization done on post-init
24
+ if not column_exists(cr, "account_move", "verifactu_tax_key"):
25
+ create_column(cr, "account_move", "verifactu_tax_key", "varchar")
26
+ cr.execute(
27
+ "UPDATE account_move SET verifactu_tax_key = '01' "
28
+ "WHERE move_type IN ('out_invoice', 'out_refund')"
29
+ )
30
+
31
+
32
+ def post_init_hook(env):
33
+ """Perform the initialization of this column once the registration keys have been
34
+ loaded.
35
+ WARNING: Only 01 case is covered here, so existing export/intra-community/other
36
+ invoices should be changed later.
37
+ """
38
+ key = env.ref("l10n_es_verifactu_oca.verifactu_registration_keys_01")
39
+ env.cr.execute(
40
+ "UPDATE account_move SET verifactu_registration_key = %s "
41
+ "WHERE move_type = 'out_refund' AND verifactu_registration_key IS NULL",
42
+ (key.id,),
43
+ )