Commit 9ab90662 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Préparation 8.1.1

parent b4cb8bde
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -11,6 +11,10 @@ author: Laurent Lécluse - DSI - Unicaen
* Dans l'onglet Suppression de la fiche intervenant, l'arborescence s'affiche correctement. La suppression partielle ou complète d'un intervenant fonctionne donc de nouveau.
* Un bug se produisait dans l'arborescence de suppression de fiche intervenant : s'il n'y avait qu'un seul service ou qu'un seul référentiel alors rien n'était affiché. C'est corrigé. 

## Nouveautés

* Possibilité de récupérer des attributs multivalués pour faire la correspondance d'identifiant entre le LDAP et le code utilisateur indiqué dans la fiche Intervenant

## Notes de mise à jour

* Attention : Le répertoire public/modeles de OSE était propre à l'Université de Caen et il a été supprimé.
+226 −0
Original line number Diff line number Diff line
<?php

/**
 * @var $this       \Application\View\Renderer\PhpRenderer
 * @var $controller \Zend\Mvc\Controller\AbstractController
 * @var $viewName   string
 * @var $sl         \Zend\ServiceManager\ServiceLocatorInterface
 */

$data = "2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	2						0	0	0		2	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	2						0	0	0		2	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	2						0	0	0		2	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	2						0	0	0		2	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	2						0	0	0		2	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	2						0	0	0		2	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	2						0	0	0		2	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	-2						-2	0	0		0	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						2	0	0		2	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	2						0	0	0		2	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	2						0	0	0		2	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	2						0	0	0		2	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	4						0	0	0		4	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	40						0	0	0		40	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	20						0	0	0		20	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	-40						-40	0	0		0	0	0	0
2018	Derivery	Francois	Université Le Havre Normandie	Vacataire	0	0	0	0	Réalisé	Validé	1	0	1	0	TD	1	1	1	0	0	1	1	-20						-20	0	0		0	0	0	0
";

$debug = false;
//$debug = true;

/*
Structures :
1	Droit
2	Histoire
3	IAE
4	IUT
5	Lettres
6	Santé
7	Sciences
8	SUAPS
9	Université
*/
$data = explode("\n", $data);
?>
<style>
    table {
        font-size: 8pt;
    }
