Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions contract_sii/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
============
Contract SII
============

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:929437dbe6ec8ac86dd85522942ceaf5f646cc1e64ed2d17a910fa300548f822
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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-NuoBiT%2Fodoo--addons-lightgray.png?logo=github
:target: https://github.com/NuoBiT/odoo-addons/tree/18.0/contract_sii
:alt: NuoBiT/odoo-addons

|badge1| |badge2| |badge3|

This module adds SII data to contracts and propagate them to invoice

**Table of contents**

.. contents::
:local:

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

Bugs are tracked on `GitHub Issues <https://github.com/NuoBiT/odoo-addons/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/NuoBiT/odoo-addons/issues/new?body=module:%20contract_sii%0Aversion:%2018.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
-------

* NuoBiT Solutions SL

Contributors
------------

- `NuoBiT <https://www.nuobit.com>`__:

- Eric Antones eantones@nuobit.com
- Deniz Gallo dgallo@nuobit.com

Maintainers
-----------

This module is part of the `NuoBiT/odoo-addons <https://github.com/NuoBiT/odoo-addons/tree/18.0/contract_sii>`_ project on GitHub.

You are welcome to contribute.
1 change: 1 addition & 0 deletions contract_sii/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
20 changes: 20 additions & 0 deletions contract_sii/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright NuoBiT Solutions SL - Eric Antones <eantones@nuobit.com>
# Copyright 2025 NuoBiT Solutions SL - Deniz Gallo <dgallo@nuobit.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)

{
"name": "Contract SII",
"summary": "This module adds SII data to contracts and propagate them to invoice",
"version": "18.0.1.0.0",
"category": "Contract Management",
"author": "NuoBiT Solutions SL",
"website": "https://github.com/NuoBiT/odoo-addons",
"license": "AGPL-3",
"depends": [
"contract",
"l10n_es_aeat_sii_oca",
],
"data": [
"views/contract_view.xml",
],
}
103 changes: 103 additions & 0 deletions contract_sii/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * contract_sii
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-21 13:58+0000\n"
"PO-Revision-Date: 2022-01-21 13:58+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: contract_sii
#: model:ir.model.fields,field_description:contract_sii.field_contract_contract__sii_registration_key_additional2
msgid "Additional 2 SII registration key"
msgstr "Clave de registro adicional 2 SII"

#. module: contract_sii
#: model:ir.model.fields,field_description:contract_sii.field_contract_contract__sii_registration_key_additional1
msgid "Additional SII registration key"
msgstr "Clave de registro adicional SII"

#. module: contract_sii
#: model:ir.model,name:contract_sii.model_contract_contract
msgid "Contract"
msgstr "Contrato"

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

#. module: contract_sii
#: model:ir.model.fields,field_description:contract_sii.field_contract_contract__sii_enabled
msgid "Enable SII"
msgstr "Activar SII"

#. module: contract_sii
#: model:ir.model.fields,field_description:contract_sii.field_contract_contract__id
msgid "ID"
msgstr ""

#. module: contract_sii
#: model:ir.model.fields,field_description:contract_sii.field_contract_contract____last_update
msgid "Last Modified on"
msgstr "Última Modificación en"

#. module: contract_sii
#: model:ir.model.fields,field_description:contract_sii.field_contract_contract__sii_property_cadastrial_code
msgid "Real property cadastrial code"
msgstr "Referencia catastral"

#. module: contract_sii
#: model:ir.model.fields,field_description:contract_sii.field_contract_contract__sii_property_location
msgid "Real property location"
msgstr "Situación del inmueble"

#. module: contract_sii
#: model:ir.model.fields,field_description:contract_sii.field_contract_contract__sii_registration_key_code
msgid "SII Code"
msgstr "Código SII"

#. module: contract_sii
#: model_terms:ir.ui.view,arch_db:contract_sii.contract_contract_sale_form
msgid "SII Information"
msgstr "Información SII"

#. module: contract_sii
#: model:ir.model.fields,field_description:contract_sii.field_contract_contract__sii_registration_key
msgid "SII registration key"
msgstr "Clave de registro SII"

#. module: contract_sii
#: model:ir.model.fields.selection,name:contract_sii.selection__contract_contract__sii_property_location__1
msgid ""
"[1]-Real property with cadastral code located within the Spanish territory "
"except Basque Country or Navarra"
msgstr ""
"[1]-Inmueble con referencia catastral situado dentro del territorio Español "
"excepto el País Vasco y Navarra"

