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

MAJ suite gen DDL

parent a3f948da
No related branches found
No related tags found
No related merge requests found
......@@ -1786,24 +1786,24 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS
OPEN c FOR '
SELECT
v.INTERVENANT_ID,
v.PLAFOND_ID,
v.ANNEE_ID,
v.TYPE_VOLUME_HORAIRE_ID,
v.ELEMENT_PEDAGOGIQUE_ID,
v.HEURES,
v.PLAFOND,
v.DEROGATION,
CASE WHEN
t.INTERVENANT_ID = v.INTERVENANT_ID
AND COALESCE(t.PLAFOND_ID,0) = COALESCE(v.PLAFOND_ID,0)
COALESCE(t.PLAFOND_ID,0) = COALESCE(v.PLAFOND_ID,0)
AND t.ANNEE_ID = v.ANNEE_ID
AND COALESCE(t.TYPE_VOLUME_HORAIRE_ID,0) = COALESCE(v.TYPE_VOLUME_HORAIRE_ID,0)
AND t.INTERVENANT_ID = v.INTERVENANT_ID
AND t.ELEMENT_PEDAGOGIQUE_ID = v.ELEMENT_PEDAGOGIQUE_ID
AND t.HEURES = v.HEURES
AND t.PLAFOND = v.PLAFOND
AND t.DEROGATION = v.DEROGATION
THEN -1 ELSE t.ID END ID
THEN -1 ELSE t.ID END ID,
v.PLAFOND_ID,
v.ANNEE_ID,
v.TYPE_VOLUME_HORAIRE_ID,
v.INTERVENANT_ID,
v.ELEMENT_PEDAGOGIQUE_ID,
v.HEURES,
v.PLAFOND,
v.DEROGATION
FROM
(' || QUERY_APPLY_PARAM(viewQuery,param,value) || ') v
FULL JOIN TBL_PLAFOND_ELEMENT t ON
......@@ -1852,179 +1852,7 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS
p.DEROGATION
FROM
(
SELECT 1 PLAFOND_ID, 0 DEROGATION, p.* FROM (
SELECT
i.annee_id annee_id,
i.id intervenant_id,
fr.type_volume_horaire_id type_volume_horaire_id,
ROUND( (COALESCE(si.plafond_hc_remu_fc,0) - COALESCE(i.montant_indemnite_fc,0)) / a.taux_hetd, 2 ) plafond,
fr.heures_compl_fc_majorees heures
FROM
intervenant i
JOIN annee a ON a.id = i.annee_id
JOIN statut_intervenant si ON si.id = i.statut_id
JOIN etat_volume_horaire evh ON evh.code = ''saisi''
JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id
) p
UNION ALL
SELECT 2 PLAFOND_ID, 0 DEROGATION, p.* FROM (
SELECT
i.annee_id annee_id,
i.id intervenant_id,
fr.type_volume_horaire_id type_volume_horaire_id,
si.plafond_referentiel plafond,
fr.SERVICE_REFERENTIEL + fr.HEURES_COMPL_REFERENTIEL heures
FROM
intervenant i
JOIN etat_volume_horaire evh ON evh.code = ''saisi''
JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id
JOIN statut_intervenant si ON si.id = i.statut_id
) p
UNION ALL
SELECT 3 PLAFOND_ID, 0 DEROGATION, p.* FROM (
SELECT
i.annee_id,
t.intervenant_id,
t.type_volume_horaire_id,
AVG(t.plafond) plafond,
AVG(t.heures) heures
FROM
(
SELECT
vhr.type_volume_horaire_id type_volume_horaire_id,
sr.intervenant_id intervenant_id,
fr.plafond plafond,
fr.id fr_id,
SUM(vhr.heures) heures
FROM
service_referentiel sr
JOIN fonction_referentiel fr ON fr.id = sr.fonction_id
JOIN volume_horaire_ref vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL
WHERE
sr.histo_destruction IS NULL
GROUP BY
vhr.type_volume_horaire_id,
sr.intervenant_id,
fr.plafond,
fr.id
) t
JOIN intervenant i ON i.id = t.intervenant_id
GROUP BY
t.type_volume_horaire_id,
i.annee_id,
t.intervenant_id
) p
UNION ALL
SELECT 4 PLAFOND_ID, 0 DEROGATION, p.* FROM (
SELECT
fr.type_volume_horaire_id type_volume_horaire_id,
i.annee_id annee_id,
i.id intervenant_id,
si.maximum_hetd plafond,
fr.total - fr.heures_compl_fc_majorees heures
FROM
intervenant i
JOIN etat_volume_horaire evh ON evh.code = ''saisi''
JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id
JOIN statut_intervenant si ON si.id = i.statut_id
) p
UNION ALL
SELECT 5 PLAFOND_ID, 0 DEROGATION, p.* FROM (
SELECT
fr.type_volume_horaire_id type_volume_horaire_id,
i.annee_id annee_id,
fr.intervenant_id intervenant_id,
si.plafond_hc_hors_remu_fc plafond,
fr.heures_compl_fi + fr.heures_compl_fc + fr.heures_compl_fa + fr.heures_compl_referentiel heures
FROM
intervenant i
JOIN statut_intervenant si ON si.id = i.statut_id
JOIN etat_volume_horaire evh ON evh.code = ''saisi''
JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id
) p
UNION ALL
SELECT 6 PLAFOND_ID, 0 DEROGATION, p.* FROM (
SELECT
i.annee_id,
t.intervenant_id,
t.type_volume_horaire_id,
AVG(t.plafond) plafond,
AVG(t.heures) heures
FROM
(
SELECT
vhr.type_volume_horaire_id type_volume_horaire_id,
sr.intervenant_id intervenant_id,
fr.plafond plafond,
fr.id fr_id,
SUM(vhr.heures) heures
FROM
service_referentiel sr
JOIN fonction_referentiel frf ON frf.id = sr.fonction_id
JOIN fonction_referentiel fr ON fr.id = frf.parent_id
JOIN volume_horaire_ref vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL
WHERE
sr.histo_destruction IS NULL
GROUP BY
vhr.type_volume_horaire_id,
sr.intervenant_id,
fr.plafond,
fr.id
) t
JOIN intervenant i ON i.id = t.intervenant_id
GROUP BY
t.type_volume_horaire_id,
i.annee_id,
t.intervenant_id
) p
UNION ALL
SELECT 8 PLAFOND_ID, 0 DEROGATION, p.* FROM (
SELECT
t.type_volume_horaire_id,
t.annee_id,
t.intervenant_id,
si.plafond_hc_fi_hors_ead plafond,
t.heures
FROM
(
SELECT
fr.type_volume_horaire_id type_volume_horaire_id,
i.annee_id annee_id,
i.id intervenant_id,
i.statut_id statut_intervenant_id,
si.plafond_hc_fi_hors_ead plafond,
SUM(frvh.heures_compl_fi) heures
FROM
intervenant i
JOIN etat_volume_horaire evh ON evh.code = ''saisi''
JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id
JOIN formule_resultat_vh frvh ON frvh.formule_resultat_id = fr.id
JOIN volume_horaire vh ON vh.id = frvh.volume_horaire_id
JOIN type_intervention ti ON ti.id = vh.type_intervention_id
JOIN statut_intervenant si ON si.id = i.statut_id
WHERE
ti.regle_foad = 0
GROUP BY
fr.type_volume_horaire_id,
i.annee_id,
i.id,
i.statut_id,
si.plafond_hc_fi_hors_ead
) t
JOIN statut_intervenant si ON si.id = t.statut_intervenant_id
) p
SELECT NULL PLAFOND_ID,NULL ANNEE_ID,NULL TYPE_VOLUME_HORAIRE_ID,NULL INTERVENANT_ID,NULL HEURES,NULL PLAFOND,NULL DEROGATION FROM dual WHERE 0 = 1
) p
JOIN plafond_application pa ON pa.plafond_id = p.plafond_id AND pa.type_volume_horaire_id = p.type_volume_horaire_id AND p.annee_id BETWEEN COALESCE(pa.annee_debut_id,p.annee_id) AND COALESCE(pa.annee_fin_id,p.annee_id)
WHERE
......@@ -2130,24 +1958,24 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS
OPEN c FOR '
SELECT
v.INTERVENANT_ID,
v.PLAFOND_ID,
v.ANNEE_ID,
v.TYPE_VOLUME_HORAIRE_ID,
v.FONCTION_REFERENTIEL_ID,
v.HEURES,
v.PLAFOND,
v.DEROGATION,
CASE WHEN
t.INTERVENANT_ID = v.INTERVENANT_ID
AND COALESCE(t.PLAFOND_ID,0) = COALESCE(v.PLAFOND_ID,0)
COALESCE(t.PLAFOND_ID,0) = COALESCE(v.PLAFOND_ID,0)
AND t.ANNEE_ID = v.ANNEE_ID
AND COALESCE(t.TYPE_VOLUME_HORAIRE_ID,0) = COALESCE(v.TYPE_VOLUME_HORAIRE_ID,0)
AND t.INTERVENANT_ID = v.INTERVENANT_ID
AND t.FONCTION_REFERENTIEL_ID = v.FONCTION_REFERENTIEL_ID
AND t.HEURES = v.HEURES
AND t.PLAFOND = v.PLAFOND
AND t.DEROGATION = v.DEROGATION
THEN -1 ELSE t.ID END ID
THEN -1 ELSE t.ID END ID,
v.PLAFOND_ID,
v.ANNEE_ID,
v.TYPE_VOLUME_HORAIRE_ID,
v.INTERVENANT_ID,
v.FONCTION_REFERENTIEL_ID,
v.HEURES,
v.PLAFOND,
v.DEROGATION
FROM
(' || QUERY_APPLY_PARAM(viewQuery,param,value) || ') v
FULL JOIN TBL_PLAFOND_REFERENTIEL t ON
......@@ -2222,20 +2050,20 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS
COALESCE(t.PLAFOND_ID,0) = COALESCE(v.PLAFOND_ID,0)
AND t.ANNEE_ID = v.ANNEE_ID
AND COALESCE(t.TYPE_VOLUME_HORAIRE_ID,0) = COALESCE(v.TYPE_VOLUME_HORAIRE_ID,0)
AND t.INTERVENANT_ID = v.INTERVENANT_ID
AND t.STRUCTURE_ID = v.STRUCTURE_ID
AND t.HEURES = v.HEURES
AND t.PLAFOND = v.PLAFOND
AND t.DEROGATION = v.DEROGATION
AND t.INTERVENANT_ID = v.INTERVENANT_ID
THEN -1 ELSE t.ID END ID,
v.PLAFOND_ID,
v.ANNEE_ID,
v.TYPE_VOLUME_HORAIRE_ID,
v.INTERVENANT_ID,
v.STRUCTURE_ID,
v.HEURES,
v.PLAFOND,
v.DEROGATION,
v.INTERVENANT_ID
v.DEROGATION
FROM
(' || QUERY_APPLY_PARAM(viewQuery,param,value) || ') v
FULL JOIN TBL_PLAFOND_STRUCTURE t ON
......@@ -2312,22 +2140,22 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS
COALESCE(t.PLAFOND_ID,0) = COALESCE(v.PLAFOND_ID,0)
AND t.ANNEE_ID = v.ANNEE_ID
AND COALESCE(t.TYPE_VOLUME_HORAIRE_ID,0) = COALESCE(v.TYPE_VOLUME_HORAIRE_ID,0)
AND t.INTERVENANT_ID = v.INTERVENANT_ID
AND t.ELEMENT_PEDAGOGIQUE_ID = v.ELEMENT_PEDAGOGIQUE_ID
AND COALESCE(t.TYPE_INTERVENTION_ID,0) = COALESCE(v.TYPE_INTERVENTION_ID,0)
AND t.HEURES = v.HEURES
AND t.PLAFOND = v.PLAFOND
AND t.DEROGATION = v.DEROGATION
AND t.INTERVENANT_ID = v.INTERVENANT_ID
THEN -1 ELSE t.ID END ID,
v.PLAFOND_ID,
v.ANNEE_ID,
v.TYPE_VOLUME_HORAIRE_ID,
v.INTERVENANT_ID,
v.ELEMENT_PEDAGOGIQUE_ID,
v.TYPE_INTERVENTION_ID,
v.HEURES,
v.PLAFOND,
v.DEROGATION,
v.INTERVENANT_ID
v.DEROGATION
FROM
(' || QUERY_APPLY_PARAM(viewQuery,param,value) || ') v
FULL JOIN TBL_PLAFOND_VOLUME_HORAIRE t ON
......
......@@ -3,57 +3,13 @@
//@formatter:off
return [
'ADRESSE_INTERVENANT_ID_SEQ',
'ADRESSE_STRUCTURE_ID_SEQ',
'AFFECTATION_ID_SEQ',
'AFFECTATION_RECHERCHE_ID_SEQ',
'AGREMENT_ID_SEQ',
'CAMPAGNE_SAISIE_ID_SEQ',
'CATEGORIE_PRIVILEGE_ID_SEQ',
'CC_ACTIVITE_ID_SEQ',
'CENTRE_COUT_EP_ID_SEQ',
'CENTRE_COUT_ID_SEQ',
'CENTRE_COUT_STRUCTURE_ID_SEQ',
'CHEMIN_PEDAGOGIQUE_ID_SEQ',
'CIVILITE_ID_SEQ',
'CONTRAT_FICHIER_ID_SEQ',
'CONTRAT_ID_SEQ',
'CORPS_ID_SEQ',
'DEPARTEMENT_ID_SEQ',
'DISCIPLINE_ID_SEQ',
'DISCIPLINE_MAPPING_ID_SEQ',
'DOMAINE_FONCTIONNEL_ID_SEQ',
'DOSSIER_ID_SEQ',
'DOTATION_ID_SEQ',
'EFFECTIFS_ETAPE_ID_SEQ',
'EFFECTIFS_ID_SEQ',
'ELEMENT_MODULATEUR_ID_SEQ',
'ELEMENT_PEDAGOGIQUE_ID_SEQ',
'ELEMENT_TAUX_REGIMES_ID_SEQ',
'EMPLOYEUR_ID_SEQ',
'ETABLISSEMENT_ID_SEQ',
'ETAPE_ID_SEQ',
'ETAT_SORTIE_ID_SEQ',
'FICHIER_ID_SEQ',
'FONCTION_REFERENTIEL_ID_SEQ',
'FORMULE_RESULTAT_ID_SEQ',
'FORMULE_RESULTAT_SERREF_ID_SEQ',
'FORMULE_RESULTAT_SERVIC_ID_SEQ',
'FORMULE_RESULTAT_VH_ID_SEQ',
'FORMULE_RESULTAT_VH_REF_ID_SEQ',
'FTEST_INTERVENANT_ID_SEQ',
'FTEST_STRUCTURE_ID_SEQ',
'FTEST_VOLUME_HORAIRE_ID_SEQ',
'GRADE_ID_SEQ',
'GROUPE_ID_SEQ',
'GROUPE_TYPE_FORMATION_ID_SEQ',
'HISTO_INTERVENANT_SERVI_ID_SEQ',
'INDICATEUR_ID_SEQ',
'INDIC_MODIF_DOSSIER_ID_SEQ',
'INTERVENANT_DOSSIER_ID_SEQ',
'TBL_NOEUD_ID_SEQ',
'INTERVENANT_ID_SEQ',
'INTERVENANT_DOSSIER_ID_SEQ',
'INTERVENANT_PAR_DEFAUT_ID_SEQ',
'INTERVENANT_SAISIE_ID_SEQ',
'LIEN_ID_SEQ',
'MISE_EN_PAIEMENT_ID_SEQ',
'MODELE_CONTRAT_ID_SEQ',
......@@ -65,29 +21,28 @@ return [
'NOTIFICATION_INDICATEUR_ID_SEQ',
'PARAMETRE_ID_SEQ',
'PAYS_ID_SEQ',
'TYPE_DOTATION_ID_SEQ',
'PERIMETRE_ID_SEQ',
'PERIODE_ID_SEQ',
'PIECE_JOINTE_FICHIER_ID_SEQ',
'PIECE_JOINTE_ID_SEQ',
'PLAFOND_ID_SEQ',
'PLAFOND_APPLICATION_ID_SEQ',
'PLAFOND_ETAT_ID_SEQ',
'PLAFOND_ID_SEQ',
'PRIVILEGE_ID_SEQ',
'REGLE_STRUCTURE_VALIDAT_ID_SEQ',
'ROLE_ID_SEQ',
'ROLE_PRIVILEGE_ID_SEQ',
'SCENARIO_ID_SEQ',
'SCENARIO_LIEN_ID_SEQ',
'SCENARIO_NOEUD_EFFECTIF_ID_SEQ',
'SCENARIO_NOEUD_ID_SEQ',
'SCENARIO_NOEUD_EFFECTIF_ID_SEQ',
'SCENARIO_NOEUD_SEUIL_ID_SEQ',
'SERVICE_ID_SEQ',
'SERVICE_REFERENTIEL_ID_SEQ',
'SEUIL_CHARGE_ID_SEQ',
'VALIDATION_VOL_HORAIRE_ID_SEQ',
'VALIDATION_VOL_HORAIRE__ID_SEQ',
'SOURCE_ID_SEQ',
'STATUT_INTERVENANT_ID_SEQ',
'STATUT_INTERVENANT_MAPP_ID_SEQ',
'STATUT_PRIVILEGE_ID_SEQ',
'STRUCTURE_ID_SEQ',
'SYNC_LOG_ID_SEQ',
'TAUX_HORAIRE_HETD_ID_SEQ',
......@@ -96,15 +51,13 @@ return [
'TBL_CHARGENS_SEUILS_DEF_ID_SEQ',
'TBL_CLOTURE_REALISE_ID_SEQ',
'TBL_CONTRAT_ID_SEQ',
'TBL_DEMS_ID_SEQ',
'TBL_DMEP_LIQUIDATION_ID_SEQ',
'TBL_DOSSIER_ID_SEQ',
'TBL_LIEN_ID_SEQ',
'TBL_NOEUD_ID_SEQ',
'TBL_PAIEMENT_ID_SEQ',
'TBL_PIECE_JOINTE_ID_SEQ',
'TBL_PIECE_JOINTE_DEMAND_ID_SEQ',
'TBL_PIECE_JOINTE_FOURNI_ID_SEQ',
'TBL_PIECE_JOINTE_ID_SEQ',
'TBL_PLAFOND_ELEMENT_ID_SEQ',
'TBL_PLAFOND_INTERVENANT_ID_SEQ',
'TBL_PLAFOND_REFERENTIEL_ID_SEQ',
......@@ -118,35 +71,82 @@ return [
'TBL_WORKFLOW_ID_SEQ',
'TEST_BUFFER_ID_SEQ',
'TYPE_AGREMENT_ID_SEQ',
'ADRESSE_INTERVENANT_ID_SEQ',
'ADRESSE_STRUCTURE_ID_SEQ',
'TYPE_AGREMENT_STATUT_ID_SEQ',
'TYPE_CONTRAT_ID_SEQ',
'TYPE_DOTATION_ID_SEQ',
'TYPE_FORMATION_ID_SEQ',
'TYPE_HEURES_ID_SEQ',
'TYPE_INTERVENANT_ID_SEQ',
'TYPE_INTERVENTION_EP_ID_SEQ',
'TYPE_INTERVENTION_ID_SEQ',
'TYPE_INTERVENTION_EP_ID_SEQ',
'TYPE_INTERVENTION_STATU_ID_SEQ',
'TYPE_INTERVENTION_STRUC_ID_SEQ',
'TYPE_MODULATEUR_EP_ID_SEQ',
'TYPE_MODULATEUR_ID_SEQ',
'TYPE_MODULATEUR_EP_ID_SEQ',
'CONTRAT_FICHIER_ID_SEQ',
'TYPE_MODULATEUR_STRUCTU_ID_SEQ',
'TYPE_PIECE_JOINTE_ID_SEQ',
'TYPE_PIECE_JOINTE_STATU_ID_SEQ',
'TYPE_RESSOURCE_ID_SEQ',
'DISCIPLINE_MAPPING_ID_SEQ',
'TYPE_VALIDATION_ID_SEQ',
'DOSSIER_ID_SEQ',
'UTILISATEUR_ID_SEQ',
'VALIDATION_ID_SEQ',
'VALIDATION_VOL_HORAIRE_ID_SEQ',
'VALIDATION_VOL_HORAIRE__ID_SEQ',
'VOIRIE_ID_SEQ',
'VOLUME_HORAIRE_ID_SEQ',
'VOLUME_HORAIRE_CHARGE_ID_SEQ',
'VOLUME_HORAIRE_ENS_ID_SEQ',
'VOLUME_HORAIRE_ID_SEQ',
'VOLUME_HORAIRE_REF_ID_SEQ',
'WF_DEP_BLOQUANTE_ID_SEQ',
'WF_ETAPE_DEP_ID_SEQ',
'WF_ETAPE_ID_SEQ',
'WF_ETAPE_DEP_ID_SEQ',
'FTEST_STRUCTURE_ID_SEQ',
'INTERVENANT_SAISIE_ID_SEQ',
'PIECE_JOINTE_FICHIER_ID_SEQ',
'ROLE_PRIVILEGE_ID_SEQ',
'STATUT_INTERVENANT_MAPP_ID_SEQ',
'STATUT_PRIVILEGE_ID_SEQ',
'TBL_DEMS_ID_SEQ',
'AFFECTATION_ID_SEQ',
'AFFECTATION_RECHERCHE_ID_SEQ',
'AGREMENT_ID_SEQ',
'CAMPAGNE_SAISIE_ID_SEQ',
'CATEGORIE_PRIVILEGE_ID_SEQ',
'CC_ACTIVITE_ID_SEQ',
'CENTRE_COUT_ID_SEQ',
'CENTRE_COUT_EP_ID_SEQ',
'CENTRE_COUT_STRUCTURE_ID_SEQ',
'CHEMIN_PEDAGOGIQUE_ID_SEQ',
'CIVILITE_ID_SEQ',
'CONTRAT_ID_SEQ',
'CORPS_ID_SEQ',
'DEPARTEMENT_ID_SEQ',
'DISCIPLINE_ID_SEQ',
'DOMAINE_FONCTIONNEL_ID_SEQ',
'DOTATION_ID_SEQ',
'EFFECTIFS_ID_SEQ',
'EFFECTIFS_ETAPE_ID_SEQ',
'ELEMENT_MODULATEUR_ID_SEQ',
'ELEMENT_PEDAGOGIQUE_ID_SEQ',
'ELEMENT_TAUX_REGIMES_ID_SEQ',
'EMPLOYEUR_ID_SEQ',
'ETABLISSEMENT_ID_SEQ',
'ETAPE_ID_SEQ',
'ETAT_SORTIE_ID_SEQ',
'FICHIER_ID_SEQ',
'FONCTION_REFERENTIEL_ID_SEQ',
'FORMULE_RESULTAT_ID_SEQ',
'FORMULE_RESULTAT_SERVIC_ID_SEQ',
'FORMULE_RESULTAT_SERREF_ID_SEQ',
'FORMULE_RESULTAT_VH_ID_SEQ',
'FORMULE_RESULTAT_VH_REF_ID_SEQ',
'FTEST_INTERVENANT_ID_SEQ',
'FTEST_VOLUME_HORAIRE_ID_SEQ',
'GRADE_ID_SEQ',
'GROUPE_ID_SEQ',
'GROUPE_TYPE_FORMATION_ID_SEQ',
];
//@formatter:on
......@@ -9,179 +9,7 @@ SELECT
p.DEROGATION
FROM
(
SELECT 1 PLAFOND_ID, 0 DEROGATION, p.* FROM (
SELECT
i.annee_id annee_id,
i.id intervenant_id,
fr.type_volume_horaire_id type_volume_horaire_id,
ROUND( (COALESCE(si.plafond_hc_remu_fc,0) - COALESCE(i.montant_indemnite_fc,0)) / a.taux_hetd, 2 ) plafond,
fr.heures_compl_fc_majorees heures
FROM
intervenant i
JOIN annee a ON a.id = i.annee_id
JOIN statut_intervenant si ON si.id = i.statut_id
JOIN etat_volume_horaire evh ON evh.code = 'saisi'
JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id
) p
UNION ALL
SELECT 2 PLAFOND_ID, 0 DEROGATION, p.* FROM (
SELECT
i.annee_id annee_id,
i.id intervenant_id,
fr.type_volume_horaire_id type_volume_horaire_id,
si.plafond_referentiel plafond,
fr.SERVICE_REFERENTIEL + fr.HEURES_COMPL_REFERENTIEL heures
FROM
intervenant i
JOIN etat_volume_horaire evh ON evh.code = 'saisi'
JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id
JOIN statut_intervenant si ON si.id = i.statut_id
) p
UNION ALL
SELECT 3 PLAFOND_ID, 0 DEROGATION, p.* FROM (
SELECT
i.annee_id,
t.intervenant_id,
t.type_volume_horaire_id,
AVG(t.plafond) plafond,
AVG(t.heures) heures
FROM
(
SELECT
vhr.type_volume_horaire_id type_volume_horaire_id,
sr.intervenant_id intervenant_id,
fr.plafond plafond,
fr.id fr_id,
SUM(vhr.heures) heures
FROM
service_referentiel sr
JOIN fonction_referentiel fr ON fr.id = sr.fonction_id
JOIN volume_horaire_ref vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL
WHERE
sr.histo_destruction IS NULL
GROUP BY
vhr.type_volume_horaire_id,
sr.intervenant_id,
fr.plafond,
fr.id
) t
JOIN intervenant i ON i.id = t.intervenant_id
GROUP BY
t.type_volume_horaire_id,
i.annee_id,
t.intervenant_id
) p
UNION ALL
SELECT 4 PLAFOND_ID, 0 DEROGATION, p.* FROM (
SELECT
fr.type_volume_horaire_id type_volume_horaire_id,
i.annee_id annee_id,
i.id intervenant_id,
si.maximum_hetd plafond,
fr.total - fr.heures_compl_fc_majorees heures
FROM
intervenant i
JOIN etat_volume_horaire evh ON evh.code = 'saisi'
JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id
JOIN statut_intervenant si ON si.id = i.statut_id
) p
UNION ALL
SELECT 5 PLAFOND_ID, 0 DEROGATION, p.* FROM (
SELECT
fr.type_volume_horaire_id type_volume_horaire_id,
i.annee_id annee_id,
fr.intervenant_id intervenant_id,
si.plafond_hc_hors_remu_fc plafond,
fr.heures_compl_fi + fr.heures_compl_fc + fr.heures_compl_fa + fr.heures_compl_referentiel heures
FROM
intervenant i
JOIN statut_intervenant si ON si.id = i.statut_id
JOIN etat_volume_horaire evh ON evh.code = 'saisi'
JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id
) p
UNION ALL
SELECT 6 PLAFOND_ID, 0 DEROGATION, p.* FROM (
SELECT
i.annee_id,
t.intervenant_id,
t.type_volume_horaire_id,
AVG(t.plafond) plafond,
AVG(t.heures) heures
FROM
(
SELECT
vhr.type_volume_horaire_id type_volume_horaire_id,
sr.intervenant_id intervenant_id,
fr.plafond plafond,
fr.id fr_id,
SUM(vhr.heures) heures
FROM
service_referentiel sr
JOIN fonction_referentiel frf ON frf.id = sr.fonction_id
JOIN fonction_referentiel fr ON fr.id = frf.parent_id
JOIN volume_horaire_ref vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL
WHERE
sr.histo_destruction IS NULL
GROUP BY
vhr.type_volume_horaire_id,
sr.intervenant_id,
fr.plafond,
fr.id
) t
JOIN intervenant i ON i.id = t.intervenant_id
GROUP BY
t.type_volume_horaire_id,
i.annee_id,
t.intervenant_id
) p
UNION ALL
SELECT 8 PLAFOND_ID, 0 DEROGATION, p.* FROM (
SELECT
t.type_volume_horaire_id,
t.annee_id,
t.intervenant_id,
si.plafond_hc_fi_hors_ead plafond,
t.heures
FROM
(
SELECT
fr.type_volume_horaire_id type_volume_horaire_id,
i.annee_id annee_id,
i.id intervenant_id,
i.statut_id statut_intervenant_id,
si.plafond_hc_fi_hors_ead plafond,
SUM(frvh.heures_compl_fi) heures
FROM
intervenant i
JOIN etat_volume_horaire evh ON evh.code = 'saisi'
JOIN formule_resultat fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id
JOIN formule_resultat_vh frvh ON frvh.formule_resultat_id = fr.id
JOIN volume_horaire vh ON vh.id = frvh.volume_horaire_id
JOIN type_intervention ti ON ti.id = vh.type_intervention_id
JOIN statut_intervenant si ON si.id = i.statut_id
WHERE
ti.regle_foad = 0
GROUP BY
fr.type_volume_horaire_id,
i.annee_id,
i.id,
i.statut_id,
si.plafond_hc_fi_hors_ead
) t
JOIN statut_intervenant si ON si.id = t.statut_intervenant_id
) p
SELECT NULL PLAFOND_ID,NULL ANNEE_ID,NULL TYPE_VOLUME_HORAIRE_ID,NULL INTERVENANT_ID,NULL HEURES,NULL PLAFOND,NULL DEROGATION FROM dual WHERE 0 = 1
) p
JOIN plafond_application pa ON pa.plafond_id = p.plafond_id AND pa.type_volume_horaire_id = p.type_volume_horaire_id AND p.annee_id BETWEEN COALESCE(pa.annee_debut_id,p.annee_id) AND COALESCE(pa.annee_fin_id,p.annee_id)
WHERE
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment