Commit e9d5c76e authored by Florian Joriot's avatar Florian Joriot
Browse files

Mise a jour des vues pour faire le calcul des valeur des taux indexé

parent 2ec10cb2
Loading
Loading
Loading
Loading
+64 −8
Original line number Diff line number Diff line
@@ -64,7 +64,9 @@ CREATE OR REPLACE PACKAGE BODY "OSE_PAIEMENT" AS

  Function get_taux_horaire (id_in IN NUMBER, date_val IN DATE) RETURN float IS
    valeur float;
    valeur_parent float;
  BEGIN

    SELECT valeur into valeur FROM
    (
    SELECT trv.valeur
@@ -77,19 +79,47 @@ CREATE OR REPLACE PACKAGE BODY "OSE_PAIEMENT" AS
    )
    WHERE rownum = 1;


    SELECT(
        SELECT valeur FROM
        (
            SELECT trv.valeur
            FROM taux_remu tr
            JOIN taux_remu_valeur trv ON tr.id = trv.taux_remu_id
            WHERE tr.id IN
            (
                SELECT tr.taux_remu_id
                FROM taux_remu tr
                WHERE tr.id = id_in
            )
            AND tr.histo_destruction IS NULL
            AND trv.date_effet <= date_val
            ORDER BY trv.date_effet DESC
        )
        WHERE rownum = 1
    ) into valeur_parent
    FROM dual;

    IF valeur_parent is NULL
    THEN
        RETURN valeur;
    ELSE
        RETURN valeur*valeur_parent;
    END IF;


    EXCEPTION
    WHEN OTHERS THEN
       return -1;
  END get_taux_horaire;

  Function get_taux_horaire_valeur_id (id_in IN NUMBER, date_val IN DATE) RETURN NUMBER IS
    valeur NUMBER;
  Function get_taux_horaire_date (id_in IN NUMBER, date_val IN DATE) RETURN DATE IS
    date_valeur DATE;
    date_parent DATE;
  BEGIN
    SELECT id into valeur FROM
    SELECT date_effet into date_valeur FROM
    (
    SELECT trv.id
    SELECT trv.date_effet
    FROM taux_remu tr
    JOIN taux_remu_valeur trv ON tr.id = trv.taux_remu_id
    WHERE tr.id = id_in
@@ -99,12 +129,38 @@ CREATE OR REPLACE PACKAGE BODY "OSE_PAIEMENT" AS
    )
    WHERE rownum = 1;

    RETURN valeur;

    SELECT(
        SELECT date_effet FROM
        (
            SELECT trv.date_effet
            FROM taux_remu tr
            JOIN taux_remu_valeur trv ON tr.id = trv.taux_remu_id
            WHERE tr.id IN
            (
                SELECT tr.taux_remu_id
                FROM taux_remu tr
                WHERE tr.id = id_in
            )
            AND tr.histo_destruction IS NULL
            AND trv.date_effet <= date_val
            ORDER BY trv.date_effet DESC
        )
        WHERE rownum = 1
    ) into date_parent
    FROM dual;

        IF date_parent is NULL
    THEN
        RETURN date_valeur;
    ELSE
        RETURN GREATEST(date_valeur, date_parent);
    END IF;

    EXCEPTION
    WHEN OTHERS THEN
       return -1;
  END get_taux_horaire_valeur_id;
       return '00/00/0000';
  END get_taux_horaire_date;



+1 −1
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ CREATE OR REPLACE PACKAGE "OSE_PAIEMENT" AS

  FUNCTION get_taux_horaire(id_in IN NUMBER, date_val IN DATE) return float;

  FUNCTION get_taux_horaire_valeur_id(id_in IN NUMBER, date_val IN DATE) return NUMBER;
  FUNCTION get_taux_horaire_date(id_in IN NUMBER, date_val IN DATE) return DATE;

  FUNCTION get_code_taux_remu_legal RETURN VARCHAR2;

+2 −3
Original line number Diff line number Diff line
@@ -77,8 +77,8 @@ FROM (SELECT c.*,
             COALESCE(d.numero_insee, i.numero_insee)                                            "numInsee",
             si.libelle                                                                          "statut",
             REPLACE(ltrim(to_char(COALESCE(c.total_hetd, fr.total, 0), '999999.00')), '.', ',') "totalHETD",
             REPLACE(ltrim(to_char(COALESCE(trv.valeur, 0), '999999.00')), '.', ',')              "tauxHoraireValeur",
             COALESCE(to_char(trv.date_effet, 'dd/mm/YYYY'), 'TAUX INTROUVABLE')              "tauxHoraireDate",
             REPLACE(ltrim(to_char(COALESCE(OSE_PAIEMENT.get_taux_horaire(COALESCE(si.taux_remu_id,tr.id), a.date_debut), 0), '999999.00')), '.', ',')              "tauxHoraireValeur",
             COALESCE(to_char(OSE_PAIEMENT.get_taux_horaire_date(COALESCE(si.taux_remu_id,tr.id), a.date_debut), 'dd/mm/YYYY'), 'TAUX INTROUVABLE')              "tauxHoraireDate",
             to_char(COALESCE(v.histo_creation, a.date_debut), 'dd/mm/YYYY')                 "dateSignature",
             CASE
                 WHEN c.structure_id <> COALESCE(cp.structure_id, 0) THEN 'modifié'
@@ -119,7 +119,6 @@ FROM (SELECT c.*,
         JOIN etat_volume_horaire evh ON evh.code = 'valide'
    LEFT JOIN formule_resultat     fr ON fr.intervenant_id = i.id AND fr.type_volume_horaire_id = tvh.id AND fr.etat_volume_horaire_id = evh.id
    LEFT JOIN taux_remu            tr ON tr.code = OSE_PAIEMENT.get_code_taux_remu_legal()
    LEFT JOIN taux_remu_valeur    trv ON trv.id = OSE_PAIEMENT.get_taux_horaire_valeur_id(COALESCE(si.taux_remu_id,tr.id), a.date_debut)
    LEFT JOIN                      hs ON hs.contrat_id = c.id
    LEFT JOIN contrat              cp ON cp.id = c.contrat_id
  WHERE
+3 −0
Original line number Diff line number Diff line
@@ -204,4 +204,7 @@ SELECT
      ORDER BY
               annee_id,
               type_intervenant_id,
               statut_id,
               structure_id,
               periode_id,
               intervenant_nom
 No newline at end of file