Commit 175883b8 authored by Laurent Lécluse's avatar Laurent Lécluse
Browse files

Finalisation AA/AC

parent 63271084
......@@ -64,9 +64,6 @@ CREATE OR REPLACE PACKAGE BODY "OSE_DIVERS" AS
RETURN 1;
END IF;
ose_test.echo('nbjaa=' || nbjaa);
ose_test.echo('nbjac=' || nbjac);
RETURN ROUND(nbjaa / (nbjaa + nbjac), 2);
END IF;
END IF;
......
CREATE OR REPLACE PACKAGE BODY "OSE_PARAMETRE" AS
cache_ose_user NUMERIC;
cache_annee_id NUMERIC;
oseuser NUMERIC;
annee NUMERIC;
annee_import NUMERIC;
etablissement VARCHAR2(50);
regle_paiement_annee_civile VARCHAR2(50);
pourc_s1_pour_annee_civile FLOAT;
......@@ -10,19 +13,22 @@ CREATE OR REPLACE PACKAGE BODY "OSE_PARAMETRE" AS
FUNCTION get_etablissement return Numeric AS
etab_id numeric;
BEGIN
select to_number(valeur) into etab_id from parametre where nom = 'etablissement';
RETURN etab_id;
IF etablissement IS NULL THEN
select to_number(valeur) into etablissement from parametre where nom = 'etablissement';
END IF;
RETURN etablissement;
END get_etablissement;
FUNCTION get_annee return Numeric AS
annee_id numeric;
BEGIN
IF cache_annee_id IS NOT NULL THEN RETURN cache_annee_id; END IF;
select to_number(valeur) into annee_id from parametre where nom = 'annee';
cache_annee_id := annee_id;
RETURN cache_annee_id;
IF annee IS NULL THEN
SELECT to_number(valeur) into annee from parametre where nom = 'annee';
END IF;
RETURN annee;
END get_annee;
......@@ -30,19 +36,22 @@ CREATE OR REPLACE PACKAGE BODY "OSE_PARAMETRE" AS
FUNCTION get_annee_import RETURN NUMERIC AS
annee_id NUMERIC;
BEGIN
SELECT to_number(valeur) INTO annee_id FROM parametre WHERE nom = 'annee_import';
RETURN annee_id;
IF annee_import IS NULL THEN
SELECT to_number(valeur) INTO annee_import FROM parametre WHERE nom = 'annee_import';
END IF;
RETURN annee_import;
END get_annee_import;
FUNCTION get_ose_user return NUMERIC AS
ose_user_id numeric;
BEGIN
IF cache_ose_user IS NOT NULL THEN RETURN cache_ose_user; END IF;
select to_number(valeur) into ose_user_id from parametre where nom = 'oseuser';
cache_ose_user := ose_user_id;
RETURN cache_ose_user;
IF oseuser IS NULL THEN
SELECT to_number(valeur) into oseuser from parametre where nom = 'oseuser';
END IF;
RETURN oseuser;
END get_ose_user;
......@@ -56,6 +65,7 @@ CREATE OR REPLACE PACKAGE BODY "OSE_PARAMETRE" AS
formule f
JOIN parametre p ON f.id = to_number(p.valeur)
WHERE p.nom = 'formule';
RETURN fdata;
END;
......@@ -81,4 +91,13 @@ CREATE OR REPLACE PACKAGE BODY "OSE_PARAMETRE" AS
RETURN pourc_s1_pour_annee_civile;
END;
PROCEDURE CLEAR_CACHE IS
BEGIN
annee := NULL;
oseuser := NULL;
regle_paiement_annee_civile := NULL;
pourc_s1_pour_annee_civile := NULL;
END;
END OSE_PARAMETRE;
\ No newline at end of file
......@@ -8,4 +8,6 @@ CREATE OR REPLACE PACKAGE "OSE_PARAMETRE" AS
FUNCTION get_regle_paiement_annee_civ RETURN VARCHAR2;
FUNCTION get_pourc_s1_annee_civ RETURN VARCHAR2;
PROCEDURE CLEAR_CACHE;
END OSE_PARAMETRE;
\ No newline at end of file
......@@ -1186,8 +1186,8 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS
count(*) OVER(PARTITION BY frs.id) heures_a_payer_pond,
NVL(mep.heures,0) heures_demandees,
CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees,
4 / 10 pourc_exercice_aa,
6 / 10 pourc_exercice_ac
pea.pourc_exercice_aa pourc_exercice_aa,
1 - pea.pourc_exercice_aa pourc_exercice_ac
FROM
formule_resultat_service frs
JOIN type_volume_horaire tvh ON tvh.code = ''REALISE''
......@@ -1199,6 +1199,24 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS
JOIN intervenant i ON i.id = fr.intervenant_id /*@INTERVENANT_ID=i.id*/ /*@ANNEE_ID=a.annee_id*/
JOIN service s ON s.id = frs.service_id
JOIN (
SELECT
frvh.formule_resultat_id,
vh.service_id,
CASE WHEN SUM(vh.heures) > 0 THEN
SUM(ose_divers.CALC_POURC_AA(vh.periode_id, vh.horaire_debut, vh.horaire_fin, i.annee_id) * vh.heures) / SUM(vh.heures)
ELSE
SUM(ose_divers.CALC_POURC_AA(vh.periode_id, vh.horaire_debut, vh.horaire_fin, i.annee_id))
END pourc_exercice_aa
FROM
volume_horaire vh
JOIN service s ON s.id = vh.service_id
JOIN intervenant i ON i.id = s.intervenant_id /*@INTERVENANT_ID=i.id*/ /*@ANNEE_ID=a.annee_id*/
JOIN formule_resultat_vh frvh ON frvh.volume_horaire_id = vh.id
GROUP BY
frvh.formule_resultat_id,
vh.service_id
) pea ON pea.formule_resultat_id = fr.id AND pea.service_id = s.id
LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
LEFT JOIN etape e ON e.id = ep.etape_id
LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id
......@@ -1221,8 +1239,8 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS
count(*) OVER(PARTITION BY frs.id) heures_a_payer_pond,
NVL(mep.heures,0) heures_demandees,
CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees,
4 / 10 pourc_exercice_aa,
6 / 10 pourc_exercice_ac
pea.pourc_exercice_aa pourc_exercice_aa,
1 - pea.pourc_exercice_aa pourc_exercice_ac
FROM
formule_resultat_service_ref frs
JOIN type_volume_horaire tvh ON tvh.code = ''REALISE''
......@@ -1233,6 +1251,24 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS
JOIN intervenant i ON i.id = fr.intervenant_id /*@INTERVENANT_ID=i.id*/ /*@ANNEE_ID=a.annee_id*/
JOIN service_referentiel sr ON sr.id = frs.service_referentiel_id
JOIN (
SELECT
frvhr.formule_resultat_id,
vhr.service_referentiel_id,
CASE WHEN SUM(vhr.heures) > 0 THEN
SUM(ose_divers.CALC_POURC_AA(NULL, vhr.horaire_debut, vhr.horaire_fin, i.annee_id) * vhr.heures) / SUM(vhr.heures)
ELSE
SUM(ose_divers.CALC_POURC_AA(NULL, vhr.horaire_debut, vhr.horaire_fin, i.annee_id))
END pourc_exercice_aa
FROM
volume_horaire_ref vhr
JOIN service_referentiel sr ON sr.id = vhr.service_referentiel_id
JOIN intervenant i ON i.id = sr.intervenant_id /*@INTERVENANT_ID=i.id*/ /*@ANNEE_ID=a.annee_id*/
JOIN formule_resultat_vh_ref frvhr ON frvhr.volume_horaire_ref_id = vhr.id
GROUP BY
frvhr.formule_resultat_id,
vhr.service_referentiel_id
) pea ON pea.formule_resultat_id = fr.id AND pea.service_referentiel_id = sr.id
JOIN fonction_referentiel fncr ON fncr.id = sr.fonction_id
LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_ref_id = frs.id
AND mep.histo_destruction IS NULL';
......
CREATE OR REPLACE TRIGGER "PARAMETRE_S"
AFTER UPDATE ON PARAMETRE
FOR EACH ROW
BEGIN
ose_parametre.clear_cache;
END;
\ No newline at end of file
......@@ -14,8 +14,8 @@ SELECT
count(*) OVER(PARTITION BY frs.id) heures_a_payer_pond,
NVL(mep.heures,0) heures_demandees,
CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees,
4 / 10 pourc_exercice_aa,
6 / 10 pourc_exercice_ac
pea.pourc_exercice_aa pourc_exercice_aa,
1 - pea.pourc_exercice_aa pourc_exercice_ac
FROM
formule_resultat_service frs
JOIN type_volume_horaire tvh ON tvh.code = 'REALISE'
......@@ -27,6 +27,24 @@ FROM
JOIN intervenant i ON i.id = fr.intervenant_id /*@INTERVENANT_ID=i.id*/ /*@ANNEE_ID=a.annee_id*/
JOIN service s ON s.id = frs.service_id
JOIN (
SELECT
frvh.formule_resultat_id,
vh.service_id,
CASE WHEN SUM(vh.heures) > 0 THEN
SUM(ose_divers.CALC_POURC_AA(vh.periode_id, vh.horaire_debut, vh.horaire_fin, i.annee_id) * vh.heures) / SUM(vh.heures)
ELSE
SUM(ose_divers.CALC_POURC_AA(vh.periode_id, vh.horaire_debut, vh.horaire_fin, i.annee_id))
END pourc_exercice_aa
FROM
volume_horaire vh
JOIN service s ON s.id = vh.service_id
JOIN intervenant i ON i.id = s.intervenant_id /*@INTERVENANT_ID=i.id*/ /*@ANNEE_ID=a.annee_id*/
JOIN formule_resultat_vh frvh ON frvh.volume_horaire_id = vh.id
GROUP BY
frvh.formule_resultat_id,
vh.service_id
) pea ON pea.formule_resultat_id = fr.id AND pea.service_id = s.id
LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
LEFT JOIN etape e ON e.id = ep.etape_id
LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id
......@@ -49,8 +67,8 @@ SELECT
count(*) OVER(PARTITION BY frs.id) heures_a_payer_pond,
NVL(mep.heures,0) heures_demandees,
CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees,
4 / 10 pourc_exercice_aa,
6 / 10 pourc_exercice_ac
pea.pourc_exercice_aa pourc_exercice_aa,
1 - pea.pourc_exercice_aa pourc_exercice_ac
FROM
formule_resultat_service_ref frs
JOIN type_volume_horaire tvh ON tvh.code = 'REALISE'
......@@ -61,6 +79,24 @@ FROM
JOIN intervenant i ON i.id = fr.intervenant_id /*@INTERVENANT_ID=i.id*/ /*@ANNEE_ID=a.annee_id*/
JOIN service_referentiel sr ON sr.id = frs.service_referentiel_id
JOIN (
SELECT
frvhr.formule_resultat_id,
vhr.service_referentiel_id,
CASE WHEN SUM(vhr.heures) > 0 THEN
SUM(ose_divers.CALC_POURC_AA(NULL, vhr.horaire_debut, vhr.horaire_fin, i.annee_id) * vhr.heures) / SUM(vhr.heures)
ELSE
SUM(ose_divers.CALC_POURC_AA(NULL, vhr.horaire_debut, vhr.horaire_fin, i.annee_id))
END pourc_exercice_aa
FROM
volume_horaire_ref vhr
JOIN service_referentiel sr ON sr.id = vhr.service_referentiel_id
JOIN intervenant i ON i.id = sr.intervenant_id /*@INTERVENANT_ID=i.id*/ /*@ANNEE_ID=a.annee_id*/
JOIN formule_resultat_vh_ref frvhr ON frvhr.volume_horaire_ref_id = vhr.id
GROUP BY
frvhr.formule_resultat_id,
vhr.service_referentiel_id
) pea ON pea.formule_resultat_id = fr.id AND pea.service_referentiel_id = sr.id
JOIN fonction_referentiel fncr ON fncr.id = sr.fonction_id
LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_ref_id = frs.id
AND mep.histo_destruction IS NULL
\ No newline at end of file
......@@ -15,7 +15,7 @@ return [
], 'excludes' => ['MV_EXT_SERVICE']],
'view' => ['includes' => [
'V_INDIC_DIFF_DOSSIER',
'V_MEP_INTERVENANT_STRUCTURE',
]],
'package' => ['includes' => [
......
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