diff --git a/app/doc/open-api.yml b/app/doc/open-api.yml index 0fae1302..f6cfbc6d 100755 --- a/app/doc/open-api.yml +++ b/app/doc/open-api.yml @@ -1027,6 +1027,12 @@ paths: distribution spéciale + (code postal + libelle commune | cedex + libelle cedex) + libelle commune étranger + libelle pays étranger* + ancien_siege: + type: boolean + example: false + description: >- + L'établissement était le siège de + l'unité légale (source : base SIRENE). caractere_employeur: type: string example: "O" @@ -1936,6 +1942,12 @@ paths: distribution spéciale + (code postal + libelle commune | cedex + libelle cedex) + libelle commune étranger + libelle pays étranger* + ancien_siege: + type: boolean + example: false + description: >- + L'établissement était le siège de + l'unité légale (source : base SIRENE). caractere_employeur: type: string example: "O" diff --git a/app/models/unite_legale.py b/app/models/unite_legale.py index 0d61bb2e..eac247cf 100644 --- a/app/models/unite_legale.py +++ b/app/models/unite_legale.py @@ -6,6 +6,7 @@ class Etablissement(BaseModel): activite_principale: str | None = None activite_principale_registre_metier: str | None = None + ancien_siege: bool | None = None annee_tranche_effectif_salarie: str | None = None adresse: str | None = None caractere_employeur: str | None = None diff --git a/app/service/format_search_results.py b/app/service/format_search_results.py index 0cd3e471..5543bc6e 100644 --- a/app/service/format_search_results.py +++ b/app/service/format_search_results.py @@ -12,7 +12,7 @@ ) from app.service.formatters.immatriculation import format_immatriculation from app.service.formatters.nature_juridique import format_nature_juridique -from app.service.formatters.nom_complet import format_nom_complet +from app.service.formatters.nom_complet import format_nom_complet, get_nom_commercial from app.service.formatters.non_diffusible import ( hide_non_diffusible_fields, ) @@ -38,6 +38,7 @@ def get_field(field, default=None): "nom_complet": format_nom_complet( get_field("nom_complet"), get_field("sigle"), + get_nom_commercial(get_field("siege")), get_field("denomination_usuelle_1_unite_legale"), get_field("denomination_usuelle_2_unite_legale"), get_field("denomination_usuelle_3_unite_legale"), diff --git a/app/service/formatters/etablissements.py b/app/service/formatters/etablissements.py index 0743b2c1..3469d3df 100644 --- a/app/service/formatters/etablissements.py +++ b/app/service/formatters/etablissements.py @@ -16,6 +16,7 @@ def get_field(field, default=None): "activite_principale_registre_metier" ), "annee_tranche_effectif_salarie": get_field("annee_tranche_effectif_salarie"), + "ancien_siege": get_field("ancien_siege"), "adresse": get_field("adresse"), "caractere_employeur": get_field("caractere_employeur"), "cedex": get_field("cedex"), @@ -113,4 +114,5 @@ def format_siege(siege=None): if not siege: return {} siege_formatted = format_etablissement(siege).dict() + del siege_formatted["ancien_siege"] return Etablissement(**siege_formatted) diff --git a/app/service/formatters/nom_complet.py b/app/service/formatters/nom_complet.py index 54abc8a4..57a49812 100644 --- a/app/service/formatters/nom_complet.py +++ b/app/service/formatters/nom_complet.py @@ -1,24 +1,40 @@ +def get_nom_commercial(siege): + return siege.get("nom_commercial", None) if siege else None + + def format_nom_complet( nom_complet, sigle=None, + nom_commercial_siege=None, denomination_usuelle_1=None, denomination_usuelle_2=None, denomination_usuelle_3=None, ): """Add `denomination usuelle` fields and `sigle` to `nom_complet`.""" - all_denomination_usuelle = "" - for item in [ - denomination_usuelle_1, - denomination_usuelle_2, - denomination_usuelle_3, - ]: - if item: - all_denomination_usuelle += f"{item} " - if all_denomination_usuelle: - nom_complet = f"{nom_complet} ({all_denomination_usuelle.strip()})" + if not nom_complet: + return None + + # Handle denomination usuelle + if nom_commercial_siege: + denomination = nom_commercial_siege + else: + denomination = " ".join( + filter( + None, + [ + denomination_usuelle_1, + denomination_usuelle_2, + denomination_usuelle_3, + ], + ) + ) + + # Add denomination to nom_complet if it exists + if denomination: + nom_complet += f" ({denomination.strip()})" + + # Add sigle if it exists if sigle: - nom_complet = f"{nom_complet} ({sigle})" - if nom_complet: - return nom_complet.upper() - # if nom_complet is null - return None + nom_complet += f" ({sigle})" + + return nom_complet.upper()