Skip to content
Snippets Groups Projects
Commit 865ad67c authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Nouveau cas géré par la SRC_INTERVENANT : dans les statuts multiples dont un...

Nouveau cas géré par la SRC_INTERVENANT : dans les statuts multiples dont un est non autorisé, le non autorisé est ignoré
parent 8d26bbb4
Branches
Tags
No related merge requests found
...@@ -56,7 +56,11 @@ FROM ( ...@@ -56,7 +56,11 @@ FROM (
t.*, t.*,
CASE CASE
-- Cas 1 : Si on est sur les mêmes fiches, alors on synchronise tout le temps -- Cas 1 : Si on est sur un statut multiple avec un non-autorisé et un autre statut, alors le non autorisé est supprimé
WHEN statut_intervenant_nautorise = 1 AND intervenant_local = 0 AND nb_intervenants > 1 AND intervenant_histo = 0 THEN 'dropna'
-- Cas 2 : Si on est sur les mêmes fiches, alors on synchronise tout le temps
WHEN statuts_identiques = 1 THEN CASE WHEN statuts_identiques = 1 THEN CASE
-- Si c'est un intervenant qui a été historisé et qu'une nouvelle fiche a été créée plus tard -- Si c'est un intervenant qui a été historisé et qu'une nouvelle fiche a été créée plus tard
WHEN intervenant_histo = 1 AND nb_sources = 1 AND nb_intervenants = 2 AND nb_statuts_egaux = 2 THEN 'drop' WHEN intervenant_histo = 1 AND nb_sources = 1 AND nb_intervenants = 2 AND nb_statuts_egaux = 2 THEN 'drop'
...@@ -66,19 +70,19 @@ FROM ( ...@@ -66,19 +70,19 @@ FROM (
END END
-- Cas 2 : On ne restaure pas les locaux historisés s'il ne sont pas dans la source -- Cas 3 : On ne restaure pas les locaux historisés s'il ne sont pas dans la source
WHEN statuts_identiques = 0 AND intervenant_histo = 1 AND intervenant_local = 1 THEN 'drop' WHEN statuts_identiques = 0 AND intervenant_histo = 1 AND intervenant_local = 1 THEN 'drop'
-- Cas 3 : Nouvelle insertion -- Cas 4 : Nouvelle insertion
WHEN nb_sources = 1 AND nb_intervenants = 0 THEN 'insert' WHEN nb_sources = 1 AND nb_intervenants = 0 THEN 'insert'
-- Cas 4 : Quand les statuts matchent à 100%, il faut supprimer les faux positifs -- Cas 5 : Quand les statuts matchent à 100%, il faut supprimer les faux positifs
WHEN nb_sources = nb_intervenants AND nb_sources = nb_statuts_egaux THEN 'drop' WHEN nb_sources = nb_intervenants AND nb_sources = nb_statuts_egaux THEN 'drop'
-- Cas 5 : Quand il y a différence de statut alors que c'est 1 <=> 1 -- Cas 6 : Quand il y a différence de statut alors que c'est 1 <=> 1
WHEN nb_sources = 1 AND nb_intervenants = 1 AND statuts_identiques = 0 THEN CASE WHEN nb_sources = 1 AND nb_intervenants = 1 AND statuts_identiques = 0 THEN CASE
-- Si c'est un intervenant local qui avait été créé, on n'y touche pas et on en recrée un nouveau -- Si c'est un intervenant local qui avait été créé, on n'y touche pas et on en recrée un nouveau
WHEN intervenant_local = 1 THEN 'insert' WHEN intervenant_local = 1 THEN 'insert'
...@@ -97,7 +101,7 @@ FROM ( ...@@ -97,7 +101,7 @@ FROM (
END END
-- Cas 6 : Quand il y a une seule source et plusieurs intervenants, et que la source matche sur au moins un statut -- Cas 7 : Quand il y a une seule source et plusieurs intervenants, et que la source matche sur au moins un statut
WHEN nb_sources = 1 AND nb_intervenants > 1 AND nb_statuts_egaux = 1 THEN CASE WHEN nb_sources = 1 AND nb_intervenants > 1 AND nb_statuts_egaux = 1 THEN CASE
-- Si la fiche est vide et vient du SI alors on supprime -- Si la fiche est vide et vient du SI alors on supprime
...@@ -111,7 +115,7 @@ FROM ( ...@@ -111,7 +115,7 @@ FROM (
END END
-- Cas 7 : Quand il y a une seule source et plusieurs intervenants, et que la source matche sur au moins un statut -- Cas 8 : Quand il y a une seule source et plusieurs intervenants, et que la source matche sur au moins un statut
WHEN nb_sources = 1 AND nb_intervenants > 1 AND nb_statuts_egaux = 0 THEN CASE WHEN nb_sources = 1 AND nb_intervenants > 1 AND nb_statuts_egaux = 0 THEN CASE
-- Cas typique du vacataire qui a renseigné des données personnelles -- Cas typique du vacataire qui a renseigné des données personnelles
WHEN intervenant_local = 0 AND types_identiques = 1 AND statut_source_autre = 1 AND statut_intervenant_autre = 0 AND sync_statut = 0 THEN 'update' WHEN intervenant_local = 0 AND types_identiques = 1 AND statut_source_autre = 1 AND statut_intervenant_autre = 0 AND sync_statut = 0 THEN 'update'
...@@ -127,7 +131,7 @@ FROM ( ...@@ -127,7 +131,7 @@ FROM (
END END
-- Cas 8 : Quand il y a plusieurs sources pour un seul intervenant et qu'une au moins matche -- Cas 9 : Quand il y a plusieurs sources pour un seul intervenant et qu'une au moins matche
WHEN nb_sources > 1 AND nb_intervenants = 1 AND nb_statuts_egaux = 1 THEN CASE WHEN nb_sources > 1 AND nb_intervenants = 1 AND nb_statuts_egaux = 1 THEN CASE
-- Si le nouveau statut est de type différent, alors on ajoute une nouvelle fiche -- Si le nouveau statut est de type différent, alors on ajoute une nouvelle fiche
...@@ -139,7 +143,7 @@ FROM ( ...@@ -139,7 +143,7 @@ FROM (
END END
-- Cas 9 : Quand il y a plusieurs sources pour un seul intervenant et qu'aucun ne matche -- Cas 10 : Quand il y a plusieurs sources pour un seul intervenant et qu'aucun ne matche
WHEN nb_sources > 1 AND nb_intervenants = 1 AND nb_statuts_egaux = 0 THEN CASE WHEN nb_sources > 1 AND nb_intervenants = 1 AND nb_statuts_egaux = 0 THEN CASE
-- Cas typique du vacataire qui a renseigné des données personnelles -- Cas typique du vacataire qui a renseigné des données personnelles
WHEN intervenant_local = 0 AND types_identiques = 1 AND statut_source_autre = 1 AND statut_intervenant_autre = 0 AND sync_statut = 0 THEN 'update' WHEN intervenant_local = 0 AND types_identiques = 1 AND statut_source_autre = 1 AND statut_intervenant_autre = 0 AND sync_statut = 0 THEN 'update'
...@@ -153,7 +157,7 @@ FROM ( ...@@ -153,7 +157,7 @@ FROM (
END END
-- Cas 10 : Quand il y a 2 sources et 2 intervenants et qu'un seul matche -- Cas 11 : Quand il y a 2 sources et 2 intervenants et qu'un seul matche
WHEN nb_sources = 2 AND nb_intervenants = 2 THEN CASE WHEN nb_sources = 2 AND nb_intervenants = 2 THEN CASE
-- Autres fiches de même type -- Autres fiches de même type
...@@ -166,7 +170,7 @@ FROM ( ...@@ -166,7 +170,7 @@ FROM (
END END
-- Cas 11 : Pour le reste -- Cas 12 : Pour le reste
ELSE CASE ELSE CASE
-- Cas typique du vacataire qui a renseigné des données personnelles -- Cas typique du vacataire qui a renseigné des données personnelles
...@@ -237,6 +241,8 @@ FROM ( ...@@ -237,6 +241,8 @@ FROM (
-- Variables calculées -- Variables calculées
CASE WHEN ssi.code = 'AUTRES' THEN 1 ELSE 0 END statut_source_autre, CASE WHEN ssi.code = 'AUTRES' THEN 1 ELSE 0 END statut_source_autre,
CASE WHEN isi.code = 'AUTRES' THEN 1 ELSE 0 END statut_intervenant_autre, CASE WHEN isi.code = 'AUTRES' THEN 1 ELSE 0 END statut_intervenant_autre,
CASE WHEN ssi.code = 'NON_AUTORISE' THEN 1 ELSE 0 END statut_source_nautorise,
CASE WHEN isi.code = 'NON_AUTORISE' THEN 1 ELSE 0 END statut_intervenant_nautorise,
CASE WHEN ssi.id = isi.id THEN 1 ELSE 0 END statuts_identiques, CASE WHEN ssi.id = isi.id THEN 1 ELSE 0 END statuts_identiques,
CASE WHEN ssi.type_intervenant_id = isi.type_intervenant_id THEN 1 ELSE 0 END types_identiques, CASE WHEN ssi.type_intervenant_id = isi.type_intervenant_id THEN 1 ELSE 0 END types_identiques,
COALESCE(i.sync_statut,1) sync_statut, COALESCE(i.sync_statut,1) sync_statut,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment