Skip to content

Commit

Permalink
[MIG] l10n_es_ticketbai_oss: Migration to 16.0
Browse files Browse the repository at this point in the history
  • Loading branch information
unaiberis committed Nov 12, 2024
1 parent 17c45ad commit d3e11a2
Show file tree
Hide file tree
Showing 11 changed files with 186 additions and 69 deletions.
1 change: 1 addition & 0 deletions l10n_es_ticketbai_api/models/ticketbai_invoice_tax.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class VATRegimeKey(tbai_utils.EnumValues):
K13 = "13"
K14 = "14"
K15 = "15"
K17 = "17"
K51 = "51"
K52 = "52"
K53 = "53"
Expand Down
10 changes: 5 additions & 5 deletions l10n_es_ticketbai_oss/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ TicketBAI - OSS
: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/15.0/l10n_es_ticketbai_oss
:target: https://github.com/OCA/l10n-spain/tree/16.0/l10n_es_ticketbai_oss
: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-15-0/l10n-spain-15-0-l10n_es_ticketbai_oss
:target: https://translation.odoo-community.org/projects/l10n-spain-16-0/l10n-spain-16-0-l10n_es_ticketbai_oss
: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=15.0
: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|
Expand Down Expand Up @@ -56,7 +56,7 @@ 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_ticketbai_oss%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
`feedback <https://github.com/OCA/l10n-spain/issues/new?body=module:%20l10n_es_ticketbai_oss%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.

Expand Down Expand Up @@ -96,6 +96,6 @@ Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-ao-landoo|

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

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
4 changes: 3 additions & 1 deletion l10n_es_ticketbai_oss/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "TicketBAI - OSS",
"version": "15.0.1.0.0",
"version": "16.0.1.0.0",
"category": "Accounting & Finance",
"website": "https://github.com/OCA/l10n-spain",
"author": "Landoo Sistemas de Información S.L, Odoo Community Association (OCA)",
Expand All @@ -15,8 +15,10 @@
"depends": [
"l10n_es_ticketbai",
"l10n_eu_oss_oca",
"l10n_es_ticketbai_api",
],
"data": [
"data/vat_regime_key_data.xml",
"views/account_tax_views.xml",
],
}
3 changes: 2 additions & 1 deletion l10n_es_ticketbai_oss/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
from . import ticketbai_invoice_tax
from . import account_tax
from . import tbai_invoice_tax
55 changes: 55 additions & 0 deletions l10n_es_ticketbai_oss/models/account_tax.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Copyright 2022 Binovo IT Human Project SL
# Copyright 2024 Avanzosc
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo import fields, models


class AccountTax(models.Model):
_inherit = "account.tax"

tbai_tax_map_id = fields.Many2one(
comodel_name="tbai.tax.map", string="Tbai Tax Map"
)
not_subject_to_cause = fields.Selection(
selection=[
(
"OT",
"OT - No sujeto por el artículo 7 de la Norma Foral de IVA Otros"
" supuestos de no sujeción.",
),
("RL", "RL - No sujeto por reglas de localización."),
(
"IE",
"IE - No sujeto en el TAI por reglas de localización, pero repercute"
" impuesto extranjero, IPS/IGIC o IVA de otro estado miembro UE.",
),
],
string="Not Subject to Cause",
)

def tbai_is_subject_to_tax(self):
if self.tbai_tax_map_id and self.tbai_tax_map_id.code in ("SNS", "BNS"):
return False
return super().tbai_is_subject_to_tax()

def tbai_es_entrega(self):
return super(AccountTax, self).tbai_es_entrega() or (
self
in self.env["account.tax"].search(
[
("oss_country_id", "!=", False),
("company_id", "=", self.company_id.id),
]
)
)

def tbai_es_prestacion_servicios(self):
if self.tbai_tax_map_id:
return self.tbai_tax_map_id.code in ("SNS", "SIE", "S", "SER")
return False

def tbai_get_value_causa(self, invoice_id):
if self.not_subject_to_cause:
return self.not_subject_to_cause
return super().tbai_get_value_causa(invoice_id)
8 changes: 8 additions & 0 deletions l10n_es_ticketbai_oss/models/tbai_invoice_tax.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Copyright 2022 Landoo Sistemas de Informacion SL
from odoo import fields, models


class TicketBAITax(models.Model):
_inherit = "tbai.invoice.tax"

not_subject_to_cause = fields.Selection(selection_add=[("IE", "IE")])
54 changes: 0 additions & 54 deletions l10n_es_ticketbai_oss/models/ticketbai_invoice_tax.py

This file was deleted.

18 changes: 10 additions & 8 deletions l10n_es_ticketbai_oss/static/description/index.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
Expand All @@ -9,10 +8,11 @@

/*
:Author: David Goodger ([email protected])
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.

Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.

See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
Expand Down Expand Up @@ -275,7 +275,7 @@
margin-left: 2em ;
margin-right: 2em }

pre.code .ln { color: grey; } /* line numbers */
pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
Expand All @@ -301,7 +301,7 @@
span.pre {
white-space: pre }

span.problematic {
span.problematic, pre.problematic {
color: red }

span.section-subtitle {
Expand Down Expand Up @@ -369,7 +369,7 @@ <h1 class="title">TicketBAI - OSS</h1>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:77f55c0935e6f03a4348e40c14de67abf243905f44db57cbb9517deef8c04f4c
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/l10n-spain/tree/15.0/l10n_es_ticketbai_oss"><img alt="OCA/l10n-spain" src="https://img.shields.io/badge/github-OCA%2Fl10n--spain-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/l10n-spain-15-0/l10n-spain-15-0-l10n_es_ticketbai_oss"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/l10n-spain&amp;target_branch=15.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/l10n-spain/tree/16.0/l10n_es_ticketbai_oss"><img alt="OCA/l10n-spain" src="https://img.shields.io/badge/github-OCA%2Fl10n--spain-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/l10n-spain-16-0/l10n-spain-16-0-l10n_es_ticketbai_oss"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/l10n-spain&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>Este módulo contabiliza el envío a TicketBAI de las facturas de comercio B2C a los países intracomunitarios según el marco de la normativa europea One-Stop Shop (OSS).</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
Expand Down Expand Up @@ -405,7 +405,7 @@ <h1><a class="toc-backref" href="#toc-entry-3">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/l10n-spain/issues">GitHub Issues</a>.
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
<a class="reference external" href="https://github.com/OCA/l10n-spain/issues/new?body=module:%20l10n_es_ticketbai_oss%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<a class="reference external" href="https://github.com/OCA/l10n-spain/issues/new?body=module:%20l10n_es_ticketbai_oss%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
Expand All @@ -428,13 +428,15 @@ <h2><a class="toc-backref" href="#toc-entry-6">Contributors</a></h2>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>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.</p>
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
<p><a class="reference external image-reference" href="https://github.com/ao-landoo"><img alt="ao-landoo" src="https://github.com/ao-landoo.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/l10n-spain/tree/15.0/l10n_es_ticketbai_oss">OCA/l10n-spain</a> project on GitHub.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/l10n-spain/tree/16.0/l10n_es_ticketbai_oss">OCA/l10n-spain</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
Expand Down
1 change: 1 addition & 0 deletions l10n_es_ticketbai_oss/tests/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import test_invoice_oss
84 changes: 84 additions & 0 deletions l10n_es_ticketbai_oss/tests/test_invoice_oss.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
from odoo.tests.common import TransactionCase, tagged


@tagged("post_install", "-at_install")
class TestInvoiceAddress(TransactionCase):
def setUp(self):
super(TestInvoiceAddress, self).setUp()
self.currency = self.env.ref("base.EUR")
self.company = self.env.ref("base.main_company")

vals = {
"company_id": self.company.id,
"type": "sale",
"code": "TEST",
"name": "Journal Test",
}
self.journal = self.env["account.journal"].create(vals)

vals = {
"name": "Customer",
}
self.partner = self.env["res.partner"].create(vals)

receivable_account_type = self.env["account.account"].search(
[("account_type", "=", "asset_receivable")], limit=1
)

if not receivable_account_type:
receivable_account_type = self.env["account.account"].create(

Check warning on line 29 in l10n_es_ticketbai_oss/tests/test_invoice_oss.py

View check run for this annotation

Codecov / codecov/patch

l10n_es_ticketbai_oss/tests/test_invoice_oss.py#L29

Added line #L29 was not covered by tests
{
"name": "Receivables Account",
"code": "REC",
"company_id": self.company.id,
"account_type": "asset_receivable",
}
)

self.account = self.env["account.account"].create(
{
"name": "Receivables Account",
"code": "REC",
"company_id": self.company.id,
"account_type": "asset_receivable",
}
)

tbai_tax_map_id = self.env["tbai.tax.map"].search([("code", "=", "BNS")]).id
vals = {
"name": "Tax 22%",
"amount": 22,
"price_include": False,
"not_subject_to_cause": "IE",
"tbai_tax_map_id": tbai_tax_map_id,
}
self.tax = self.env["account.tax"].create(vals)

def test_no_subject_invoice(self):
vals = {
"currency_id": self.currency.id,
"partner_id": self.partner.id,
"journal_id": self.journal.id,
"ref": "INV/12345",
}
invoice = self.env["account.move"].create(vals)

vals = {
"name": "Product 001",
"quantity": 1,
"price_unit": 100,
"tax_ids": [(6, 0, [self.tax.id])],
"move_id": invoice.id,
"account_id": self.account.id,
}
self.env["account.move.line"].create(vals)

self.assertEqual(len(invoice.invoice_line_ids), 1)

is_subject_tax = invoice.invoice_line_ids[0].tax_ids.tbai_is_subject_to_tax()
self.assertFalse(is_subject_tax)

self.assertEqual(len(invoice.line_ids.tax_ids), 1)
self.assertFalse(invoice.line_ids.tax_ids.tbai_es_entrega())
self.assertFalse(invoice.line_ids.tax_ids.tbai_es_prestacion_servicios())
self.assertEqual(invoice.line_ids.tax_ids.tbai_get_value_causa(invoice), "IE")
17 changes: 17 additions & 0 deletions l10n_es_ticketbai_oss/views/account_tax_views.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record model="ir.ui.view" id="account_tax_tbai_form">
<field name="name">account.tax.tbai.form</field>
<field name="model">account.tax</field>
<field name="inherit_id" ref="account.view_tax_form" />
<field name="arch" type="xml">
<xpath expr="//field[@name='tax_group_id']" position="after">
<field
name="tbai_tax_map_id"
options="{'no_create': True, 'no_create_edit':True, 'no_open': True}"
/>
<field name="not_subject_to_cause" />
</xpath>
</field>
</record>
</odoo>

0 comments on commit d3e11a2

Please sign in to comment.