import données modifications correspondants

This commit is contained in:
Arthur ZHU 2022-06-09 17:28:05 +02:00
parent 835d1d38ed
commit 434e571a98
3 changed files with 62 additions and 18 deletions

View File

@ -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

View File

@ -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:

View File

@ -69,7 +69,8 @@
Adresse : {{ entreprise.adresse }}<br>
Code postal : {{ entreprise.codepostal }}<br>
Ville : {{ entreprise.ville }}<br>
Pays : {{ entreprise.pays }}
Pays : {{ entreprise.pays }}<br>
<a href="{{ url_for('entreprises.fiche_entreprise', id=entreprise.id) }}" target="_blank">Fiche entreprise</a>
</div>
{% for site in entreprise.sites %}
<div class="site">
@ -92,7 +93,8 @@
Adresse : {{ site.adresse }}<br>
Code postal : {{ site.codepostal }}<br>
Ville : {{ site.ville }}<br>
Pays : {{ site.pays }}
Pays : {{ site.pays }}<br>
<a href="{{ url_for('entreprises.fiche_entreprise', id=site.entreprise_id) }}" target="_blank">Fiche entreprise</a>
</div>
{% endfor %}
{% endif %}
@ -123,6 +125,7 @@
{% if correspondant.notes %}
Notes : {{ correspondant.notes }}<br>
{% endif %}
<a href="{{ url_for('entreprises.fiche_entreprise', id=correspondant.entreprise_id) }}" target="_blank">Fiche entreprise</a>
</div>
</div>
{% endfor %}