prend en compte le nom de l'enseigne pour l'établissement

This commit is contained in:
Christophe Robillard 2020-08-20 10:21:34 +02:00
parent 0a5a5ef317
commit f77cc06a91
10 changed files with 100 additions and 11 deletions

View file

@ -9,13 +9,10 @@ module EtablissementHelper
end end
def raison_sociale_or_name(etablissement) def raison_sociale_or_name(etablissement)
if etablissement.association? etablissement.association_titre.presence ||
etablissement.association_titre etablissement.enseigne.presence ||
elsif etablissement.entreprise_raison_sociale.present? etablissement.entreprise_raison_sociale.presence ||
etablissement.entreprise_raison_sociale
else
"#{etablissement.entreprise_nom} #{etablissement.entreprise_prenom}" "#{etablissement.entreprise_nom} #{etablissement.entreprise_prenom}"
end
end end
def effectif(etablissement) def effectif(etablissement)

View file

@ -25,6 +25,7 @@ class ApiEntreprise::EtablissementAdapter < ApiEntreprise::Adapter
:siege_social, :siege_social,
:naf, :naf,
:libelle_naf, :libelle_naf,
:enseigne,
:diffusable_commercialement :diffusable_commercialement
] ]
end end

View file

@ -14,6 +14,7 @@
# code_postal :string # code_postal :string
# complement_adresse :string # complement_adresse :string
# diffusable_commercialement :boolean # diffusable_commercialement :boolean
# enseigne :string
# entreprise_bilans_bdf :jsonb # entreprise_bilans_bdf :jsonb
# entreprise_bilans_bdf_monnaie :string # entreprise_bilans_bdf_monnaie :string
# entreprise_capital_social :bigint # entreprise_capital_social :bigint
@ -75,6 +76,7 @@ class Etablissement < ApplicationRecord
association_titre, association_titre,
association_objet, association_objet,
siret, siret,
enseigne,
naf, naf,
libelle_naf, libelle_naf,
adresse, adresse,
@ -89,6 +91,7 @@ class Etablissement < ApplicationRecord
['Dossier ID', :dossier_id_for_export], ['Dossier ID', :dossier_id_for_export],
['Champ', :libelle_for_export], ['Champ', :libelle_for_export],
['Établissement SIRET', :siret], ['Établissement SIRET', :siret],
['Etablissement enseigne', :enseigne],
['Établissement siège social', :siege_social], ['Établissement siège social', :siege_social],
['Établissement NAF', :naf], ['Établissement NAF', :naf],
['Établissement libellé NAF', :libelle_naf], ['Établissement libellé NAF', :libelle_naf],

View file

@ -0,0 +1,5 @@
class AddEnseigneToEtablissements < ActiveRecord::Migration[6.0]
def change
add_column :etablissements, :enseigne, :string
end
end

View file

@ -10,7 +10,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2020_07_22_135121) do ActiveRecord::Schema.define(version: 2020_08_19_153016) do
# These are extensions that must be enabled in order to support this database # These are extensions that must be enabled in order to support this database
enable_extension "plpgsql" enable_extension "plpgsql"
@ -323,6 +323,7 @@ ActiveRecord::Schema.define(version: 2020_07_22_135121) do
t.string "entreprise_effectif_annuel_annee" t.string "entreprise_effectif_annuel_annee"
t.jsonb "entreprise_bilans_bdf" t.jsonb "entreprise_bilans_bdf"
t.string "entreprise_bilans_bdf_monnaie" t.string "entreprise_bilans_bdf_monnaie"
t.string "enseigne"
t.index ["dossier_id"], name: "index_etablissements_on_dossier_id" t.index ["dossier_id"], name: "index_etablissements_on_dossier_id"
end end

View file

