2018-04-03 17:53:14 +02:00
|
|
|
class Champs::SiretController < ApplicationController
|
2018-09-06 19:23:27 +02:00
|
|
|
before_action :authenticate_logged_user!
|
|
|
|
|
|
|
|
def show
|
|
|
|
@position = params[:position]
|
|
|
|
extract_siret
|
|
|
|
find_etablisement
|
|
|
|
|
|
|
|
if @siret.empty?
|
|
|
|
@etablissement&.mark_for_destruction
|
|
|
|
elsif @siret.present? && @siret.length == 14
|
|
|
|
etablissement = find_etablisement_with_siret
|
|
|
|
if etablissement.present?
|
|
|
|
@etablissement = etablissement
|
2018-04-03 17:53:14 +02:00
|
|
|
else
|
2018-09-06 19:23:27 +02:00
|
|
|
@etablissement&.mark_for_destruction
|
|
|
|
@siret = :not_found
|
2018-04-03 17:53:14 +02:00
|
|
|
end
|
2018-09-06 19:23:27 +02:00
|
|
|
else
|
|
|
|
@etablissement&.mark_for_destruction
|
|
|
|
@siret = :invalid
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def extract_siret
|
|
|
|
if params[:dossier].key?(:champs_attributes)
|
|
|
|
@siret = params[:dossier][:champs_attributes][@position][:value]
|
|
|
|
@attribute = "dossier[champs_attributes][#{@position}][etablissement_attributes]"
|
|
|
|
else
|
|
|
|
@siret = params[:dossier][:champs_private_attributes][@position][:value]
|
|
|
|
@attribute = "dossier[champs_private_attributes][#{@position}][etablissement_attributes]"
|
2018-04-03 17:53:14 +02:00
|
|
|
end
|
2018-09-06 19:23:27 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
def find_etablisement
|
|
|
|
if params[:champ_id].present?
|
|
|
|
champ = Champ.find_by(dossier_id: logged_user.dossiers, id: params[:champ_id])
|
|
|
|
@etablissement = champ&.etablissement
|
|
|
|
end
|
|
|
|
@procedure_id = champ&.dossier&.procedure_id || 'aperçu'
|
|
|
|
end
|
|
|
|
|
|
|
|
def find_etablisement_with_siret
|
|
|
|
etablissement_attributes = ApiEntrepriseService.get_etablissement_params_for_siret(@siret, @procedure_id)
|
|
|
|
if etablissement_attributes.present?
|
|
|
|
Etablissement.new(etablissement_attributes)
|
2018-04-03 17:53:14 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|