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

Merge remote-tracking branch 'origin/master' into ll-mission-plafond

parents 69cea655 05317e5b
Loading
Loading
Loading
Loading
+21 −3
Original line number Diff line number Diff line
# Version stable

[OSE 20.1](#ose-201--04042023-)
[OSE 20.2](#ose-202-28042023)


# OSE 21 (à venir)
@@ -10,8 +10,22 @@
* Nouvelle notion de mission, permettant de gérer les contrats étudiants
* Taux HETD personnalisables

## Améliorations
* 
* Modification de libellé dans l'affichage de l'offre de formation (#49763)



# OSE 20.2 (à venir)
# OSE 20.3 (à venir)

## Corrections de bugs

* Meilleure gestion dans l'expérience utilisateur de la saisie des dates de début et de fin dans la saisie de service en mode calendaire (#50508)
* Masquer de la liste de choix d'une étape, les formations historisées lors de l'ajout d'un élément pédagogique à une formation (#48878)
* Possiblité de choisir quelle type d'affectation (HIE ou FUN) est remontée/testée lors d'une PEC ou REN (#49954)
* Dans la partie notes intervenant, différenciation entre les demandes de mise en paiement et les mises en paiement (#50081)

# OSE 20.2 (28/04/2023)

## Nouveautés

@@ -23,10 +37,14 @@

## Corrections de bugs

* Les motifs de modification de service dû supprimés ne peuvent plus être sélectionnés #50328
* Les motifs de modification de service dû supprimés ne peuvent plus être sélectionnés (#50328)
* Messages d'erreur corrigés lors de l'exécution du script de migration de la V20.
* Le bouton prévu=>réalisé s'affiche de nouveau lorsqu'il n'y a pas de contrat (#45643)
* Formule de Poitiers : rétablissement du test pour appliquer l'ancienne formule avant 2022.
* Formule de Picardie : prise en compte des heures négatives (#50471)
* L'interface d'administration des types de formation est de nouveau opérationnelle (#50360)



# OSE 20.1 (04/04/2023)

+36 −12
Original line number Diff line number Diff line
@@ -284,13 +284,17 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS



      -- AJ=IF([.AI20]<[.AG20];([.AG20]-[.AI20])/[.$AD20];0)
      -- AJ=IF([.AI20]<[.AG20];([.AG20]-[.AI20])/[.$AD20];IF([.AG20]<0;[.AG20]/[.$AD20];0))
      WHEN 'AJ' THEN
        IF cell('AI',l) < cell('AG',l) THEN
          RETURN (cell('AG',l) - cell('AI',l)) / cell('AD',l);
        ELSE
          IF cell('AG',l) < 0 THEN
            RETURN cell('AG',l) / cell('AD',l);
          ELSE
            RETURN 0;
          END IF;
        END IF;



@@ -354,13 +358,17 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS



      -- AP=IF([.AO20]<[.AM20];([.AM20]-[.AO20])/[.$AD20];0)
      -- AP=IF([.AO20]<[.AM20];([.AM20]-[.AO20])/[.$AD20];IF([.AM20]<0;[.AM20]/[.$AD20];0))
      WHEN 'AP' THEN
        IF cell('AO',l) < cell('AM',l) THEN
          RETURN (cell('AM',l) - cell('AO',l)) / cell('AD',l);
        ELSE
          IF cell('AM',l) < 0 THEN
            RETURN cell('AM',l) / cell('AD',l);
          ELSE
            RETURN 0;
          END IF;
        END IF;



@@ -418,13 +426,17 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS



      -- AV=IF([.AU20]<[.AS20];([.AS20]-[.AU20])/[.$AD20];0)
      -- AV=IF([.AU20]<[.AS20];([.AS20]-[.AU20])/[.$AD20];IF([.AS20]<20;[.AS20]/[.$AD20];0))
      WHEN 'AV' THEN
        IF cell('AU',l) < cell('AS',l) THEN
          RETURN (cell('AS',l) - cell('AU',l)) / cell('AD',l);
        ELSE
          IF cell('AS',l) < 20 THEN
            RETURN cell('AS',l) / cell('AD',l);
          ELSE
            RETURN 0;
          END IF;
        END IF;



@@ -488,13 +500,17 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS



      -- BB=IF([.BA20]<[.AY20];([.AY20]-[.BA20])/[.$AD20];0)
      -- BB=IF([.BA20]<[.AY20];([.AY20]-[.BA20])/[.$AD20];IF([.AY20]<0;[.AY20]/[.$AD20];0))
      WHEN 'BB' THEN
        IF cell('BA',l) < cell('AY',l) THEN
          RETURN (cell('AY',l) - cell('BA',l)) / cell('AD',l);
        ELSE
          IF cell('AY',l) < 0 THEN
            RETURN cell('AY',l) / cell('AD',l);
          ELSE
            RETURN 0;
          END IF;
        END IF;



@@ -552,13 +568,17 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS



      -- BH=IF([.BG20]<[.BE20];([.BE20]-[.BG20])/[.$AD20];0)
      -- BH=IF([.BG20]<[.BE20];([.BE20]-[.BG20])/[.$AD20];IF([.BE20]<0;[.BE20]/[.$AD20];0))
      WHEN 'BH' THEN
        IF cell('BG',l) < cell('BE',l) THEN
          RETURN (cell('BE',l) - cell('BG',l)) / cell('AD',l);
        ELSE
          IF cell('BE',l) < 0 THEN
            RETURN cell('BE',l) / cell('AD',l);
          ELSE
            RETURN 0;
          END IF;
        END IF;



@@ -616,13 +636,17 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS



      -- BN=IF([.BM20]<[.BK20];([.BK20]-[.BM20])/[.$AD20];0)
      -- BN=IF([.BM20]<[.BK20];([.BK20]-[.BM20])/[.$AD20];IF([.BK20]<0;[.BK20]/[.$AD20];0))
      WHEN 'BN' THEN
        IF cell('BM',l) < cell('BK',l) THEN
          RETURN (cell('BK',l) - cell('BM',l)) / cell('AD',l);
        ELSE
          IF cell('BK',l) < 0 THEN
            RETURN cell('BK',l) / cell('AD',l);
          ELSE
            RETURN 0;
          END IF;
        END IF;



+1 −1
Original line number Diff line number Diff line
@@ -108,7 +108,7 @@ WITH services AS (
            JOIN mission m ON m.id = vhm.mission_id
            JOIN type_mission tm ON m.type_mission_id = tm.id
            LEFT JOIN contrat c ON c.id = vhm.contrat_id
            LEFT JOIN structure str ON c.structure_id = str.id
            JOIN structure str ON m.structure_id = str.id
            LEFT JOIN validation_vol_horaire_miss vvhm ON vvhm.volume_horaire_mission_id = vhm.id
            JOIN validation v ON v.id = vvhm.validation_id AND v.histo_destruction IS NULL
            JOIN type_volume_horaire tvh ON tvh.id = vhm.type_volume_horaire_id
+28 −4
Original line number Diff line number Diff line
CREATE OR REPLACE FORCE VIEW V_INTERVENANT_HISTORIQUE AS
-- OSE.V_INTERVENANT_HISTORIQUE source

  WITH historique AS (
--Initialisation des données personnelles
    SELECT d.intervenant_id                              intervenant_id,
@@ -358,17 +360,39 @@ FROM validation v
WHERE v.histo_destruction IS null
GROUP BY i.id

UNION ALL
--Demande de mise en paiement
SELECT
   s.intervenant_id                                                                     intervenant_id,
       '7 - Demande de mise en paiement'		                                        categorie,
       mep.heures || 'h ' || th.libelle_court                                           label,
       mep.histo_modification                                                                histo_date,
       mep.histo_modificateur_id                                                             histo_createur_id,
       u.display_name                                                        histo_user,
       'glyphicon glyphicon-ok'                                              icon,
       7                                ordre
FROM
  mise_en_paiement mep
  JOIN formule_resultat_service frs ON frs.id = mep.formule_res_service_id
  JOIN service s ON s.id = frs.service_id
  JOIN type_heures th ON th.id = mep.type_heures_id
  JOIN utilisateur u ON u.id = mep.histo_modificateur_id
  LEFT JOIN periode p ON p.id = mep.periode_paiement_id
  WHERE
  mep.histo_destruction IS NULL AND mep.date_mise_en_paiement IS NULL


UNION ALL
--Mise en paiement
SELECT
   s.intervenant_id                                                                     intervenant_id,
       '7 - Mise en paiement'                                 categorie,
       '8 - Mise en paiement'                                 categorie,
       mep.heures || 'h ' || th.libelle_court || CASE WHEN p.id IS NULL THEN '' ELSE ' (paiement en ' || p.libelle_court || ')' END                      label,
       mep.histo_modification                                                                histo_date,
       mep.histo_modificateur_id                                                             histo_createur_id,
       u.display_name                                                        histo_user,
       'glyphicon glyphicon-ok'                                              icon,
       6                                ordre
       8                                ordre
FROM
  mise_en_paiement mep
  JOIN formule_resultat_service frs ON frs.id = mep.formule_res_service_id
@@ -377,7 +401,7 @@ FROM
  JOIN utilisateur u ON u.id = mep.histo_modificateur_id
  LEFT JOIN periode p ON p.id = mep.periode_paiement_id
  WHERE
  mep.histo_destruction IS NULL
  mep.histo_destruction IS NULL AND mep.date_mise_en_paiement IS NOT NULL



+7 −4
Original line number Diff line number Diff line
<template>

    <div class="card" :class="{ 'ms-5':taux.tauxRemu}">
        <div class="card-header">
            <h3 style="display:inline">{{ taux.libelle }} ({{ taux.code }})</h3>
@@ -28,7 +27,8 @@
                        <li class="">
                            <div class="row align-items-start">
                                <div class="col-md-4">
                                    {{ tauxValeur.valeur }}€/h à partir du <u-date :value="tauxValeur.dateEffet"/>
                                    {{ tauxValeur.valeur }}€/h à partir du
                                    <u-date :value="tauxValeur.dateEffet"/>
                                </div>
                                <div class="col">
                                    <a v-if="taux.canEdit"
@@ -67,7 +67,8 @@
                            <li>
                                <div class="row align-items-start">
                                    <div class="col-md-8">
                                        Coéfficient de {{ tauxValeur.valeur }} à partir du <u-date :value="tauxValeur.dateEffet"/>
                                        Coéfficient de {{ tauxValeur.valeur }} à partir du
                                        <u-date :value="tauxValeur.dateEffet"/>
                                    </div>
                                    <div class="col-md-auto">

@@ -101,7 +102,9 @@
                    Valeurs calculées (indexées sur le taux {{ taux.tauxRemu.libelle }}) :
                    <ul>
                        <div v-for="indexResult in taux.tauxRemuValeursIndex">
                            <li>{{ indexResult.valeur }}€/h à partir du <u-date :value="indexResult.date"/></li>
                            <li>{{ indexResult.valeur }}€/h à partir du
                                <u-date :value="indexResult.date"/>
                            </li>
                        </div>
                    </ul>
                    <br>
Loading