@ -0,0 +1,53 @@
{
"etablissement": {
"adresse": {
"cedex": null,
"code_insee_localite": "31555",
"code_postal": "31400",
"complement_adresse": null,
"l1": "DIRECTION INTERREGIONALE DES SERVICES PENITENTIAIRES TOULOUSE - SUD",
"l2": "SERVICE PENITENTIAIRE D'INSERTION ET DE PROBATION, DE LA HAUTE-GARONNE",
"l3": null,
"l4": "109 AV DE LESPINET",
"l5": "BP 4087",
"l6": "31400 TOULOUSE",
"l7": "FRANCE",
"localite": "TOULOUSE",
"nom_voie": "DE LESPINET",
"numero_voie": "109",
"type_voie": "AV"
},
"commune_implantation": {
"code": "31555",
"value": "Toulouse"
},
"date_creation_etablissement": 1458946800,
"date_mise_a_jour": 1533648919,
"diffusable_commercialement": true,
"enseigne": "SERVICE PENITENTIAIRE D'INSERTION ET DE PROBATION, DE LA HAUTE-GARONNE",
"etat_administratif": {
"date_fermeture": null,
"value": "A"
},
"libelle_naf": "Justice",
"naf": "8423Z",
"pays_implantation": {
"code": "FR",
"value": "FRANCE"
},
"region_implantation": {
"code": "76",
"value": "Occitanie"
},
"siege_social": false,
"siret": "17310120500719",
"tranche_effectif_salarie_etablissement": {
"a": null,
"code": null,
"date_reference": null,
"de": null,
"intitule": null
}
},
"gateway_error": false
}

View file

@ -1,10 +1,12 @@
RSpec.describe EtablissementHelper, type: :helper do RSpec.describe EtablissementHelper, type: :helper do
let(:code_effectif) { '00' } let(:code_effectif) { '00' }
let(:raison_sociale) { 'GRTGaz' } let(:raison_sociale) { 'GRTGaz' }
let(:enseigne) { "mon enseigne" }
let(:nom) { 'mon nom' } let(:nom) { 'mon nom' }
let(:prenom) { 'mon prenom' } let(:prenom) { 'mon prenom' }
let(:entreprise_params) do let(:etablissement_params) do
{ {
enseigne: enseigne,
entreprise_capital_social: 123_000, entreprise_capital_social: 123_000,
entreprise_code_effectif_entreprise: code_effectif, entreprise_code_effectif_entreprise: code_effectif,
entreprise_raison_sociale: raison_sociale, entreprise_raison_sociale: raison_sociale,
@ -12,13 +14,21 @@ RSpec.describe EtablissementHelper, type: :helper do
entreprise_prenom: prenom entreprise_prenom: prenom
} }
end end
let(:etablissement) { create(:etablissement, entreprise_params) } let(:etablissement) { create(:etablissement, etablissement_params) }
describe '#raison_sociale_or_name' do describe '#raison_sociale_or_name' do
subject { raison_sociale_or_name(etablissement) } subject { raison_sociale_or_name(etablissement) }
context 'when etablissement is not the siege and enseigne exist' do
let(:enseigne) { "mon enseigne" }
it 'display enseigne' do
expect(subject).to eq(enseigne)
end
end
context 'when raison_sociale exist' do context 'when raison_sociale exist' do
let(:raison_sociale) { 'ma super raison_sociale' } let(:raison_sociale) { 'ma super raison_sociale' }
let(:enseigne) { nil }
it 'display raison_sociale' do it 'display raison_sociale' do
expect(subject).to eq(raison_sociale) expect(subject).to eq(raison_sociale)
end end
@ -26,6 +36,7 @@ RSpec.describe EtablissementHelper, type: :helper do
context 'when raison_sociale is nil' do context 'when raison_sociale is nil' do
let(:raison_sociale) { nil } let(:raison_sociale) { nil }
let(:enseigne) { nil }
it 'display nom and prenom' do it 'display nom and prenom' do
expect(subject).to eq("#{nom} #{prenom}") expect(subject).to eq("#{nom} #{prenom}")
end end

