Loading data/ddl/table/MISSION.php +12 −12 Original line number Diff line number Diff line Loading @@ -57,18 +57,6 @@ return [ 'position' => 6, 'commentaire' => NULL, ], 'LIBELLE_MISSION' => [ 'name' => 'LIBELLE_MISSION', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 4000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 19, 'commentaire' => NULL, ], 'ETUDIANTS_SUIVIS' => [ 'name' => 'ETUDIANTS_SUIVIS', 'type' => 'string', Loading Loading @@ -189,6 +177,18 @@ return [ 'position' => 2, 'commentaire' => NULL, ], 'LIBELLE_MISSION' => [ 'name' => 'LIBELLE_MISSION', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 4000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 19, 'commentaire' => NULL, ], 'STRUCTURE_ID' => [ 'name' => 'STRUCTURE_ID', 'type' => 'int', Loading data/ddl/table/STATUT.php +50 −50 Original line number Diff line number Diff line Loading @@ -105,6 +105,30 @@ return [ 'position' => 70, 'commentaire' => NULL, ], 'CODE_INDEMNITE' => [ 'name' => 'CODE_INDEMNITE', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 96, 'commentaire' => NULL, ], 'CODE_INDEMNITE_PRIME' => [ 'name' => 'CODE_INDEMNITE_PRIME', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 97, 'commentaire' => NULL, ], 'CONSEIL_ACA' => [ 'name' => 'CONSEIL_ACA', 'type' => 'bool', Loading Loading @@ -741,6 +765,30 @@ return [ 'position' => 88, 'commentaire' => NULL, ], 'MODE_CALCUL' => [ 'name' => 'MODE_CALCUL', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 94, 'commentaire' => NULL, ], 'MODE_CALCUL_PRIME' => [ 'name' => 'MODE_CALCUL_PRIME', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 95, 'commentaire' => NULL, ], 'MODE_ENSEIGNEMENT_PREVISIONNEL' => [ 'name' => 'MODE_ENSEIGNEMENT_PREVISIONNEL', 'type' => 'string', Loading Loading @@ -1125,54 +1173,6 @@ return [ 'position' => 4, 'commentaire' => NULL, ], 'MODE_CALCUL' => [ 'name' => 'MODE_CALCUL', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 86, 'commentaire' => NULL, ], 'MODE_CALCUL_PRIME' => [ 'name' => 'MODE_CALCUL_PRIME', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 86, 'commentaire' => NULL, ], 'CODE_INDEMNITE' => [ 'name' => 'CODE_INDEMNITE', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 86, 'commentaire' => NULL, ], 'CODE_INDEMNITE_PRIME' => [ 'name' => 'CODE_INDEMNITE_PRIME', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 86, 'commentaire' => NULL, ], 'TYPE_PAIE' => [ 'name' => 'TYPE_PAIE', 'type' => 'string', Loading @@ -1182,7 +1182,7 @@ return [ 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 86, 'position' => 98, 'commentaire' => NULL, ], 'TYPE_PAIE_PRIME' => [ Loading @@ -1194,7 +1194,7 @@ return [ 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 86, 'position' => 99, 'commentaire' => NULL, ], ], Loading data/ddl/view/V_TBL_PLAFOND_INTERVENANT.sql +73 −38 Original line number Diff line number Diff line Loading @@ -15,46 +15,72 @@ SELECT CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement FROM ( SELECT 10 PLAFOND_ID, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT 1 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, type_volume_horaire_id, intervenant_id, heures, plafond fr.type_volume_horaire_id type_volume_horaire_id, fr.intervenant_id intervenant_id, fr.heures_compl_fi + fr.heures_compl_fc + fr.heures_compl_fa + fr.heures_compl_referentiel heures FROM ( intervenant i JOIN statut 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, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT intervenant_id, type_volume_horaire_id, tranche, sum(heures) heures, least(min(plafond_tranche_mission), min(plafond_tranche)) plafond i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, i.id intervenant_id, 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 si ON si.id = i.statut_id ) p UNION ALL SELECT 4 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT m.intervenant_id intervenant_id, vhm.type_volume_horaire_id type_volume_horaire_id, to_char( vhm.horaire_debut, 'YYYY-mm' ) tranche, vhm.heures heures, ROUND(CASE to_char( vhm.horaire_debut, 'mm' ) WHEN '07' THEN 150 WHEN '08' THEN 150 ELSE 67 END / 30 * (m.date_fin - m.date_debut),2) plafond_tranche_mission, CASE to_char( vhm.horaire_debut, 'mm' ) WHEN '07' THEN 150 WHEN '08' THEN 150 ELSE 67 END plafond_tranche i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, i.id intervenant_id, SUM(frvh.heures_compl_fi) heures FROM volume_horaire_mission vhm JOIN type_volume_horaire tvh ON tvh.id = vhm.type_volume_horaire_id AND tvh.code = 'REALISE' JOIN mission m ON m.id = vhm.mission_id AND m.histo_destruction IS NULL 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 si ON si.id = i.statut_id WHERE vhm.histo_destruction IS NULL ) t ti.regle_foad = 0 GROUP BY intervenant_id, type_volume_horaire_id, tranche ) t JOIN intervenant i ON i.id = t.intervenant_id WHERE heures > plafond AND rownum = 1 fr.type_volume_horaire_id, i.annee_id, i.id, i.statut_id ) p UNION ALL SELECT 8 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, i.id intervenant_id, 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 si ON si.id = i.statut_id ) p UNION ALL Loading @@ -62,17 +88,26 @@ FROM SELECT 9 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, vhm.type_volume_horaire_id type_volume_horaire_id, vh.type_volume_horaire_id type_volume_horaire_id, i.id intervenant_id, SUM(vhm.heures) heures SUM(vh.heures) heures FROM volume_horaire_mission vhm JOIN mission m ON m.histo_destruction IS NULL AND m.id = vhm.mission_id JOIN intervenant i ON i.id = m.intervenant_id volume_horaire vh JOIN service s ON s.id = vh.service_id JOIN intervenant i ON i.id = s.intervenant_id JOIN statut si ON si.id = i.statut_id WHERE vhm.histo_destruction IS NULL vh.histo_destruction IS NULL AND i.histo_destruction IS NULL AND vh.motif_non_paiement_id IS NULL AND si.code IN ('IMP') GROUP BY i.annee_id, vhm.type_volume_horaire_id, i.id i.annee_id, vh.type_volume_horaire_id, i.id, i.statut_id HAVING SUM(vh.heures) >= 0 ) p ) p JOIN intervenant i ON i.id = p.intervenant_id Loading data/ddl/view/V_TBL_PLAFOND_REFERENTIEL.sql +36 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,42 @@ SELECT CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement FROM ( SELECT NULL PLAFOND_ID,NULL ANNEE_ID,NULL TYPE_VOLUME_HORAIRE_ID,NULL INTERVENANT_ID,NULL FONCTION_REFERENTIEL_ID,NULL HEURES,NULL PLAFOND,NULL PLAFOND_ETAT_ID,NULL DEROGATION FROM dual WHERE 0 = 1 SELECT 7 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, vhr.type_volume_horaire_id type_volume_horaire_id, i.id intervenant_id, fr.id fonction_referentiel_id, SUM(vhr.heures) heures FROM service_referentiel sr JOIN intervenant i ON i.id = sr.intervenant_id 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 i.annee_id, vhr.type_volume_horaire_id, i.id, fr.id UNION ALL SELECT i.annee_id annee_id, vhr.type_volume_horaire_id type_volume_horaire_id, i.id intervenant_id, fr.id fonction_referentiel_id, SUM(vhr.heures) heures FROM service_referentiel sr JOIN intervenant i ON i.id = sr.intervenant_id 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 i.annee_id, vhr.type_volume_horaire_id, i.id, fr.id ) p ) p JOIN intervenant i ON i.id = p.intervenant_id LEFT JOIN plafond_referentiel ps ON ps.plafond_id = p.plafond_id AND ps.fonction_referentiel_id = p.fonction_referentiel_id AND ps.annee_id = i.annee_id AND ps.histo_destruction IS NULL Loading data/ddl/view/V_TBL_PLAFOND_STRUCTURE.sql +17 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,23 @@ SELECT CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement FROM ( SELECT NULL PLAFOND_ID,NULL ANNEE_ID,NULL TYPE_VOLUME_HORAIRE_ID,NULL INTERVENANT_ID,NULL STRUCTURE_ID,NULL HEURES,NULL PLAFOND,NULL PLAFOND_ETAT_ID,NULL DEROGATION FROM dual WHERE 0 = 1 SELECT 6 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, vhr.type_volume_horaire_id type_volume_horaire_id, i.id intervenant_id, s.id structure_id, SUM(vhr.heures) heures FROM service_referentiel sr JOIN intervenant i ON i.id = sr.intervenant_id JOIN structure s ON s.id = sr.structure_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 i.annee_id, vhr.type_volume_horaire_id, i.id, s.id ) p ) p JOIN intervenant i ON i.id = p.intervenant_id LEFT JOIN plafond_structure ps ON ps.plafond_id = p.plafond_id AND ps.structure_id = p.structure_id AND ps.annee_id = i.annee_id AND ps.histo_destruction IS NULL Loading Loading
data/ddl/table/MISSION.php +12 −12 Original line number Diff line number Diff line Loading @@ -57,18 +57,6 @@ return [ 'position' => 6, 'commentaire' => NULL, ], 'LIBELLE_MISSION' => [ 'name' => 'LIBELLE_MISSION', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 4000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 19, 'commentaire' => NULL, ], 'ETUDIANTS_SUIVIS' => [ 'name' => 'ETUDIANTS_SUIVIS', 'type' => 'string', Loading Loading @@ -189,6 +177,18 @@ return [ 'position' => 2, 'commentaire' => NULL, ], 'LIBELLE_MISSION' => [ 'name' => 'LIBELLE_MISSION', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 4000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 19, 'commentaire' => NULL, ], 'STRUCTURE_ID' => [ 'name' => 'STRUCTURE_ID', 'type' => 'int', Loading
data/ddl/table/STATUT.php +50 −50 Original line number Diff line number Diff line Loading @@ -105,6 +105,30 @@ return [ 'position' => 70, 'commentaire' => NULL, ], 'CODE_INDEMNITE' => [ 'name' => 'CODE_INDEMNITE', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 96, 'commentaire' => NULL, ], 'CODE_INDEMNITE_PRIME' => [ 'name' => 'CODE_INDEMNITE_PRIME', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 97, 'commentaire' => NULL, ], 'CONSEIL_ACA' => [ 'name' => 'CONSEIL_ACA', 'type' => 'bool', Loading Loading @@ -741,6 +765,30 @@ return [ 'position' => 88, 'commentaire' => NULL, ], 'MODE_CALCUL' => [ 'name' => 'MODE_CALCUL', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 94, 'commentaire' => NULL, ], 'MODE_CALCUL_PRIME' => [ 'name' => 'MODE_CALCUL_PRIME', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 95, 'commentaire' => NULL, ], 'MODE_ENSEIGNEMENT_PREVISIONNEL' => [ 'name' => 'MODE_ENSEIGNEMENT_PREVISIONNEL', 'type' => 'string', Loading Loading @@ -1125,54 +1173,6 @@ return [ 'position' => 4, 'commentaire' => NULL, ], 'MODE_CALCUL' => [ 'name' => 'MODE_CALCUL', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 86, 'commentaire' => NULL, ], 'MODE_CALCUL_PRIME' => [ 'name' => 'MODE_CALCUL_PRIME', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 86, 'commentaire' => NULL, ], 'CODE_INDEMNITE' => [ 'name' => 'CODE_INDEMNITE', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 86, 'commentaire' => NULL, ], 'CODE_INDEMNITE_PRIME' => [ 'name' => 'CODE_INDEMNITE_PRIME', 'type' => 'string', 'bdd-type' => 'VARCHAR2', 'length' => 1000, 'scale' => NULL, 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 86, 'commentaire' => NULL, ], 'TYPE_PAIE' => [ 'name' => 'TYPE_PAIE', 'type' => 'string', Loading @@ -1182,7 +1182,7 @@ return [ 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 86, 'position' => 98, 'commentaire' => NULL, ], 'TYPE_PAIE_PRIME' => [ Loading @@ -1194,7 +1194,7 @@ return [ 'precision' => NULL, 'nullable' => TRUE, 'default' => NULL, 'position' => 86, 'position' => 99, 'commentaire' => NULL, ], ], Loading
data/ddl/view/V_TBL_PLAFOND_INTERVENANT.sql +73 −38 Original line number Diff line number Diff line Loading @@ -15,46 +15,72 @@ SELECT CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement FROM ( SELECT 10 PLAFOND_ID, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT 1 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, type_volume_horaire_id, intervenant_id, heures, plafond fr.type_volume_horaire_id type_volume_horaire_id, fr.intervenant_id intervenant_id, fr.heures_compl_fi + fr.heures_compl_fc + fr.heures_compl_fa + fr.heures_compl_referentiel heures FROM ( intervenant i JOIN statut 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, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT intervenant_id, type_volume_horaire_id, tranche, sum(heures) heures, least(min(plafond_tranche_mission), min(plafond_tranche)) plafond i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, i.id intervenant_id, 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 si ON si.id = i.statut_id ) p UNION ALL SELECT 4 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT m.intervenant_id intervenant_id, vhm.type_volume_horaire_id type_volume_horaire_id, to_char( vhm.horaire_debut, 'YYYY-mm' ) tranche, vhm.heures heures, ROUND(CASE to_char( vhm.horaire_debut, 'mm' ) WHEN '07' THEN 150 WHEN '08' THEN 150 ELSE 67 END / 30 * (m.date_fin - m.date_debut),2) plafond_tranche_mission, CASE to_char( vhm.horaire_debut, 'mm' ) WHEN '07' THEN 150 WHEN '08' THEN 150 ELSE 67 END plafond_tranche i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, i.id intervenant_id, SUM(frvh.heures_compl_fi) heures FROM volume_horaire_mission vhm JOIN type_volume_horaire tvh ON tvh.id = vhm.type_volume_horaire_id AND tvh.code = 'REALISE' JOIN mission m ON m.id = vhm.mission_id AND m.histo_destruction IS NULL 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 si ON si.id = i.statut_id WHERE vhm.histo_destruction IS NULL ) t ti.regle_foad = 0 GROUP BY intervenant_id, type_volume_horaire_id, tranche ) t JOIN intervenant i ON i.id = t.intervenant_id WHERE heures > plafond AND rownum = 1 fr.type_volume_horaire_id, i.annee_id, i.id, i.statut_id ) p UNION ALL SELECT 8 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, i.id intervenant_id, 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 si ON si.id = i.statut_id ) p UNION ALL Loading @@ -62,17 +88,26 @@ FROM SELECT 9 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, vhm.type_volume_horaire_id type_volume_horaire_id, vh.type_volume_horaire_id type_volume_horaire_id, i.id intervenant_id, SUM(vhm.heures) heures SUM(vh.heures) heures FROM volume_horaire_mission vhm JOIN mission m ON m.histo_destruction IS NULL AND m.id = vhm.mission_id JOIN intervenant i ON i.id = m.intervenant_id volume_horaire vh JOIN service s ON s.id = vh.service_id JOIN intervenant i ON i.id = s.intervenant_id JOIN statut si ON si.id = i.statut_id WHERE vhm.histo_destruction IS NULL vh.histo_destruction IS NULL AND i.histo_destruction IS NULL AND vh.motif_non_paiement_id IS NULL AND si.code IN ('IMP') GROUP BY i.annee_id, vhm.type_volume_horaire_id, i.id i.annee_id, vh.type_volume_horaire_id, i.id, i.statut_id HAVING SUM(vh.heures) >= 0 ) p ) p JOIN intervenant i ON i.id = p.intervenant_id Loading
data/ddl/view/V_TBL_PLAFOND_REFERENTIEL.sql +36 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,42 @@ SELECT CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement FROM ( SELECT NULL PLAFOND_ID,NULL ANNEE_ID,NULL TYPE_VOLUME_HORAIRE_ID,NULL INTERVENANT_ID,NULL FONCTION_REFERENTIEL_ID,NULL HEURES,NULL PLAFOND,NULL PLAFOND_ETAT_ID,NULL DEROGATION FROM dual WHERE 0 = 1 SELECT 7 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, vhr.type_volume_horaire_id type_volume_horaire_id, i.id intervenant_id, fr.id fonction_referentiel_id, SUM(vhr.heures) heures FROM service_referentiel sr JOIN intervenant i ON i.id = sr.intervenant_id 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 i.annee_id, vhr.type_volume_horaire_id, i.id, fr.id UNION ALL SELECT i.annee_id annee_id, vhr.type_volume_horaire_id type_volume_horaire_id, i.id intervenant_id, fr.id fonction_referentiel_id, SUM(vhr.heures) heures FROM service_referentiel sr JOIN intervenant i ON i.id = sr.intervenant_id 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 i.annee_id, vhr.type_volume_horaire_id, i.id, fr.id ) p ) p JOIN intervenant i ON i.id = p.intervenant_id LEFT JOIN plafond_referentiel ps ON ps.plafond_id = p.plafond_id AND ps.fonction_referentiel_id = p.fonction_referentiel_id AND ps.annee_id = i.annee_id AND ps.histo_destruction IS NULL Loading
data/ddl/view/V_TBL_PLAFOND_STRUCTURE.sql +17 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,23 @@ SELECT CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement FROM ( SELECT NULL PLAFOND_ID,NULL ANNEE_ID,NULL TYPE_VOLUME_HORAIRE_ID,NULL INTERVENANT_ID,NULL STRUCTURE_ID,NULL HEURES,NULL PLAFOND,NULL PLAFOND_ETAT_ID,NULL DEROGATION FROM dual WHERE 0 = 1 SELECT 6 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, vhr.type_volume_horaire_id type_volume_horaire_id, i.id intervenant_id, s.id structure_id, SUM(vhr.heures) heures FROM service_referentiel sr JOIN intervenant i ON i.id = sr.intervenant_id JOIN structure s ON s.id = sr.structure_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 i.annee_id, vhr.type_volume_horaire_id, i.id, s.id ) p ) p JOIN intervenant i ON i.id = p.intervenant_id LEFT JOIN plafond_structure ps ON ps.plafond_id = p.plafond_id AND ps.structure_id = p.structure_id AND ps.annee_id = i.annee_id AND ps.histo_destruction IS NULL Loading