Skip to content

Commit

Permalink
Merge PR #3071 into 16.0
Browse files Browse the repository at this point in the history
Signed-off-by pedrobaeza
  • Loading branch information
OCA-git-bot committed Jul 12, 2024
2 parents 14a84f5 + 91bdd72 commit cc124d5
Show file tree
Hide file tree
Showing 38 changed files with 2,033 additions and 0 deletions.
106 changes: 106 additions & 0 deletions l10n_es_aeat_sii_invoice_summary/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
===============================================
Envio de factura simplificada resumen TPV a SII
===============================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:4a9a04d8680d88771e58f36d551e68dfaea48d61e6880f4287e99a7f8634679b
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--spain-lightgray.png?logo=github
:target: https://github.com/OCA/l10n-spain/tree/16.0/l10n_es_aeat_sii_invoice_summary
:alt: OCA/l10n-spain
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/l10n-spain-16-0/l10n-spain-16-0-l10n_es_aeat_sii_invoice_summary
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-spain&target_branch=16.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

Permite enviar al SII una factura resumen de facturas simplificadas.

Se trata de una alternativa al módulo *l10n_es_pos_sii* del mismo repositorio.

**Table of contents**

.. contents::
:local:

Usage
=====

Para usar este modulo:

1. Debes seleccionar el campo Resumen facturas simplificadas SII

2. Rellenar el campo Resumen facturas simplificadas SII: Primera factura
con la primera factura del resumen.

3. Rellenar el campo Resumen facturas simplificadas SII: Última factura
con la ultima factura del resumen.

Known issues / Roadmap
======================

* Si usamos el TPV de Odoo: Al definir una factura como resumen de facturas
simplificadas estamos contabilizando doblemente el ingreso e impuestos, por
lo que tras enviar esta factura al SII habría que regularizar la
contabilidad, ya sea cancelando la factura o revirtiendo su asiento contable.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/l10n-spain/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/l10n-spain/issues/new?body=module:%20l10n_es_aeat_sii_invoice_summary%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~

* FactorLibre

Contributors
~~~~~~~~~~~~