View file

@ -8,11 +8,12 @@ describe ApiEntreprise::EtablissementAdapter do
context 'SIRET valide avec infos diffusables' do context 'SIRET valide avec infos diffusables' do
let(:siret) { '41816609600051' } let(:siret) { '41816609600051' }
let(:fixture) { 'spec/fixtures/files/api_entreprise/etablissements.json' }
subject { described_class.new(siret, procedure_id).to_params } subject { described_class.new(siret, procedure_id).to_params }
before do before do
stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/etablissements\/#{siret}?.*token=/) stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/etablissements\/#{siret}?.*token=/)
.to_return(body: File.read('spec/fixtures/files/api_entreprise/etablissements.json', status: 200)) .to_return(body: File.read(fixture, status: 200))
end end
it '#to_params class est une Hash ?' do it '#to_params class est une Hash ?' do
@ -75,6 +76,22 @@ describe ApiEntreprise::EtablissementAdapter do
end end
end end
end end
context 'Attributs Etablissements pour etablissement non siege' do
let(:siret) { '17310120500719' }
let(:fixture) { 'spec/fixtures/files/api_entreprise/etablissements-non-siege.json' }
it 'L\'entreprise contient bien un siret' do
expect(subject[:siret]).to eq(siret)
end
it 'L\'etablissement contient bien un siege_social à false' do
expect(subject[:siege_social]).to eq(false)
end
it 'L\'etablissement contient bien une enseigne' do
expect(subject[:enseigne]).to eq("SERVICE PENITENTIAIRE D'INSERTION ET DE PROBATION, DE LA HAUTE-GARONNE")
end
end
end end
context 'SIRET valide avec infos non diffusables' do context 'SIRET valide avec infos non diffusables' do

View file

@ -358,7 +358,7 @@ describe Champ do
end end
let(:champ) { type_de_champ.champ.build(value: etablissement.siret, etablissement: etablissement) } let(:champ) { type_de_champ.champ.build(value: etablissement.siret, etablissement: etablissement) }
it { is_expected.to eq([etablissement.entreprise_siren, etablissement.entreprise_numero_tva_intracommunautaire, etablissement.entreprise_forme_juridique, etablissement.entreprise_forme_juridique_code, etablissement.entreprise_nom_commercial, etablissement.entreprise_raison_sociale, etablissement.entreprise_siret_siege_social, etablissement.entreprise_nom, etablissement.entreprise_prenom, etablissement.association_rna, etablissement.association_titre, etablissement.association_objet, etablissement.siret, etablissement.naf, etablissement.libelle_naf, etablissement.adresse, etablissement.code_postal, etablissement.localite, etablissement.code_insee_localite]) } it { is_expected.to eq([etablissement.entreprise_siren, etablissement.entreprise_numero_tva_intracommunautaire, etablissement.entreprise_forme_juridique, etablissement.entreprise_forme_juridique_code, etablissement.entreprise_nom_commercial, etablissement.entreprise_raison_sociale, etablissement.entreprise_siret_siege_social, etablissement.entreprise_nom, etablissement.entreprise_prenom, etablissement.association_rna, etablissement.association_titre, etablissement.association_objet, etablissement.siret, etablissement.enseigne, etablissement.naf, etablissement.libelle_naf, etablissement.adresse, etablissement.code_postal, etablissement.localite, etablissement.code_insee_localite]) }
end end
context 'when there is no etablissement' do context 'when there is no etablissement' do

View file

@ -253,6 +253,7 @@ describe ProcedureExportService do
"Dossier ID", "Dossier ID",
"Champ", "Champ",
"Établissement SIRET", "Établissement SIRET",
"Etablissement enseigne",
"Établissement siège social", "Établissement siège social",
"Établissement NAF", "Établissement NAF",
"Établissement libellé NAF", "Établissement libellé NAF",