-
-
Notifications
You must be signed in to change notification settings - Fork 766
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by rafaelbn
- Loading branch information
Showing
21 changed files
with
945 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
=================================== | ||
Optional validation of VAT via VIES | ||
=================================== | ||
|
||
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
!! This file is generated by oca-gen-addon-readme !! | ||
!! changes will be overwritten. !! | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
.. |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%2Faccount--financial--tools-lightgray.png?logo=github | ||
:target: https://github.com/OCA/account-financial-tools/tree/15.0/base_vat_optional_vies | ||
:alt: OCA/account-financial-tools | ||
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png | ||
:target: https://translation.odoo-community.org/projects/account-financial-tools-15-0/account-financial-tools-15-0-base_vat_optional_vies | ||
:alt: Translate me on Weblate | ||
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png | ||
:target: https://runbot.odoo-community.org/runbot/92/15.0 | ||
:alt: Try me on Runbot | ||
|
||
|badge1| |badge2| |badge3| |badge4| |badge5| | ||
|
||
This module extends base_vat module features allowing to know if VIES | ||
validation was passed or not. | ||
|
||
Then you can use "VIES validation passed" field in order to show VAT ID with | ||
or without country preffix in invoices, for instance. | ||
|
||
*NOTE*: Although VIES validation is set in your company, this validation | ||
will not block VAT ID write (main difference to Odoo standard behavior) if this | ||
VAT ID is valid in its country. | ||
|
||
**Table of contents** | ||
|
||
.. contents:: | ||
:local: | ||
|
||
Configuration | ||
============= | ||
|
||
In order to activate VIES validation, you must set this option in Settings: | ||
Settings > Account > Verify VAT Numbers | ||
|
||
Usage | ||
===== | ||
|
||
When VIES VAT Check is activated: | ||
|
||
* Odoo will try to validate VAT against VIES online service | ||
* If passed, then "VIES validation passed" field will be True | ||
* If not passed, then try to validate using country validation method | ||
* If validated, then "VIES validation passed" field will be False | ||
* If not validated, then a ValidationError will be shown to user | ||
|
||
When VIES VAT Check is not activated: | ||
|
||
* "VIES validation passed" field will be always False | ||
|
||
You must prefix VAT with country code (ISO 3166-1 alpha-2) and if you want to | ||
bypass country validation you can use "EU" code | ||
|
||
Bug Tracker | ||
=========== | ||
|
||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/account-financial-tools/issues>`_. | ||
In case of trouble, please check there if your issue has already been reported. | ||
If you spotted it first, help us smashing it by providing a detailed and welcomed | ||
`feedback <https://github.com/OCA/account-financial-tools/issues/new?body=module:%20base_vat_optional_vies%0Aversion:%2015.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 | ||
~~~~~~~ | ||
|
||
* Tecnativa | ||
|
||
Contributors | ||
~~~~~~~~~~~~ | ||
|
||
* Rafael Blasco <[email protected]> | ||
* Antonio Espinosa <[email protected]> | ||
* Sergio Teruel <[email protected]> | ||
* David Vidal <[email protected]> | ||
* Rodrigo Bonilla <[email protected]> | ||
* Alexandre Díaz <[email protected]> | ||
* Harald Panten <[email protected]> | ||
* Eduardo de Miguel <[email protected]> | ||
|
||
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/account-financial-tools <https://github.com/OCA/account-financial-tools/tree/15.0/base_vat_optional_vies>`_ project on GitHub. | ||
|
||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import models |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Copyright 2015 Tecnativa - Antonio Espinosa | ||
# Copyright 2016 Tecnativa - Sergio Teruel | ||
# Copyright 2017 Tecnativa - David Vidal | ||
# Copyright 2019 FactorLibre - Rodrigo Bonilla | ||
# Copyright 2022 Moduon - Eduardo de Miguel | ||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). | ||
{ | ||
"name": "Optional validation of VAT via VIES", | ||
"category": "Accounting", | ||
"version": "16.0.1.0.0", | ||
"depends": ["base_vat"], | ||
"data": ["views/res_partner_view.xml"], | ||
"author": "Tecnativa," "Odoo Community Association (OCA)", | ||
"website": "https://github.com/OCA/account-financial-tools", | ||
"license": "AGPL-3", | ||
"installable": True, | ||
} |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# Translation of Odoo Server. | ||
# This file contains the translation of the following modules: | ||
# * base_vat_optional_vies | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: Odoo Server 15.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: base_vat_optional_vies | ||
#: model:ir.model,name:base_vat_optional_vies.model_res_partner | ||
msgid "Contact" | ||
msgstr "" | ||
|
||
#. module: base_vat_optional_vies | ||
#: code:addons/base_vat_optional_vies/models/res_partner.py:0 | ||
#, python-format | ||
msgid "" | ||
"The VAT number [%(wrong_vat)s] for %(record_label)s does not seem to be valid. \n" | ||
"Note: the expected format is %(expected_format)s" | ||
msgstr "" | ||
|
||
#. module: base_vat_optional_vies | ||
#: model:ir.model.fields,field_description:base_vat_optional_vies.field_res_partner__vies_passed | ||
#: model:ir.model.fields,field_description:base_vat_optional_vies.field_res_users__vies_passed | ||
msgid "VIES validation" | ||
msgstr "" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# Translation of Odoo Server. | ||
# This file contains the translation of the following modules: | ||
# * base_vat_optional_vies | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: Odoo Server 12.0\n" | ||
"Report-Msgid-Bugs-To: \n" | ||
"PO-Revision-Date: 2019-11-10 17:34+0000\n" | ||
"Last-Translator: Galoperd <[email protected]>\n" | ||
"Language-Team: none\n" | ||
"Language: es\n" | ||
"MIME-Version: 1.0\n" | ||
"Content-Type: text/plain; charset=UTF-8\n" | ||
"Content-Transfer-Encoding: \n" | ||
"Plural-Forms: nplurals=2; plural=n != 1;\n" | ||
"X-Generator: Weblate 3.8\n" | ||
|
||
#. module: base_vat_optional_vies | ||
#: model:ir.model,name:base_vat_optional_vies.model_res_partner | ||
msgid "Contact" | ||
msgstr "Contacto" | ||
|
||
#. module: base_vat_optional_vies | ||
#: code:addons/base_vat_optional_vies/models/res_partner.py:0 | ||
#, python-format | ||
msgid "" | ||
"The VAT number [%(wrong_vat)s] for %(record_label)s does not seem to be " | ||
"valid. \n" | ||
"Note: the expected format is %(expected_format)s" | ||
msgstr "" | ||
|
||
#. module: base_vat_optional_vies | ||
#: model:ir.model.fields,field_description:base_vat_optional_vies.field_res_partner__vies_passed | ||
#: model:ir.model.fields,field_description:base_vat_optional_vies.field_res_users__vies_passed | ||
msgid "VIES validation" | ||
msgstr "Validación automática VIES" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Translation of Odoo Server. | ||
# This file contains the translation of the following modules: | ||
# * base_vat_optional_vies | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: Odoo Server 12.0\n" | ||
"Report-Msgid-Bugs-To: \n" | ||
"PO-Revision-Date: 2019-11-12 15:34+0000\n" | ||
"Last-Translator: Bole <[email protected]>\n" | ||
"Language-Team: none\n" | ||
"Language: hr\n" | ||
"MIME-Version: 1.0\n" | ||
"Content-Type: text/plain; charset=UTF-8\n" | ||
"Content-Transfer-Encoding: \n" | ||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" | ||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" | ||
"X-Generator: Weblate 3.8\n" | ||
|
||
#. module: base_vat_optional_vies | ||
#: model:ir.model,name:base_vat_optional_vies.model_res_partner | ||
msgid "Contact" | ||
msgstr "Kontakt" | ||
|
||
#. module: base_vat_optional_vies | ||
#: code:addons/base_vat_optional_vies/models/res_partner.py:0 | ||
#, python-format | ||
msgid "" | ||
"The VAT number [%(wrong_vat)s] for %(record_label)s does not seem to be " | ||
"valid. \n" | ||
"Note: the expected format is %(expected_format)s" | ||
msgstr "" | ||
|
||
#. module: base_vat_optional_vies | ||
#: model:ir.model.fields,field_description:base_vat_optional_vies.field_res_partner__vies_passed | ||
#: model:ir.model.fields,field_description:base_vat_optional_vies.field_res_users__vies_passed | ||
msgid "VIES validation" | ||
msgstr "VIES Provjera" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# Translation of Odoo Server. | ||
# This file contains the translation of the following modules: | ||
# * base_vat_optional_vies | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: Odoo Server 12.0\n" | ||
"Report-Msgid-Bugs-To: \n" | ||
"PO-Revision-Date: 2022-07-29 12:06+0000\n" | ||
"Last-Translator: Pedro Castro Silva <[email protected]>\n" | ||
"Language-Team: none\n" | ||
"Language: pt\n" | ||
"MIME-Version: 1.0\n" | ||
"Content-Type: text/plain; charset=UTF-8\n" | ||
"Content-Transfer-Encoding: \n" | ||
"Plural-Forms: nplurals=2; plural=n > 1;\n" | ||
"X-Generator: Weblate 4.3.2\n" | ||
|
||
#. module: base_vat_optional_vies | ||
#: model:ir.model,name:base_vat_optional_vies.model_res_partner | ||
msgid "Contact" | ||
msgstr "Contacto" | ||
|
||
#. module: base_vat_optional_vies | ||
#: code:addons/base_vat_optional_vies/models/res_partner.py:0 | ||
#, python-format | ||
msgid "" | ||
"The VAT number [%(wrong_vat)s] for %(record_label)s does not seem to be " | ||
"valid. \n" | ||
"Note: the expected format is %(expected_format)s" | ||
msgstr "" | ||
"O NIF [%(wrong_vat)s] para %(record_label)s não parece válido. \n" | ||
"Nota: o formato esperado é %(expected_format)s" | ||
|
||
#. module: base_vat_optional_vies | ||
#: model:ir.model.fields,field_description:base_vat_optional_vies.field_res_partner__vies_passed | ||
#: model:ir.model.fields,field_description:base_vat_optional_vies.field_res_users__vies_passed | ||
msgid "VIES validation" | ||
msgstr "Validação do VIES" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import res_partner |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
# Copyright 2015 Tecnativa - Antonio Espinosa | ||
# Copyright 2017 Tecnativa - David Vidal | ||
# Copyright 2019 FactorLibre - Rodrigo Bonilla | ||
# Copyright 2022 Moduon - Eduardo de Miguel | ||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). | ||
from odoo import _, api, fields, models | ||
|
||
from odoo.addons.base_vat.models.res_partner import _ref_vat | ||
|
||
|
||
class ResPartner(models.Model): | ||
_inherit = "res.partner" | ||
|
||
vies_passed = fields.Boolean(string="VIES validation", readonly=True) | ||
|
||
@api.model | ||
def simple_vat_check(self, country_code, vat_number): | ||
res = super().simple_vat_check(country_code, vat_number) | ||
partner = self._context.get("vat_partner") | ||
if res is False and partner: | ||
partner.update({"vies_passed": False}) | ||
elif partner: | ||
if self.env.context.get("company_id"): | ||
company = self.env["res.company"].browse(self.env.context["company_id"]) | ||
else: | ||
company = self.env.company | ||
if company.vat_check_vies: | ||
self.vies_vat_check(country_code, vat_number) | ||
return res | ||
|
||
@api.model | ||
def vies_vat_check(self, country_code, vat_number): | ||
partner = self._context.get("vat_partner") | ||
res = super().vies_vat_check(country_code, vat_number) | ||
if res is False and partner: | ||
partner.update({"vies_passed": False}) | ||
elif partner: | ||
partner.update({"vies_passed": True}) | ||
return res | ||
|
||
@api.constrains("vat", "country_id") | ||
def check_vat(self): | ||
self.update({"vies_passed": False}) | ||
for partner in self.sorted(lambda p: bool(p.commercial_partner_id)): | ||
partner = partner.with_context(vat_partner=partner) | ||
if ( | ||
partner.commercial_partner_id | ||
and partner.commercial_partner_id != partner | ||
): | ||
partner.update( | ||
{"vies_passed": partner.commercial_partner_id.vies_passed} | ||
) | ||
else: | ||
super(ResPartner, partner).check_vat() | ||
return True | ||
|
||
@api.onchange("vat", "country_id") | ||
def _onchange_check_vies(self): | ||
self.update({"vies_passed": False}) | ||
return super( | ||
ResPartner, self.with_context(vat_partner=self) | ||
)._onchange_check_vies() | ||
|
||
@api.model | ||
def _build_vat_error_message(self, country_code, wrong_vat, record_label): | ||
return "\n" + _( | ||
"The VAT number [%(wrong_vat)s] for %(record_label)s does not seem to be valid. " | ||
"\nNote: the expected format is %(expected_format)s", | ||
wrong_vat=wrong_vat, | ||
record_label=record_label, | ||
expected_format=_ref_vat.get( | ||
country_code, "'CC##' (CC=Country Code, ##=VAT Number)" | ||
), | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
In order to activate VIES validation, you must set this option in Settings: | ||
Settings > Account > Verify VAT Numbers |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
* Rafael Blasco <[email protected]> | ||
* Antonio Espinosa <[email protected]> | ||
* Sergio Teruel <[email protected]> | ||
* David Vidal <[email protected]> | ||
* Rodrigo Bonilla <[email protected]> | ||
* Alexandre Díaz <[email protected]> | ||
* Harald Panten <[email protected]> | ||
* Eduardo de Miguel <[email protected]> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
This module extends base_vat module features allowing to know if VIES | ||
validation was passed or not. | ||
|
||
Then you can use "VIES validation passed" field in order to show VAT ID with | ||
or without country preffix in invoices, for instance. | ||
|
||
*NOTE*: Although VIES validation is set in your company, this validation | ||
will not block VAT ID write (main difference to Odoo standard behavior) if this | ||
VAT ID is valid in its country. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
When VIES VAT Check is activated: | ||
|
||
* Odoo will try to validate VAT against VIES online service | ||
* If passed, then "VIES validation passed" field will be True | ||
* If not passed, then try to validate using country validation method | ||
* If validated, then "VIES validation passed" field will be False | ||
* If not validated, then a ValidationError will be shown to user | ||
|
||
When VIES VAT Check is not activated: | ||
|
||
* "VIES validation passed" field will be always False | ||
|
||
You must prefix VAT with country code (ISO 3166-1 alpha-2) and if you want to | ||
bypass country validation you can use "EU" code |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.