Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Import des Déclarations historiques de TeleIcare dans le modèle de Déclarations #1423

Merged
merged 18 commits into from
Jan 10, 2025

Conversation

pletelli
Copy link
Collaborator

@pletelli pletelli commented Dec 27, 2024

Closes #717
Cette PR propose :

  • la création des Company qui viennent de Teleicare mais n'existeraient pas déjà dans le système Compl'Alim. Le but est de pouvoir intégrer toutes les données possibles aux modèles compl'Alim, notamment pour que les export OpenData soient plus simples (au risque d'augmenter un peu le volume de données stockées)

    • c'est une possibilité de la function de matching des Etablissements TeleIcare avec les Company Compl'Alim match_companies_on_siret_or_vat(create_if_not_exist=True)
    • nécessite le relachement des contraintes sur les champs commercial_name et email pour accepter "" : en front ces champs sont toujours required. Nous avions déjà commencé à questionner la nécessité du champ commercial_name vs social_name vs marque vs gamme -> je suis preneuse d'avis sur ce choix
    • un nouveau champ matched est ajouté au model Company pour permettre de retrouver :
      • matched = True & siccrf_id not null : Company créée dans Compl'Alim qui existait aussi dans TeleiCare
      • matched = False & siccrf_id not null : Company qui existait dans TeleIcare mais qui n'a pas encore été matchée avec Compl'Alim
      • matched = False & siccrf_id null : Company sans historique TeleIcare
  • Ajout d'une fonction de création des Declarations

    • quelques champs manquent encore qui viennent de tables TeleIcare pas encore importées et dont les modèles ne sont pas encore créés
    • intègre les déclarations "autorisées", "refusées", "abandonnés" (c'était à challenger mais c'était faisable simplement)

TODO after merge :

  • faire un conditionnal display des Declarations if siccrf_id = None (pour qu'il n'y ait pas de changement dans l'immédiat)
  • lancer les 2 fonctions match_companies_on_siret_or_vat(create_if_not_exist=True) + create_declaration_from_teleicare_history
  • afficher proprement ces déclarations historiques en front
  • ajouter les DeclaredIngredients, l'étiquette, les tables manquantes de l'onglet Produit.
  • proposer à la création de l'entreprise de demander un merge avec un Entreprise historique ?

@pletelli pletelli marked this pull request as ready for review January 7, 2025 14:59
@pletelli pletelli requested review from alemangui and hfroot January 7, 2025 14:59
Copy link
Collaborator

@hfroot hfroot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

j'apprends cette partie du code tjs alors je peux pas faire grande chose dans un review, mais j'ai laissé quelques commentaires qui ne sont pas très prio

data/etl/teleicare_history/extractor.py Show resolved Hide resolved
data/etl/teleicare_history/extractor.py Outdated Show resolved Hide resolved
data/etl/teleicare_history/extractor.py Show resolved Hide resolved
data/etl/teleicare_history/extractor.py Outdated Show resolved Hide resolved
data/etl/teleicare_history/extractor.py Outdated Show resolved Hide resolved
data/etl/teleicare_history/extractor.py Outdated Show resolved Hide resolved
warning=latest_ica_version_declaration.vrsdecl_mise_en_garde
if latest_ica_version_declaration.vrsdecl_mise_en_garde
else "",
# TODO: ces champs proviennent de tables pas encore importées
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tjs TODO ?

Copy link
Collaborator Author

@pletelli pletelli Jan 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oui dans une prochaine PR


etablissement_to_create_as_company = EtablissementFactory(etab_siret=None, etab_ica_importateur=True)
# ne sera pas créé car le numéro de téléphone est mal formatté
_ = EtablissementFactory(etab_siret=None, etab_ica_importateur=True, etab_telephone="0345")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pas besoin de _ = je crois

data/tests/test_teleicare_history_importer.py Outdated Show resolved Hide resolved
data/models/company.py Outdated Show resolved Hide resolved
@@ -83,7 +86,7 @@ class Meta:
verbose_name = "entreprise"

social_name = models.CharField("dénomination sociale")
commercial_name = models.CharField("enseigne", help_text="nom commercial")
commercial_name = models.CharField("enseigne", blank=True, help_text="nom commercial")
# null=True permet de gérer en parralèle le unique=True
siret = models.CharField(
"n° SIRET",
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relâcher la contrainte company blank=False

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Est-ce qu'on veut une creation_date dans Company ?

* télédéclarante de la déclaration (cette relation n'est pour le moment pas conservée, car le BEPIAS ne sait pas ce qu'elle signifie)
"""
nb_created_declarations = 0
for ica_complement_alimentaire in IcaComplementAlimentaire.objects.all():
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documenter les 3 tables

self.assertEqual(created_company.siccrf_id, etablissement_to_create_as_company.etab_ident)
self.assertEqual(created_company.address, etablissement_to_create_as_company.etab_adre_voie)
self.assertEqual(created_company.postal_code, etablissement_to_create_as_company.etab_adre_cp)
self.assertEqual(created_company.city, etablissement_to_create_as_company.etab_adre_ville)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ajouter des tests sur les créations de Declarations

@pletelli
Copy link
Collaborator Author

Je merge sans le test sur la création des déclarations, car ça ajoute beaucoup de code (avec les factories notamment), mais avec le changement sur les PhoneNumberField

@pletelli pletelli merged commit 312a50c into staging Jan 10, 2025
5 checks passed
@pletelli pletelli deleted the 717-produit branch January 10, 2025 13:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Intégration des données historiques des déclarations
3 participants