Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
open-source
OSE
Commits
25b15a26
Commit
25b15a26
authored
Feb 03, 2021
by
Antony Le Courtes
Browse files
Ajustement MV_OCTO_INTERVENANT.sql
parent
4b37d766
Changes
1
Hide whitespace changes
Inline
Side-by-side
doc/Connecteurs Import/Octopus/MV_OCTO_INTERVENANT.sql
View file @
25b15a26
...
...
@@ -4,12 +4,13 @@ WITH i AS (
SELECT
DISTINCT
code
,
z_statut_id
,
--On prend la structure d'affectation principale sinon la première structure saisie
FIRST_VALUE
(
structure_code
)
OVER
(
PARTITION
BY
code
,
z_statut_id
ORDER
BY
affectation_principale
DESC
,
id_affectation
ASC
)
structure_code
,
FIRST_VALUE
(
structure_code
)
OVER
(
PARTITION
BY
code
,
z_statut_id
ORDER
BY
affectation_principale
DESC
,
id_affectation
ASC
)
structure_code
,
MIN
(
source_code
)
OVER
(
partition
by
code
,
z_statut_id
)
source_code
,
MIN
(
validite_debut
)
OVER
(
partition
by
code
,
z_statut_id
)
validite_debut
,
MAX
(
validite_fin
)
OVER
(
partition
by
code
,
z_statut_id
)
validite_fin
FROM
(
SELECT
aff
.
id
id_affectation
,
uni
.
c_src_individu
code
,
--Le code de l'intervenant est maintenant le id unique octopus
uni
.
c_individu_chaine
code
,
s
.
code
structure_code
,
CASE
WHEN
icto
.
code_ose
IS
NOT
NULL
THEN
icto
.
code_ose
ELSE
'AUTRES'
END
z_statut_id
,
COALESCE
(
aff
.
date_debut
,
to_date
(
'01/01/1900'
,
'dd/mm/YYYY'
))
validite_debut
,
...
...
@@ -17,13 +18,13 @@ WITH i AS (
--Le source code n'est plus utilisé par SRC_INTERVENANT on met donc la même valeur que code
uni
.
c_individu_chaine
||
'-a'
source_code
,
aff
.
t_principale
affectation_principale
FROM
octo
.
individu_affectation
@
octo
dev
aff
JOIN
octo
.
individu_affectation_type
@
octo
dev
aft
ON
(
aff
.
type_id
=
aft
.
id
)
JOIN
octo
.
individu_unique
@
octo
dev
uni
ON
(
aff
.
individu_id
=
uni
.
c_individu_chaine
AND
uni
.
c_source
=
'HARP'
)
LEFT
JOIN
octo
.
v_individu_contrat_type_ose
@
octo
dev
icto
FROM
octo
.
individu_affectation
@
octo
prod
aff
JOIN
octo
.
individu_affectation_type
@
octo
prod
aft
ON
(
aff
.
type_id
=
aft
.
id
)
JOIN
octo
.
individu_unique
@
octo
prod
uni
ON
(
aff
.
individu_id
=
uni
.
c_individu_chaine
AND
uni
.
c_source
IN
(
'HARP'
)
)
LEFT
JOIN
octo
.
v_individu_contrat_type_ose
@
octo
prod
icto
ON
icto
.
individu_id
=
uni
.
c_individu_chaine
AND
COALESCE
(
icto
.
d_fin
,
SYSDATE
)
>=
SYSDATE
LEFT
JOIN
octo
.
STRUCTURE
@
octo
dev
s
ON
s
.
id
=
aff
.
structure_id
LEFT
JOIN
octo
.
STRUCTURE
@
octo
prod
s
ON
s
.
id
=
aff
.
structure_id
WHERE
aff
.
date_debut
-
184
<=
SYSDATE
AND
aft
.
nom
=
'AFFECTATION'
--Uniquement si on veut que les affectations principales
...
...
@@ -32,7 +33,7 @@ WITH i AS (
UNION
ALL
--AFFECTATION ENSEIGNEMENT
SELECT
aff
.
id
id_affectation
,
uni
.
c_
src_
individu
code
,
uni
.
c_individu
_chaine
code
,
s
.
code
structure_code
,
CASE
WHEN
icto
.
code_ose
IS
NOT
NULL
THEN
icto
.
code_ose
ELSE
'AUTRES'
END
z_statut_id
,
COALESCE
(
aff
.
date_debut
,
to_date
(
'01/01/1900'
,
'dd/mm/YYYY'
))
validite_debut
,
...
...
@@ -40,13 +41,13 @@ WITH i AS (
--Le source code n'est plus utilisé par SRC_INTERVENANT on met donc la même valeur que code
uni
.
c_individu_chaine
||
'-c'
source_code
,
aff
.
t_principale
affectation_principale
FROM
octo
.
individu_affectation
@
octo
dev
aff
JOIN
octo
.
individu_affectation_type
@
octo
dev
aft
ON
(
aff
.
type_id
=
aft
.
id
)
JOIN
octo
.
individu_unique
@
octo
dev
uni
ON
(
aff
.
individu_id
=
uni
.
c_individu_chaine
AND
uni
.
c_source
=
'HARP'
)
LEFT
JOIN
octo
.
v_individu_contrat_type_ose
@
octo
dev
icto
FROM
octo
.
individu_affectation
@
octo
prod
aff
JOIN
octo
.
individu_affectation_type
@
octo
prod
aft
ON
(
aff
.
type_id
=
aft
.
id
)
JOIN
octo
.
individu_unique
@
octo
prod
uni
ON
(
aff
.
individu_id
=
uni
.
c_individu_chaine
AND
uni
.
c_source
IN
(
'HARP'
)
)
LEFT
JOIN
octo
.
v_individu_contrat_type_ose
@
octo
prod
icto
ON
icto
.
individu_id
=
uni
.
c_individu_chaine
AND
COALESCE
(
icto
.
d_fin
,
SYSDATE
)
>=
SYSDATE
LEFT
JOIN
octo
.
STRUCTURE
@
octo
dev
s
ON
s
.
id
=
aff
.
structure_id
LEFT
JOIN
octo
.
STRUCTURE
@
octo
prod
s
ON
s
.
id
=
aff
.
structure_id
WHERE
aff
.
date_debut
-
184
<=
SYSDATE
AND
aft
.
nom
=
'ENSEIGNEMENT'
--Uniquement si on veut que les affectations principales
...
...
@@ -55,7 +56,7 @@ WITH i AS (
UNION
ALL
--AFFECTATION RECHERCHE
SELECT
aff
.
id
id_affectation
,
uni
.
c_
src_
individu
code
,
uni
.
c_individu
_chaine
code
,
s
.
code
structure_code
,
CASE
WHEN
icto
.
code_ose
IS
NOT
NULL
THEN
icto
.
code_ose
ELSE
'AUTRES'
END
z_statut_id
,
COALESCE
(
aff
.
date_debut
,
to_date
(
'01/01/1900'
,
'dd/mm/YYYY'
))
validite_debut
,
...
...
@@ -63,13 +64,13 @@ WITH i AS (
--Le source code n'est plus utilisé par SRC_INTERVENANT on met donc la même valeur que code
uni
.
c_individu_chaine
||
'-r'
source_code
,
aff
.
t_principale
affectation_principale
FROM
octo
.
individu_affectation
@
octo
dev
aff
JOIN
octo
.
individu_affectation_type
@
octo
dev
aft
ON
(
aff
.
type_id
=
aft
.
id
)
JOIN
octo
.
individu_unique
@
octo
dev
uni
ON
(
aff
.
individu_id
=
uni
.
c_individu_chaine
AND
uni
.
c_source
=
'HARP'
)
LEFT
JOIN
octo
.
v_individu_contrat_type_ose
@
octo
dev
icto
FROM
octo
.
individu_affectation
@
octo
prod
aff
JOIN
octo
.
individu_affectation_type
@
octo
prod
aft
ON
(
aff
.
type_id
=
aft
.
id
)
JOIN
octo
.
individu_unique
@
octo
prod
uni
ON
(
aff
.
individu_id
=
uni
.
c_individu_chaine
AND
uni
.
c_source
IN
(
'HARP'
)
)
LEFT
JOIN
octo
.
v_individu_contrat_type_ose
@
octo
prod
icto
ON
icto
.
individu_id
=
uni
.
c_individu_chaine
AND
COALESCE
(
icto
.
d_fin
,
SYSDATE
)
>=
SYSDATE
LEFT
JOIN
octo
.
STRUCTURE
@
octo
dev
s
ON
s
.
id
=
aff
.
structure_id
LEFT
JOIN
octo
.
STRUCTURE
@
octo
prod
s
ON
s
.
id
=
aff
.
structure_id
WHERE
aff
.
date_debut
-
184
<=
SYSDATE
AND
aft
.
nom
=
'RECHERCHE'
--Uniquement si on veut que les affectations principales
...
...
@@ -79,12 +80,12 @@ WITH i AS (
telephone_pro_principal
AS
(
SELECT
indtel
.
individu_id
individu_id
,
tel
.
numero
numero
FROM
octo
.
individu_telephone
@
octo
dev
indtel
JOIN
octo
.
telephone
@
octo
dev
tel
ON
(
tel
.
id
=
indtel
.
telephone_id
AND
tel
.
t_principal
=
'O'
)
FROM
octo
.
individu_telephone
@
octo
prod
indtel
JOIN
octo
.
telephone
@
octo
prod
tel
ON
(
tel
.
id
=
indtel
.
telephone_id
AND
tel
.
t_principal
=
'O'
)
)
SELECT
/*Octopus id, id unique pour un individu immuable dans le temps, remplace le code harpege*/
i
nduni
.
c_individu_chaine
code
,
i
.
code
code
,
/* Code RH */
ltrim
(
TO_CHAR
(
induni
.
c_src_individu
,
'99999999'
))
code_rh
,
i
.
source_code
source_code
,
...
...
@@ -94,8 +95,6 @@ SELECT
str2
.
code
z_structure_code_n2
,
i
.
structure_code
z_structure_code
,
i
.
z_statut_id
z_statut_id
,
/* Récupération du grade actuel */
--pbs_divers__cicg.c_grade@harpprod(individu.no_individu, COALESCE(i.validite_fin,SYSDATE) ) z_grade_id,
indg
.
grade_id
z_grade_id
,
/* Données nécessaires pour calculer la discipline */
indg
.
cnu_id
z_discipline_id_cnu
,
...
...
@@ -111,7 +110,6 @@ SELECT
/* Données identifiantes complémentaires */
initcap
(
ind
.
nom_famille
)
nom_patronymique
,
--Pour le moment les communes ne sont pas dans OCTOPUS commune.libelle_commune
ind
.
ville_de_naissance
commune_naissance
,
ind
.
c_pays_naissance
z_pays_naissance_id
,
ind
.
c_dept_naissance
z_departement_naissance_id
,
...
...
@@ -153,20 +151,23 @@ SELECT
CASE
WHEN
i
.
validite_fin
=
to_date
(
'01/01/9999'
,
'dd/mm/YYYY'
)
THEN
NULL
ELSE
i
.
validite_fin
END
validite_fin
FROM
i
JOIN
octo
.
individu_unique
@
octo
dev
induni
ON
(
i
.
code
=
induni
.
c_
src_
individu
AND
induni
.
c_source
=
'HARP'
)
LEFT
JOIN
octo
.
individu
@
octo
dev
ind
ON
ind
.
c_individu_chaine
=
induni
.
c_individu_chaine
LEFT
JOIN
octo
.
individu_grade
@
octo
dev
indg
ON
induni
.
c_individu_chaine
=
indg
.
individu_id
LEFT
JOIN
octo
.
v_individu_adresse_perso
@
octo
dev
adr
JOIN
octo
.
individu_unique
@
octo
prod
induni
ON
(
i
.
code
=
induni
.
c_individu
_chaine
AND
induni
.
c_source
IN
(
'HARP'
)
)
LEFT
JOIN
octo
.
individu
@
octo
prod
ind
ON
ind
.
c_individu_chaine
=
induni
.
c_individu_chaine
LEFT
JOIN
octo
.
individu_grade
@
octo
prod
indg
ON
induni
.
c_individu_chaine
=
indg
.
individu_id
LEFT
JOIN
octo
.
v_individu_adresse_perso
@
octo
prod
adr
ON
adr
.
individu_id
=
induni
.
c_individu_chaine
AND
t_principale
=
'O'
LEFT
JOIN
telephone_pro_principal
telpro
ON
telpro
.
individu_id
=
induni
.
c_individu_chaine
-- On ne prend que les comptes qui ne sont pas étudiants
LEFT
JOIN
octo
.
individu_compte
@
octo
dev
indc
LEFT
JOIN
octo
.
individu_compte
@
octo
prod
indc
ON
indc
.
individu_id
=
induni
.
c_individu_chaine
AND
not
regexp_like
(
ldap_uid
,
'e[0-9]{8}'
)
LEFT
JOIN
v_structure
@
octo
dev
str
ON
str
.
code
=
i
.
structure_code
LEFT
JOIN
v_structure
@
octo
dev
str2
ON
str
.
niv2_id
=
str2
.
id
LEFT
JOIN
v_structure
@
octo
prod
str
ON
str
.
code
=
i
.
structure_code
LEFT
JOIN
v_structure
@
octo
prod
str2
ON
str
.
niv2_id
=
str2
.
id
WHERE
i
.
validite_fin
+
1
>=
(
SYSDATE
-
(
365
*
2
))
--AND ind.nom_usage LIKE 'HEARD%'
--AND i.structure_code = '13A'
--AND induni.c_individu_chaine = 1239
--Filtre octopus id
--AND induni.c_src_individu = 52958 --Filtre code rh (harpége)
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment