Commit e8f61e8f authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

correction DDL

parent deb76ea5
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -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',
@@ -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',
+50 −50
Original line number Diff line number Diff line
@@ -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',
@@ -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',
@@ -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',
@@ -1182,7 +1182,7 @@ return [
            'precision'   => NULL,
            'nullable'    => TRUE,
            'default'     => NULL,
            'position'    => 86,
            'position'    => 98,
            'commentaire' => NULL,
        ],
        'TYPE_PAIE_PRIME'                => [
@@ -1194,7 +1194,7 @@ return [
            'precision'   => NULL,
            'nullable'    => TRUE,
            'default'     => NULL,
            'position'    => 86,
            'position'    => 99,
            'commentaire' => NULL,
        ],
    ],
+73 −38
Original line number Diff line number Diff line
@@ -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
@@ -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
+36 −1
Original line number Diff line number Diff line
@@ -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
+17 −1
Original line number Diff line number Diff line
@@ -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