</style>
<table class="table table-bordered table-condensed table-extra-condensed table-hover">
    <tr>
        <th>Structure</th>
        <th>ServiceStatutaire</th>
        <th>Référentiel</th>
        <th>Type d'intervention</th>
        <th>Taux FI</th>
        <th>Taux FA</th>
        <th>Taux FC</th>
        <th>Modulateur HC</th>
        <th>Heures</th>
        <th>P1</th>
        <th>P2</th>
        <th>P3</th>
        <th>P4</th>
        <th>P5</th>
        <th>SFi</th>
        <th>SFa</th>
        <th>SFc</th>
        <th>SRef</th>
        <th>HCFi</th>
        <th>HCFa</th>
        <th>HCFc</th>
        <th>HCFcM</th>
        <th>HCRef</th>
        <th>Tableau</th>
    </tr>
    <?php

    /** @var \Doctrine\ORM\EntityManager $bdd */
    $bdd = $sl->get(\Application\Constants::BDD);
    /** @var \Application\Service\FormuleTestIntervenantService $ftiService */
    $ftiService = $sl->get(\Application\Service\FormuleTestIntervenantService::class);

    $fti = null;
    foreach ($data as $l) {
        if (trim($l)) {
            $c = explode("\t", trim($l));

            if (!$fti) {
                $fti = new \Application\Entity\Db\FormuleTestIntervenant();
                $fi  = [
                    'annee'                      => $c[0],
                    'nom'                        => $c[1],
                    'prenom'                     => $c[2],
                    'formule'                    => $c[3],
                    'typeIntervenant'            => $c[4],
                    'heuresServiceStatutaire'    => stringToFloat($c[5]),
                    'depassementServiceDuSansHC' => stringToFloat($c[6]),
                    'heuresServiceModifie'       => stringToFloat($c[7]),
                    'heuresDecharge'             => stringToFloat($c[8]),
                    'typeVolumeHoraire'          => $c[9],
                    'etatVolumeHoraire'          => $c[10],
                ];
                if ($debug) {
                    var_dump($fi);
                } else {
                    $fti->setLibelle($fi['prenom'] . ' ' . $fi['nom']);
                    $fti->setFormule($bdd->getRepository(\Application\Entity\Db\Formule::class)->findOneBy(['libelle' => $fi['formule']]));
                    $fti->setAnnee($bdd->getRepository(\Application\Entity\Db\Annee::class)->find($fi['annee']));
                    $fti->setTypeIntervenant($bdd->getRepository(\Application\Entity\Db\TypeIntervenant::class)->findOneBy(['libelle' => $fi['typeIntervenant']]));
                    $fti->setStructureTest($bdd->getRepository(\Application\Entity\Db\FormuleTestStructure::class)->find(1));
                    $fti->setTypeVolumeHoraire($bdd->getRepository(\Application\Entity\Db\TypeVolumeHoraire::class)->findOneBy(['libelle' => $fi['typeVolumeHoraire']]));
                    $fti->setEtatVolumeHoraire($bdd->getRepository(\Application\Entity\Db\EtatVolumeHoraire::class)->findOneBy(['libelle' => $fi['etatVolumeHoraire']]));
                    $fti->setHeuresDecharge($fi['heuresDecharge']);
                    $fti->setHeuresServiceStatutaire($fi['heuresServiceStatutaire']);
                    $fti->setHeuresServiceModifie($fi['heuresServiceModifie']);
                    $fti->setDepassementServiceDuSansHC($fi['depassementServiceDuSansHC'] == '1');
                    $bdd->persist($fti);
                    $bdd->flush($fti);
                }
            }

            $composante             = $c[11] == '1' ? 1 : ($c[12] == '1' ? 9 : 2);
            $serviceStatutaire      = $c[13] == '1';
            $typeIntervention       = $c[15];
            $referentiel            = $c[14] == '1';
            $tauxFi                 = stringToFloat($c[18]);
            $tauxFa                 = stringToFloat($c[19]);
            $tauxFc                 = stringToFloat($c[20]);
            $modulateurHC           = stringToFloat($c[22]);
            $heures                 = stringToFloat($c[23]);
            $param1                 = $c[24];
            $param2                 = $c[25];
            $param3                 = $c[26];
            $param4                 = $c[27];
            $param5                 = $c[28];
            $serviceFi              = stringToFloat($c[29]);
            $serviceFa              = stringToFloat($c[30]);
            $serviceFc              = stringToFloat($c[31]);
            $serviceReferentiel     = stringToFloat($c[32]);
            $heuresComplFi          = stringToFloat($c[33]);
            $heuresComplFa          = stringToFloat($c[34]);
            $heuresComplFc          = stringToFloat($c[35]);
            $heuresComplFcMaj       = stringToFloat($c[36]);
            $heuresComplReferentiel = isset($c[37]) ? stringToFloat($c[37]) : null;

            // Traitement et affichage
            $composante = $sl->get(\Application\Constants::BDD)->getRepository(\Application\Entity\Db\FormuleTestStructure::class)->find($composante);
            if ($debug) {
                $c = '<pre>' . var_export($c, true) . '</pre>';
            } else {
                $c  = '';
                $vh = new \Application\Entity\Db\FormuleTestVolumeHoraire();
                $vh->setIntervenantTest($fti);
                $vh->setStructureTest($composante);
                $vh->setServiceStatutaire($serviceStatutaire);
                $vh->setReferentiel($referentiel);
                $vh->setTypeInterventionCode($typeIntervention);
                $vh->setTauxFi($tauxFi);
                $vh->setTauxFa($tauxFa);
                $vh->setTauxFc($tauxFc);
                $vh->setPonderationServiceCompl($modulateurHC);
                $vh->setHeures($heures);
                $vh->setAServiceFi($serviceFi);
                $vh->setAServiceFa($serviceFa);
                $vh->setAServiceFc($serviceFc);
                $vh->setAServiceReferentiel($serviceReferentiel);
                $vh->setAHeuresComplFi($heuresComplFi);
                $vh->setAHeuresComplFa($heuresComplFa);
                $vh->setAHeuresComplFc($heuresComplFc);
                $vh->setAHeuresComplFcMajorees($heuresComplFcMaj);
                $vh->setAHeuresComplReferentiel($heuresComplReferentiel);
                $bdd->persist($vh);
                $bdd->flush($vh);
            }

            ?>
            <tr>
                <td><?= $composante ?></td>
                <td><?= $serviceStatutaire ? 'Oui' : 'Non' ?></td>
                <td><?= $referentiel ? 'Oui' : 'Non' ?></td>
                <td><?= $typeIntervention ?></td>
                <td><?= $tauxFi ?></td>
                <td><?= $tauxFa ?></td>
                <td><?= $tauxFc ?></td>
                <td><?= $modulateurHC ?></td>
                <td><?= $heures ?></td>
                <td><?= $param1 ?></td>
                <td><?= $param2 ?></td>
                <td><?= $param3 ?></td>
                <td><?= $param4 ?></td>
                <td><?= $param5 ?></td>
                <td><?= $serviceFi ?></td>
                <td><?= $serviceFa ?></td>
                <td><?= $serviceFc ?></td>
                <td><?= $serviceReferentiel ?></td>
                <td><?= $heuresComplFi ?></td>
                <td><?= $heuresComplFa ?></td>
                <td><?= $heuresComplFc ?></td>
                <td><?= $heuresComplFcMaj ?></td>
                <td><?= $heuresComplReferentiel ?></td>

                <td><?= $c ?></td>
            </tr>

            <?php
        }
    }
    ?>
</table>
+6 −6
Original line number Diff line number Diff line
@@ -214,16 +214,16 @@ class LdapConnecteur extends AbstractService
        if ($ldapUser){
            // si utilisateur_code_filtre présent : regexp pour recupérer une valeur précise d'un attribut multivalué,
            // par exemple l'attribut étiqueté supannRefId
            $utilisateur_code_filtre = $this->getUtilisateurCodeFiltre();
            $utilisateurCodeFiltre = $this->getUtilisateurCodeFiltre();

            if ($utilisateur_code_filtre != '') {
                $utilisateur_courant_code = $this->getPeopleAttribute($ldapUser,$this->getUtilisateurCode());
            if ($utilisateurCodeFiltre != '') {
                $utilisateurCourantCode = $this->getPeopleAttribute($ldapUser,$this->getUtilisateurCode());

                // si attribut multivalué, valeurs séparées par de virgules -> transformation en array
                $utilisateur_courant_code_arr = explode(',', $utilisateur_courant_code);
                $utilisateurCourantCodeArr = explode(',', $utilisateurCourantCode);

                foreach ($utilisateur_courant_code_arr as $utilisateur_courant_code_elem) {
                    if (preg_match($utilisateur_code_filtre, $utilisateur_courant_code_elem, $matches)) {
                foreach ($utilisateurCourantCodeArr as $utilisateurCourantCodeElem) {
                    if (preg_match($utilisateurCodeFiltre, $utilisateurCourantCodeElem, $matches)) {
                        return $matches[1];
                    }
                }
+1 −1

File changed.

Contains only whitespace changes.

+1 −1

File changed.

Contains only whitespace changes.