Loading CHANGELOG.md +26 −10 Original line number Diff line number Diff line # Version stable [OSE 19.7](#ose-197--16122022-) [OSE 20.0](#ose-20--28022023-) # OSE 21 (à venir) Loading @@ -8,29 +8,37 @@ ## Nouveautés * Nouvelle notion de mission, permettant de gérer les contrats étudiants * Taux HETD personnalisables # OSE 20.1 (à venir) # OSE 20.1 (A venir) ## Nouveautés * Les jauges des plafonds affichent maintenant tout le temps les heures restantes * Ajout de la date de clôture dans la page historique de l'intervenant * Possibilité de saisir une modification de service dû avec 0 heure (#49764) ## Corrections de bugs ## Améliorations * Les données suplémentaires des indicateurs s'affichent de nouveau correctement * Passage à 200 caractères max. pour les libellés longs des structures ## Corrections de bugs * Correction d'une régression de la V20 sur le module Export Siham * Suppression d'un message d'erreur sur l'envoi de mail via les indicateurs (#49873) * Formule Paris 8 : correction d'un problème de code de composante * Formule Poitiers : #46805 * Formule La Réunion : #24229 # OSE 20 (fin février 2023) # OSE 20 (28/02/2023) ## Nouveautés * Les modèles de contrats de travail sont maintenant gérés comme n'importe quel autre état de sortie * Reconduction de l'offre de formation pour les éléments de OSE portés par un élément synchronisé * Possibilité de rentrer un taux de charge par statut d'intervenant * Ajout d'un choix par statut pour "contrat de travail et avenants" pour laisser la possibilité à l'intervenant de télécharger sont contrat en pdf * Ajout d'un choix par statut pour "contrat de travail et avenants" pour laisser la possibilité à l'intervenant de télécharger son contrat en pdf * Migration technnique vers le framework Bootstrap 5 et modernisation de l'identité visuelle * Réorganisation du menu "Administration" pour plus de lisibilité * Filtrage des caractères interdits lors de l'export RH SIHAM (#47267) Loading @@ -57,6 +65,7 @@ * Utilisation prioritaire de l'email personnel des données personnelles pour l'envoi d'email via les indicateurs (#48393) * Meilleure gestion de la casse lors de la recherche d'un employeur (#48543) * Ajout d'une contrainte d'unicité sur la colonne code de la table type_intervention (#48727) * Correction formule d'UVSQ (#47149) * Et beaucoup d'autres ... ## Notes de mise à jour Loading @@ -81,6 +90,13 @@ A la **ligne 206** Ajouter le titre de colonne TAG dans le tableau $head : 'tag' => 'Tags', Le système de mise à jour peut - dans certaines circonstances - vous afficher quelques erreurs qui sont sans impact sur le bon fonctionnement de l'application. Je vais modifier les scripts de mise à jour pour éviter qu'elles ne se produisent. Mais en attendant, si vous y êtes confrontés, vous en trouverez les explications sur le ticket suivant : https://redmine.unicaen.fr/Etablissement/issues/49445?issue_count=42&issue_position=1&next_issue_id=48972 # OSE 19.7 (16/12/2022) Loading Loading @@ -160,7 +176,7 @@ A la **ligne 206** Ajouter le titre de colonne TAG dans le tableau $head : # OSE 19.1 (21/07/2022) ## Nouveautés ## nouveautés * Formule de calcul de Picardie * Nouvel état de sortie pour les écarts des heures complémentaires, maintenant personnalisable (#45807) Loading @@ -186,7 +202,7 @@ A la **ligne 206** Ajouter le titre de colonne TAG dans le tableau $head : * Ajout d'un paramètre général pour permettre de créer les contrats sans passer par un projet de contrat * Ajout de date de dernière modification des données dans les indicateurs notifiant d'une validation en attente * Nouvel état de sortie pour l'extraction des paiements dans le cadre de la pré-liquidation SIHAM * Ajout d'un bouton de refus de pièce justificative avec envoie d'email à l'intervenant * Ajout d'un bouton de refus de pièce justificative avec envoi d'email à l'intervenant * Changement du bouton de cloture de service pour un libellé plus parlant et un style de bouton plus prononcé * Formules nouvelles ou mises à jour : Rennes 2, Paris Saclay, Guyane, Côte d'Azur, La Réunion, Poitiers, Brest, Rouen * Possibilité de créer un nouveau test de formule en téléversant une feuille de calcul au format tableur Loading data/ddl/package/FORMULE_REUNION/body.sql +52 −52 Original line number Diff line number Diff line Loading @@ -126,32 +126,32 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- T=IF([.$H20]="Référentiel";0;[.AI20]+[.AO20]+[.BS20]+[.BY20]) -- T=IF([.$H20]="Référentiel";0;[.AI20]+[.AO20]+[.AU20]+[.BA20]) WHEN 'T' THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE RETURN cell('AI',l) + cell('AO',l) + cell('BS',l) + cell('BY',l); RETURN cell('AI',l) + cell('AO',l) + cell('AU',l) + cell('BA',l); END IF; -- U=IF([.$H20]="Référentiel";0;[.AU20]+[.BA20]+[.CE20]+[.CK20]) -- U=IF([.$H20]="Référentiel";0;[.BG20]+[.BM20]+[.BS20]+[.BY20]) WHEN 'U' THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE RETURN cell('AU',l) + cell('BA',l) + cell('CE',l) + cell('CK',l); RETURN cell('BG',l) + cell('BM',l) + cell('BS',l) + cell('BY',l); END IF; -- V=IF([.$H20]="Référentiel";0;[.BG20]+[.BM20]+[.CQ20]+[.CW20]) -- V=IF([.$H20]="Référentiel";0;[.CE20]+[.CK20]+[.CQ20]+[.CW20]) WHEN 'V' THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE RETURN cell('BG',l) + cell('BM',l) + cell('CQ',l) + cell('CW',l); RETURN cell('CE',l) + cell('CK',l) + cell('CQ',l) + cell('CW',l); END IF; Loading @@ -166,32 +166,32 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- X=IF([.$H20]="Référentiel";0;[.AK20]+[.AQ20]+[.BU20]+[.CA20]) -- X=IF([.$H20]="Référentiel";0;[.AK20]+[.AQ20]+[.AW20]+[.BC20]) WHEN 'X' THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE RETURN cell('AK',l) + cell('AQ',l) + cell('BU',l) + cell('CA',l); RETURN cell('AK',l) + cell('AQ',l) + cell('AW',l) + cell('BC',l); END IF; -- Y=IF([.$H20]="Référentiel";0;[.AW20]+[.BC20]+[.CG20]+[.CM20]) -- Y=IF([.$H20]="Référentiel";0;[.BI20]+[.BO20]+[.BU20]+[.CA20]) WHEN 'Y' THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE RETURN cell('AW',l) + cell('BC',l) + cell('CG',l) + cell('CM',l); RETURN cell('BI',l) + cell('BO',l) + cell('BU',l) + cell('CA',l); END IF; -- Z=IF([.$H20]="Référentiel";0;[.BI20]+[.BO20]+[.CS20]+[.CY20]) -- Z=IF([.$H20]="Référentiel";0;[.CG20]+[.CM20]+[.CS20]+[.CY20]) WHEN 'Z' THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE RETURN cell('BI',l) + cell('BO',l) + cell('CS',l) + cell('CY',l); RETURN cell('CG',l) + cell('CM',l) + cell('CS',l) + cell('CY',l); END IF; Loading Loading @@ -352,10 +352,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- AS=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]=i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) -- AS=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]<>i_structure_code);[.$M20]*[.$E20]*[.$AD20];0) WHEN 'AS' THEN IF vh.service_statutaire AND vh.type_intervention_code = 'TP' AND vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fa * cell('AD',l); IF vh.service_statutaire AND vh.type_intervention_code = 'TP' AND NOT vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fi * cell('AD',l); ELSE RETURN 0; END IF; Loading @@ -368,15 +368,15 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- AT16=MIN([.AT15];[.AN17]) -- AT16=MIN([.AT15];[.CJ17]) WHEN 'AT16' THEN RETURN LEAST(cell('AT15'), cell('AN17')); RETURN LEAST(cell('AT15'), cell('CJ17')); -- AT17=[.AN17]-[.AT16] -- AT17=[.CJ17]-[.AT16] WHEN 'AT17' THEN RETURN cell('AN17') - cell('AT16'); RETURN cell('CJ17') - cell('AT16'); Loading Loading @@ -416,10 +416,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- AY=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]=i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) -- AY=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]<>i_structure_code);[.$M20]*[.$E20]*[.$AD20];0) WHEN 'AY' THEN IF vh.service_statutaire AND vh.type_intervention_code <> 'TP' AND vh.volume_horaire_ref_id IS NULL AND vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fa * cell('AD',l); IF vh.service_statutaire AND vh.type_intervention_code <> 'TP' AND vh.volume_horaire_ref_id IS NULL AND NOT vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fi * cell('AD',l); ELSE RETURN 0; END IF; Loading Loading @@ -480,10 +480,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- BE=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]=i_structure_code);[.$M20]*[.$G20]*[.$AD20];0) -- BE=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]=i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) WHEN 'BE' THEN IF vh.service_statutaire AND vh.type_intervention_code = 'TP' AND vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fc * cell('AD',l); RETURN vh.heures * vh.taux_fa * cell('AD',l); ELSE RETURN 0; END IF; Loading @@ -496,15 +496,15 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- BF16=MIN([.BF15];[.AZ17]) -- BF16=MIN([.BF15];[.AN17]) WHEN 'BF16' THEN RETURN LEAST(cell('BF15'), cell('AZ17')); RETURN LEAST(cell('BF15'), cell('AN17')); -- BF17=[.AZ17]-[.BF16] -- BF17=[.AN17]-[.BF16] WHEN 'BF17' THEN RETURN cell('AZ17') - cell('BF16'); RETURN cell('AN17') - cell('BF16'); Loading Loading @@ -544,10 +544,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- BK=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]=i_structure_code);[.$M20]*[.$G20]*[.$AD20];0) -- BK=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]=i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) WHEN 'BK' THEN IF vh.service_statutaire AND vh.type_intervention_code <> 'TP' AND vh.volume_horaire_ref_id IS NULL AND vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fc * cell('AD',l); RETURN vh.heures * vh.taux_fa * cell('AD',l); ELSE RETURN 0; END IF; Loading Loading @@ -608,10 +608,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- BQ=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]<>i_structure_code);[.$M20]*[.$E20]*[.$AD20];0) -- BQ=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]<>i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) WHEN 'BQ' THEN IF vh.service_statutaire AND vh.type_intervention_code = 'TP' AND NOT vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fi * cell('AD',l); RETURN vh.heures * vh.taux_fa * cell('AD',l); ELSE RETURN 0; END IF; Loading @@ -624,15 +624,15 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- BR16=MIN([.BR15];[.BL17]) -- BR16=MIN([.BR15];[.AZ17]) WHEN 'BR16' THEN RETURN LEAST(cell('BR15'), cell('BL17')); RETURN LEAST(cell('BR15'), cell('AZ17')); -- BR17=[.BL17]-[.BR16] -- BR17=[.AZ17]-[.BR16] WHEN 'BR17' THEN RETURN cell('BL17') - cell('BR16'); RETURN cell('AZ17') - cell('BR16'); Loading Loading @@ -672,10 +672,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- BW=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]<>i_structure_code);[.$M20]*[.$E20]*[.$AD20];0) -- BW=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]<>i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) WHEN 'BW' THEN IF vh.service_statutaire AND vh.type_intervention_code <> 'TP' AND vh.volume_horaire_ref_id IS NULL AND NOT vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fi * cell('AD',l); RETURN vh.heures * vh.taux_fa * cell('AD',l); ELSE RETURN 0; END IF; Loading Loading @@ -736,10 +736,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- CC=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]<>i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) -- CC=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]=i_structure_code);[.$M20]*[.$G20]*[.$AD20];0) WHEN 'CC' THEN IF vh.service_statutaire AND vh.type_intervention_code = 'TP' AND NOT vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fa * cell('AD',l); IF vh.service_statutaire AND vh.type_intervention_code = 'TP' AND vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fc * cell('AD',l); ELSE RETURN 0; END IF; Loading @@ -752,15 +752,15 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- CD16=MIN([.CD15];[.BX17]) -- CD16=MIN([.CD15];[.BL17]) WHEN 'CD16' THEN RETURN LEAST(cell('CD15'), cell('BX17')); RETURN LEAST(cell('CD15'), cell('BL17')); -- CD17=[.BX17]-[.CD16] -- CD17=[.BL17]-[.CD16] WHEN 'CD17' THEN RETURN cell('BX17') - cell('CD16'); RETURN cell('BL17') - cell('CD16'); Loading Loading @@ -800,10 +800,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- CI=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]<>i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) -- CI=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]=i_structure_code);[.$M20]*[.$G20]*[.$AD20];0) WHEN 'CI' THEN IF vh.service_statutaire AND vh.type_intervention_code <> 'TP' AND vh.volume_horaire_ref_id IS NULL AND NOT vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fa * cell('AD',l); IF vh.service_statutaire AND vh.type_intervention_code <> 'TP' AND vh.volume_horaire_ref_id IS NULL AND vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fc * cell('AD',l); ELSE RETURN 0; END IF; Loading Loading @@ -880,15 +880,15 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- CP16=MIN([.CP15];[.CJ17]) -- CP16=MIN([.CP15];[.BX17]) WHEN 'CP16' THEN RETURN LEAST(cell('CP15'), cell('CJ17')); RETURN LEAST(cell('CP15'), cell('BX17')); -- CP17=[.CJ17]-[.CP16] -- CP17=[.BX17]-[.CP16] WHEN 'CP17' THEN RETURN cell('CJ17') - cell('CP16'); RETURN cell('BX17') - cell('CP16'); Loading public/css/app.css +197 −197 Original line number Diff line number Diff line Loading @@ -3196,7 +3196,7 @@ textarea.form-control-lg { --mdb-dropdown-border-radius: 0.5rem; --mdb-dropdown-border-width: 1px; --mdb-dropdown-inner-border-radius: calc(0.5rem - 1px); --mdb-dropdown-divider-bg: hsl(0deg, 0%, 96%); --mdb-dropdown-divider-bg: hsl(0, 0%, 96%); --mdb-dropdown-divider-margin-y: 0.5rem; --mdb-dropdown-box-shadow: 0 2px 15px -3px rgba(0, 0, 0, 0.07), 0 10px 20px -2px rgba(0, 0, 0, 0.04); --mdb-dropdown-link-color: #262626; Loading Loading @@ -3465,7 +3465,7 @@ textarea.form-control-lg { --mdb-dropdown-box-shadow: ; --mdb-dropdown-link-color: #e0e0e0; --mdb-dropdown-link-hover-color: #fff; --mdb-dropdown-divider-bg: hsl(0deg, 0%, 96%); --mdb-dropdown-divider-bg: hsl(0, 0%, 96%); --mdb-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); --mdb-dropdown-link-active-color: #fff; --mdb-dropdown-link-active-bg: #3b71ca; Loading Loading @@ -5269,12 +5269,12 @@ textarea.form-control-lg { --mdb-modal-header-padding-x: 1rem; --mdb-modal-header-padding-y: 1rem; --mdb-modal-header-padding: 1rem 1rem; --mdb-modal-header-border-color: hsl(0deg, 0%, 96%); --mdb-modal-header-border-color: hsl(0, 0%, 96%); --mdb-modal-header-border-width: 2px; --mdb-modal-title-line-height: 1.6; --mdb-modal-footer-gap: 0.5rem; --mdb-modal-footer-bg: ; --mdb-modal-footer-border-color: hsl(0deg, 0%, 96%); --mdb-modal-footer-border-color: hsl(0, 0%, 96%); --mdb-modal-footer-border-width: 2px; position: fixed; top: 0; Loading Loading @@ -5553,7 +5553,7 @@ textarea.form-control-lg { --mdb-popover-font-size: 0.875rem; --mdb-popover-bg: #fff; --mdb-popover-border-width: 1px; --mdb-popover-border-color: hsl(0deg, 0%, 96%); --mdb-popover-border-color: hsl(0, 0%, 96%); --mdb-popover-border-radius: 0.5rem; --mdb-popover-inner-border-radius: calc(0.5rem - 1px); --mdb-popover-box-shadow: 0 0px 3px 0 rgba(0, 0, 0, 0.07), 0 2px 2px 0 rgba(0, 0, 0, 0.04); Loading Loading @@ -12052,10 +12052,10 @@ textarea.form-control-lg { hr:not([size]).hr { --mdb-divider-height: 2px; --mdb-divider-bg: hsl(0deg, 0%, 96%); --mdb-divider-bg: hsl(0, 0%, 96%); --mdb-divider-opacity: 1; --mdb-divider-blurry-bg: transparent; --mdb-divider-blurry-bg-image: linear-gradient(90deg, transparent, hsl(0deg, 0%, 40%), transparent); --mdb-divider-blurry-bg-image: linear-gradient(90deg, transparent, hsl(0, 0%, 40%), transparent); --mdb-divider-blurry-height: 1px; --mdb-divider-blurry-opacity: 0.25; height: var(--mdb-divider-height); Loading @@ -12079,7 +12079,7 @@ hr.vr { .vr { --mdb-divider-width: 2px; --mdb-divider-bg: hsl(0deg, 0%, 96%); --mdb-divider-bg: hsl(0, 0%, 96%); --mdb-divider-opacity: 1; width: var(--mdb-divider-width); background-color: var(--mdb-divider-bg); Loading @@ -12087,7 +12087,7 @@ hr.vr { } .vr-blurry { --mdb-divider-blurry-vr-bg-image: linear-gradient(180deg, transparent, hsl(0deg, 0%, 40%), transparent); --mdb-divider-blurry-vr-bg-image: linear-gradient(180deg, transparent, hsl(0, 0%, 40%), transparent); --mdb-divider-blurry-vr-width: 1px; --mdb-divider-blurry-opacity: 0.25; background-image: var(--mdb-divider-blurry-vr-bg-image); Loading Loading @@ -14791,7 +14791,7 @@ input[type=file].form-control.is-invalid:focus-within ~ .form-file-label .form-f --mdb-btn-font-weight: 500; --mdb-btn-color: #3b71ca; --mdb-btn-hover-color: #386bc0; --mdb-btn-hover-bg: hsl(0deg, 0%, 96%); --mdb-btn-hover-bg: hsl(0, 0%, 96%); --mdb-btn-focus-color: #3566b6; --mdb-btn-active-color: #3260ac; --mdb-btn-disabled-color: #9e9e9e; Loading Loading @@ -15049,12 +15049,12 @@ hr.divider-horizontal:not([size]) { } hr.divider-horizontal-blurry { background-image: linear-gradient(90deg, transparent, hsl(0deg, 0%, 40%), transparent); background-image: linear-gradient(90deg, transparent, hsl(0, 0%, 40%), transparent); background-color: transparent; } hr.divider-vertical-blurry { background-image: linear-gradient(180deg, transparent, hsl(0deg, 0%, 40%), transparent); background-image: linear-gradient(180deg, transparent, hsl(0, 0%, 40%), transparent); background-color: transparent; width: 1px; top: 0; Loading Loading @@ -15171,7 +15171,7 @@ hr.divider-vertical-blurry { .dropdown-divider { --mdb-dropdown-divider-border-top-width: 2px; --mdb-dropdown-divider-border-top-bg: hsl(0deg, 0%, 96%); --mdb-dropdown-divider-border-top-bg: hsl(0, 0%, 96%); border-top: var(--mdb-dropdown-divider-border-top-width) solid var(--mdb-dropdown-divider-border-top-bg); opacity: 1; } Loading Loading @@ -15415,7 +15415,7 @@ fieldset:disabled .btn-group-vertical > .btn { .card-header { --mdb-card-header-border-width: 2px; --mdb-card-header-border-color: hsl(0deg, 0%, 96%); --mdb-card-header-border-color: hsl(0, 0%, 96%); border-bottom: var(--mdb-card-header-border-width) solid var(--mdb-card-header-border-color); } Loading @@ -15425,7 +15425,7 @@ fieldset:disabled .btn-group-vertical > .btn { } .card-footer { --mdb-card-footer-border-color: hsl(0deg, 0%, 96%); --mdb-card-footer-border-color: hsl(0, 0%, 96%); --mdb-card-footer-border-width: 2px; border-top: var(--mdb-card-footer-border-width) solid var(--mdb-card-footer-border-color); } Loading Loading @@ -15757,7 +15757,7 @@ fieldset:disabled .btn-group-vertical > .btn { .list-group-light { --mdb-list-group-light-item-py: 1rem; --mdb-list-group-light-item-border: 2px solid hsl(0deg, 0%, 96%); --mdb-list-group-light-item-border: 2px solid hsl(0, 0%, 96%); --mdb-list-group-light-item-border-width: 2px; --mdb-list-group-light-active-border-radius: 0.5rem; --mdb-list-group-light-active-bg: rgb(223, 231, 246); Loading Loading @@ -15900,75 +15900,75 @@ fieldset:disabled .btn-group-vertical > .btn { } .toast-primary { background-color: hsl(219deg, 56.1%, 92%); color: hsl(217deg, 56.9%, 40%); border-color: hsl(218deg, 57.7%, 86.1%); background-color: hsl(219, 56.1%, 92%); color: hsl(217, 56.9%, 40%); border-color: hsl(218, 57.7%, 86.1%); } .toast-primary i { color: hsl(217deg, 56.9%, 50%); color: hsl(217, 56.9%, 50%); } .toast-secondary { background-color: hsl(210deg, 11.1%, 92.9%); color: hsl(216deg, 10.5%, 28%); border-color: hsl(206deg, 10.4%, 86.9%); background-color: hsl(210, 11.1%, 92.9%); color: hsl(216, 10.5%, 28%); border-color: hsl(206, 10.4%, 86.9%); } .toast-secondary i { color: hsl(218deg, 11.3%, 38%); color: hsl(218, 11.3%, 38%); } .toast-success { background-color: hsl(143deg, 46.4%, 89%); color: hsl(144deg, 77.8%, 22.9%); border-color: hsl(145deg, 44.8%, 82.9%); background-color: hsl(143, 46.4%, 89%); color: hsl(144, 77.8%, 22.9%); border-color: hsl(145, 44.8%, 82.9%); } .toast-success i { color: hsl(144deg, 77.5%, 33.1%); color: hsl(144, 77.5%, 33.1%); } .toast-danger { background-color: hsl(350deg, 66.7%, 92.9%); color: hsl(350deg, 66.7%, 41.2%); border-color: hsl(350deg, 66.7%, 87.1%); background-color: hsl(350, 66.7%, 92.9%); color: hsl(350, 66.7%, 41.2%); border-color: hsl(350, 66.7%, 87.1%); } .toast-danger i { color: hsl(350deg, 67.2%, 51%); color: hsl(350, 67.2%, 51%); } .toast-warning { background-color: hsl(40deg, 80.5%, 92%); color: hsl(40deg, 79.7%, 25.1%); border-color: hsl(39deg, 83.1%, 86.1%); background-color: hsl(40, 80.5%, 92%); color: hsl(40, 79.7%, 25.1%); border-color: hsl(39, 83.1%, 86.1%); } .toast-warning i { color: hsl(40deg, 79.9%, 35.1%); color: hsl(40, 79.9%, 35.1%); } .toast-info { background-color: hsl(194deg, 61%, 92%); color: hsl(195deg, 63.4%, 30%); border-color: hsl(195deg, 60.6%, 86.1%); background-color: hsl(194, 61%, 92%); color: hsl(195, 63.4%, 30%); border-color: hsl(195, 60.6%, 86.1%); } .toast-info i { color: hsl(195deg, 62.7%, 40%); color: hsl(195, 62.7%, 40%); } .toast-light { background-color: hsl(0deg, 0%, 96.1%); color: hsl(0deg, 0%, 31%); border-color: hsl(0deg, 0%, 90.2%); background-color: hsl(0, 0%, 96.1%); color: hsl(0, 0%, 31%); border-color: hsl(0, 0%, 90.2%); } .toast-light i { color: hsl(0deg, 0%, 54.9%); color: hsl(0, 0%, 54.9%); } .toast-dark { background-color: hsl(0deg, 5.2%, 19%); color: hsl(0deg, 0%, 96.1%); border-color: hsl(0deg, 6.3%, 25.1%); background-color: hsl(0, 5.2%, 19%); color: hsl(0, 0%, 96.1%); border-color: hsl(0, 6.3%, 25.1%); } .toast-dark i { color: hsl(0deg, 0%, 91%); color: hsl(0, 0%, 91%); } .tooltip { Loading Loading @@ -16171,8 +16171,8 @@ fieldset:disabled .btn-group-vertical > .btn { } .accordion-flush { --mdb-accordion-flush-btn-box-shadow: inset 0 -2px 0 hsl(0deg, 0%, 96%); --mdb-accordion-flush-border-bottom: 2px solid hsl(0deg, 0%, 96%); --mdb-accordion-flush-btn-box-shadow: inset 0 -2px 0 hsl(0, 0%, 96%); --mdb-accordion-flush-border-bottom: 2px solid hsl(0, 0%, 96%); } .accordion-flush .accordion-button:not(.collapsed) { box-shadow: var(--mdb-accordion-flush-btn-box-shadow); Loading Loading @@ -19649,7 +19649,7 @@ textarea.form-control-lg { height: 0; margin: 0.5rem 0; overflow: hidden; border-top: 1px solid hsl(0deg, 0%, 96%); border-top: 1px solid hsl(0, 0%, 96%); } .dropdown-item { Loading Loading @@ -19718,7 +19718,7 @@ textarea.form-control-lg { color: #9e9e9e; } .dropdown-menu-dark .dropdown-divider { border-color: hsl(0deg, 0%, 96%); border-color: hsl(0, 0%, 96%); } .dropdown-menu-dark .dropdown-item-text { color: #e0e0e0; Loading Loading @@ -21286,7 +21286,7 @@ textarea.form-control-lg { align-items: center; justify-content: space-between; padding: 1rem 1rem; border-bottom: 2px solid hsl(0deg, 0%, 96%); border-bottom: 2px solid hsl(0, 0%, 96%); border-top-left-radius: calc(0.5rem - 1px); border-top-right-radius: calc(0.5rem - 1px); } Loading @@ -21313,7 +21313,7 @@ textarea.form-control-lg { align-items: center; justify-content: flex-end; padding: 0.75rem; border-top: 2px solid hsl(0deg, 0%, 96%); border-top: 2px solid hsl(0, 0%, 96%); border-bottom-right-radius: calc(0.5rem - 1px); border-bottom-left-radius: calc(0.5rem - 1px); } Loading Loading @@ -21606,7 +21606,7 @@ textarea.form-control-lg { word-wrap: break-word; background-color: #fff; background-clip: padding-box; border: 1px solid hsl(0deg, 0%, 96%); border: 1px solid hsl(0, 0%, 96%); border-radius: 0.5rem; box-shadow: 0 0px 3px 0 rgba(0, 0, 0, 0.07), 0 2px 2px 0 rgba(0, 0, 0, 0.04); } Loading Loading @@ -21699,7 +21699,7 @@ textarea.form-control-lg { margin-bottom: 0; font-size: 0.9rem; background-color: #fff; border-bottom: 1px solid hsl(0deg, 0%, 96%); border-bottom: 1px solid hsl(0, 0%, 96%); border-top-left-radius: calc(0.5rem - 1px); border-top-right-radius: calc(0.5rem - 1px); } Loading Loading
CHANGELOG.md +26 −10 Original line number Diff line number Diff line # Version stable [OSE 19.7](#ose-197--16122022-) [OSE 20.0](#ose-20--28022023-) # OSE 21 (à venir) Loading @@ -8,29 +8,37 @@ ## Nouveautés * Nouvelle notion de mission, permettant de gérer les contrats étudiants * Taux HETD personnalisables # OSE 20.1 (à venir) # OSE 20.1 (A venir) ## Nouveautés * Les jauges des plafonds affichent maintenant tout le temps les heures restantes * Ajout de la date de clôture dans la page historique de l'intervenant * Possibilité de saisir une modification de service dû avec 0 heure (#49764) ## Corrections de bugs ## Améliorations * Les données suplémentaires des indicateurs s'affichent de nouveau correctement * Passage à 200 caractères max. pour les libellés longs des structures ## Corrections de bugs * Correction d'une régression de la V20 sur le module Export Siham * Suppression d'un message d'erreur sur l'envoi de mail via les indicateurs (#49873) * Formule Paris 8 : correction d'un problème de code de composante * Formule Poitiers : #46805 * Formule La Réunion : #24229 # OSE 20 (fin février 2023) # OSE 20 (28/02/2023) ## Nouveautés * Les modèles de contrats de travail sont maintenant gérés comme n'importe quel autre état de sortie * Reconduction de l'offre de formation pour les éléments de OSE portés par un élément synchronisé * Possibilité de rentrer un taux de charge par statut d'intervenant * Ajout d'un choix par statut pour "contrat de travail et avenants" pour laisser la possibilité à l'intervenant de télécharger sont contrat en pdf * Ajout d'un choix par statut pour "contrat de travail et avenants" pour laisser la possibilité à l'intervenant de télécharger son contrat en pdf * Migration technnique vers le framework Bootstrap 5 et modernisation de l'identité visuelle * Réorganisation du menu "Administration" pour plus de lisibilité * Filtrage des caractères interdits lors de l'export RH SIHAM (#47267) Loading @@ -57,6 +65,7 @@ * Utilisation prioritaire de l'email personnel des données personnelles pour l'envoi d'email via les indicateurs (#48393) * Meilleure gestion de la casse lors de la recherche d'un employeur (#48543) * Ajout d'une contrainte d'unicité sur la colonne code de la table type_intervention (#48727) * Correction formule d'UVSQ (#47149) * Et beaucoup d'autres ... ## Notes de mise à jour Loading @@ -81,6 +90,13 @@ A la **ligne 206** Ajouter le titre de colonne TAG dans le tableau $head : 'tag' => 'Tags', Le système de mise à jour peut - dans certaines circonstances - vous afficher quelques erreurs qui sont sans impact sur le bon fonctionnement de l'application. Je vais modifier les scripts de mise à jour pour éviter qu'elles ne se produisent. Mais en attendant, si vous y êtes confrontés, vous en trouverez les explications sur le ticket suivant : https://redmine.unicaen.fr/Etablissement/issues/49445?issue_count=42&issue_position=1&next_issue_id=48972 # OSE 19.7 (16/12/2022) Loading Loading @@ -160,7 +176,7 @@ A la **ligne 206** Ajouter le titre de colonne TAG dans le tableau $head : # OSE 19.1 (21/07/2022) ## Nouveautés ## nouveautés * Formule de calcul de Picardie * Nouvel état de sortie pour les écarts des heures complémentaires, maintenant personnalisable (#45807) Loading @@ -186,7 +202,7 @@ A la **ligne 206** Ajouter le titre de colonne TAG dans le tableau $head : * Ajout d'un paramètre général pour permettre de créer les contrats sans passer par un projet de contrat * Ajout de date de dernière modification des données dans les indicateurs notifiant d'une validation en attente * Nouvel état de sortie pour l'extraction des paiements dans le cadre de la pré-liquidation SIHAM * Ajout d'un bouton de refus de pièce justificative avec envoie d'email à l'intervenant * Ajout d'un bouton de refus de pièce justificative avec envoi d'email à l'intervenant * Changement du bouton de cloture de service pour un libellé plus parlant et un style de bouton plus prononcé * Formules nouvelles ou mises à jour : Rennes 2, Paris Saclay, Guyane, Côte d'Azur, La Réunion, Poitiers, Brest, Rouen * Possibilité de créer un nouveau test de formule en téléversant une feuille de calcul au format tableur Loading
data/ddl/package/FORMULE_REUNION/body.sql +52 −52 Original line number Diff line number Diff line Loading @@ -126,32 +126,32 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- T=IF([.$H20]="Référentiel";0;[.AI20]+[.AO20]+[.BS20]+[.BY20]) -- T=IF([.$H20]="Référentiel";0;[.AI20]+[.AO20]+[.AU20]+[.BA20]) WHEN 'T' THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE RETURN cell('AI',l) + cell('AO',l) + cell('BS',l) + cell('BY',l); RETURN cell('AI',l) + cell('AO',l) + cell('AU',l) + cell('BA',l); END IF; -- U=IF([.$H20]="Référentiel";0;[.AU20]+[.BA20]+[.CE20]+[.CK20]) -- U=IF([.$H20]="Référentiel";0;[.BG20]+[.BM20]+[.BS20]+[.BY20]) WHEN 'U' THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE RETURN cell('AU',l) + cell('BA',l) + cell('CE',l) + cell('CK',l); RETURN cell('BG',l) + cell('BM',l) + cell('BS',l) + cell('BY',l); END IF; -- V=IF([.$H20]="Référentiel";0;[.BG20]+[.BM20]+[.CQ20]+[.CW20]) -- V=IF([.$H20]="Référentiel";0;[.CE20]+[.CK20]+[.CQ20]+[.CW20]) WHEN 'V' THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE RETURN cell('BG',l) + cell('BM',l) + cell('CQ',l) + cell('CW',l); RETURN cell('CE',l) + cell('CK',l) + cell('CQ',l) + cell('CW',l); END IF; Loading @@ -166,32 +166,32 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- X=IF([.$H20]="Référentiel";0;[.AK20]+[.AQ20]+[.BU20]+[.CA20]) -- X=IF([.$H20]="Référentiel";0;[.AK20]+[.AQ20]+[.AW20]+[.BC20]) WHEN 'X' THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE RETURN cell('AK',l) + cell('AQ',l) + cell('BU',l) + cell('CA',l); RETURN cell('AK',l) + cell('AQ',l) + cell('AW',l) + cell('BC',l); END IF; -- Y=IF([.$H20]="Référentiel";0;[.AW20]+[.BC20]+[.CG20]+[.CM20]) -- Y=IF([.$H20]="Référentiel";0;[.BI20]+[.BO20]+[.BU20]+[.CA20]) WHEN 'Y' THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE RETURN cell('AW',l) + cell('BC',l) + cell('CG',l) + cell('CM',l); RETURN cell('BI',l) + cell('BO',l) + cell('BU',l) + cell('CA',l); END IF; -- Z=IF([.$H20]="Référentiel";0;[.BI20]+[.BO20]+[.CS20]+[.CY20]) -- Z=IF([.$H20]="Référentiel";0;[.CG20]+[.CM20]+[.CS20]+[.CY20]) WHEN 'Z' THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE RETURN cell('BI',l) + cell('BO',l) + cell('CS',l) + cell('CY',l); RETURN cell('CG',l) + cell('CM',l) + cell('CS',l) + cell('CY',l); END IF; Loading Loading @@ -352,10 +352,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- AS=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]=i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) -- AS=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]<>i_structure_code);[.$M20]*[.$E20]*[.$AD20];0) WHEN 'AS' THEN IF vh.service_statutaire AND vh.type_intervention_code = 'TP' AND vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fa * cell('AD',l); IF vh.service_statutaire AND vh.type_intervention_code = 'TP' AND NOT vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fi * cell('AD',l); ELSE RETURN 0; END IF; Loading @@ -368,15 +368,15 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- AT16=MIN([.AT15];[.AN17]) -- AT16=MIN([.AT15];[.CJ17]) WHEN 'AT16' THEN RETURN LEAST(cell('AT15'), cell('AN17')); RETURN LEAST(cell('AT15'), cell('CJ17')); -- AT17=[.AN17]-[.AT16] -- AT17=[.CJ17]-[.AT16] WHEN 'AT17' THEN RETURN cell('AN17') - cell('AT16'); RETURN cell('CJ17') - cell('AT16'); Loading Loading @@ -416,10 +416,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- AY=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]=i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) -- AY=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]<>i_structure_code);[.$M20]*[.$E20]*[.$AD20];0) WHEN 'AY' THEN IF vh.service_statutaire AND vh.type_intervention_code <> 'TP' AND vh.volume_horaire_ref_id IS NULL AND vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fa * cell('AD',l); IF vh.service_statutaire AND vh.type_intervention_code <> 'TP' AND vh.volume_horaire_ref_id IS NULL AND NOT vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fi * cell('AD',l); ELSE RETURN 0; END IF; Loading Loading @@ -480,10 +480,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- BE=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]=i_structure_code);[.$M20]*[.$G20]*[.$AD20];0) -- BE=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]=i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) WHEN 'BE' THEN IF vh.service_statutaire AND vh.type_intervention_code = 'TP' AND vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fc * cell('AD',l); RETURN vh.heures * vh.taux_fa * cell('AD',l); ELSE RETURN 0; END IF; Loading @@ -496,15 +496,15 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- BF16=MIN([.BF15];[.AZ17]) -- BF16=MIN([.BF15];[.AN17]) WHEN 'BF16' THEN RETURN LEAST(cell('BF15'), cell('AZ17')); RETURN LEAST(cell('BF15'), cell('AN17')); -- BF17=[.AZ17]-[.BF16] -- BF17=[.AN17]-[.BF16] WHEN 'BF17' THEN RETURN cell('AZ17') - cell('BF16'); RETURN cell('AN17') - cell('BF16'); Loading Loading @@ -544,10 +544,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- BK=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]=i_structure_code);[.$M20]*[.$G20]*[.$AD20];0) -- BK=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]=i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) WHEN 'BK' THEN IF vh.service_statutaire AND vh.type_intervention_code <> 'TP' AND vh.volume_horaire_ref_id IS NULL AND vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fc * cell('AD',l); RETURN vh.heures * vh.taux_fa * cell('AD',l); ELSE RETURN 0; END IF; Loading Loading @@ -608,10 +608,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- BQ=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]<>i_structure_code);[.$M20]*[.$E20]*[.$AD20];0) -- BQ=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]<>i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) WHEN 'BQ' THEN IF vh.service_statutaire AND vh.type_intervention_code = 'TP' AND NOT vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fi * cell('AD',l); RETURN vh.heures * vh.taux_fa * cell('AD',l); ELSE RETURN 0; END IF; Loading @@ -624,15 +624,15 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- BR16=MIN([.BR15];[.BL17]) -- BR16=MIN([.BR15];[.AZ17]) WHEN 'BR16' THEN RETURN LEAST(cell('BR15'), cell('BL17')); RETURN LEAST(cell('BR15'), cell('AZ17')); -- BR17=[.BL17]-[.BR16] -- BR17=[.AZ17]-[.BR16] WHEN 'BR17' THEN RETURN cell('BL17') - cell('BR16'); RETURN cell('AZ17') - cell('BR16'); Loading Loading @@ -672,10 +672,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- BW=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]<>i_structure_code);[.$M20]*[.$E20]*[.$AD20];0) -- BW=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]<>i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) WHEN 'BW' THEN IF vh.service_statutaire AND vh.type_intervention_code <> 'TP' AND vh.volume_horaire_ref_id IS NULL AND NOT vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fi * cell('AD',l); RETURN vh.heures * vh.taux_fa * cell('AD',l); ELSE RETURN 0; END IF; Loading Loading @@ -736,10 +736,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- CC=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]<>i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) -- CC=IF(AND([.$D20]="Oui";[.$H20]="TP";[.$A20]=i_structure_code);[.$M20]*[.$G20]*[.$AD20];0) WHEN 'CC' THEN IF vh.service_statutaire AND vh.type_intervention_code = 'TP' AND NOT vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fa * cell('AD',l); IF vh.service_statutaire AND vh.type_intervention_code = 'TP' AND vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fc * cell('AD',l); ELSE RETURN 0; END IF; Loading @@ -752,15 +752,15 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- CD16=MIN([.CD15];[.BX17]) -- CD16=MIN([.CD15];[.BL17]) WHEN 'CD16' THEN RETURN LEAST(cell('CD15'), cell('BX17')); RETURN LEAST(cell('CD15'), cell('BL17')); -- CD17=[.BX17]-[.CD16] -- CD17=[.BL17]-[.CD16] WHEN 'CD17' THEN RETURN cell('BX17') - cell('CD16'); RETURN cell('BL17') - cell('CD16'); Loading Loading @@ -800,10 +800,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- CI=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]<>i_structure_code);[.$M20]*[.$F20]*[.$AD20];0) -- CI=IF(AND([.$D20]="Oui";[.$H20]<>"TP";[.$H20]<>"Référentiel";[.$A20]=i_structure_code);[.$M20]*[.$G20]*[.$AD20];0) WHEN 'CI' THEN IF vh.service_statutaire AND vh.type_intervention_code <> 'TP' AND vh.volume_horaire_ref_id IS NULL AND NOT vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fa * cell('AD',l); IF vh.service_statutaire AND vh.type_intervention_code <> 'TP' AND vh.volume_horaire_ref_id IS NULL AND vh.structure_is_affectation THEN RETURN vh.heures * vh.taux_fc * cell('AD',l); ELSE RETURN 0; END IF; Loading Loading @@ -880,15 +880,15 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_REUNION AS -- CP16=MIN([.CP15];[.CJ17]) -- CP16=MIN([.CP15];[.BX17]) WHEN 'CP16' THEN RETURN LEAST(cell('CP15'), cell('CJ17')); RETURN LEAST(cell('CP15'), cell('BX17')); -- CP17=[.CJ17]-[.CP16] -- CP17=[.BX17]-[.CP16] WHEN 'CP17' THEN RETURN cell('CJ17') - cell('CP16'); RETURN cell('BX17') - cell('CP16'); Loading
public/css/app.css +197 −197 Original line number Diff line number Diff line Loading @@ -3196,7 +3196,7 @@ textarea.form-control-lg { --mdb-dropdown-border-radius: 0.5rem; --mdb-dropdown-border-width: 1px; --mdb-dropdown-inner-border-radius: calc(0.5rem - 1px); --mdb-dropdown-divider-bg: hsl(0deg, 0%, 96%); --mdb-dropdown-divider-bg: hsl(0, 0%, 96%); --mdb-dropdown-divider-margin-y: 0.5rem; --mdb-dropdown-box-shadow: 0 2px 15px -3px rgba(0, 0, 0, 0.07), 0 10px 20px -2px rgba(0, 0, 0, 0.04); --mdb-dropdown-link-color: #262626; Loading Loading @@ -3465,7 +3465,7 @@ textarea.form-control-lg { --mdb-dropdown-box-shadow: ; --mdb-dropdown-link-color: #e0e0e0; --mdb-dropdown-link-hover-color: #fff; --mdb-dropdown-divider-bg: hsl(0deg, 0%, 96%); --mdb-dropdown-divider-bg: hsl(0, 0%, 96%); --mdb-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); --mdb-dropdown-link-active-color: #fff; --mdb-dropdown-link-active-bg: #3b71ca; Loading Loading @@ -5269,12 +5269,12 @@ textarea.form-control-lg { --mdb-modal-header-padding-x: 1rem; --mdb-modal-header-padding-y: 1rem; --mdb-modal-header-padding: 1rem 1rem; --mdb-modal-header-border-color: hsl(0deg, 0%, 96%); --mdb-modal-header-border-color: hsl(0, 0%, 96%); --mdb-modal-header-border-width: 2px; --mdb-modal-title-line-height: 1.6; --mdb-modal-footer-gap: 0.5rem; --mdb-modal-footer-bg: ; --mdb-modal-footer-border-color: hsl(0deg, 0%, 96%); --mdb-modal-footer-border-color: hsl(0, 0%, 96%); --mdb-modal-footer-border-width: 2px; position: fixed; top: 0; Loading Loading @@ -5553,7 +5553,7 @@ textarea.form-control-lg { --mdb-popover-font-size: 0.875rem; --mdb-popover-bg: #fff; --mdb-popover-border-width: 1px; --mdb-popover-border-color: hsl(0deg, 0%, 96%); --mdb-popover-border-color: hsl(0, 0%, 96%); --mdb-popover-border-radius: 0.5rem; --mdb-popover-inner-border-radius: calc(0.5rem - 1px); --mdb-popover-box-shadow: 0 0px 3px 0 rgba(0, 0, 0, 0.07), 0 2px 2px 0 rgba(0, 0, 0, 0.04); Loading Loading @@ -12052,10 +12052,10 @@ textarea.form-control-lg { hr:not([size]).hr { --mdb-divider-height: 2px; --mdb-divider-bg: hsl(0deg, 0%, 96%); --mdb-divider-bg: hsl(0, 0%, 96%); --mdb-divider-opacity: 1; --mdb-divider-blurry-bg: transparent; --mdb-divider-blurry-bg-image: linear-gradient(90deg, transparent, hsl(0deg, 0%, 40%), transparent); --mdb-divider-blurry-bg-image: linear-gradient(90deg, transparent, hsl(0, 0%, 40%), transparent); --mdb-divider-blurry-height: 1px; --mdb-divider-blurry-opacity: 0.25; height: var(--mdb-divider-height); Loading @@ -12079,7 +12079,7 @@ hr.vr { .vr { --mdb-divider-width: 2px; --mdb-divider-bg: hsl(0deg, 0%, 96%); --mdb-divider-bg: hsl(0, 0%, 96%); --mdb-divider-opacity: 1; width: var(--mdb-divider-width); background-color: var(--mdb-divider-bg); Loading @@ -12087,7 +12087,7 @@ hr.vr { } .vr-blurry { --mdb-divider-blurry-vr-bg-image: linear-gradient(180deg, transparent, hsl(0deg, 0%, 40%), transparent); --mdb-divider-blurry-vr-bg-image: linear-gradient(180deg, transparent, hsl(0, 0%, 40%), transparent); --mdb-divider-blurry-vr-width: 1px; --mdb-divider-blurry-opacity: 0.25; background-image: var(--mdb-divider-blurry-vr-bg-image); Loading Loading @@ -14791,7 +14791,7 @@ input[type=file].form-control.is-invalid:focus-within ~ .form-file-label .form-f --mdb-btn-font-weight: 500; --mdb-btn-color: #3b71ca; --mdb-btn-hover-color: #386bc0; --mdb-btn-hover-bg: hsl(0deg, 0%, 96%); --mdb-btn-hover-bg: hsl(0, 0%, 96%); --mdb-btn-focus-color: #3566b6; --mdb-btn-active-color: #3260ac; --mdb-btn-disabled-color: #9e9e9e; Loading Loading @@ -15049,12 +15049,12 @@ hr.divider-horizontal:not([size]) { } hr.divider-horizontal-blurry { background-image: linear-gradient(90deg, transparent, hsl(0deg, 0%, 40%), transparent); background-image: linear-gradient(90deg, transparent, hsl(0, 0%, 40%), transparent); background-color: transparent; } hr.divider-vertical-blurry { background-image: linear-gradient(180deg, transparent, hsl(0deg, 0%, 40%), transparent); background-image: linear-gradient(180deg, transparent, hsl(0, 0%, 40%), transparent); background-color: transparent; width: 1px; top: 0; Loading Loading @@ -15171,7 +15171,7 @@ hr.divider-vertical-blurry { .dropdown-divider { --mdb-dropdown-divider-border-top-width: 2px; --mdb-dropdown-divider-border-top-bg: hsl(0deg, 0%, 96%); --mdb-dropdown-divider-border-top-bg: hsl(0, 0%, 96%); border-top: var(--mdb-dropdown-divider-border-top-width) solid var(--mdb-dropdown-divider-border-top-bg); opacity: 1; } Loading Loading @@ -15415,7 +15415,7 @@ fieldset:disabled .btn-group-vertical > .btn { .card-header { --mdb-card-header-border-width: 2px; --mdb-card-header-border-color: hsl(0deg, 0%, 96%); --mdb-card-header-border-color: hsl(0, 0%, 96%); border-bottom: var(--mdb-card-header-border-width) solid var(--mdb-card-header-border-color); } Loading @@ -15425,7 +15425,7 @@ fieldset:disabled .btn-group-vertical > .btn { } .card-footer { --mdb-card-footer-border-color: hsl(0deg, 0%, 96%); --mdb-card-footer-border-color: hsl(0, 0%, 96%); --mdb-card-footer-border-width: 2px; border-top: var(--mdb-card-footer-border-width) solid var(--mdb-card-footer-border-color); } Loading Loading @@ -15757,7 +15757,7 @@ fieldset:disabled .btn-group-vertical > .btn { .list-group-light { --mdb-list-group-light-item-py: 1rem; --mdb-list-group-light-item-border: 2px solid hsl(0deg, 0%, 96%); --mdb-list-group-light-item-border: 2px solid hsl(0, 0%, 96%); --mdb-list-group-light-item-border-width: 2px; --mdb-list-group-light-active-border-radius: 0.5rem; --mdb-list-group-light-active-bg: rgb(223, 231, 246); Loading Loading @@ -15900,75 +15900,75 @@ fieldset:disabled .btn-group-vertical > .btn { } .toast-primary { background-color: hsl(219deg, 56.1%, 92%); color: hsl(217deg, 56.9%, 40%); border-color: hsl(218deg, 57.7%, 86.1%); background-color: hsl(219, 56.1%, 92%); color: hsl(217, 56.9%, 40%); border-color: hsl(218, 57.7%, 86.1%); } .toast-primary i { color: hsl(217deg, 56.9%, 50%); color: hsl(217, 56.9%, 50%); } .toast-secondary { background-color: hsl(210deg, 11.1%, 92.9%); color: hsl(216deg, 10.5%, 28%); border-color: hsl(206deg, 10.4%, 86.9%); background-color: hsl(210, 11.1%, 92.9%); color: hsl(216, 10.5%, 28%); border-color: hsl(206, 10.4%, 86.9%); } .toast-secondary i { color: hsl(218deg, 11.3%, 38%); color: hsl(218, 11.3%, 38%); } .toast-success { background-color: hsl(143deg, 46.4%, 89%); color: hsl(144deg, 77.8%, 22.9%); border-color: hsl(145deg, 44.8%, 82.9%); background-color: hsl(143, 46.4%, 89%); color: hsl(144, 77.8%, 22.9%); border-color: hsl(145, 44.8%, 82.9%); } .toast-success i { color: hsl(144deg, 77.5%, 33.1%); color: hsl(144, 77.5%, 33.1%); } .toast-danger { background-color: hsl(350deg, 66.7%, 92.9%); color: hsl(350deg, 66.7%, 41.2%); border-color: hsl(350deg, 66.7%, 87.1%); background-color: hsl(350, 66.7%, 92.9%); color: hsl(350, 66.7%, 41.2%); border-color: hsl(350, 66.7%, 87.1%); } .toast-danger i { color: hsl(350deg, 67.2%, 51%); color: hsl(350, 67.2%, 51%); } .toast-warning { background-color: hsl(40deg, 80.5%, 92%); color: hsl(40deg, 79.7%, 25.1%); border-color: hsl(39deg, 83.1%, 86.1%); background-color: hsl(40, 80.5%, 92%); color: hsl(40, 79.7%, 25.1%); border-color: hsl(39, 83.1%, 86.1%); } .toast-warning i { color: hsl(40deg, 79.9%, 35.1%); color: hsl(40, 79.9%, 35.1%); } .toast-info { background-color: hsl(194deg, 61%, 92%); color: hsl(195deg, 63.4%, 30%); border-color: hsl(195deg, 60.6%, 86.1%); background-color: hsl(194, 61%, 92%); color: hsl(195, 63.4%, 30%); border-color: hsl(195, 60.6%, 86.1%); } .toast-info i { color: hsl(195deg, 62.7%, 40%); color: hsl(195, 62.7%, 40%); } .toast-light { background-color: hsl(0deg, 0%, 96.1%); color: hsl(0deg, 0%, 31%); border-color: hsl(0deg, 0%, 90.2%); background-color: hsl(0, 0%, 96.1%); color: hsl(0, 0%, 31%); border-color: hsl(0, 0%, 90.2%); } .toast-light i { color: hsl(0deg, 0%, 54.9%); color: hsl(0, 0%, 54.9%); } .toast-dark { background-color: hsl(0deg, 5.2%, 19%); color: hsl(0deg, 0%, 96.1%); border-color: hsl(0deg, 6.3%, 25.1%); background-color: hsl(0, 5.2%, 19%); color: hsl(0, 0%, 96.1%); border-color: hsl(0, 6.3%, 25.1%); } .toast-dark i { color: hsl(0deg, 0%, 91%); color: hsl(0, 0%, 91%); } .tooltip { Loading Loading @@ -16171,8 +16171,8 @@ fieldset:disabled .btn-group-vertical > .btn { } .accordion-flush { --mdb-accordion-flush-btn-box-shadow: inset 0 -2px 0 hsl(0deg, 0%, 96%); --mdb-accordion-flush-border-bottom: 2px solid hsl(0deg, 0%, 96%); --mdb-accordion-flush-btn-box-shadow: inset 0 -2px 0 hsl(0, 0%, 96%); --mdb-accordion-flush-border-bottom: 2px solid hsl(0, 0%, 96%); } .accordion-flush .accordion-button:not(.collapsed) { box-shadow: var(--mdb-accordion-flush-btn-box-shadow); Loading Loading @@ -19649,7 +19649,7 @@ textarea.form-control-lg { height: 0; margin: 0.5rem 0; overflow: hidden; border-top: 1px solid hsl(0deg, 0%, 96%); border-top: 1px solid hsl(0, 0%, 96%); } .dropdown-item { Loading Loading @@ -19718,7 +19718,7 @@ textarea.form-control-lg { color: #9e9e9e; } .dropdown-menu-dark .dropdown-divider { border-color: hsl(0deg, 0%, 96%); border-color: hsl(0, 0%, 96%); } .dropdown-menu-dark .dropdown-item-text { color: #e0e0e0; Loading Loading @@ -21286,7 +21286,7 @@ textarea.form-control-lg { align-items: center; justify-content: space-between; padding: 1rem 1rem; border-bottom: 2px solid hsl(0deg, 0%, 96%); border-bottom: 2px solid hsl(0, 0%, 96%); border-top-left-radius: calc(0.5rem - 1px); border-top-right-radius: calc(0.5rem - 1px); } Loading @@ -21313,7 +21313,7 @@ textarea.form-control-lg { align-items: center; justify-content: flex-end; padding: 0.75rem; border-top: 2px solid hsl(0deg, 0%, 96%); border-top: 2px solid hsl(0, 0%, 96%); border-bottom-right-radius: calc(0.5rem - 1px); border-bottom-left-radius: calc(0.5rem - 1px); } Loading Loading @@ -21606,7 +21606,7 @@ textarea.form-control-lg { word-wrap: break-word; background-color: #fff; background-clip: padding-box; border: 1px solid hsl(0deg, 0%, 96%); border: 1px solid hsl(0, 0%, 96%); border-radius: 0.5rem; box-shadow: 0 0px 3px 0 rgba(0, 0, 0, 0.07), 0 2px 2px 0 rgba(0, 0, 0, 0.04); } Loading Loading @@ -21699,7 +21699,7 @@ textarea.form-control-lg { margin-bottom: 0; font-size: 0.9rem; background-color: #fff; border-bottom: 1px solid hsl(0deg, 0%, 96%); border-bottom: 1px solid hsl(0, 0%, 96%); border-top-left-radius: calc(0.5rem - 1px); border-top-right-radius: calc(0.5rem - 1px); } Loading