Skip to content

Commit

Permalink
add error logging on double siret of vat number from teleicare
Browse files Browse the repository at this point in the history
  • Loading branch information
Perrine Letellier committed Dec 23, 2024
1 parent b150b4b commit 8104147
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 9 deletions.
24 changes: 18 additions & 6 deletions data/etl/teleicare_history/extractor.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,29 @@ def match_companies_on_siret_or_vat():
for etab in IcaEtablissement.objects.all():
if etab.etab_siret is not None:
siret_matching = Company.objects.filter(siret=etab.etab_siret)
# seulement 2 options possible pour len(siret_matching) sont 0 et 1 car il y a une contrainte d'unicité sur le champ Company.siret
if len(siret_matching) == 1:
nb_siret_match += 1
siret_matching[0].siccrf_id = etab.etab_ident
siret_matching[0].save()
if siret_matching[0].siccrf_id is not None and etab.etab_ident != siret_matching[0].siccrf_id:
logger.error(
"Plusieurs Etablissement provenant de Teleicare ont le même SIRET, ce qui rend le matching avec une Company Compl'Alim incertain."
)
else:
nb_siret_match += 1
siret_matching[0].siccrf_id = etab.etab_ident
siret_matching[0].save()

elif etab.etab_numero_tva_intra is not None:
vat_matching = Company.objects.filter(vat=etab.etab_numero_tva_intra)
# seulement 2 options possible pour len(vat_matching) sont 0 et 1 car il y a une contrainte d'unicité sur le champ Company.vat
if len(vat_matching) == 1:
nb_vat_match += 1
vat_matching[0].siccrf_id = etab.etab_ident
vat_matching[0].save()
if vat_matching[0].siccrf_id is not None and etab.etab_ident != vat_matching[0].siccrf_id:
logger.error(
"Plusieurs Etablissement provenant de Teleicare ont le même n° TVA, ce qui rend le matching avec une Company Compl'Alim incertain."
)
else:
nb_vat_match += 1
vat_matching[0].siccrf_id = etab.etab_ident
vat_matching[0].save()

logger.info(
f"{nb_vat_match} + {nb_siret_match} entreprises réconcilliées sur {len(IcaEtablissement.objects.all())}"
Expand Down
23 changes: 20 additions & 3 deletions data/tests/test_teleicare_history_importer.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from unittest.mock import patch

from django.db import connection
from django.test import TestCase

Expand Down Expand Up @@ -38,7 +40,6 @@ def test_match_companies_on_siret_or_vat(self):
Une entreprise enregistrée dans Teleicare ayant le même SIRET ou n° TVA intracom
qu'une entreprise enregistrée dans Compl'Alim doit être liée par le siccrf_id
"""
# create_model_table(IcaEtablissement)
siret = _make_siret()
etablissement_with_siret = EtablissementFactory(etab_siret=siret)
company_with_siret = CompanyFactory(siret=siret)
Expand All @@ -58,8 +59,24 @@ def test_match_companies_on_siret_or_vat(self):
random_company.refresh_from_db()
random_etablissement.refresh_from_db()

# self.assertEqual(company_with_siret.siccrf_id, etablissement_with_siret.etab_ident)
self.assertEqual(company_with_siret.siccrf_id, etablissement_with_siret.etab_ident)
self.assertEqual(company_with_vat.siccrf_id, etablissement_with_vat.etab_ident)
self.assertNotEqual(random_company.siccrf_id, random_etablissement.etab_ident)
self.assertEqual(random_company.siccrf_id, None)
# delete_model_table(IcaEtablissement)

@patch("data.etl.teleicare_history.extractor.logger")
def test_match_companies_on_vat_used_twice(self, mocked_logger):
"""
Si deux entreprises enregistrées dans Teleicare ont le même SIRET ou n° TVA intracom
alors le matching avec une Company Compl'Alim avec la contrainte d'unicité sur ces deux champs
n'est pas évident
"""
vat_used_twice = _make_vat()
_ = EtablissementFactory(etab_siret=None, etab_numero_tva_intra=vat_used_twice)
_ = EtablissementFactory(etab_siret=None, etab_numero_tva_intra=vat_used_twice)
_ = CompanyFactory(vat=vat_used_twice)

match_companies_on_siret_or_vat()
mocked_logger.error.assert_called_with(
"Plusieurs Etablissement provenant de Teleicare ont le même n° TVA, ce qui rend le matching avec une Company Compl'Alim incertain."
)

0 comments on commit 8104147

Please sign in to comment.