From 4504efd9617f81e26a4b8415527223bf31a04248 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Wed, 20 Oct 2021 20:59:42 +0200
Subject: [PATCH 01/19] Rename module to l10n_fr_siret_lookup
Rename wizard obj to fr.siret.lookup
Test on stdnum version number
---
l10n_fr_siret_lookup/README.rst | 21 ++
l10n_fr_siret_lookup/__init__.py | 2 +
l10n_fr_siret_lookup/__manifest__.py | 24 ++
l10n_fr_siret_lookup/i18n/fr.po | 231 +++++++++++++
l10n_fr_siret_lookup/models/__init__.py | 1 +
l10n_fr_siret_lookup/models/res_partner.py | 306 ++++++++++++++++++
l10n_fr_siret_lookup/readme/CONTRIBUTORS.rst | 3 +
l10n_fr_siret_lookup/readme/CREDITS.rst | 3 +
l10n_fr_siret_lookup/readme/DESCRIPTION.rst | 17 +
l10n_fr_siret_lookup/readme/USAGE.rst | 5 +
.../security/ir.model.access.csv | 3 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
l10n_fr_siret_lookup/views/res_partner.xml | 14 +
l10n_fr_siret_lookup/wizard/__init__.py | 1 +
.../wizard/fr_siret_lookup.py | 127 ++++++++
.../wizard/fr_siret_lookup_view.xml | 97 ++++++
16 files changed, 855 insertions(+)
create mode 100644 l10n_fr_siret_lookup/README.rst
create mode 100644 l10n_fr_siret_lookup/__init__.py
create mode 100644 l10n_fr_siret_lookup/__manifest__.py
create mode 100644 l10n_fr_siret_lookup/i18n/fr.po
create mode 100644 l10n_fr_siret_lookup/models/__init__.py
create mode 100644 l10n_fr_siret_lookup/models/res_partner.py
create mode 100644 l10n_fr_siret_lookup/readme/CONTRIBUTORS.rst
create mode 100644 l10n_fr_siret_lookup/readme/CREDITS.rst
create mode 100644 l10n_fr_siret_lookup/readme/DESCRIPTION.rst
create mode 100644 l10n_fr_siret_lookup/readme/USAGE.rst
create mode 100644 l10n_fr_siret_lookup/security/ir.model.access.csv
create mode 100644 l10n_fr_siret_lookup/static/description/icon.png
create mode 100644 l10n_fr_siret_lookup/views/res_partner.xml
create mode 100644 l10n_fr_siret_lookup/wizard/__init__.py
create mode 100644 l10n_fr_siret_lookup/wizard/fr_siret_lookup.py
create mode 100644 l10n_fr_siret_lookup/wizard/fr_siret_lookup_view.xml
diff --git a/l10n_fr_siret_lookup/README.rst b/l10n_fr_siret_lookup/README.rst
new file mode 100644
index 000000000..21cd7854d
--- /dev/null
+++ b/l10n_fr_siret_lookup/README.rst
@@ -0,0 +1,21 @@
+**This file is going to be generated by oca-gen-addon-readme.**
+
+*Manual changes will be overwritten.*
+
+Please provide content in the ``readme`` directory:
+
+* **DESCRIPTION.rst** (required)
+* INSTALL.rst (optional)
+* CONFIGURE.rst (optional)
+* **USAGE.rst** (optional, highly recommended)
+* DEVELOP.rst (optional)
+* ROADMAP.rst (optional)
+* HISTORY.rst (optional, recommended)
+* **CONTRIBUTORS.rst** (optional, highly recommended)
+* CREDITS.rst (optional)
+
+Content of this README will also be drawn from the addon manifest,
+from keys such as name, authors, maintainers, development_status,
+and license.
+
+A good, one sentence summary in the manifest is also highly recommended.
diff --git a/l10n_fr_siret_lookup/__init__.py b/l10n_fr_siret_lookup/__init__.py
new file mode 100644
index 000000000..9b4296142
--- /dev/null
+++ b/l10n_fr_siret_lookup/__init__.py
@@ -0,0 +1,2 @@
+from . import models
+from . import wizard
diff --git a/l10n_fr_siret_lookup/__manifest__.py b/l10n_fr_siret_lookup/__manifest__.py
new file mode 100644
index 000000000..caba2c12f
--- /dev/null
+++ b/l10n_fr_siret_lookup/__manifest__.py
@@ -0,0 +1,24 @@
+# Copyright 2018-2021 Le Filament ()
+# Copyright 2021 Akretion France (http://www.akretion.com/)
+# @author: Alexis de Lattre
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+{
+ "name": "SIRET Lookup",
+ "summary": "Lookup partner via an API on the SIRENE directory",
+ "version": "14.0.1.0.0",
+ "category": "Partner",
+ "website": "https://github.com/OCA/l10n-france",
+ "author": "Le Filament, Akretion, Odoo Community Association (OCA)",
+ "maintainers": ["remi-filament"],
+ "license": "AGPL-3",
+ "depends": [
+ "l10n_fr_siret",
+ ],
+ "external_dependencies": {"python": ["requests", "python-stdnum"]},
+ "data": [
+ "wizard/fr_siret_lookup_view.xml",
+ "views/res_partner.xml",
+ "security/ir.model.access.csv",
+ ],
+ "installable": True,
+}
diff --git a/l10n_fr_siret_lookup/i18n/fr.po b/l10n_fr_siret_lookup/i18n/fr.po
new file mode 100644
index 000000000..d448de8fe
--- /dev/null
+++ b/l10n_fr_siret_lookup/i18n/fr.po
@@ -0,0 +1,231 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * l10n_fr_siren_lookup
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-12-04 14:28+0000\n"
+"PO-Revision-Date: 2018-12-04 14:28+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_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_staff
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_staff
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_staff
+msgid "# Staff"
+msgstr "Effectifs"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_ape
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_ape
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_ape
+msgid "APE Code"
+msgstr "Code APE"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_ape_label
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_ape_label
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_ape_label
+msgid "APE Label"
+msgstr "Libellé APE"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_line_view_form
+msgid "Address"
+msgstr "Adresse"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_zip
+msgid "CP"
+msgstr "CP"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_category
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_category
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_category
+msgid "Category"
+msgstr "Catégorie"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_city
+msgid "City"
+msgstr "Ville"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_view_form
+msgid "Close"
+msgstr "Fermer"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model,name:l10n_fr_siren_lookup.model_siren_wizard_company
+msgid "Companies Selection"
+msgstr "Sélection d'Entreprises"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_name
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_line_view_form
+msgid "Company"
+msgstr "Société"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.partner_form_siren_view
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_line_view_form
+msgid "Company Infos"
+msgstr "Infos Entreprise"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model,name:l10n_fr_siren_lookup.model_siren_wizard_line
+msgid "Company Selection"
+msgstr "Sélection Entreprise"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_line_view_form
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_view_form
+msgid "Confirm selected company ?"
+msgstr "Valider l'entreprise sélectionnée ?"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_create_uid
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_create_uid
+msgid "Created by"
+msgstr "Créé par"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_create_date
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_create_date
+msgid "Created on"
+msgstr "Créé le"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_creation_date
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_creation_date
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_creation_date
+msgid "Creation date"
+msgstr "Date de création"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_display_name
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_display_name
+msgid "Display Name"
+msgstr "Nom affiché"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model,name:l10n_fr_siren_lookup.model_siren_wizard
+msgid "Get values from companies"
+msgstr "Obtenir les informations sur les entreprises"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_id
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_id
+msgid "ID"
+msgstr "ID"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.actions.act_window,name:l10n_fr_siren_lookup.siren_wizard_action
+msgid "Informations base Siren"
+msgstr "Informations base Siren"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard___last_update
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line___last_update
+msgid "Last Modified on"
+msgstr "Dernière Modification le"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_write_uid
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_write_uid
+msgid "Last Updated by"
+msgstr "Dernière mise à jour par"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_write_date
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_write_date
+msgid "Last Updated on"
+msgstr "Dernière mise à jour le"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.partner_form_siren_view
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_line_view_form
+msgid "Legal Infos"
+msgstr "Infos Légales"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_legal_type
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_legal_type
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_legal_type
+msgid "Legal Type"
+msgstr "Forme Juridique"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_view_form
+msgid "Lookup"
+msgstr "Recherche"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_view_form
+msgid "Lookup Company"
+msgstr "Rechercher une Entreprise"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_name
+msgid "Name"
+msgstr "Nom"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model,name:l10n_fr_siren_lookup.model_res_partner
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_partner_id
+msgid "Partner"
+msgstr "Partenaire"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.partner_form_siren_view
+msgid "Pre-Fill / Update"
+msgstr "Pré-Remplir / Mettre à jour"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_ids
+msgid "Results"
+msgstr "Résultats"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_siren
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_siren
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_siren
+msgid "SIREN"
+msgstr "SIREN"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_siret
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_siret
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_siret
+msgid "SIRET"
+msgstr "SIRET"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_view_form
+msgid "Search"
+msgstr "Rechercher"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_line_view_form
+#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_view_form
+msgid "Select"
+msgstr "Sélectionner"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_street
+msgid "Street"
+msgstr "Rue"
+
+#. module: l10n_fr_siren_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_wizard_id
+msgid "Wizard"
+msgstr "Assistant"
+
diff --git a/l10n_fr_siret_lookup/models/__init__.py b/l10n_fr_siret_lookup/models/__init__.py
new file mode 100644
index 000000000..91fed54d4
--- /dev/null
+++ b/l10n_fr_siret_lookup/models/__init__.py
@@ -0,0 +1 @@
+from . import res_partner
diff --git a/l10n_fr_siret_lookup/models/res_partner.py b/l10n_fr_siret_lookup/models/res_partner.py
new file mode 100644
index 000000000..a0f7a2764
--- /dev/null
+++ b/l10n_fr_siret_lookup/models/res_partner.py
@@ -0,0 +1,306 @@
+# Copyright 2018-2021 Le Filament ()
+# Copyright 2021 Akretion France (http://www.akretion.com/)
+# @author: Alexis de Lattre
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+import logging
+
+import requests
+
+from odoo import _, api, models
+from odoo.exceptions import UserError
+
+logger = logging.getLogger(__name__)
+try:
+ from stdnum import __version__ as stdnum_version
+ from stdnum.eu.vat import check_vies
+ from stdnum.fr.siren import is_valid as siren_is_valid, to_tva as siren_to_vat
+ from stdnum.fr.siret import is_valid as siret_is_valid
+except ImportError:
+ logger.debug("Cannot import stdnum")
+
+
+class ResPartner(models.Model):
+ _inherit = "res.partner"
+
+ @api.model
+ def _opendatasoft_fields_list(self):
+ return [
+ "datefermetureunitelegale",
+ "datefermetureetablissement",
+ "denominationunitelegale",
+ "l1_adressage_unitelegale",
+ "adresseetablissement",
+ "codepostaletablissement",
+ "libellecommuneetablissement",
+ "siren",
+ "nic",
+ "codedepartementetablissement",
+ # for the wizard
+ "siret",
+ "categorieentreprise",
+ "datecreationunitelegale",
+ "activiteprincipaleunitelegale",
+ "divisionunitelegale",
+ "naturejuridiqueunitelegale",
+ "trancheeffectifsunitelegale",
+ ]
+
+ @api.model
+ def _opendatasoft_get_raw_data(
+ self, query, raise_if_fail=False, exclude_dead=False, rows=10
+ ):
+ assert isinstance(query, str)
+ assert isinstance(rows, int) and rows > 0
+ url = "https://data.opendatasoft.com/api/records/1.0/search/"
+ params = {
+ "dataset": "economicref-france-sirene-v3@public",
+ "q": query,
+ "rows": rows,
+ "fields": ",".join(self._opendatasoft_fields_list()),
+ }
+ # It seems that datefermetureetablissement and datefermetureunitelegale
+ # often have a value for a SIRET that is still open
+ # For example, SIRET 55208131766522 (siège social d'EDF)
+ # has datefermetureetablissement=2009-02-22
+ # and datefermetureunitelegale=2018-12-01 !!!
+ # So I now set exclude_dead=False by default
+ if exclude_dead:
+ params[
+ "q"
+ ] += " AND #null(datefermetureetablissement) AND #null(datefermetureunitelegale)"
+ try:
+ logger.info("Sending query to https://data.opendatasoft.com/api")
+ logger.debug("url=%s params=%s", url, params)
+ res = requests.get(url, params=params)
+ if res.status_code in (200, 201):
+ res_json = res.json()
+ # from pprint import pprint
+
+ # pprint(res_json)
+ return res_json
+ else:
+ logger.warning(
+ "HTTP error %s returned by GET on data.opendatasoft.com/api",
+ res.status_code,
+ )
+ if raise_if_fail:
+ raise UserError(
+ _(
+ "The webservice data.opendatasoft.com "
+ "returned an HTTP error code %s."
+ )
+ % res.status_code
+ )
+ except Exception as e:
+ logger.warning("Failure in the GET request on data.opendatasoft.com: %s", e)
+ if raise_if_fail:
+ raise UserError(
+ _(
+ "Failure in the request on data.opendatasoft.com "
+ "to create or update partner from SIREN or SIRET. "
+ "Technical error: %s."
+ )
+ % e
+ )
+ return False
+
+ @api.model
+ def _opendatasoft_parse_record(
+ self, raw_record, exclude_dead=False, vat_vies_query=True
+ ):
+ res = False
+ if raw_record and isinstance(raw_record, dict):
+ if exclude_dead and raw_record.get("datefermetureunitelegale"):
+ return res
+ if exclude_dead and raw_record.get("datefermetureetablissement"):
+ return res
+ res = {
+ "name": raw_record.get("denominationunitelegale")
+ or raw_record.get("l1_adressage_unitelegale"),
+ "street": raw_record.get("adresseetablissement"),
+ "zip": raw_record.get("codepostaletablissement"),
+ "city": raw_record.get("libellecommuneetablissement"),
+ "siren": raw_record.get("siren") and str(raw_record["siren"]) or False,
+ "nic": raw_record.get("nic"),
+ }
+ if raw_record.get("codedepartementetablissement"):
+ dpt_code = raw_record["codedepartementetablissement"]
+ res["country_id"] = self._opendatasoft_dpt2country(dpt_code)
+ # set lang to French if installed
+ fr_lang = self.env["res.lang"].search([("code", "=", "fr_FR")])
+ if fr_lang:
+ res["lang"] = "fr_FR"
+ if res.get("siren") and vat_vies_query:
+ vat = self._siren2vat_vies(res["siren"])
+ if vat is not None:
+ res["vat"] = vat
+ return res
+
+ @api.model
+ def _opendatasoft_dpt2country(self, dpt_code):
+ domtom2xmlid = {
+ "971": "gp",
+ "972": "mq",
+ "973": "gf",
+ "974": "re",
+ "975": "pm", # Saint Pierre and Miquelon
+ "976": "yt", # Mayotte
+ "977": "bl", # Saint-Barthélemy
+ "978": "mf", # Saint-Martin
+ "986": "wf", # Wallis-et-Futuna
+ "987": "pf", # Polynésie française
+ "988": "nc", # Nouvelle calédonie
+ }
+ country_id = False
+ if dpt_code and len(dpt_code) == 2:
+ country_id = self.env.ref("base.fr").id
+ elif dpt_code in domtom2xmlid:
+ country_xmlid = "base.%s" % domtom2xmlid[dpt_code]
+ country_id = self.env.ref(country_xmlid).id
+ return country_id
+
+ @api.model
+ def _siren2vat_vies(self, siren, raise_if_fail=False):
+ vat = "FR%s" % siren_to_vat(siren)
+ logger.info("VIES check of VAT %s" % vat)
+ vies_res = False
+ res = False
+ try:
+ stdnum_version_float = float(stdnum_version)
+ except Exception:
+ stdnum_version_float = 1.8
+ try:
+ if stdnum_version_float < 1.9:
+ vies_res = check_vies(vat)
+ else:
+ vies_res = check_vies(vat, timeout=5)
+ logger.debug("VIES answer vies_res.valid=%s", vies_res.valid)
+ except Exception as e:
+ logger.error("VIES query failed: %s", e)
+ if raise_if_fail:
+ raise UserError(_("Failed to query VIES.\nTechnical error: %s.") % e)
+ return None
+ if vies_res and vies_res.valid:
+ res = vat
+ return res
+
+ @api.model
+ def _opendatasoft_get_first_result(
+ self, query, raise_if_fail=False, vat_vies_query=True
+ ):
+ res_json = self._opendatasoft_get_raw_data(query, raise_if_fail=raise_if_fail)
+ if res_json and "records" in res_json:
+ if len(res_json["records"]) > 0:
+ raw_record = res_json["records"][0].get("fields")
+ if raw_record:
+ return self._opendatasoft_parse_record(
+ raw_record, vat_vies_query=vat_vies_query
+ )
+ else:
+ logger.warning("The query on opendatasoft.com returned 0 records")
+ return False
+
+ @api.model
+ def _opendatasoft_get_from_siren(self, siren, vat_vies_query=True):
+ if siren and siren_is_valid(siren):
+ vals = self._opendatasoft_get_first_result(
+ "siren:%s AND etablissementsiege:oui" % siren,
+ vat_vies_query=vat_vies_query,
+ )
+ if vals and vals.get("siren") == siren:
+ return vals
+ return False
+
+ @api.model
+ def _opendatasoft_get_from_siret(self, siret, vat_vies_query=True):
+ if siret and siret_is_valid(siret):
+ vals = self._opendatasoft_get_first_result(
+ "siret:%s" % siret, vat_vies_query=vat_vies_query
+ )
+ if vals and vals.get("siren") and vals.get("nic"):
+ vals_siret = vals["siren"] + vals["nic"]
+ if vals_siret == siret:
+ return vals
+ return False
+
+ @api.onchange("siren")
+ def siren_onchange(self):
+ if (
+ self.siren
+ and siren_is_valid(self.siren)
+ and not self.name
+ and self.is_company
+ and not self.parent_id
+ ):
+ if self.nic:
+ # We only execute the query if the full SIRET is OK
+ vals = False
+ if siret_is_valid(self.siren + self.nic):
+ siret = self.siren + self.nic
+ vals = self._opendatasoft_get_from_siret(siret)
+ else:
+ vals = self._opendatasoft_get_from_siren(self.siren)
+ if vals:
+ self.update(vals)
+
+ @api.onchange("siret")
+ def siret_onchange(self):
+ if (
+ self.siret
+ and siret_is_valid(self.siret)
+ and not self.name
+ and self.is_company
+ and not self.parent_id
+ ):
+ vals = self._opendatasoft_get_from_siret(self.siret)
+ if vals:
+ self.update(vals)
+
+ @api.onchange("vat")
+ def vat_onchange(self):
+ if (
+ self.vat
+ and not self.name
+ and not self.siren
+ and not self.siret
+ and self.is_company
+ and not self.parent_id
+ ):
+ vat = self.vat.replace(" ", "").upper()
+ if vat and vat.startswith("FR") and len(vat) == 13:
+ siren = vat[4:]
+ if siren_is_valid(siren):
+ vals = self._opendatasoft_get_from_siren(siren)
+ if vals:
+ self.update(vals)
+
+ @api.onchange("name")
+ def siren_siret_vat_in_name_onchange(self):
+ if (
+ self.name
+ and self.is_company
+ and not self.parent_id
+ and not self.siren
+ and not self.nic
+ and not self.siret
+ and not self.street
+ and not self.city
+ and not self.zip
+ ):
+ name = self.name.replace(" ", "")
+ if name:
+ vals = False
+ if len(name) == 9 and name.isdigit() and siren_is_valid(name):
+ vals = self._opendatasoft_get_from_siren(name)
+ elif len(name) == 14 and name.isdigit() and siret_is_valid(name):
+ vals = self._opendatasoft_get_from_siret(name)
+ elif (
+ len(name) == 13
+ and name[:2] == "FR"
+ and name[2:].isdigit()
+ and siren_is_valid(name[4:])
+ ):
+ vals = self._opendatasoft_get_from_siren(name[4:])
+ if vals:
+ self.update(vals)
diff --git a/l10n_fr_siret_lookup/readme/CONTRIBUTORS.rst b/l10n_fr_siret_lookup/readme/CONTRIBUTORS.rst
new file mode 100644
index 000000000..19f388ec9
--- /dev/null
+++ b/l10n_fr_siret_lookup/readme/CONTRIBUTORS.rst
@@ -0,0 +1,3 @@
+* Benjamin Rivier (https://le-filament.com)
+* Remi Cazenave (https://le-filament.com)
+* Alexis de Lattre
diff --git a/l10n_fr_siret_lookup/readme/CREDITS.rst b/l10n_fr_siret_lookup/readme/CREDITS.rst
new file mode 100644
index 000000000..964968d6c
--- /dev/null
+++ b/l10n_fr_siret_lookup/readme/CREDITS.rst
@@ -0,0 +1,3 @@
+The development of this module has been financially supported by:
+
+* Le Filament
diff --git a/l10n_fr_siret_lookup/readme/DESCRIPTION.rst b/l10n_fr_siret_lookup/readme/DESCRIPTION.rst
new file mode 100644
index 000000000..2a1f6ad21
--- /dev/null
+++ b/l10n_fr_siret_lookup/readme/DESCRIPTION.rst
@@ -0,0 +1,17 @@
+This modules updates partner fields via the `SIRENE database `. It uses the dataset *economicref-france-sirene-v3* of `opendatasoft `. It computes a theorical VAT number from the SIREN and then checks the validity of the VAT number on `VIES `_ (if invalid, the VAT number is discarded).
+
+The module supports 2 scenarios:
+
+* update of an existing partner via the menu *Action > SIREN Lookup*,
+* creation of a new partner: start by setting the VAT number field, the SIREN field or SIRET field and Odoo will set the other fields. For usability purposes, it also work when you write the VAT number, SIREN or SIRET in the company name field.
+
+In the 2 scenarios, it will update the following fields:
+
+* Company Name
+* Street
+* Postal Code
+* City
+* Country
+* SIREN and NIC (i.e. SIRET)
+* VAT Number
+* Language (creation scenario only)
diff --git a/l10n_fr_siret_lookup/readme/USAGE.rst b/l10n_fr_siret_lookup/readme/USAGE.rst
new file mode 100644
index 000000000..3a3291f34
--- /dev/null
+++ b/l10n_fr_siret_lookup/readme/USAGE.rst
@@ -0,0 +1,5 @@
+To update an existing parter, go to the partner form view and click on *Action > SIREN Lookup*.
+
+By default, the search field is filled with Company name. To get more accurate results, you may want to add the City name where the company is registered. Then click on *Lookup*.
+
+A list of company is displayed. You may want to click on one in order to see corresponding information or directly selecting company from tree view. Once a company is selected, the partner information is updated and a message is logged in the chatter.
diff --git a/l10n_fr_siret_lookup/security/ir.model.access.csv b/l10n_fr_siret_lookup/security/ir.model.access.csv
new file mode 100644
index 000000000..2a47e4486
--- /dev/null
+++ b/l10n_fr_siret_lookup/security/ir.model.access.csv
@@ -0,0 +1,3 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_fr_siret_lookup,Full access on fr.siret.lookup to partner manager,model_fr_siret_lookup,base.group_partner_manager,1,1,1,1
+access_fr_siret_lookup_line,Full access on fr.siret.lookup.line to partner manager,model_fr_siret_lookup_line,base.group_partner_manager,1,1,1,1
diff --git a/l10n_fr_siret_lookup/static/description/icon.png b/l10n_fr_siret_lookup/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/l10n_fr_siret_lookup/views/res_partner.xml b/l10n_fr_siret_lookup/views/res_partner.xml
new file mode 100644
index 000000000..5366fd743
--- /dev/null
+++ b/l10n_fr_siret_lookup/views/res_partner.xml
@@ -0,0 +1,14 @@
+
+
+
+
+ SIREN Lookup
+ fr.siret.lookup
+ form
+ new
+
+
+ form
+
+
+
diff --git a/l10n_fr_siret_lookup/wizard/__init__.py b/l10n_fr_siret_lookup/wizard/__init__.py
new file mode 100644
index 000000000..af1ed13a3
--- /dev/null
+++ b/l10n_fr_siret_lookup/wizard/__init__.py
@@ -0,0 +1 @@
+from . import fr_siret_lookup
diff --git a/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py b/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py
new file mode 100644
index 000000000..eff588806
--- /dev/null
+++ b/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py
@@ -0,0 +1,127 @@
+# Copyright 2018-2021 Le Filament ()
+# Copyright 2021 Akretion France (http://www.akretion.com/)
+# @author: Alexis de Lattre
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import _, api, fields, models
+from odoo.exceptions import UserError
+
+
+class FrSiretLookup(models.TransientModel):
+ _name = "fr.siret.lookup"
+ _description = "Get values from companies"
+
+ name = fields.Char(string="Name to Search", required=True)
+ line_ids = fields.One2many(
+ "fr.siret.lookup.line", "wizard_id", string="Results", readonly=True
+ )
+ partner_id = fields.Many2one("res.partner", "Partner", readonly=True, required=True)
+
+ @api.model
+ def default_get(self, fields_list):
+ res = super().default_get(fields_list)
+ if (
+ self.env.context.get("active_id")
+ and self.env.context.get("active_model") == "res.partner"
+ ):
+ partner = self.env["res.partner"].browse(self.env.context["active_id"])
+ if not partner.is_company:
+ raise UserError(
+ _("Partner '%s' is not a company. This action is not relevant.")
+ % partner.display_name
+ )
+ res.update(
+ {
+ "name": partner.name,
+ "partner_id": partner.id,
+ }
+ )
+ return res
+
+ # Action
+ @api.model
+ def _prepare_partner_from_data(self, data):
+ country_id = False
+ if data.get("codedepartementetablissement"):
+ country_id = self.env["res.partner"]._opendatasoft_dpt2country(
+ data["codedepartementetablissement"]
+ )
+ return {
+ "name": data.get("denominationunitelegale")
+ or data.get("l1_adressage_unitelegale"),
+ "street": data.get("adresseetablissement"),
+ "zip": data.get("codepostaletablissement"),
+ "city": data.get("libellecommuneetablissement"),
+ "country_id": country_id,
+ "siren": data.get("siren") and str(data["siren"]) or False,
+ "siret": data.get("siret") and str(data["siret"]) or False,
+ "category": data.get("categorieentreprise"),
+ "creation_date": data.get("datecreationunitelegale"),
+ "ape": data.get("activiteprincipaleunitelegale"),
+ "ape_label": data.get("divisionunitelegale"),
+ "legal_type": data.get("naturejuridiqueunitelegale"),
+ "staff": data.get("trancheeffectifsunitelegale", 0),
+ }
+
+ def get_lines(self):
+ self.ensure_one()
+ self.line_ids.unlink()
+ # Get request
+ res_json = self.env["res.partner"]._opendatasoft_get_raw_data(
+ self.name, raise_if_fail=True, rows=30
+ )
+ # Fill new company lines
+ companies_vals = []
+ for company in res_json["records"]:
+ res = self._prepare_partner_from_data(company["fields"])
+ companies_vals.append((0, 0, res))
+ self.line_ids = companies_vals
+ return {
+ "context": self.env.context,
+ "view_mode": "form",
+ "res_model": self._name,
+ "res_id": self.id,
+ "view_id": False,
+ "type": "ir.actions.act_window",
+ "target": "new",
+ }
+
+
+class FrSiretLookupLine(models.TransientModel):
+ _name = "fr.siret.lookup.line"
+ _description = "Company Selection"
+
+ wizard_id = fields.Many2one("fr.siret.lookup", string="Wizard", ondelete="cascade")
+ name = fields.Char(string="Name")
+ street = fields.Char(string="Street")
+ zip = fields.Char(string="Zip")
+ city = fields.Char(string="City")
+ country_id = fields.Many2one("res.country", string="Country")
+ legal_type = fields.Char("Legal Type")
+ siren = fields.Char("SIREN")
+ siret = fields.Char("SIRET")
+ ape = fields.Char("APE Code")
+ ape_label = fields.Char("APE Label")
+ creation_date = fields.Date("Creation date")
+ staff = fields.Char("# Staff")
+ category = fields.Char("Category")
+
+ def _prepare_partner_values(self):
+ self.ensure_one()
+ vat = self.env["res.partner"]._siren2vat_vies(self.siren, raise_if_fail=True)
+ vals = {
+ "name": self.name,
+ "street": self.street,
+ "zip": self.zip,
+ "city": self.city,
+ "country_id": self.country_id.id or False,
+ "siret": self.siret,
+ "vat": vat,
+ }
+ return vals
+
+ def update_partner(self):
+ self.ensure_one()
+ partner = self.wizard_id.partner_id
+ partner.write(self._prepare_partner_values())
+ partner.message_post(body=_("Partner updated via the opendatasoft.com API."))
diff --git a/l10n_fr_siret_lookup/wizard/fr_siret_lookup_view.xml b/l10n_fr_siret_lookup/wizard/fr_siret_lookup_view.xml
new file mode 100644
index 000000000..94c3306ff
--- /dev/null
+++ b/l10n_fr_siret_lookup/wizard/fr_siret_lookup_view.xml
@@ -0,0 +1,97 @@
+
+
+
+
+ fr.siret.lookup
+
+
+
+
+
+
+
+ fr.siret.lookup.line
+
+
+
+
+
+
+ SIREN lookup via opendatasoft.com
+ fr.siret.lookup
+ form
+ new
+
+
+
From d201ae83f9fc937c22e6043a5b1491d360abb2a8 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Sun, 24 Oct 2021 21:00:45 +0000
Subject: [PATCH 02/19] [UPD] Update l10n_fr_siret_lookup.pot
---
l10n_fr_siret_lookup/i18n/fr.po | 285 ++++++++++--------
.../i18n/l10n_fr_siret_lookup.pot | 255 ++++++++++++++++
2 files changed, 420 insertions(+), 120 deletions(-)
create mode 100644 l10n_fr_siret_lookup/i18n/l10n_fr_siret_lookup.pot
diff --git a/l10n_fr_siret_lookup/i18n/fr.po b/l10n_fr_siret_lookup/i18n/fr.po
index d448de8fe..72fb4ec1e 100644
--- a/l10n_fr_siret_lookup/i18n/fr.po
+++ b/l10n_fr_siret_lookup/i18n/fr.po
@@ -1,6 +1,6 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * l10n_fr_siren_lookup
+# * l10n_fr_siren_lookup
#
msgid ""
msgstr ""
@@ -10,222 +10,267 @@ msgstr ""
"PO-Revision-Date: 2018-12-04 14:28+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_staff
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_staff
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_staff
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__staff
msgid "# Staff"
msgstr "Effectifs"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_ape
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_ape
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_ape
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__ape
msgid "APE Code"
msgstr "Code APE"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_ape_label
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_ape_label
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_ape_label
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__ape_label
msgid "APE Label"
msgstr "Libellé APE"
-#. module: l10n_fr_siren_lookup
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_line_view_form
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
msgid "Address"
msgstr "Adresse"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_zip
-msgid "CP"
-msgstr "CP"
-
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_category
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_category
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_category
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__category
msgid "Category"
msgstr "Catégorie"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_city
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__city
msgid "City"
msgstr "Ville"
-#. module: l10n_fr_siren_lookup
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_view_form
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
msgid "Close"
msgstr "Fermer"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model,name:l10n_fr_siren_lookup.model_siren_wizard_company
-msgid "Companies Selection"
-msgstr "Sélection d'Entreprises"
-
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_name
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_line_view_form
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
msgid "Company"
msgstr "Société"
-#. module: l10n_fr_siren_lookup
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.partner_form_siren_view
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_line_view_form
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
msgid "Company Infos"
msgstr "Infos Entreprise"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model,name:l10n_fr_siren_lookup.model_siren_wizard_line
+#. module: l10n_fr_siret_lookup
+#: model:ir.model,name:l10n_fr_siret_lookup.model_fr_siret_lookup_line
msgid "Company Selection"
msgstr "Sélection Entreprise"
-#. module: l10n_fr_siren_lookup
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_line_view_form
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_view_form
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
msgid "Confirm selected company ?"
msgstr "Valider l'entreprise sélectionnée ?"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_create_uid
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_create_uid
+#. module: l10n_fr_siret_lookup
+#: model:ir.model,name:l10n_fr_siret_lookup.model_res_partner
+msgid "Contact"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__country_id
+msgid "Country"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__create_uid
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__create_uid
msgid "Created by"
msgstr "Créé par"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_create_date
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_create_date
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__create_date
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__create_date
msgid "Created on"
msgstr "Créé le"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_creation_date
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_creation_date
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_creation_date
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__creation_date
msgid "Creation date"
msgstr "Date de création"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_display_name
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_display_name
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__display_name
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__display_name
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_res_partner__display_name
msgid "Display Name"
msgstr "Nom affiché"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model,name:l10n_fr_siren_lookup.model_siren_wizard
+#. module: l10n_fr_siret_lookup
+#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
+#, python-format
+msgid ""
+"Failed to query VIES.\n"
+"Technical error: %s."
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
+#, python-format
+msgid ""
+"Failure in the request on data.opendatasoft.com to create or update partner "
+"from SIREN or SIRET. Technical error: %s."
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model,name:l10n_fr_siret_lookup.model_fr_siret_lookup
msgid "Get values from companies"
msgstr "Obtenir les informations sur les entreprises"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_id
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_id
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__id
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__id
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_res_partner__id
msgid "ID"
msgstr "ID"
-#. module: l10n_fr_siren_lookup
-#: model:ir.actions.act_window,name:l10n_fr_siren_lookup.siren_wizard_action
-msgid "Informations base Siren"
-msgstr "Informations base Siren"
-
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard___last_update
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line___last_update
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup____last_update
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line____last_update
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_res_partner____last_update
msgid "Last Modified on"
msgstr "Dernière Modification le"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_write_uid
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_write_uid
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__write_uid
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__write_uid
msgid "Last Updated by"
msgstr "Dernière mise à jour par"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_write_date
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_write_date
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__write_date
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__write_date
msgid "Last Updated on"
msgstr "Dernière mise à jour le"
-#. module: l10n_fr_siren_lookup
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.partner_form_siren_view
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_line_view_form
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
msgid "Legal Infos"
msgstr "Infos Légales"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_legal_type
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_legal_type
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_legal_type
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__legal_type
msgid "Legal Type"
msgstr "Forme Juridique"
-#. module: l10n_fr_siren_lookup
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_view_form
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
msgid "Lookup"
msgstr "Recherche"
-#. module: l10n_fr_siren_lookup
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_view_form
-msgid "Lookup Company"
-msgstr "Rechercher une Entreprise"
-
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_name
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__name
msgid "Name"
msgstr "Nom"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model,name:l10n_fr_siren_lookup.model_res_partner
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_partner_id
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__name
+#, fuzzy
+msgid "Name to Search"
+msgstr "Rechercher"
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__partner_id
msgid "Partner"
msgstr "Partenaire"
-#. module: l10n_fr_siren_lookup
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.partner_form_siren_view
-msgid "Pre-Fill / Update"
-msgstr "Pré-Remplir / Mettre à jour"
+#. module: l10n_fr_siret_lookup
+#: code:addons/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py:0
+#, python-format
+msgid "Partner '%s' is not a company. This action is not relevant."
+msgstr ""
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_ids
+#. module: l10n_fr_siret_lookup
+#: code:addons/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py:0
+#, python-format
+msgid "Partner updated via the opendatasoft.com API."
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__line_ids
msgid "Results"
msgstr "Résultats"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_siren
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_siren
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_siren
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__siren
msgid "SIREN"
msgstr "SIREN"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_partner_siret
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_res_users_siret
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_siret
+#. module: l10n_fr_siret_lookup
+#: model:ir.actions.act_window,name:l10n_fr_siret_lookup.fr_siret_lookup_partner_action
+#, fuzzy
+msgid "SIREN Lookup"
+msgstr "Recherche"
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+msgid "SIREN Lookup via opendatasoft.com"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.actions.act_window,name:l10n_fr_siret_lookup.fr_siret_lookup_action
+msgid "SIREN lookup via opendatasoft.com"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__siret
msgid "SIRET"
msgstr "SIRET"
-#. module: l10n_fr_siren_lookup
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_view_form
-msgid "Search"
-msgstr "Rechercher"
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+#, fuzzy
+msgid "Search Results"
+msgstr "Résultats"
-#. module: l10n_fr_siren_lookup
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_line_view_form
-#: model:ir.ui.view,arch_db:l10n_fr_siren_lookup.siren_wizard_view_form
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
msgid "Select"
msgstr "Sélectionner"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_street
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__street
msgid "Street"
msgstr "Rue"
-#. module: l10n_fr_siren_lookup
-#: model:ir.model.fields,field_description:l10n_fr_siren_lookup.field_siren_wizard_line_wizard_id
+#. module: l10n_fr_siret_lookup
+#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
+#, python-format
+msgid "The webservice data.opendatasoft.com returned an HTTP error code %s."
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__wizard_id
msgid "Wizard"
msgstr "Assistant"
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__zip
+msgid "Zip"
+msgstr ""
+
+#~ msgid "CP"
+#~ msgstr "CP"
+
+#~ msgid "Companies Selection"
+#~ msgstr "Sélection d'Entreprises"
+
+#~ msgid "Informations base Siren"
+#~ msgstr "Informations base Siren"
+
+#~ msgid "Lookup Company"
+#~ msgstr "Rechercher une Entreprise"
+
+#~ msgid "Pre-Fill / Update"
+#~ msgstr "Pré-Remplir / Mettre à jour"
diff --git a/l10n_fr_siret_lookup/i18n/l10n_fr_siret_lookup.pot b/l10n_fr_siret_lookup/i18n/l10n_fr_siret_lookup.pot
new file mode 100644
index 000000000..be156d8b4
--- /dev/null
+++ b/l10n_fr_siret_lookup/i18n/l10n_fr_siret_lookup.pot
@@ -0,0 +1,255 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * l10n_fr_siret_lookup
+#
+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_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__staff
+msgid "# Staff"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__ape
+msgid "APE Code"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__ape_label
+msgid "APE Label"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
+msgid "Address"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__category
+msgid "Category"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__city
+msgid "City"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+msgid "Close"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
+msgid "Company"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
+msgid "Company Infos"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model,name:l10n_fr_siret_lookup.model_fr_siret_lookup_line
+msgid "Company Selection"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
+msgid "Confirm selected company ?"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model,name:l10n_fr_siret_lookup.model_res_partner
+msgid "Contact"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__country_id
+msgid "Country"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__create_uid
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__create_date
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__create_date
+msgid "Created on"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__creation_date
+msgid "Creation date"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__display_name
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__display_name
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_res_partner__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
+#, python-format
+msgid ""
+"Failed to query VIES.\n"
+"Technical error: %s."
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
+#, python-format
+msgid ""
+"Failure in the request on data.opendatasoft.com to create or update partner "
+"from SIREN or SIRET. Technical error: %s."
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model,name:l10n_fr_siret_lookup.model_fr_siret_lookup
+msgid "Get values from companies"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__id
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__id
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_res_partner__id
+msgid "ID"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup____last_update
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line____last_update
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_res_partner____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__write_uid
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__write_date
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
+msgid "Legal Infos"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__legal_type
+msgid "Legal Type"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+msgid "Lookup"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__name
+msgid "Name"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__name
+msgid "Name to Search"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__partner_id
+msgid "Partner"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: code:addons/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py:0
+#, python-format
+msgid "Partner '%s' is not a company. This action is not relevant."
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: code:addons/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py:0
+#, python-format
+msgid "Partner updated via the opendatasoft.com API."
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__line_ids
+msgid "Results"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__siren
+msgid "SIREN"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.actions.act_window,name:l10n_fr_siret_lookup.fr_siret_lookup_partner_action
+msgid "SIREN Lookup"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+msgid "SIREN Lookup via opendatasoft.com"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.actions.act_window,name:l10n_fr_siret_lookup.fr_siret_lookup_action
+msgid "SIREN lookup via opendatasoft.com"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__siret
+msgid "SIRET"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+msgid "Search Results"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
+msgid "Select"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__street
+msgid "Street"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
+#, python-format
+msgid "The webservice data.opendatasoft.com returned an HTTP error code %s."
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__wizard_id
+msgid "Wizard"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__zip
+msgid "Zip"
+msgstr ""
From 591fb801464bc029ce23179850711f59071323ba Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Sun, 24 Oct 2021 21:06:40 +0000
Subject: [PATCH 03/19] [UPD] README.rst
---
l10n_fr_siret_lookup/README.rst | 127 ++++-
.../static/description/index.html | 455 ++++++++++++++++++
2 files changed, 566 insertions(+), 16 deletions(-)
create mode 100644 l10n_fr_siret_lookup/static/description/index.html
diff --git a/l10n_fr_siret_lookup/README.rst b/l10n_fr_siret_lookup/README.rst
index 21cd7854d..dfeec4215 100644
--- a/l10n_fr_siret_lookup/README.rst
+++ b/l10n_fr_siret_lookup/README.rst
@@ -1,21 +1,116 @@
-**This file is going to be generated by oca-gen-addon-readme.**
+============
+SIRET Lookup
+============
-*Manual changes will be overwritten.*
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-Please provide content in the ``readme`` directory:
+.. |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--france-lightgray.png?logo=github
+ :target: https://github.com/OCA/l10n-france/tree/14.0/l10n_fr_siret_lookup
+ :alt: OCA/l10n-france
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/l10n-france-14-0/l10n-france-14-0-l10n_fr_siret_lookup
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/121/14.0
+ :alt: Try me on Runbot
-* **DESCRIPTION.rst** (required)
-* INSTALL.rst (optional)
-* CONFIGURE.rst (optional)
-* **USAGE.rst** (optional, highly recommended)
-* DEVELOP.rst (optional)
-* ROADMAP.rst (optional)
-* HISTORY.rst (optional, recommended)
-* **CONTRIBUTORS.rst** (optional, highly recommended)
-* CREDITS.rst (optional)
+|badge1| |badge2| |badge3| |badge4| |badge5|
-Content of this README will also be drawn from the addon manifest,
-from keys such as name, authors, maintainers, development_status,
-and license.
+This modules updates partner fields via the `SIRENE database `. It uses the dataset *economicref-france-sirene-v3* of `opendatasoft `. It computes a theorical VAT number from the SIREN and then checks the validity of the VAT number on `VIES `_ (if invalid, the VAT number is discarded).
-A good, one sentence summary in the manifest is also highly recommended.
+The module supports 2 scenarios:
+
+* update of an existing partner via the menu *Action > SIREN Lookup*,
+* creation of a new partner: start by setting the VAT number field, the SIREN field or SIRET field and Odoo will set the other fields. For usability purposes, it also work when you write the VAT number, SIREN or SIRET in the company name field.
+
+In the 2 scenarios, it will update the following fields:
+
+* Company Name
+* Street
+* Postal Code
+* City
+* Country
+* SIREN and NIC (i.e. SIRET)
+* VAT Number
+* Language (creation scenario only)
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Usage
+=====
+
+To update an existing parter, go to the partner form view and click on *Action > SIREN Lookup*.
+
+By default, the search field is filled with Company name. To get more accurate results, you may want to add the City name where the company is registered. Then click on *Lookup*.
+
+A list of company is displayed. You may want to click on one in order to see corresponding information or directly selecting company from tree view. Once a company is selected, the partner information is updated and a message is logged in the chatter.
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub 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 `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* Le Filament
+* Akretion
+
+Contributors
+~~~~~~~~~~~~
+
+* Benjamin Rivier (https://le-filament.com)
+* Remi Cazenave (https://le-filament.com)
+* Alexis de Lattre
+
+Other credits
+~~~~~~~~~~~~~
+
+The development of this module has been financially supported by:
+
+* Le Filament
+
+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.
+
+.. |maintainer-remi-filament| image:: https://github.com/remi-filament.png?size=40px
+ :target: https://github.com/remi-filament
+ :alt: remi-filament
+
+Current `maintainer `__:
+
+|maintainer-remi-filament|
+
+This module is part of the `OCA/l10n-france `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/l10n_fr_siret_lookup/static/description/index.html b/l10n_fr_siret_lookup/static/description/index.html
new file mode 100644
index 000000000..4b9c641ae
--- /dev/null
+++ b/l10n_fr_siret_lookup/static/description/index.html
@@ -0,0 +1,455 @@
+
+
+
+
+
+
+SIRET Lookup
+
+
+
+
+
SIRET Lookup
+
+
+
+
This modules updates partner fields via the SIRENE database <https://data.opendatasoft.com>. It uses the dataset economicref-france-sirene-v3 of opendatasoft <https://public.opendatasoft.com/explore/dataset/economicref-france-sirene-v3/information/>. It computes a theorical VAT number from the SIREN and then checks the validity of the VAT number on VIES (if invalid, the VAT number is discarded).
+
The module supports 2 scenarios:
+
+- update of an existing partner via the menu Action > SIREN Lookup,
+- creation of a new partner: start by setting the VAT number field, the SIREN field or SIRET field and Odoo will set the other fields. For usability purposes, it also work when you write the VAT number, SIREN or SIRET in the company name field.
+
+
In the 2 scenarios, it will update the following fields:
+
+- Company Name
+- Street
+- Postal Code
+- City
+- Country
+- SIREN and NIC (i.e. SIRET)
+- VAT Number
+- Language (creation scenario only)
+
+
Table of contents
+
+
+
+
To update an existing parter, go to the partner form view and click on Action > SIREN Lookup.
+
By default, the search field is filled with Company name. To get more accurate results, you may want to add the City name where the company is registered. Then click on Lookup.
+
A list of company is displayed. You may want to click on one in order to see corresponding information or directly selecting company from tree view. Once a company is selected, the partner information is updated and a message is logged in the chatter.
+
+
+
+
Bugs are tracked on GitHub 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.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
The development of this module has been financially supported by:
+
+
+
+
+
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.
+
Current maintainer:
+
+
This module is part of the OCA/l10n-france project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
From b5579df5476b346ab4bdabd33f71d338274ccfb1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi?=
Date: Mon, 25 Oct 2021 20:10:10 +0000
Subject: [PATCH 04/19] Translated using Weblate (French)
Currently translated at 97.7% (43 of 44 strings)
Translation: l10n-france-14.0/l10n-france-14.0-l10n_fr_siret_lookup
Translate-URL: https://translation.odoo-community.org/projects/l10n-france-14-0/l10n-france-14-0-l10n_fr_siret_lookup/fr/
---
l10n_fr_siret_lookup/i18n/fr.po | 39 ++++++++++++++++++---------------
1 file changed, 21 insertions(+), 18 deletions(-)
diff --git a/l10n_fr_siret_lookup/i18n/fr.po b/l10n_fr_siret_lookup/i18n/fr.po
index 72fb4ec1e..22d9da677 100644
--- a/l10n_fr_siret_lookup/i18n/fr.po
+++ b/l10n_fr_siret_lookup/i18n/fr.po
@@ -7,14 +7,15 @@ msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-12-04 14:28+0000\n"
-"PO-Revision-Date: 2018-12-04 14:28+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2021-10-25 20:10+0000\n"
+"Last-Translator: Rémi \n"
"Language-Team: \n"
-"Language: \n"
+"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Plural-Forms: \n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+"X-Generator: Weblate 4.3.2\n"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__staff
@@ -24,12 +25,12 @@ msgstr "Effectifs"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__ape
msgid "APE Code"
-msgstr "Code APE"
+msgstr "Code NAF"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__ape_label
msgid "APE Label"
-msgstr "Libellé APE"
+msgstr "Libellé NAF"
#. module: l10n_fr_siret_lookup
#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
@@ -80,7 +81,7 @@ msgstr ""
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__country_id
msgid "Country"
-msgstr ""
+msgstr "Pays"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__create_uid
@@ -113,6 +114,8 @@ msgid ""
"Failed to query VIES.\n"
"Technical error: %s."
msgstr ""
+"Erreur pendant l'interrogation du VIES.\n"
+"Erreur technique : %s."
#. module: l10n_fr_siret_lookup
#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
@@ -121,6 +124,8 @@ msgid ""
"Failure in the request on data.opendatasoft.com to create or update partner "
"from SIREN or SIRET. Technical error: %s."
msgstr ""
+"Échec de la requêtes à l'API data.opendatasoft.com pour créer ou mettre à "
+"jour le contact à partir du SIREN ou SIRET. Erreur technique : %s."
#. module: l10n_fr_siret_lookup
#: model:ir.model,name:l10n_fr_siret_lookup.model_fr_siret_lookup
@@ -175,9 +180,8 @@ msgstr "Nom"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__name
-#, fuzzy
msgid "Name to Search"
-msgstr "Rechercher"
+msgstr "Nom à Chercher"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__partner_id
@@ -189,12 +193,13 @@ msgstr "Partenaire"
#, python-format
msgid "Partner '%s' is not a company. This action is not relevant."
msgstr ""
+"Le contact '%s' n'est pas une société. Cette action n'est pas applicable."
#. module: l10n_fr_siret_lookup
#: code:addons/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py:0
#, python-format
msgid "Partner updated via the opendatasoft.com API."
-msgstr ""
+msgstr "Contact mis à jour à partir de l'API opendatasoft.com."
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__line_ids
@@ -208,19 +213,18 @@ msgstr "SIREN"
#. module: l10n_fr_siret_lookup
#: model:ir.actions.act_window,name:l10n_fr_siret_lookup.fr_siret_lookup_partner_action
-#, fuzzy
msgid "SIREN Lookup"
-msgstr "Recherche"
+msgstr "Recherche API SIRENE"
#. module: l10n_fr_siret_lookup
#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
msgid "SIREN Lookup via opendatasoft.com"
-msgstr ""
+msgstr "Recherche SIREN via opendatasoft.com"
#. module: l10n_fr_siret_lookup
#: model:ir.actions.act_window,name:l10n_fr_siret_lookup.fr_siret_lookup_action
msgid "SIREN lookup via opendatasoft.com"
-msgstr ""
+msgstr "Recherche SIREN via opendatasoft.com"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__siret
@@ -229,9 +233,8 @@ msgstr "SIRET"
#. module: l10n_fr_siret_lookup
#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
-#, fuzzy
msgid "Search Results"
-msgstr "Résultats"
+msgstr "Résultats de Recherche"
#. module: l10n_fr_siret_lookup
#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
@@ -248,7 +251,7 @@ msgstr "Rue"
#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
#, python-format
msgid "The webservice data.opendatasoft.com returned an HTTP error code %s."
-msgstr ""
+msgstr "L'API data.opendatasoft.com a renvoyé le code d'erreur HTTP %s."
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__wizard_id
@@ -258,7 +261,7 @@ msgstr "Assistant"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__zip
msgid "Zip"
-msgstr ""
+msgstr "Code Postal"
#~ msgid "CP"
#~ msgstr "CP"
From b87aaba7d62774acdcf956924195906ae0067d09 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Fri, 11 Feb 2022 17:30:13 +0100
Subject: [PATCH 05/19] [FIX] l10n_fr_siret_lookup: zip is now given as int by
the API
'codedepartementetablissement' is not always set (in particular for companies in Corsica), so we now only use codepostaletablissement
---
l10n_fr_siret_lookup/models/res_partner.py | 33 ++++++++++++-------
.../wizard/fr_siret_lookup.py | 14 ++++----
2 files changed, 30 insertions(+), 17 deletions(-)
diff --git a/l10n_fr_siret_lookup/models/res_partner.py b/l10n_fr_siret_lookup/models/res_partner.py
index a0f7a2764..d578cd8a4 100644
--- a/l10n_fr_siret_lookup/models/res_partner.py
+++ b/l10n_fr_siret_lookup/models/res_partner.py
@@ -76,7 +76,6 @@ def _opendatasoft_get_raw_data(
if res.status_code in (200, 201):
res_json = res.json()
# from pprint import pprint
-
# pprint(res_json)
return res_json
else:
@@ -119,14 +118,24 @@ def _opendatasoft_parse_record(
"name": raw_record.get("denominationunitelegale")
or raw_record.get("l1_adressage_unitelegale"),
"street": raw_record.get("adresseetablissement"),
- "zip": raw_record.get("codepostaletablissement"),
"city": raw_record.get("libellecommuneetablissement"),
"siren": raw_record.get("siren") and str(raw_record["siren"]) or False,
"nic": raw_record.get("nic"),
}
- if raw_record.get("codedepartementetablissement"):
- dpt_code = raw_record["codedepartementetablissement"]
- res["country_id"] = self._opendatasoft_dpt2country(dpt_code)
+ # In feb 2022, they changed codepostaletablissement and
+ # codedepartementetablissement from string to integer
+ # So I now want to support both, it case they change it back !
+ if raw_record.get("codepostaletablissement"):
+ res["zip"] = raw_record["codepostaletablissement"]
+ if isinstance(res["zip"], int):
+ res["zip"] = str(res["zip"])
+ res["zip"] = res["zip"].zfill(5)
+
+ # I don't use "codedepartementetablissement" to compute
+ # the country, because it is not always set, in particular
+ # for partners in Corsica
+ if res.get("zip"):
+ res["country_id"] = self._opendatasoft_compute_country(res["zip"])
# set lang to French if installed
fr_lang = self.env["res.lang"].search([("code", "=", "fr_FR")])
if fr_lang:
@@ -138,7 +147,7 @@ def _opendatasoft_parse_record(
return res
@api.model
- def _opendatasoft_dpt2country(self, dpt_code):
+ def _opendatasoft_compute_country(self, zipcode):
domtom2xmlid = {
"971": "gp",
"972": "mq",
@@ -152,11 +161,13 @@ def _opendatasoft_dpt2country(self, dpt_code):
"987": "pf", # Polynésie française
"988": "nc", # Nouvelle calédonie
}
- country_id = False
- if dpt_code and len(dpt_code) == 2:
- country_id = self.env.ref("base.fr").id
- elif dpt_code in domtom2xmlid:
- country_xmlid = "base.%s" % domtom2xmlid[dpt_code]
+ country_id = self.env.ref("base.fr").id
+ if (
+ isinstance(zipcode, str)
+ and len(zipcode) == 5
+ and zipcode[:3] in domtom2xmlid
+ ):
+ country_xmlid = "base.%s" % domtom2xmlid[zipcode[:3]]
country_id = self.env.ref(country_xmlid).id
return country_id
diff --git a/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py b/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py
index eff588806..4ec3cd4b4 100644
--- a/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py
+++ b/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py
@@ -41,16 +41,18 @@ def default_get(self, fields_list):
# Action
@api.model
def _prepare_partner_from_data(self, data):
- country_id = False
- if data.get("codedepartementetablissement"):
- country_id = self.env["res.partner"]._opendatasoft_dpt2country(
- data["codedepartementetablissement"]
- )
+ country_id = zipcode = False
+ zipcode = data.get("codepostaletablissement")
+ if isinstance(zipcode, int):
+ zipcode = str(zipcode)
+ if zipcode:
+ zipcode = zipcode.zfill(5)
+ country_id = self.env["res.partner"]._opendatasoft_compute_country(zipcode)
return {
"name": data.get("denominationunitelegale")
or data.get("l1_adressage_unitelegale"),
"street": data.get("adresseetablissement"),
- "zip": data.get("codepostaletablissement"),
+ "zip": zipcode,
"city": data.get("libellecommuneetablissement"),
"country_id": country_id,
"siren": data.get("siren") and str(data["siren"]) or False,
From 22f6839166cc62fbec5c33230b8edba6f00927f1 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Mon, 14 Feb 2022 21:40:27 +0000
Subject: [PATCH 06/19] l10n_fr_siret_lookup 14.0.1.1.0
---
l10n_fr_siret_lookup/__manifest__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/l10n_fr_siret_lookup/__manifest__.py b/l10n_fr_siret_lookup/__manifest__.py
index caba2c12f..1b77d6b8b 100644
--- a/l10n_fr_siret_lookup/__manifest__.py
+++ b/l10n_fr_siret_lookup/__manifest__.py
@@ -5,7 +5,7 @@
{
"name": "SIRET Lookup",
"summary": "Lookup partner via an API on the SIRENE directory",
- "version": "14.0.1.0.0",
+ "version": "14.0.1.1.0",
"category": "Partner",
"website": "https://github.com/OCA/l10n-france",
"author": "Le Filament, Akretion, Odoo Community Association (OCA)",
From 822b8e9c3a7ce3c9bf7463fe9eb083039fcb4618 Mon Sep 17 00:00:00 2001
From: Claude R Perrin
Date: Thu, 15 Sep 2022 19:37:34 +0000
Subject: [PATCH 07/19] Translated using Weblate (French)
Currently translated at 100.0% (44 of 44 strings)
Translation: l10n-france-14.0/l10n-france-14.0-l10n_fr_siret_lookup
Translate-URL: https://translation.odoo-community.org/projects/l10n-france-14-0/l10n-france-14-0-l10n_fr_siret_lookup/fr/
---
l10n_fr_siret_lookup/i18n/fr.po | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/l10n_fr_siret_lookup/i18n/fr.po b/l10n_fr_siret_lookup/i18n/fr.po
index 22d9da677..add6d9bf4 100644
--- a/l10n_fr_siret_lookup/i18n/fr.po
+++ b/l10n_fr_siret_lookup/i18n/fr.po
@@ -7,8 +7,8 @@ msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-12-04 14:28+0000\n"
-"PO-Revision-Date: 2021-10-25 20:10+0000\n"
-"Last-Translator: Rémi \n"
+"PO-Revision-Date: 2022-09-15 22:07+0000\n"
+"Last-Translator: Claude R Perrin \n"
"Language-Team: \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@ msgstr ""
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__staff
msgid "# Staff"
-msgstr "Effectifs"
+msgstr "Nb Employés"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__ape
@@ -76,7 +76,7 @@ msgstr "Valider l'entreprise sélectionnée ?"
#. module: l10n_fr_siret_lookup
#: model:ir.model,name:l10n_fr_siret_lookup.model_res_partner
msgid "Contact"
-msgstr ""
+msgstr "Contact"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__country_id
@@ -124,7 +124,7 @@ msgid ""
"Failure in the request on data.opendatasoft.com to create or update partner "
"from SIREN or SIRET. Technical error: %s."
msgstr ""
-"Échec de la requêtes à l'API data.opendatasoft.com pour créer ou mettre à "
+"Échec de la requête à l'API data.opendatasoft.com pour créer ou mettre à "
"jour le contact à partir du SIREN ou SIRET. Erreur technique : %s."
#. module: l10n_fr_siret_lookup
@@ -181,7 +181,7 @@ msgstr "Nom"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__name
msgid "Name to Search"
-msgstr "Nom à Chercher"
+msgstr "Nom à rechercher"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__partner_id
@@ -214,7 +214,7 @@ msgstr "SIREN"
#. module: l10n_fr_siret_lookup
#: model:ir.actions.act_window,name:l10n_fr_siret_lookup.fr_siret_lookup_partner_action
msgid "SIREN Lookup"
-msgstr "Recherche API SIRENE"
+msgstr "Recherche via l'API SIRENE"
#. module: l10n_fr_siret_lookup
#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
@@ -234,7 +234,7 @@ msgstr "SIRET"
#. module: l10n_fr_siret_lookup
#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
msgid "Search Results"
-msgstr "Résultats de Recherche"
+msgstr "Résultats de recherche"
#. module: l10n_fr_siret_lookup
#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
From 35ec202cdfe3fb8c6f28887c55f255f525f837d5 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Sat, 10 Dec 2022 00:12:12 +0100
Subject: [PATCH 08/19] [MIG] l10n_fr_siret_lookup to v16
---
l10n_fr_siret_lookup/__manifest__.py | 10 ++++----
l10n_fr_siret_lookup/models/res_partner.py | 24 ++++++++-----------
.../wizard/fr_siret_lookup.py | 20 ++++++++--------
.../wizard/fr_siret_lookup_view.xml | 2 +-
4 files changed, 26 insertions(+), 30 deletions(-)
diff --git a/l10n_fr_siret_lookup/__manifest__.py b/l10n_fr_siret_lookup/__manifest__.py
index 1b77d6b8b..b6e76d996 100644
--- a/l10n_fr_siret_lookup/__manifest__.py
+++ b/l10n_fr_siret_lookup/__manifest__.py
@@ -1,20 +1,20 @@
-# Copyright 2018-2021 Le Filament ()
-# Copyright 2021 Akretion France (http://www.akretion.com/)
+# Copyright 2018-2022 Le Filament ()
+# Copyright 2021-2022 Akretion France (http://www.akretion.com/)
# @author: Alexis de Lattre
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "SIRET Lookup",
"summary": "Lookup partner via an API on the SIRENE directory",
- "version": "14.0.1.1.0",
+ "version": "16.0.1.0.0",
"category": "Partner",
"website": "https://github.com/OCA/l10n-france",
"author": "Le Filament, Akretion, Odoo Community Association (OCA)",
- "maintainers": ["remi-filament"],
+ "maintainers": ["remi-filament", "alexis-via"],
"license": "AGPL-3",
"depends": [
"l10n_fr_siret",
],
- "external_dependencies": {"python": ["requests", "python-stdnum"]},
+ "external_dependencies": {"python": ["requests", "python-stdnum>=1.18"]},
"data": [
"wizard/fr_siret_lookup_view.xml",
"views/res_partner.xml",
diff --git a/l10n_fr_siret_lookup/models/res_partner.py b/l10n_fr_siret_lookup/models/res_partner.py
index d578cd8a4..082727718 100644
--- a/l10n_fr_siret_lookup/models/res_partner.py
+++ b/l10n_fr_siret_lookup/models/res_partner.py
@@ -1,5 +1,5 @@
-# Copyright 2018-2021 Le Filament ()
-# Copyright 2021 Akretion France (http://www.akretion.com/)
+# Copyright 2018-2022 Le Filament ()
+# Copyright 2021-2022 Akretion France (http://www.akretion.com/)
# @author: Alexis de Lattre
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
@@ -12,13 +12,14 @@
logger = logging.getLogger(__name__)
try:
- from stdnum import __version__ as stdnum_version
from stdnum.eu.vat import check_vies
from stdnum.fr.siren import is_valid as siren_is_valid, to_tva as siren_to_vat
from stdnum.fr.siret import is_valid as siret_is_valid
except ImportError:
logger.debug("Cannot import stdnum")
+TIMEOUT = 5
+
class ResPartner(models.Model):
_inherit = "res.partner"
@@ -72,7 +73,7 @@ def _opendatasoft_get_raw_data(
try:
logger.info("Sending query to https://data.opendatasoft.com/api")
logger.debug("url=%s params=%s", url, params)
- res = requests.get(url, params=params)
+ res = requests.get(url, params=params, timeout=TIMEOUT)
if res.status_code in (200, 201):
res_json = res.json()
# from pprint import pprint
@@ -101,7 +102,7 @@ def _opendatasoft_get_raw_data(
"Technical error: %s."
)
% e
- )
+ ) from e
return False
@api.model
@@ -178,19 +179,14 @@ def _siren2vat_vies(self, siren, raise_if_fail=False):
vies_res = False
res = False
try:
- stdnum_version_float = float(stdnum_version)
- except Exception:
- stdnum_version_float = 1.8
- try:
- if stdnum_version_float < 1.9:
- vies_res = check_vies(vat)
- else:
- vies_res = check_vies(vat, timeout=5)
+ vies_res = check_vies(vat, timeout=TIMEOUT)
logger.debug("VIES answer vies_res.valid=%s", vies_res.valid)
except Exception as e:
logger.error("VIES query failed: %s", e)
if raise_if_fail:
- raise UserError(_("Failed to query VIES.\nTechnical error: %s.") % e)
+ raise UserError(
+ _("Failed to query VIES.\nTechnical error: %s.") % e
+ ) from e
return None
if vies_res and vies_res.valid:
res = vat
diff --git a/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py b/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py
index 4ec3cd4b4..63508aff5 100644
--- a/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py
+++ b/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py
@@ -1,5 +1,5 @@
-# Copyright 2018-2021 Le Filament ()
-# Copyright 2021 Akretion France (http://www.akretion.com/)
+# Copyright 2018-2022 Le Filament ()
+# Copyright 2021-2022 Akretion France (http://www.akretion.com/)
# @author: Alexis de Lattre
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
@@ -15,7 +15,7 @@ class FrSiretLookup(models.TransientModel):
line_ids = fields.One2many(
"fr.siret.lookup.line", "wizard_id", string="Results", readonly=True
)
- partner_id = fields.Many2one("res.partner", "Partner", readonly=True, required=True)
+ partner_id = fields.Many2one("res.partner", readonly=True, required=True)
@api.model
def default_get(self, fields_list):
@@ -94,19 +94,19 @@ class FrSiretLookupLine(models.TransientModel):
_description = "Company Selection"
wizard_id = fields.Many2one("fr.siret.lookup", string="Wizard", ondelete="cascade")
- name = fields.Char(string="Name")
- street = fields.Char(string="Street")
- zip = fields.Char(string="Zip")
- city = fields.Char(string="City")
+ name = fields.Char()
+ street = fields.Char()
+ zip = fields.Char()
+ city = fields.Char()
country_id = fields.Many2one("res.country", string="Country")
- legal_type = fields.Char("Legal Type")
+ legal_type = fields.Char()
siren = fields.Char("SIREN")
siret = fields.Char("SIRET")
ape = fields.Char("APE Code")
ape_label = fields.Char("APE Label")
- creation_date = fields.Date("Creation date")
+ creation_date = fields.Date()
staff = fields.Char("# Staff")
- category = fields.Char("Category")
+ category = fields.Char()
def _prepare_partner_values(self):
self.ensure_one()
diff --git a/l10n_fr_siret_lookup/wizard/fr_siret_lookup_view.xml b/l10n_fr_siret_lookup/wizard/fr_siret_lookup_view.xml
index 94c3306ff..91ed6784c 100644
--- a/l10n_fr_siret_lookup/wizard/fr_siret_lookup_view.xml
+++ b/l10n_fr_siret_lookup/wizard/fr_siret_lookup_view.xml
@@ -16,7 +16,7 @@
colspan="2"
/>
-
+
From 56a491bb91f4c7064aa46f72fd01b38c26f9fe23 Mon Sep 17 00:00:00 2001
From: oca-ci
Date: Fri, 30 Dec 2022 22:55:50 +0000
Subject: [PATCH 09/19] [UPD] Update l10n_fr_siret_lookup.pot
---
l10n_fr_siret_lookup/i18n/l10n_fr_siret_lookup.pot | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/l10n_fr_siret_lookup/i18n/l10n_fr_siret_lookup.pot b/l10n_fr_siret_lookup/i18n/l10n_fr_siret_lookup.pot
index be156d8b4..3f4f76ac0 100644
--- a/l10n_fr_siret_lookup/i18n/l10n_fr_siret_lookup.pot
+++ b/l10n_fr_siret_lookup/i18n/l10n_fr_siret_lookup.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 14.0\n"
+"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -93,17 +93,17 @@ msgstr ""
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__creation_date
-msgid "Creation date"
+msgid "Creation Date"
msgstr ""
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__display_name
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__display_name
-#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_res_partner__display_name
msgid "Display Name"
msgstr ""
#. module: l10n_fr_siret_lookup
+#. odoo-python
#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
#, python-format
msgid ""
@@ -112,6 +112,7 @@ msgid ""
msgstr ""
#. module: l10n_fr_siret_lookup
+#. odoo-python
#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
#, python-format
msgid ""
@@ -127,14 +128,12 @@ msgstr ""
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__id
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__id
-#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_res_partner__id
msgid "ID"
msgstr ""
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup____last_update
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line____last_update
-#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_res_partner____last_update
msgid "Last Modified on"
msgstr ""
@@ -181,12 +180,14 @@ msgid "Partner"
msgstr ""
#. module: l10n_fr_siret_lookup
+#. odoo-python
#: code:addons/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py:0
#, python-format
msgid "Partner '%s' is not a company. This action is not relevant."
msgstr ""
#. module: l10n_fr_siret_lookup
+#. odoo-python
#: code:addons/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py:0
#, python-format
msgid "Partner updated via the opendatasoft.com API."
@@ -239,6 +240,7 @@ msgid "Street"
msgstr ""
#. module: l10n_fr_siret_lookup
+#. odoo-python
#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
#, python-format
msgid "The webservice data.opendatasoft.com returned an HTTP error code %s."
From 21802629f5d34bc3bdf35d4f4d88b900b5ecdd46 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Fri, 30 Dec 2022 22:58:30 +0000
Subject: [PATCH 10/19] [UPD] README.rst
---
l10n_fr_siret_lookup/README.rst | 17 ++++++++++-------
.../static/description/index.html | 10 +++++-----
2 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/l10n_fr_siret_lookup/README.rst b/l10n_fr_siret_lookup/README.rst
index dfeec4215..0fbdd371e 100644
--- a/l10n_fr_siret_lookup/README.rst
+++ b/l10n_fr_siret_lookup/README.rst
@@ -14,13 +14,13 @@ SIRET Lookup
: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--france-lightgray.png?logo=github
- :target: https://github.com/OCA/l10n-france/tree/14.0/l10n_fr_siret_lookup
+ :target: https://github.com/OCA/l10n-france/tree/16.0/l10n_fr_siret_lookup
:alt: OCA/l10n-france
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/l10n-france-14-0/l10n-france-14-0-l10n_fr_siret_lookup
+ :target: https://translation.odoo-community.org/projects/l10n-france-16-0/l10n-france-16-0-l10n_fr_siret_lookup
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/121/14.0
+ :target: https://runbot.odoo-community.org/runbot/121/16.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -63,7 +63,7 @@ Bug Tracker
Bugs are tracked on `GitHub 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 `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -106,11 +106,14 @@ promote its widespread use.
.. |maintainer-remi-filament| image:: https://github.com/remi-filament.png?size=40px
:target: https://github.com/remi-filament
:alt: remi-filament
+.. |maintainer-alexis-via| image:: https://github.com/alexis-via.png?size=40px
+ :target: https://github.com/alexis-via
+ :alt: alexis-via
-Current `maintainer `__:
+Current `maintainers `__:
-|maintainer-remi-filament|
+|maintainer-remi-filament| |maintainer-alexis-via|
-This module is part of the `OCA/l10n-france `_ project on GitHub.
+This module is part of the `OCA/l10n-france `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/l10n_fr_siret_lookup/static/description/index.html b/l10n_fr_siret_lookup/static/description/index.html
index 4b9c641ae..49bfc9fbd 100644
--- a/l10n_fr_siret_lookup/static/description/index.html
+++ b/l10n_fr_siret_lookup/static/description/index.html
@@ -367,7 +367,7 @@ SIRET Lookup
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This modules updates partner fields via the SIRENE database <https://data.opendatasoft.com>. It uses the dataset economicref-france-sirene-v3 of opendatasoft <https://public.opendatasoft.com/explore/dataset/economicref-france-sirene-v3/information/>. It computes a theorical VAT number from the SIREN and then checks the validity of the VAT number on VIES (if invalid, the VAT number is discarded).
The module supports 2 scenarios:
@@ -410,7 +410,7 @@
Bugs are tracked on GitHub 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.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -444,9 +444,9 @@
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.
-
Current maintainer:
-
-
This module is part of the OCA/l10n-france project on GitHub.
+
Current maintainers:
+
+
This module is part of the OCA/l10n-france project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
From afd63a462210712481050810360c65f7c343161c Mon Sep 17 00:00:00 2001
From: Weblate
Date: Sat, 31 Dec 2022 03:12:17 +0000
Subject: [PATCH 11/19] Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
Translation: l10n-france-16.0/l10n-france-16.0-l10n_fr_siret_lookup
Translate-URL: https://translation.odoo-community.org/projects/l10n-france-16-0/l10n-france-16-0-l10n_fr_siret_lookup/
---
l10n_fr_siret_lookup/i18n/fr.po | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/l10n_fr_siret_lookup/i18n/fr.po b/l10n_fr_siret_lookup/i18n/fr.po
index add6d9bf4..5699c211f 100644
--- a/l10n_fr_siret_lookup/i18n/fr.po
+++ b/l10n_fr_siret_lookup/i18n/fr.po
@@ -97,17 +97,17 @@ msgstr "Créé le"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__creation_date
-msgid "Creation date"
-msgstr "Date de création"
+msgid "Creation Date"
+msgstr ""
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__display_name
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__display_name
-#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_res_partner__display_name
msgid "Display Name"
msgstr "Nom affiché"
#. module: l10n_fr_siret_lookup
+#. odoo-python
#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
#, python-format
msgid ""
@@ -118,6 +118,7 @@ msgstr ""
"Erreur technique : %s."
#. module: l10n_fr_siret_lookup
+#. odoo-python
#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
#, python-format
msgid ""
@@ -135,14 +136,12 @@ msgstr "Obtenir les informations sur les entreprises"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__id
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__id
-#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_res_partner__id
msgid "ID"
msgstr "ID"
#. module: l10n_fr_siret_lookup
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup____last_update
#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line____last_update
-#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_res_partner____last_update
msgid "Last Modified on"
msgstr "Dernière Modification le"
@@ -189,6 +188,7 @@ msgid "Partner"
msgstr "Partenaire"
#. module: l10n_fr_siret_lookup
+#. odoo-python
#: code:addons/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py:0
#, python-format
msgid "Partner '%s' is not a company. This action is not relevant."
@@ -196,6 +196,7 @@ msgstr ""
"Le contact '%s' n'est pas une société. Cette action n'est pas applicable."
#. module: l10n_fr_siret_lookup
+#. odoo-python
#: code:addons/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py:0
#, python-format
msgid "Partner updated via the opendatasoft.com API."
@@ -248,6 +249,7 @@ msgid "Street"
msgstr "Rue"
#. module: l10n_fr_siret_lookup
+#. odoo-python
#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
#, python-format
msgid "The webservice data.opendatasoft.com returned an HTTP error code %s."
@@ -263,6 +265,9 @@ msgstr "Assistant"
msgid "Zip"
msgstr "Code Postal"
+#~ msgid "Creation date"
+#~ msgstr "Date de création"
+
#~ msgid "CP"
#~ msgstr "CP"
From 8d9c45f285831cd4af5114d0dedbf7339c8c7afd Mon Sep 17 00:00:00 2001
From: Ivorra78
Date: Tue, 22 Aug 2023 09:12:16 +0000
Subject: [PATCH 12/19] Added translation using Weblate (Spanish)
---
l10n_fr_siret_lookup/i18n/es.po | 258 ++++++++++++++++++++++++++++++++
1 file changed, 258 insertions(+)
create mode 100644 l10n_fr_siret_lookup/i18n/es.po
diff --git a/l10n_fr_siret_lookup/i18n/es.po b/l10n_fr_siret_lookup/i18n/es.po
new file mode 100644
index 000000000..96fedfe3f
--- /dev/null
+++ b/l10n_fr_siret_lookup/i18n/es.po
@@ -0,0 +1,258 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * l10n_fr_siret_lookup
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 16.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\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"
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__staff
+msgid "# Staff"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__ape
+msgid "APE Code"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__ape_label
+msgid "APE Label"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
+msgid "Address"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__category
+msgid "Category"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__city
+msgid "City"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+msgid "Close"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
+msgid "Company"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
+msgid "Company Infos"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model,name:l10n_fr_siret_lookup.model_fr_siret_lookup_line
+msgid "Company Selection"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
+msgid "Confirm selected company ?"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model,name:l10n_fr_siret_lookup.model_res_partner
+msgid "Contact"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__country_id
+msgid "Country"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__create_uid
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__create_date
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__create_date
+msgid "Created on"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__creation_date
+msgid "Creation Date"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__display_name
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#. odoo-python
+#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
+#, python-format
+msgid ""
+"Failed to query VIES.\n"
+"Technical error: %s."
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#. odoo-python
+#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
+#, python-format
+msgid ""
+"Failure in the request on data.opendatasoft.com to create or update partner "
+"from SIREN or SIRET. Technical error: %s."
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model,name:l10n_fr_siret_lookup.model_fr_siret_lookup
+msgid "Get values from companies"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__id
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__id
+msgid "ID"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup____last_update
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__write_uid
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__write_date
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
+msgid "Legal Infos"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__legal_type
+msgid "Legal Type"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+msgid "Lookup"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__name
+msgid "Name"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__name
+msgid "Name to Search"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__partner_id
+msgid "Partner"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#. odoo-python
+#: code:addons/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py:0
+#, python-format
+msgid "Partner '%s' is not a company. This action is not relevant."
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#. odoo-python
+#: code:addons/l10n_fr_siret_lookup/wizard/fr_siret_lookup.py:0
+#, python-format
+msgid "Partner updated via the opendatasoft.com API."
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup__line_ids
+msgid "Results"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__siren
+msgid "SIREN"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.actions.act_window,name:l10n_fr_siret_lookup.fr_siret_lookup_partner_action
+msgid "SIREN Lookup"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+msgid "SIREN Lookup via opendatasoft.com"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.actions.act_window,name:l10n_fr_siret_lookup.fr_siret_lookup_action
+msgid "SIREN lookup via opendatasoft.com"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__siret
+msgid "SIRET"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+msgid "Search Results"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_form
+#: model_terms:ir.ui.view,arch_db:l10n_fr_siret_lookup.fr_siret_lookup_line_form
+msgid "Select"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__street
+msgid "Street"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#. odoo-python
+#: code:addons/l10n_fr_siret_lookup/models/res_partner.py:0
+#, python-format
+msgid "The webservice data.opendatasoft.com returned an HTTP error code %s."
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__wizard_id
+msgid "Wizard"
+msgstr ""
+
+#. module: l10n_fr_siret_lookup
+#: model:ir.model.fields,field_description:l10n_fr_siret_lookup.field_fr_siret_lookup_line__zip
+msgid "Zip"
+msgstr ""
From 240a339f46d7dc926e57464b4ae794a64805ee41 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Sun, 3 Sep 2023 13:34:52 +0000
Subject: [PATCH 13/19] [UPD] README.rst
---
l10n_fr_siret_lookup/README.rst | 15 ++++---
.../static/description/index.html | 44 ++++++++++---------
2 files changed, 32 insertions(+), 27 deletions(-)
diff --git a/l10n_fr_siret_lookup/README.rst b/l10n_fr_siret_lookup/README.rst
index 0fbdd371e..a0312b344 100644
--- a/l10n_fr_siret_lookup/README.rst
+++ b/l10n_fr_siret_lookup/README.rst
@@ -2,10 +2,13 @@
SIRET Lookup
============
-.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:03fba67efc8266229377bb6b509fc696ca15a5c46eef0db0a8d749d51c7d7cdd
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
@@ -19,11 +22,11 @@ SIRET Lookup
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/l10n-france-16-0/l10n-france-16-0-l10n_fr_siret_lookup
:alt: Translate me on Weblate
-.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/121/16.0
- :alt: Try me on Runbot
+.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-france&target_branch=16.0
+ :alt: Try me on Runboat
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
This modules updates partner fields via the `SIRENE database `. It uses the dataset *economicref-france-sirene-v3* of `opendatasoft `. It computes a theorical VAT number from the SIREN and then checks the validity of the VAT number on `VIES `_ (if invalid, the VAT number is discarded).
@@ -62,7 +65,7 @@ Bug Tracker
Bugs are tracked on `GitHub 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
+If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback `_.
Do not contact contributors directly about support or help with technical issues.
diff --git a/l10n_fr_siret_lookup/static/description/index.html b/l10n_fr_siret_lookup/static/description/index.html
index 49bfc9fbd..9f33ea1b6 100644
--- a/l10n_fr_siret_lookup/static/description/index.html
+++ b/l10n_fr_siret_lookup/static/description/index.html
@@ -1,20 +1,20 @@
-
+
-
+
SIRET Lookup