* Hugo Santos <hugo.santos@factorlibre.com> (https://factorlibre.com/)
* Victor Rodrigo <victor.rodrigo@factorlibre.com> (https://factorlibre.com/)
* Omar Castiñeira <omar@comunitea.com> (https://comunitea.com/)
* David Ramia <david.ramia@processcontrol.es> (https://processcontrol.es)

* `Tecnativa <https://www.tecnativa.com>`_:

* Víctor Martínez

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

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.

This module is part of the `OCA/l10n-spain <https://github.com/OCA/l10n-spain/tree/16.0/l10n_es_aeat_sii_invoice_summary>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions l10n_es_aeat_sii_invoice_summary/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# © 2017 FactorLibre - Hugo Santos <hugo.santos@factorlibre.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models
15 changes: 15 additions & 0 deletions l10n_es_aeat_sii_invoice_summary/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# © 2017 FactorLibre - Hugo Santos <hugo.santos@factorlibre.com>
# © 2022 ProcessControl - David Ramia <david.ramia@processcontrol.es>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
"name": "Envio de factura simplificada resumen TPV a SII",
"version": "16.0.1.0.0",
"depends": ["l10n_es_aeat_sii_oca"],
"category": "Accounting & Finance",
"author": "FactorLibre, Odoo Community Association (OCA)",
"license": "AGPL-3",
"website": "https://github.com/OCA/l10n-spain",
"data": ["views/account_move_view.xml"],
"installable": True,
"application": False,
}
85 changes: 85 additions & 0 deletions l10n_es_aeat_sii_invoice_summary/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_es_aeat_sii_invoice_summary
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-27 10:00+0000\n"
"PO-Revision-Date: 2024-05-27 12:01+0200\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: \n"
"X-Generator: Poedit 3.0.1\n"

#. module: l10n_es_aeat_sii_invoice_summary
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_move__display_name
msgid "Display Name"
msgstr "Nombre mostrado"

#. module: l10n_es_aeat_sii_invoice_summary
#: model_terms:ir.ui.view,arch_db:l10n_es_aeat_sii_invoice_summary.invoice_sii_move_summary_form_view
msgid "First Invoice"
msgstr "Primera factura"

#. module: l10n_es_aeat_sii_invoice_summary
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_move__id
msgid "ID"
msgstr "ID"

#. module: l10n_es_aeat_sii_invoice_summary
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_bank_statement_line__is_invoice_summary
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_move__is_invoice_summary
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_payment__is_invoice_summary
msgid "Is SII simplified invoice Summary?"
msgstr "Resumen facturas simplificadas SII"

#. module: l10n_es_aeat_sii_invoice_summary
#: model:ir.model,name:l10n_es_aeat_sii_invoice_summary.model_account_move
msgid "Journal Entry"
msgstr "Asiento contable"

#. module: l10n_es_aeat_sii_invoice_summary
#: model_terms:ir.ui.view,arch_db:l10n_es_aeat_sii_invoice_summary.invoice_sii_move_summary_form_view
msgid "Last Invoice"
msgstr "Última factura"

#. module: l10n_es_aeat_sii_invoice_summary
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_move____last_update
msgid "Last Modified on"
msgstr "Modificado por última vez el"

#. module: l10n_es_aeat_sii_invoice_summary
#: code:addons/l10n_es_aeat_sii_invoice_summary/models/account_move.py:0
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_bank_statement_line__sii_invoice_summary_start
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_move__sii_invoice_summary_start
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_payment__sii_invoice_summary_start
#, python-format
msgid "SII Invoice Summary: First Invoice"
msgstr "Resumen facturas simplificadas SII: Primera factura"

#. module: l10n_es_aeat_sii_invoice_summary
#: code:addons/l10n_es_aeat_sii_invoice_summary/models/account_move.py:0
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_bank_statement_line__sii_invoice_summary_end
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_move__sii_invoice_summary_end
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_payment__sii_invoice_summary_end
#, python-format
msgid "SII Invoice Summary: Last Invoice"
msgstr "Resumen facturas simplificadas SII: Última factura"

#. module: l10n_es_aeat_sii_invoice_summary
#: code:addons/l10n_es_aeat_sii_invoice_summary/models/account_move.py:0
#, python-format
msgid "The partner has not a VAT configured."
msgstr "El cliente no tiene un CIF/NIF configurado."

#. module: l10n_es_aeat_sii_invoice_summary
#: code:addons/l10n_es_aeat_sii_invoice_summary/models/account_move.py:0
#, python-format
msgid "You can't make a supplier summary invoice."
msgstr "No puede realizar una factura resumen a un proveedor."
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_es_aeat_sii_invoice_summary
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \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_sii_invoice_summary
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_move__display_name
msgid "Display Name"
msgstr ""

#. module: l10n_es_aeat_sii_invoice_summary
#: model_terms:ir.ui.view,arch_db:l10n_es_aeat_sii_invoice_summary.invoice_sii_move_summary_form_view
msgid "First Invoice"
msgstr ""

#. module: l10n_es_aeat_sii_invoice_summary
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_move__id
msgid "ID"
msgstr ""

#. module: l10n_es_aeat_sii_invoice_summary
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_bank_statement_line__is_invoice_summary
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_move__is_invoice_summary
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_payment__is_invoice_summary
msgid "Is SII simplified invoice Summary?"
msgstr ""

#. module: l10n_es_aeat_sii_invoice_summary
#: model:ir.model,name:l10n_es_aeat_sii_invoice_summary.model_account_move
msgid "Journal Entry"
msgstr ""

#. module: l10n_es_aeat_sii_invoice_summary
#: model_terms:ir.ui.view,arch_db:l10n_es_aeat_sii_invoice_summary.invoice_sii_move_summary_form_view
msgid "Last Invoice"
msgstr ""

#. module: l10n_es_aeat_sii_invoice_summary
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_move____last_update
msgid "Last Modified on"
msgstr ""

#. module: l10n_es_aeat_sii_invoice_summary
#: code:addons/l10n_es_aeat_sii_invoice_summary/models/account_move.py:0
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_bank_statement_line__sii_invoice_summary_start
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_move__sii_invoice_summary_start
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_payment__sii_invoice_summary_start
#, python-format
msgid "SII Invoice Summary: First Invoice"
msgstr ""

#. module: l10n_es_aeat_sii_invoice_summary
#: code:addons/l10n_es_aeat_sii_invoice_summary/models/account_move.py:0
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_bank_statement_line__sii_invoice_summary_end
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_move__sii_invoice_summary_end
#: model:ir.model.fields,field_description:l10n_es_aeat_sii_invoice_summary.field_account_payment__sii_invoice_summary_end
#, python-format
msgid "SII Invoice Summary: Last Invoice"
msgstr ""

#. module: l10n_es_aeat_sii_invoice_summary
#: code:addons/l10n_es_aeat_sii_invoice_summary/models/account_move.py:0
#, python-format
msgid "The partner has not a VAT configured."
msgstr ""

#. module: l10n_es_aeat_sii_invoice_summary
#: code:addons/l10n_es_aeat_sii_invoice_summary/models/account_move.py:0
#, python-format
msgid "You can't make a supplier summary invoice."
msgstr ""
4 changes: 4 additions & 0 deletions l10n_es_aeat_sii_invoice_summary/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# © 2017 FactorLibre - Hugo Santos <hugo.santos@factorlibre.com>
# © 2022 ProcessControl - David Ramia <david.ramia@processcontrol.es>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import account_move
70 changes: 70 additions & 0 deletions l10n_es_aeat_sii_invoice_summary/models/account_move.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# © 2017 FactorLibre - Hugo Santos <hugo.santos@factorlibre.com>
# © 2018 FactorLibre - Victor Rodrigo <victor.rodrigo@factorlibre.com>
# © 2022 ProcessControl - David Ramia <david.ramia@processcontrol.es>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import _, exceptions, fields, models


class AccountMove(models.Model):
_inherit = "account.move"

is_invoice_summary = fields.Boolean("Is SII simplified invoice Summary?")
sii_invoice_summary_start = fields.Char("SII Invoice Summary: First Invoice")
sii_invoice_summary_end = fields.Char("SII Invoice Summary: Last Invoice")

def _get_sii_invoice_dict_out(self, cancel=False):
inv_dict = super()._get_sii_invoice_dict_out(cancel=cancel)
if self.is_invoice_summary and self.is_sale_document():
tipo_factura = "F4"
if self.sii_invoice_summary_start:
if self.sii_invoice_summary_start == self.sii_invoice_summary_end:
tipo_factura = "F2" if self.move_type == "out_invoice" else "R5"
else:
inv_dict["IDFactura"][
"NumSerieFacturaEmisor"
] = self.sii_invoice_summary_start
inv_dict["IDFactura"][
"NumSerieFacturaEmisorResumenFin"
] = self.sii_invoice_summary_end
if "FacturaExpedida" in inv_dict:
if "TipoFactura" in inv_dict["FacturaExpedida"]:
inv_dict["FacturaExpedida"]["TipoFactura"] = tipo_factura
if "Contraparte" in inv_dict["FacturaExpedida"]:
del inv_dict["FacturaExpedida"]["Contraparte"]
if (
"TipoRectificativa" in inv_dict["FacturaExpedida"]
and tipo_factura == "F4"
):
del inv_dict["FacturaExpedida"]["TipoRectificativa"]

return inv_dict

def _sii_check_exceptions(self):
"""Inheritable method for exceptions control when sending SII invoices."""
res = False
try:
res = super()._sii_check_exceptions()
except exceptions.UserError as e:
if (
e.args[0] == _("The partner has not a VAT configured.")
and self.is_invoice_summary
):
pass
else:
raise

if self.is_invoice_summary and self.is_purchase_document():
raise exceptions.UserError(_("You can't make a supplier summary invoice."))
return res

def write(self, vals):
"""Cannot let change sii_invoice_summary fields
values in a SII registered supplier invoice"""
for invoice in self.filtered(
lambda x: x.is_invoice_summary and x.sii_state != "not_sent"
):
if "sii_invoice_summary_start" in vals:
invoice._raise_exception_sii(_("SII Invoice Summary: First Invoice"))
if "sii_invoice_summary_end" in vals:
invoice._raise_exception_sii(_("SII Invoice Summary: Last Invoice"))
return super().write(vals)
8 changes: 8 additions & 0 deletions l10n_es_aeat_sii_invoice_summary/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
* Hugo Santos <hugo.santos@factorlibre.com> (https://factorlibre.com/)
* Victor Rodrigo <victor.rodrigo@factorlibre.com> (https://factorlibre.com/)
* Omar Castiñeira <omar@comunitea.com> (https://comunitea.com/)
* David Ramia <david.ramia@processcontrol.es> (https://processcontrol.es)

* `Tecnativa <https://www.tecnativa.com>`_:

* Víctor Martínez
3 changes: 3 additions & 0 deletions l10n_es_aeat_sii_invoice_summary/readme/DESCRIPTION.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Permite enviar al SII una factura resumen de facturas simplificadas.

Se trata de una alternativa al módulo *l10n_es_pos_sii* del mismo repositorio.
4 changes: 4 additions & 0 deletions l10n_es_aeat_sii_invoice_summary/readme/ROADMAP.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
* Si usamos el TPV de Odoo: Al definir una factura como resumen de facturas
simplificadas estamos contabilizando doblemente el ingreso e impuestos, por
lo que tras enviar esta factura al SII habría que regularizar la
contabilidad, ya sea cancelando la factura o revirtiendo su asiento contable.
9 changes: 9 additions & 0 deletions l10n_es_aeat_sii_invoice_summary/readme/USAGE.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Para usar este modulo:

1. Debes seleccionar el campo Resumen facturas simplificadas SII

2. Rellenar el campo Resumen facturas simplificadas SII: Primera factura
con la primera factura del resumen.

3. Rellenar el campo Resumen facturas simplificadas SII: Última factura
con la ultima factura del resumen.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit cc124d5

Please sign in to comment.