From 6ad62565de8058af0734b10daddb5005f6d4730e Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Fri, 10 Jun 2016 12:27:56 +0200 Subject: [PATCH 01/46] =?UTF-8?q?[ADD]=20l10n=5Fes=5Faeat=5Fmod123:=20Pres?= =?UTF-8?q?entaci=C3=B3n=20del=20Modelo=20AEAT=20123?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ================================ Presentación del Modelo AEAT 123 ================================ Modelo 123 de la AEAT. Retenciones e ingresos a cuenta del Impuesto sobre la Renta de las Personas Físicas, Impuesto sobre Sociedades y del Impuesto sobre la Renta de no Residentes (establecimientos permanentes). Determinados rendimientos del capital mobiliario o determinadas rentas. Este modelo tiene su utilidad sobre todo en préstamos entre empresas o particulares, o financiaciones recibidas por ENISA (Empresa Nacional de Innovación) o CDTI (Centro para el Desarrollo Tecnológico Industrial). Otra utilidad que se le da es para las retenciones en los repartos de dividendos. El modelo se presentará mensualmente para grandes empresas, y mensualmente para el resto, por parte de aquellas empresas que deban abonar intereses de esos préstamos. Instalación =========== Este módulo depende del módulo _l10n_es_ que está en este mismo repositorio (pero que debe tener más prioridad que el de Odoo base), con la versión mínima 5.4. Para que el módulo funcione, el plan de cuentas debe estar actualizado. Utilice _account_chart_update_ para ello. Uso === Para introducir datos válidos para el modelo: * Realizar una factura de proveedor de los intereses cobrados por la empresa o particular prestatario con impuesto "Retenciones 21% (préstamos)". * O también puede realizar una factura de proveedor del reparto de dividendos con el impuesto "Retenciones 19% (dividendos)". * Validarla. Para crear una declaración del modelo: * Ir a Contabilidad > Informe > Informes legales > Declaraciones AEAT > Modelo 123. * Pulsar en el botón "Crear". * Seleccionar el ejercicio fiscal y el tipo de período. Los periodos incluidos se calculan automáticamente. * Seleccionar el tipo de declaración. * Rellenar el teléfono, necesario para la exportacion BOE. * Guardar y pulsar en el botón "Calcular". * Cuando revise los valores, pulse en el botón "Confirmar". * Se puede exportar la declaración en formato BOE para presentarla telemáticamente en el portal de la AEAT --- l10n_es_aeat_mod123/README.rst | 84 ++++ l10n_es_aeat_mod123/__init__.py | 4 + l10n_es_aeat_mod123/__openerp__.py | 24 + .../data/aeat_export_mod123_data.xml | 444 ++++++++++++++++++ l10n_es_aeat_mod123/i18n/es.po | 409 ++++++++++++++++ l10n_es_aeat_mod123/models/__init__.py | 4 + l10n_es_aeat_mod123/models/mod123.py | 109 +++++ .../security/ir.model.access.csv | 2 + .../static/description/icon.png | Bin 0 -> 6065 bytes .../static/description/icon_source.svg | 99 ++++ l10n_es_aeat_mod123/views/mod123_view.xml | 114 +++++ 11 files changed, 1293 insertions(+) create mode 100644 l10n_es_aeat_mod123/README.rst create mode 100644 l10n_es_aeat_mod123/__init__.py create mode 100644 l10n_es_aeat_mod123/__openerp__.py create mode 100644 l10n_es_aeat_mod123/data/aeat_export_mod123_data.xml create mode 100644 l10n_es_aeat_mod123/i18n/es.po create mode 100644 l10n_es_aeat_mod123/models/__init__.py create mode 100644 l10n_es_aeat_mod123/models/mod123.py create mode 100644 l10n_es_aeat_mod123/security/ir.model.access.csv create mode 100644 l10n_es_aeat_mod123/static/description/icon.png create mode 100644 l10n_es_aeat_mod123/static/description/icon_source.svg create mode 100644 l10n_es_aeat_mod123/views/mod123_view.xml diff --git a/l10n_es_aeat_mod123/README.rst b/l10n_es_aeat_mod123/README.rst new file mode 100644 index 00000000000..62b157be48f --- /dev/null +++ b/l10n_es_aeat_mod123/README.rst @@ -0,0 +1,84 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +================================ +Presentación del Modelo AEAT 123 +================================ + +Modelo 123 de la AEAT. Retenciones e ingresos a cuenta del Impuesto sobre la +Renta de las Personas Físicas, Impuesto sobre Sociedades y del Impuesto sobre +la Renta de no Residentes (establecimientos permanentes). Determinados +rendimientos del capital mobiliario o determinadas rentas. + +Este modelo tiene su utilidad sobre todo en préstamos entre empresas o +particulares, o financiaciones recibidas por ENISA (Empresa Nacional de +Innovación) o CDTI (Centro para el Desarrollo Tecnológico Industrial). + +Otra utilidad que se le da es para las retenciones en los repartos de +dividendos. + +El modelo se presentará mensualmente para grandes empresas, y mensualmente +para el resto, por parte de aquellas empresas que deban abonar intereses de +esos préstamos. + +Instalación +=========== + +Este módulo depende del módulo _l10n_es_ que está en este mismo repositorio +(pero que debe tener más prioridad que el de Odoo base), con la versión mínima +5.4. Para que el módulo funcione, el plan de cuentas debe estar actualizado. +Utilice _account_chart_update_ para ello. + +Uso +=== + +Para introducir datos válidos para el modelo: + +#. Realizar una factura de proveedor de los intereses cobrados por la empresa + o particular prestatario con impuesto "Retenciones 21% (préstamos)". +#. O también puede realizar una factura de proveedor del reparto de dividendos + con el impuesto "Retenciones 19% (dividendos)". +#. Validarla. + +Para crear una declaración del modelo: + +#. Ir a Contabilidad > Informe > Informes legales > Declaraciones AEAT > + Modelo 123. +#. Pulsar en el botón "Crear". +#. Seleccionar el ejercicio fiscal y el tipo de período. Los periodos incluidos + se calculan automáticamente. +#. Seleccionar el tipo de declaración. +#. Rellenar el teléfono, necesario para la exportacion BOE. +#. Guardar y pulsar en el botón "Calcular". +#. Cuando revise los valores, pulse en el botón "Confirmar". +#. Se puede exportar la declaración en formato BOE para presentarla + telemáticamente en el portal de la AEAT + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Pruébalo en Runbot + :target: https://runbot.odoo-community.org/runbot/189/8.0 + + +Créditos +======== + +Contribuidores +-------------- + +* Pedro M. Baeza + +Maintainer +---------- + +.. image:: http://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: http://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit http://odoo-community.org. diff --git a/l10n_es_aeat_mod123/__init__.py b/l10n_es_aeat_mod123/__init__.py new file mode 100644 index 00000000000..ec50cfc0f30 --- /dev/null +++ b/l10n_es_aeat_mod123/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import models diff --git a/l10n_es_aeat_mod123/__openerp__.py b/l10n_es_aeat_mod123/__openerp__.py new file mode 100644 index 00000000000..30bb9c358e7 --- /dev/null +++ b/l10n_es_aeat_mod123/__openerp__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# 2016 Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + 'name': 'AEAT modelo 123', + 'version': '8.0.1.0.0', + 'category': "Localisation/Accounting", + 'author': "Tecnativa, " + "Spanish Localization Team, " + "Odoo Community Association (OCA)", + 'website': "https://github.com/OCA/l10n-spain", + 'license': 'AGPL-3', + 'depends': [ + 'l10n_es', + 'l10n_es_aeat', + ], + 'data': [ + 'data/aeat_export_mod123_data.xml', + 'views/mod123_view.xml', + 'security/ir.model.access.csv', + ], + 'installable': True, +} diff --git a/l10n_es_aeat_mod123/data/aeat_export_mod123_data.xml b/l10n_es_aeat_mod123/data/aeat_export_mod123_data.xml new file mode 100644 index 00000000000..00af4ae2157 --- /dev/null +++ b/l10n_es_aeat_mod123/data/aeat_export_mod123_data.xml @@ -0,0 +1,444 @@ + + + + + + Exportación modelo 123 2016 + 123 + + + + 1 + + Constante: <T + <T + string + 2 + left + + + + 2 + + Constante: 123 + 123 + string + 3 + left + + + + 3 + + Constante: 01 + 01 + string + 2 + left + + + + 4 + + Constante: 000> + 000> + string + 4 + left + + + + 5 + + Indicador de página complementaria: En blanco + + string + 1 + left + + + + 6 + + Tipo de declaración + ${object.tipo_declaracion} + string + 1 + left + + + + 7 + + Identificación: NIF + ${object.company_vat} + string + 9 + left + + + + 8 + + Identificación: Denominación o Apellidos + ${object.company_id.name} + string + 60 + left + + + + 9 + + Identificación: Nombre + ${object.company_id.name if object.company_vat[0].isdigit() else ''} + string + 20 + left + + + + 10 + + Identificación: Ejercicio + ${object.fiscalyear_id.date_start[:4]} + string + 4 + left + + + + 11 + + Identificación: Periodo + ${object.period_type} + string + 2 + left + + + + 12 + + Liquidación(3). Retenciones e ingresos a cuenta. Número perceptores [01] + ${object.casilla_01} + integer + 15 + right + + + + 13 + + Liquidación(3). Retenciones e ingresos a cuenta. Base retenciones e ingresos a cuenta [02] + ${object.casilla_02} + float + + 17 + 2 + right + + + + 14 + + Liquidación(3). Retenciones e ingresos a cuenta. Retenciones e ingresos a cuenta, [03] + ${object.casilla_03} + float + + 17 + 2 + right + + + + 15 + + Liquidación(3). Periodificación. Ingresos ejercicios anteriores. [04] + ${object.casilla_04} + float + + 17 + 2 + right + + + + 16 + + Liquidación(3). Periodificación. Regularización. [05] + ${object.casilla_05} + float + + 17 + 2 + right + + + + 17 + + Liquidación(3). Total liquidación. Suma de retenciones e ingresos a cuenta y regularización. [03] + [05] + ${object.casilla_06} + float + + 17 + 2 + right + + + + 18 + + Liquidación(3). Total liquidación. Resultado de anteriores declaraciones. [07] + ${object.casilla_07} + float + + 17 + 2 + right + + + + 19 + + Liquidación(3). Total liquidación. Resultado a ingresar. [08] + ${object.casilla_08} + float + + 17 + 2 + right + + + + 20 + + Declaración complementaria + ${object.type == 'C'} + boolean + 1 + X + + left + + + + 21 + + Número de justificante de la declaración anterior + ${object.previous_number if object.type == 'C' else ''} + string + 13 + left + + + + 22 + + Domiciliación IBAN + + + string + 34 + left + + + + 23 + + Reservado AEAT + + string + 185 + left + + + + 24 + + Reservado para la Administración. Sello electronico + + string + 13 + left + + + + 25 + + Indicador de fin de registro + </T12301000> + string + 12 + left + + + + + Exportación modelo 123 2016-actualidad + 2016-01-01 + 123 + + + + + 1 + + Constante: <T + <T + string + 2 + left + + + + 2 + + Constante: 123 + 123 + string + 3 + left + + + + 3 + + Constante: 0 + 0 + string + 1 + left + + + + 4 + + Ejercicio devengo (AAAA) + ${object.fiscalyear_id.date_start[:4]} + string + 4 + left + + + + 5 + + Periodo (PP) + ${object.period_type} + string + 2 + left + + + + 6 + + Constante: 0000> + 0000> + string + 5 + left + + + + 7 + + Constante: <AUX> + <AUX> + string + 5 + left + + + + 8 + + Reservado para la Administración: Rellenar con blancos + + string + 70 + left + + + + 9 + + Versión del programa + 8.0 + string + 4 + left + + + + 10 + + Reservado para la Administración. Rellenar con blancos + + string + 4 + left + + + + 11 + + NIF Empresa Desarrollo + Odoo + string + 9 + left + + + + 12 + + Reservado para la Administración. Rellenar con blancos + + string + 213 + left + + + + 13 + + Constante: </AUX> + </AUX> + string + 6 + left + + + + 14 + + Contenido del fichero [sub01] + True + + subconfig + + + + 15 + + Constante: </T1230+Ejercicio+periodo+0000> + </T1230${object.fiscalyear_id.date_start[:4]}${object.period_type}0000> + string + 18 + left + + + + 16 + + Fin de Registro. Constante CRLF (Hexadecimal 0D0A, Decimal 1310) + ${"\r\n".encode("ascii")} + string + 2 + left + + + diff --git a/l10n_es_aeat_mod123/i18n/es.po b/l10n_es_aeat_mod123/i18n/es.po new file mode 100644 index 00000000000..96bf16913af --- /dev/null +++ b/l10n_es_aeat_mod123/i18n/es.po @@ -0,0 +1,409 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_es_aeat_mod123 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-06-10 06:48+0000\n" +"PO-Revision-Date: 2016-06-10 06:48+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: l10n_es_aeat_mod123 +#: view:l10n.es.aeat.mod123.report:l10n_es_aeat_mod123.view_l10n_es_aeat_mod123_report_form +msgid "(show move lines)" +msgstr "(mostrar apuntes)" + +#. module: l10n_es_aeat_mod123 +#: model:ir.model,name:l10n_es_aeat_mod123.model_l10n_es_aeat_mod123_report +msgid "AEAT 123 report" +msgstr "Declaración AEAT 123" + +#. module: l10n_es_aeat_mod123 +#: code:addons/l10n_es_aeat_mod123/models/mod123.py:104 +#, python-format +msgid "Account Move Lines" +msgstr "Apuntes contables" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,move_id:0 +msgid "Account entry" +msgstr "Asiento" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,allow_posting:0 +msgid "Allow posting" +msgstr "Permitir asentar" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,calculation_date:0 +msgid "Calculation date" +msgstr "Calculation date" + +#. module: l10n_es_aeat_mod123 +#: selection:l10n.es.aeat.mod123.report,state:0 +msgid "Cancelled" +msgstr "Cancelada" + +#. module: l10n_es_aeat_mod123 +#: help:l10n.es.aeat.mod123.report,casilla_01:0 +msgid "Casilla [01] Número de perceptores" +msgstr "Casilla [01] Número de perceptores" + +#. module: l10n_es_aeat_mod123 +#: help:l10n.es.aeat.mod123.report,casilla_02:0 +msgid "Casilla [02] Base de la retención y/o del ingreso a cuenta" +msgstr "Casilla [02] Base de la retención y/o del ingreso a cuenta" + +#. module: l10n_es_aeat_mod123 +#: help:l10n.es.aeat.mod123.report,casilla_03:0 +msgid "Casilla [03] Retenciones e ingresos a cuenta" +msgstr "Casilla [03] Retenciones e ingresos a cuenta" + +#. module: l10n_es_aeat_mod123 +#: help:l10n.es.aeat.mod123.report,casilla_04:0 +msgid "Casilla [04] Periodificación - Ingresos ejercicios anteriores" +msgstr "Casilla [04] Periodificación - Ingresos ejercicios anteriores" + +#. module: l10n_es_aeat_mod123 +#: help:l10n.es.aeat.mod123.report,casilla_05:0 +msgid "Casilla [05] Periodificación - Regularización" +msgstr "Casilla [05] Periodificación - Regularización" + +#. module: l10n_es_aeat_mod123 +#: help:l10n.es.aeat.mod123.report,casilla_06:0 +msgid "Casilla [06] Suma de retenciones e ingresos a cuenta y regularización, en su caso ([3] + [5])" +msgstr "Casilla [06] Suma de retenciones e ingresos a cuenta y regularización, en su caso ([3] + [5])" + +#. module: l10n_es_aeat_mod123 +#: help:l10n.es.aeat.mod123.report,casilla_07:0 +msgid "Casilla [07] A deducir (exclusivamente en caso de declaración complementaria) Resultados a ingresar de anteriores declaraciones por el mismo concepto, ejercicio y período" +msgstr "Casilla [07] A deducir (exclusivamente en caso de declaración complementaria) Resultados a ingresar de anteriores declaraciones por el mismo concepto, ejercicio y período" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,company_id:0 +msgid "Company" +msgstr "Compañía" + +#. module: l10n_es_aeat_mod123 +#: selection:l10n.es.aeat.mod123.report,type:0 +msgid "Complementary" +msgstr "Complementaria" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,counterpart_account:0 +msgid "Counterpart account" +msgstr "Cuenta contrapartida" + +#. module: l10n_es_aeat_mod123 +#: model:ir.actions.act_window,help:l10n_es_aeat_mod123.action_l10n_es_aeat_mod123_report +msgid "Crea y consulta las declaraciones del modelo 123 de la AEAT." +msgstr "Crea y consulta las declaraciones del modelo 123 de la AEAT." + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,create_uid:0 +msgid "Created by" +msgstr "Creado por" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,create_date:0 +msgid "Created on" +msgstr "Creado en" + +#. module: l10n_es_aeat_mod123 +#: selection:l10n.es.aeat.mod123.report,support_type:0 +msgid "DVD" +msgstr "DVD" + +#. module: l10n_es_aeat_mod123 +#: view:l10n.es.aeat.mod123.report:l10n_es_aeat_mod123.view_l10n_es_aeat_mod123_report_tree +msgid "Declaraciones AEAT 123" +msgstr "Declaraciones AEAT 123" + +#. module: l10n_es_aeat_mod123 +#: view:l10n.es.aeat.mod123.report:l10n_es_aeat_mod123.view_l10n_es_aeat_mod123_report_form +msgid "Declaración" +msgstr "Declaración" + +#. module: l10n_es_aeat_mod123 +#: model:ir.actions.act_window,name:l10n_es_aeat_mod123.action_l10n_es_aeat_mod123_report +msgid "Declaración AEAT 123" +msgstr "Declaración AEAT 123" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,number:0 +msgid "Declaration number" +msgstr "Nº declaración" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,display_name:0 +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: l10n_es_aeat_mod123 +#: selection:l10n.es.aeat.mod123.report,tipo_declaracion:0 +msgid "Domiciliación" +msgstr "Domiciliación" + +#. module: l10n_es_aeat_mod123 +#: selection:l10n.es.aeat.mod123.report,state:0 +msgid "Done" +msgstr "Realizada" + +#. module: l10n_es_aeat_mod123 +#: selection:l10n.es.aeat.mod123.report,state:0 +msgid "Draft" +msgstr "Borrador" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,export_config:0 +msgid "Export config" +msgstr "Configuración de exportación" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,fiscalyear_id:0 +msgid "Fiscal year" +msgstr "Ejercicio fiscal" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,contact_name:0 +msgid "Full Name" +msgstr "Nombre completo" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,id:0 +msgid "ID" +msgstr "ID" + +#. module: l10n_es_aeat_mod123 +#: selection:l10n.es.aeat.mod123.report,tipo_declaracion:0 +msgid "Ingreso" +msgstr "Ingreso" + +#. module: l10n_es_aeat_mod123 +#: selection:l10n.es.aeat.mod123.report,tipo_declaracion:0 +msgid "Ingreso a anotar en CCT" +msgstr "Ingreso a anotar en CCT" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,journal_id:0 +msgid "Journal" +msgstr "Diario" + +#. module: l10n_es_aeat_mod123 +#: help:l10n.es.aeat.mod123.report,journal_id:0 +msgid "Journal in which post the move." +msgstr "Diario en el cual registrar el asiento." + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,representative_vat:0 +msgid "L.R. VAT number" +msgstr "NIF R. L." + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,__last_update:0 +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,write_uid:0 +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,write_date:0 +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: l10n_es_aeat_mod123 +#: help:l10n.es.aeat.mod123.report,representative_vat:0 +msgid "Legal Representative VAT number." +msgstr "NIF del representante legal." + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,model:0 +msgid "Model" +msgstr "Modelo" + +#. module: l10n_es_aeat_mod123 +#: model:ir.ui.menu,name:l10n_es_aeat_mod123.menu_aeat_mod123_report +msgid "Modelo 123" +msgstr "Modelo 123" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,currency_id:0 +msgid "Moneda" +msgstr "Moneda" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,move_lines_02:0 +msgid "Move lines 02" +msgstr "Apuntes casilla 02" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,move_lines_03:0 +msgid "Move lines 03" +msgstr "Apuntes casilla 03" + +#. module: l10n_es_aeat_mod123 +#: help:l10n.es.aeat.mod123.report,contact_name:0 +msgid "Must have name and surname." +msgstr "Debe tener nombre y apellidos." + +#. module: l10n_es_aeat_mod123 +#: selection:l10n.es.aeat.mod123.report,tipo_declaracion:0 +msgid "Negativa" +msgstr "Negativa" + +#. module: l10n_es_aeat_mod123 +#: selection:l10n.es.aeat.mod123.report,type:0 +msgid "Normal" +msgstr "Normal" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,period_type:0 +msgid "Period type" +msgstr "Tipo de periodo" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,periods:0 +msgid "Period(s)" +msgstr "Periodo(s)" + +#. module: l10n_es_aeat_mod123 +#: view:l10n.es.aeat.mod123.report:l10n_es_aeat_mod123.view_l10n_es_aeat_mod123_report_form +msgid "Periodificación" +msgstr "Periodificación" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,contact_phone:0 +msgid "Phone" +msgstr "Teléfono" + +#. module: l10n_es_aeat_mod123 +#: selection:l10n.es.aeat.mod123.report,state:0 +msgid "Posted" +msgstr "Contabilizada" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,previous_number:0 +msgid "Previous declaration number" +msgstr "Nº de declaración previa" + +#. module: l10n_es_aeat_mod123 +#: selection:l10n.es.aeat.mod123.report,state:0 +msgid "Processed" +msgstr "Procesada" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,name:0 +msgid "Report identifier" +msgstr "Identificador de la declaración" + +#. module: l10n_es_aeat_mod123 +#: view:l10n.es.aeat.mod123.report:l10n_es_aeat_mod123.view_l10n_es_aeat_mod123_report_form +#: view:l10n.es.aeat.mod123.report:l10n_es_aeat_mod123.view_l10n_es_aeat_mod123_report_tree +msgid "Resultado" +msgstr "Resultado" + +#. module: l10n_es_aeat_mod123 +#: view:l10n.es.aeat.mod123.report:l10n_es_aeat_mod123.view_l10n_es_aeat_mod123_report_form +msgid "Retenciones e ingresos a cuenta" +msgstr "Retenciones e ingresos a cuenta" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,state:0 +msgid "State" +msgstr "Estado" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,type:0 +msgid "Statement Type" +msgstr "Tipo de declaración" + +#. module: l10n_es_aeat_mod123 +#: selection:l10n.es.aeat.mod123.report,type:0 +msgid "Substitutive" +msgstr "Sustitutiva" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,support_type:0 +msgid "Support Type" +msgstr "Tipo de soporte" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,tax_lines:0 +msgid "Tax lines" +msgstr "Líneas de impuesto" + +#. module: l10n_es_aeat_mod123 +#: selection:l10n.es.aeat.mod123.report,support_type:0 +msgid "Telematics" +msgstr "Telemática" + +#. module: l10n_es_aeat_mod123 +#: help:l10n.es.aeat.mod123.report,counterpart_account:0 +msgid "This account will be the counterpart for all the journal items that are regularized when posting the report." +msgstr "Esta cuenta será la contrapartida para todos los elementos del diario que están regularizados al contabilizar el informe." + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,tipo_declaracion:0 +msgid "Tipo de declaración" +msgstr "Resultado declaración" + +#. module: l10n_es_aeat_mod123 +#: view:l10n.es.aeat.mod123.report:l10n_es_aeat_mod123.view_l10n_es_aeat_mod123_report_form +msgid "Total liquidación" +msgstr "Total liquidación" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,company_vat:0 +msgid "VAT number" +msgstr "NIF" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,casilla_01:0 +msgid "[01] Número de perceptores" +msgstr "[01] Número de perceptores" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,casilla_02:0 +msgid "[02] Base retenciones" +msgstr "[02] Base retenciones" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,casilla_03:0 +msgid "[03] Retenciones" +msgstr "[03] Retenciones" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,casilla_04:0 +msgid "[04] Ingresos ejercicios anteriores" +msgstr "[04] Ingresos ejercicios anteriores" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,casilla_05:0 +msgid "[05] Regularización" +msgstr "[05] Regularización" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,casilla_06:0 +msgid "[06] Total retenciones" +msgstr "[06] Total retenciones" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,casilla_07:0 +msgid "[07] Ingresos ejercicios anteriores" +msgstr "[07] Ingresos ejercicios anteriores" + +#. module: l10n_es_aeat_mod123 +#: field:l10n.es.aeat.mod123.report,casilla_08:0 +msgid "[08] Resultado a ingresar" +msgstr "[08] Resultado a ingresar" + diff --git a/l10n_es_aeat_mod123/models/__init__.py b/l10n_es_aeat_mod123/models/__init__.py new file mode 100644 index 00000000000..c02bd4161a3 --- /dev/null +++ b/l10n_es_aeat_mod123/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import mod123 diff --git a/l10n_es_aeat_mod123/models/mod123.py b/l10n_es_aeat_mod123/models/mod123.py new file mode 100644 index 00000000000..30e0f937073 --- /dev/null +++ b/l10n_es_aeat_mod123/models/mod123.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- +# 2016 Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import fields, models, api, _ + + +class L10nEsAeatMod123Report(models.Model): + _description = 'AEAT 123 report' + _inherit = 'l10n.es.aeat.report.tax.mapping' + _name = 'l10n.es.aeat.mod123.report' + + number = fields.Char(default='123') + casilla_01 = fields.Integer( + string='[01] Número de perceptores', readonly=True, + states={'calculated': [('readonly', False)]}, + help="Casilla [01] Número de perceptores") + casilla_02 = fields.Float( + string='[02] Base retenciones', readonly=True, + states={'calculated': [('readonly', False)]}, + help="Casilla [02] Base de la retención y/o del ingreso a cuenta") + move_lines_02 = fields.Many2many( + comodel_name='account.move.line', + relation='mod123_account_move_line02_rel', + column1='mod123', column2='account_move_line') + casilla_03 = fields.Float( + string='[03] Retenciones', readonly=True, + states={'calculated': [('readonly', False)]}, + help="Casilla [03] Retenciones e ingresos a cuenta") + move_lines_03 = fields.Many2many( + comodel_name='account.move.line', + relation='mod123_account_move_line03_rel', + column1='mod123', column2='account_move_line') + casilla_04 = fields.Float( + string='[04] Ingresos ejercicios anteriores', readonly=True, + states={'calculated': [('readonly', False)]}, + help="Casilla [04] Periodificación - Ingresos ejercicios anteriores") + casilla_05 = fields.Float( + string='[05] Regularización', readonly=True, + states={'calculated': [('readonly', False)]}, + help="Casilla [05] Periodificación - Regularización") + casilla_06 = fields.Float( + string='[06] Total retenciones', readonly=True, + compute='_compute_casilla06', + help='Casilla [06] Suma de retenciones e ingresos a cuenta y ' + 'regularización, en su caso ([3] + [5])') + casilla_07 = fields.Float( + string='[07] Ingresos ejercicios anteriores', readonly=True, + states={'calculated': [('readonly', False)]}, + help="Casilla [07] A deducir (exclusivamente en caso de declaración " + "complementaria) Resultados a ingresar de anteriores " + "declaraciones por el mismo concepto, ejercicio y período") + casilla_08 = fields.Float( + string='[08] Resultado a ingresar', readonly=True, + compute='_compute_casilla08') + currency_id = fields.Many2one( + comodel_name='res.currency', string='Moneda', readonly=True, + related='company_id.currency_id', store=True) + tipo_declaracion = fields.Selection( + selection=[('I', 'Ingreso'), + ('U', 'Domiciliación'), + ('G', 'Ingreso a anotar en CCT'), + ('N', 'Negativa')], + string='Tipo de declaración', readonly=True, + states={'draft': [('readonly', False)]}, required=True) + + @api.depends('casilla_03', 'casilla_05') + def _compute_casilla06(self): + for report in self: + report.casilla_06 = self.casilla_03 + self.casilla_05 + + @api.depends('casilla_03', 'casilla_05') + def _compute_casilla08(self): + for report in self: + report.casilla_08 = self.casilla_06 + self.casilla_07 + + def __init__(self, pool, cr): + self._aeat_number = '123' + super(L10nEsAeatMod123Report, self).__init__(pool, cr) + + @api.multi + def calculate(self): + self.ensure_one() + move_lines02 = self._get_tax_code_lines( + ['RBI123'], periods=self.periods) + move_lines03 = self._get_tax_code_lines( + ['RICC123'], periods=self.periods) + self.move_lines_02 = move_lines02.ids + self.move_lines_03 = move_lines03.ids + self.casilla_02 = sum(move_lines02.mapped('tax_amount')) + self.casilla_03 = sum(move_lines03.mapped('tax_amount')) + partners = (move_lines02 + move_lines03).mapped('partner_id') + self.casilla_01 = len(set(partners.ids)) + + @api.multi + def show_move_lines(self): + move_lines = [] + if self.env.context.get('move_lines02', False): + move_lines = self.move_lines_02.ids + elif self.env.context.get('move_lines03', False): + move_lines = self.move_lines_03.ids + return { + 'type': 'ir.actions.act_window', + 'name': _('Account Move Lines'), + 'view_mode': 'tree,form', + 'view_type': 'form', + 'res_model': 'account.move.line', + 'domain': [('id', 'in', move_lines)] + } diff --git a/l10n_es_aeat_mod123/security/ir.model.access.csv b/l10n_es_aeat_mod123/security/ir.model.access.csv new file mode 100644 index 00000000000..0a38e086062 --- /dev/null +++ b/l10n_es_aeat_mod123/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_l10n_es_aeat_mod123_manager,l10n_es_aeat_mod123 manager,model_l10n_es_aeat_mod123_report,l10n_es_aeat.group_account_aeat,1,1,1,1 diff --git a/l10n_es_aeat_mod123/static/description/icon.png b/l10n_es_aeat_mod123/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3b3889c05f08093c50f74482d6020de6aedc1bb3 GIT binary patch literal 6065 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 + + + + + + + image/svg+xml + + + + + + + + + + + + + + + 123 + diff --git a/l10n_es_aeat_mod123/views/mod123_view.xml b/l10n_es_aeat_mod123/views/mod123_view.xml new file mode 100644 index 00000000000..d89daded12b --- /dev/null +++ b/l10n_es_aeat_mod123/views/mod123_view.xml @@ -0,0 +1,114 @@ + + + + + l10n_es.aeat.mod123.report.form + l10n.es.aeat.mod123.report + + + + + + + + + + + + + +