Commit 13ff53e4 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Merge remote-tracking branch 'origin/b24' into b24

parents d4921909 8e29b616
Loading
Loading
Loading
Loading
Loading
+1 −1
Changes for composer.json: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@
        "unicaen/bddadmin"                 : "1.5.0",
        "unicaen/signature"                : "1.0.6",
        "connecteur-ose/actul"             : "dev-master",
        "connecteur-ose/pegase"            : "dev-master"
        "connecteur-ose/pegase"            : "dev-pegase-webservice"
    },
    "autoload"         : {
        "psr-4": {
+23 −16
Changes for composer.lock: 23 added lines, 16 removed lines.
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@
        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
        "This file is @generated automatically"
    ],
    "content-hash": "e658865d19f567c81b0d7c9a6a1cad0a",
    "content-hash": "99a683296ca9417e5fe3f3a3a0c6cf29",
    "packages": [
        {
            "name": "apereo/phpcas",
@@ -300,20 +300,27 @@
        },
        {
            "name": "connecteur-ose/pegase",
            "version": "dev-master",
            "version": "dev-pegase-webservice",
            "source": {
                "type": "git",
                "url": "https://git.unicaen.fr/open-source/connecteur-ose/pegase.git",
                "reference": "720f974cbb6f89aad15264e6468674039803590c"
                "reference": "678bb5f827ad4e4ba8cf7ff5601f1e5298806907"
            },
            "require": {
                "guzzlehttp/guzzle": "^7.3",
                "guzzlehttp/psr7": "^1.7 || ^2.0",
                "php": "^8.1",
                "unicaen/bddadmin": "^1"
            },
            "type": "library",
            "autoload": {
                "psr-4": {
                    "Connecteur\\Pegase\\": "src/"
                    "Connecteur\\Pegase\\": "src/",
                    "PegaseOdf\\": "src/pegase-odf/"
                }
            },
            "description": "Connecteur Pégase pour OSE",
            "time": "2026-03-25T10:26:44+00:00"
            "time": "2026-06-15T09:33:58+00:00"
        },
        {
            "name": "datatables.net/datatables.net",
@@ -4301,32 +4308,32 @@
        },
        {
            "name": "laminas/laminas-mvc-plugin-prg",
            "version": "1.8.0",
            "version": "1.9.0",
            "source": {
                "type": "git",
                "url": "https://github.com/laminas/laminas-mvc-plugin-prg.git",
                "reference": "b51e7ba892e52c6a80ce8c7dc7f8c429e3937516"
                "reference": "4c2062ad9f19d6c2a4430357300d42ebc0485bd3"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/laminas/laminas-mvc-plugin-prg/zipball/b51e7ba892e52c6a80ce8c7dc7f8c429e3937516",
                "reference": "b51e7ba892e52c6a80ce8c7dc7f8c429e3937516",
                "url": "https://api.github.com/repos/laminas/laminas-mvc-plugin-prg/zipball/4c2062ad9f19d6c2a4430357300d42ebc0485bd3",
                "reference": "4c2062ad9f19d6c2a4430357300d42ebc0485bd3",
                "shasum": ""
            },
            "require": {
                "laminas/laminas-mvc": "^3.3.3",
                "laminas/laminas-session": "^2.12.1",
                "laminas/laminas-stdlib": "^3.10.1",
                "php": "~8.1.0 || ~8.2.0 || ~8.3.0"
                "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0"
            },
            "conflict": {
                "zendframework/zend-mvc-plugin-prg": "*"
            },
            "require-dev": {
                "laminas/laminas-coding-standard": "~2.5.0",
                "laminas/laminas-coding-standard": "~3.1.0",
                "phpunit/phpunit": "^10.4",
                "psalm/plugin-phpunit": "^0.18.0",
                "vimeo/psalm": "^5.16"
                "psalm/plugin-phpunit": "^0.19.0",
                "vimeo/psalm": "^6.16"
            },
            "type": "library",
            "extra": {
@@ -4359,11 +4366,11 @@
            },
            "funding": [
                {
                    "url": "https://funding.communitybridge.org/projects/laminas-project",
                    "type": "community_bridge"
                    "url": "https://crowdfunding.linuxfoundation.org/initiatives/laminas-project",
                    "type": "custom"
                }
            ],
            "time": "2023-12-01T06:06:12+00:00"
            "time": "2026-06-23T12:20:39+00:00"
        },
        {
            "name": "laminas/laminas-navigation",
+11 −13
Changes for data/plafonds-sql/15.sql: 11 added lines, 13 removed lines.
Original line number Diff line number Diff line
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
  i.annee_id,
  fr.type_volume_horaire_id         type_volume_horaire_id,
  sr.structure_id                   structure_id,
  sum(frvr.total)                        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
 No newline at end of file
  formule_resultat_volume_horaire frvr
    JOIN formule_resultat_intervenant fr ON fr.id = frvr.formule_resultat_intervenant_id
    JOIN volume_horaire_ref          vhr ON vhr.id =  frvr.volume_horaire_ref_id AND vhr.histo_destruction IS NULL
    JOIN service_referentiel          sr ON sr.id = vhr.service_referentiel_id AND sr.intervenant_id = fr.intervenant_id AND sr.histo_destruction IS NULL
    JOIN intervenant                   i ON i.id = fr.intervenant_id
    JOIN etat_volume_horaire         evh ON evh.code = 'saisi' AND evh.id = fr.etat_volume_horaire_id
GROUP BY i.annee_id, fr.type_volume_horaire_id, sr.structure_id
+31 −25
Changes for front/Formule/Test/Test.vue: 31 added lines, 25 removed lines.
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@
                <tr>
                    <th>Formule</th>
                    <td class="saisie"><select v-model="intervenant.formule" class="dinput">
                        <option v-for="formule in formules" :value="formule.id">{{ formule.libelle }}</option>
                        <option v-for="formule in sortedFormules" :value="formule.id">{{ formule.libelle }}</option>
                    </select></td>
                </tr>
                <tr>
@@ -628,6 +628,7 @@ export default {
        return {
            indexUrl: unicaenVue.url('formule-test'),
            dataUrl: unicaenVue.url('formule-test/data'),
            currentId: this.id ? this.id : 0,
            tauxAutre1Visibility: true,
            tauxAutre2Visibility: false,
            tauxAutre3Visibility: false,
@@ -703,6 +704,10 @@ export default {
        },
    },
    computed: {
        sortedFormules()
        {
            return Object.values(this.formules).sort((a, b) => a.libelle.localeCompare(b.libelle, 'fr', {sensitivity: 'base'}));
        },
        filteredTypesIntervention()
        {
            let ti = Object.values(this.typesIntervention).filter(value => value);
@@ -722,57 +727,54 @@ export default {
        }
    },
    methods: {
        charger()
        testUrl(route)
        {
            return unicaenVue.url(route + "/:id", {id: this.currentId});
        },
        updateData(response)
        {
            unicaenVue.axios.get(
                unicaenVue.url("formule-test/saisir-data/:id", {id: this.id ? this.id : this.intervenant.id ? this.intervenant.id : 0})
            ).then(response => {
            this.intervenant = this.dropTauxNonUtilises(response.data.intervenant);
            this.volumesHoraires = response.data.volumesHoraires;
            this.currentId = this.intervenant.id ? this.intervenant.id : this.currentId;
            if (response.data.debug) {
                this.debug = response.data.debug;
            } else {
                this.debug = {};
            }
            this.addVolumeHoraire();
            this.updateStructures();
        },
        charger()
        {
            unicaenVue.axios.get(
                this.testUrl("formule-test/saisir-data")
            ).then(response => {
                this.updateData(response);
            });
        },
        enregistrer()
        {
            unicaenVue.axios.post(
                unicaenVue.url("formule-test/enregistrer/:id", {id: this.id ? this.id : this.intervenant.id ? this.intervenant.id : 0}),
                this.testUrl("formule-test/enregistrer"),
                {
                    intervenant: this.intervenant,
                    volumesHoraires: this.volumesHoraires,
                }
            ).then(response => {
                this.intervenant = this.dropTauxNonUtilises(response.data.intervenant);
                this.volumesHoraires = response.data.volumesHoraires;
                if (response.data.debug) {
                    this.debug = response.data.debug;
                } else {
                    this.debug = {};
                }
                this.addVolumeHoraire();
                this.updateStructures();
                this.updateData(response);
            });
        },
        calculer()
        {
            unicaenVue.axios.post(
                unicaenVue.url("formule-test/enregistrer/:id", {id: this.id ? this.id : this.intervenant.id ? this.intervenant.id : 0}),
                this.testUrl("formule-test/enregistrer"),
                {
                    intervenant: this.intervenant,
                    volumesHoraires: this.volumesHoraires,
                    simpleCalcul: true
                }
            ).then(response => {
                this.intervenant = this.dropTauxNonUtilises(response.data.intervenant);
                this.volumesHoraires = response.data.volumesHoraires;
                if (response.data.debug) {
                    this.debug = response.data.debug;
                } else {
                    this.debug = {};
                }
                this.addVolumeHoraire();
                this.updateStructures();
                this.updateData(response);
            });
        },
        exporter: function () {
@@ -861,6 +863,10 @@ export default {
                    const jsonContent = JSON.parse(e.target.result);
                    this.intervenant = jsonContent.intervenant;
                    this.volumesHoraires = jsonContent.volumesHoraires;
                    delete this.intervenant.id;
                    this.volumesHoraires.forEach(volumeHoraire => {
                        delete volumeHoraire.id;
                    });
                    this.updateStructures();
                } catch (error) {
                    console.error("Erreur lors de l'analyse du contenu JSON :", error);
+2 −1
Changes for module/Contrat/src/Service/ContratService.php: 2 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -198,7 +198,6 @@ class ContratService extends AbstractEntityService
                        $signatureFlowDatas['label'] .= " - " . $intervenant->__toString();


                        $recipients = [];
                        //On regarde si on a le paramétrage hook_recepient dans la config
                        //pour forcer l'envoie toujours à la même personne
                        $recipientsHook = [];
@@ -217,6 +216,8 @@ class ContratService extends AbstractEntityService
                        //On doit aller chercher les destinataires pour la signature électronique

                        foreach ($signatureFlowDatas['steps'] as $key => $step) {
                            $recipients = [];

                            //Si l'étape de process concerne un rôle de l'application on va chercher les utilisateurs de ce role.
                            if (in_array($step['recipient_method'], ['by_etablissement', 'by_etablissement_and_intervenant']) && empty($step['recipients'])) {
                                $role = '';
Loading