Commit 96523224 authored by Laurent Lécluse's avatar Laurent Lécluse
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 94f619bd
......@@ -56,7 +56,11 @@ FROM (
t.*,
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
-- 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'
......@@ -66,19 +70,19 @@ FROM (
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'
-- Cas 3 : Nouvelle insertion
-- Cas 4 : Nouvelle insertion
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'
-- 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
-- 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'
......@@ -97,7 +101,7 @@ FROM (
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
-- Si la fiche est vide et vient du SI alors on supprime
......@@ -111,7 +115,7 @@ FROM (
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
-- 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'
......@@ -127,7 +131,7 @@ FROM (
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
-- Si le nouveau statut est de type différent, alors on ajoute une nouvelle fiche
......@@ -139,7 +143,7 @@ FROM (
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
-- 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'
......@@ -153,7 +157,7 @@ FROM (
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
-- Autres fiches de même type
......@@ -166,7 +170,7 @@ FROM (
END
-- Cas 11 : Pour le reste
-- Cas 12 : Pour le reste
ELSE CASE
-- Cas typique du vacataire qui a renseigné des données personnelles
......@@ -237,6 +241,8 @@ FROM (
-- Variables calculées
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 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.type_intervenant_id = isi.type_intervenant_id THEN 1 ELSE 0 END types_identiques,
COALESCE(i.sync_statut,1) sync_statut,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment