Loading CHANGELOG.md +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) Loading @@ -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 Loading @@ -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) Loading data/ddl/package/FORMULE_PICARDIE/body.sql +36 −12 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading data/ddl/view/V_CONTRAT_SERVICES.sql 100755 → 100644 +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading data/ddl/view/V_INTERVENANT_HISTORIQUE.sql +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, Loading Loading @@ -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 Loading @@ -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 Loading front/Paiement/Taux.vue +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> Loading Loading @@ -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" Loading Loading @@ -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"> Loading Loading @@ -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 Loading
CHANGELOG.md +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) Loading @@ -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 Loading @@ -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) Loading
data/ddl/package/FORMULE_PICARDIE/body.sql +36 −12 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading
data/ddl/view/V_CONTRAT_SERVICES.sql 100755 → 100644 +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
data/ddl/view/V_INTERVENANT_HISTORIQUE.sql +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, Loading Loading @@ -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 Loading @@ -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 Loading
front/Paiement/Taux.vue +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> Loading Loading @@ -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" Loading Loading @@ -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"> Loading Loading @@ -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