#. module: contract_sii
#: model:ir.model.fields.selection,name:contract_sii.selection__contract_contract__sii_property_location__2
msgid "[2]-Real property located in the Basque Country or Navarra"
msgstr "[2]-Inmueble situado en el País Vasco o Navarra"

#. module: contract_sii
#: model:ir.model.fields.selection,name:contract_sii.selection__contract_contract__sii_property_location__3
msgid ""
"[3]-Real property in any of the above situations but without cadastral code"
msgstr ""
"[3]-Inmueble situado en cualquiera de las ubicaciones anteriores pero sin "
"referencia catastral"

#. module: contract_sii
#: model:ir.model.fields.selection,name:contract_sii.selection__contract_contract__sii_property_location__4
msgid "[4]-Real property located in a foreign country"
msgstr "[4]-Inmueble situado en un país extranjero"
1 change: 1 addition & 0 deletions contract_sii/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import contract
96 changes: 96 additions & 0 deletions contract_sii/models/contract.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Copyright NuoBiT Solutions SL - Eric Antones <eantones@nuobit.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)

from odoo import api, fields, models


class ContractContract(models.Model):
_inherit = "contract.contract"

def _default_sii_registration_key(self):
sii_key_obj = self.env["aeat.sii.mapping.registration.keys"]
contract_type = self.env.context.get("default_contract_type")
key = sii_key_obj.search(
[("code", "=", "01"), ("type", "=", contract_type)], limit=1
)
return key

sii_registration_key = fields.Many2one(
comodel_name="aeat.sii.mapping.registration.keys",
string="SII registration key",
default=_default_sii_registration_key,
)
sii_registration_key_additional1 = fields.Many2one(
comodel_name="aeat.sii.mapping.registration.keys",
string="Additional SII registration key",
)
sii_registration_key_additional2 = fields.Many2one(
comodel_name="aeat.sii.mapping.registration.keys",
string="Additional 2 SII registration key",
)
sii_registration_key_code = fields.Char(
related="sii_registration_key.code",
readonly=True,
string="SII Code",
)
sii_enabled = fields.Boolean(
string="Enable SII",
compute="_compute_sii_enabled",
)
sii_property_location = fields.Selection(
string="Real property location",
copy=False,
selection=[
(
"1",
"[1]-Real property with cadastral code located within "
"the Spanish territory except Basque Country or Navarra",
),
("2", "[2]-Real property located in the " "Basque Country or Navarra"),
(
"3",
"[3]-Real property in any of the above situations "
"but without cadastral code",
),
("4", "[4]-Real property located in a foreign country"),
],
)
sii_property_cadastrial_code = fields.Char(
string="Real property cadastrial code",
size=25,
copy=False,
)

@api.depends("company_id", "company_id.sii_enabled")
def _compute_sii_enabled(self):
for rec in self:
rec.sii_enabled = rec.company_id.sii_enabled

def _prepare_invoice(self, date_invoice, journal=None):
self.ensure_one()
invoice_vals = super()._prepare_invoice(date_invoice, journal)

values = {}
if self.sii_registration_key:
values["sii_registration_key"] = self.sii_registration_key.id
if self.sii_registration_key_additional1:
values["sii_registration_key_additional1"] = (
self.sii_registration_key_additional1.id
)
if self.sii_registration_key_additional2:
values["sii_registration_key_additional2"] = (
self.sii_registration_key_additional2.id
)

if self.contract_type == "sale":
if self.sii_property_location:
values["sii_property_location"] = self.sii_property_location
if self.sii_property_cadastrial_code:
values["sii_property_cadastrial_code"] = (
self.sii_property_cadastrial_code
)

if values:
invoice_vals.update(values)

return invoice_vals
3 changes: 3 additions & 0 deletions contract_sii/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
3 changes: 3 additions & 0 deletions contract_sii/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- [NuoBiT](https://www.nuobit.com):
- Eric Antones <eantones@nuobit.com>
- Deniz Gallo <dgallo@nuobit.com>
1 change: 1 addition & 0 deletions contract_sii/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This module adds SII data to contracts and propagate them to invoice
Binary file added contract_sii/static/description/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading