diff --git a/app/entreprises/app_relations_entreprises.py b/app/entreprises/app_relations_entreprises.py
index 580e685f23..77f31706f1 100644
--- a/app/entreprises/app_relations_entreprises.py
+++ b/app/entreprises/app_relations_entreprises.py
@@ -470,6 +470,43 @@ def check_site_import(row_data: list):
return True
+def check_correspondants_import(m):
+ ligne = 1
+ if m[0] != CORRESPONDANTS_KEYS:
+ flash(
+ f'Veuillez utilisez la feuille excel à remplir (Feuille "Correspondants", ligne {ligne})'
+ )
+ return False
+ for correspondant_data in m[1:]:
+ ligne += 1
+ if correspondant_data[0] == "":
+ flash(
+ f'Erreur lors de l\'importation (Feuille "Correspondants", ligne {ligne})'
+ )
+ return False
+ correspondant = EntrepriseCorrespondant.query.filter_by(
+ id=correspondant_data[0]
+ ).first()
+ if correspondant is not None and check_correspondant_import(
+ correspondant_data[1:-1]
+ ):
+ correspondant.civilite = correspondant_data[1].strip()
+ correspondant.nom = correspondant_data[2].strip()
+ correspondant.prenom = correspondant_data[3].strip()
+ correspondant.telephone = correspondant_data[4].strip()
+ correspondant.mail = correspondant_data[5].strip()
+ correspondant.poste = correspondant_data[6].strip()
+ correspondant.service = correspondant_data[7].strip()
+ correspondant.origine = correspondant_data[8].strip()
+ correspondant.notes = correspondant_data[9].strip()
+ else:
+ flash(
+ f'Erreur lors de l\'importation (Feuille "Correspondants", ligne {ligne})'
+ )
+ return False
+ return True
+
+
def check_correspondant_import(correspondant_data: list, site_data: list = None):
"""
Verifie les données d'une ligne Excel (correspondant)
@@ -486,23 +523,26 @@ def check_correspondant_import(correspondant_data: list, site_data: list = None)
if correspondant_data[0].strip() not in ["H", "F"]:
return False
- # entreprise_id existant
- entreprise = Entreprise.query.filter_by(siret=site_data[0], visible=True).first()
- if entreprise is None:
- return False
-
- # correspondant possède le meme nom et prénom dans la meme entreprise
- correspondant = EntrepriseCorrespondant.query.filter_by(
- nom=correspondant_data[1].strip(),
- prenom=correspondant_data[2].strip(),
- entreprise_id=entreprise.id,
- ).first()
- if correspondant is not None:
- return False
-
if (
correspondant_data[3].strip() == "" and correspondant_data[4].strip() == ""
): # 1 moyen de contact
return False
+ if site_data is not None:
+ # entreprise_id existant
+ entreprise = Entreprise.query.filter_by(
+ siret=site_data[0], visible=True
+ ).first()
+ if entreprise is None:
+ return False
+
+ # correspondant possède le meme nom et prénom dans la meme entreprise
+ correspondant = EntrepriseCorrespondant.query.filter_by(
+ nom=correspondant_data[1].strip(),
+ prenom=correspondant_data[2].strip(),
+ entreprise_id=entreprise.id,
+ ).first()
+ if correspondant is not None:
+ return False
+
return True
diff --git a/app/entreprises/routes.py b/app/entreprises/routes.py
index 637d247a9e..a116c76845 100644
--- a/app/entreprises/routes.py
+++ b/app/entreprises/routes.py
@@ -1422,8 +1422,8 @@ def import_donnees():
file.save(file_path)
diag, lm = sco_excel.excel_file_to_list_are(file_path)
os.remove(file_path)
- if len(lm) < 3:
- flash("Veuillez utilisez la feuille excel à remplir (3 feuilles)")
+ if lm is None or len(lm) < 2:
+ flash("Veuillez utilisez la feuille excel à remplir")
return redirect(url_for("entreprises.import_donnees"))
entreprises_import = are.check_entreprises_import(lm[0])
sites_import, correspondants_import = are.check_sites_import(lm[1])
@@ -1431,6 +1431,7 @@ def import_donnees():
entreprises_import is False
or sites_import is False
or correspondants_import is False
+ or (len(lm) > 2 and are.check_correspondants_import(lm[2]) is False)
):
return redirect(url_for("entreprises.import_donnees"))
for entreprise in entreprises_import:
diff --git a/app/templates/entreprises/import_donnees.html b/app/templates/entreprises/import_donnees.html
index 35ed75fb95..c92bf764e1 100644
--- a/app/templates/entreprises/import_donnees.html
+++ b/app/templates/entreprises/import_donnees.html
@@ -69,7 +69,8 @@
Adresse : {{ entreprise.adresse }}
Code postal : {{ entreprise.codepostal }}
Ville : {{ entreprise.ville }}
- Pays : {{ entreprise.pays }}
+ Pays : {{ entreprise.pays }}
+ Fiche entreprise
{% for site in entreprise.sites %}