From 9db745072b93504f55aecf3b459db507c8a9f0b4 Mon Sep 17 00:00:00 2001
From: Antony Le Courtes <antony.lecourtes@unicaen.fr>
Date: Mon, 18 Oct 2021 10:02:44 +0200
Subject: [PATCH] Gestion de la sitatuation familiale + divers ajustement UX

---
 composer.lock                                 | 43 ++++++++++---------
 .../src/Connecteur/Siham/SihamConnecteur.php  | 10 ++++-
 .../src/Form/Fieldset/SihamFieldset.php       | 14 +++++-
 .../view/export-rh/export-rh/exporter.phtml   | 20 ++++++---
 .../export-rh/export-rh/siham/dataREN.phtml   | 28 ++++++++++--
 5 files changed, 83 insertions(+), 32 deletions(-)

diff --git a/composer.lock b/composer.lock
index 342f4e397d..70bb53ea40 100755
--- a/composer.lock
+++ b/composer.lock
@@ -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": "25f3bf165aca197f0744a83c93336d5c",
+    "content-hash": "18f8830a24bceaafb795349271d75ec5",
     "packages": [
         {
             "name": "beberlei/assert",
@@ -420,16 +420,16 @@
         },
         {
             "name": "doctrine/dbal",
-            "version": "2.13.3",
+            "version": "2.13.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/doctrine/dbal.git",
-                "reference": "0d7adf4cadfee6f70850e5b163e6cdd706417838"
+                "reference": "2411a55a2a628e6d8dd598388ab13474802c7b6e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/dbal/zipball/0d7adf4cadfee6f70850e5b163e6cdd706417838",
-                "reference": "0d7adf4cadfee6f70850e5b163e6cdd706417838",
+                "url": "https://api.github.com/repos/doctrine/dbal/zipball/2411a55a2a628e6d8dd598388ab13474802c7b6e",
+                "reference": "2411a55a2a628e6d8dd598388ab13474802c7b6e",
                 "shasum": ""
             },
             "require": {
@@ -442,8 +442,8 @@
             "require-dev": {
                 "doctrine/coding-standard": "9.0.0",
                 "jetbrains/phpstorm-stubs": "2021.1",
-                "phpstan/phpstan": "0.12.96",
-                "phpunit/phpunit": "^7.5.20|^8.5|9.5.5",
+                "phpstan/phpstan": "0.12.99",
+                "phpunit/phpunit": "^7.5.20|^8.5|9.5.10",
                 "psalm/plugin-phpunit": "0.16.1",
                 "squizlabs/php_codesniffer": "3.6.0",
                 "symfony/cache": "^4.4",
@@ -521,7 +521,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2021-09-12T19:11:48+00:00"
+            "time": "2021-10-02T15:59:26+00:00"
         },
         {
             "name": "doctrine/deprecations",
@@ -2894,11 +2894,11 @@
         },
         {
             "name": "unicaen/siham",
-            "version": "1.0",
+            "version": "1.3",
             "source": {
                 "type": "git",
                 "url": "https://git.unicaen.fr/lib/unicaen/siham.git",
-                "reference": "9ae9c8034e32c5ed082b1b9548fbc93e592f124a"
+                "reference": "cd88eb849154c7092f819ecb8cd39f01f5369450"
             },
             "require": {
                 "zendframework/zend-mail": "^2.10",
@@ -2923,7 +2923,7 @@
                 }
             ],
             "description": "PHP library for SIHAM webservices",
-            "time": "2021-09-27T10:25:02+00:00"
+            "time": "2021-10-18T08:00:01+00:00"
         },
         {
             "name": "unicaen/tbl",
@@ -6581,16 +6581,16 @@
         },
         {
             "name": "phpdocumentor/type-resolver",
-            "version": "1.5.0",
+            "version": "1.5.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/phpDocumentor/TypeResolver.git",
-                "reference": "30f38bffc6f24293dadd1823936372dfa9e86e2f"
+                "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/30f38bffc6f24293dadd1823936372dfa9e86e2f",
-                "reference": "30f38bffc6f24293dadd1823936372dfa9e86e2f",
+                "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/a12f7e301eb7258bb68acd89d4aefa05c2906cae",
+                "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae",
                 "shasum": ""
             },
             "require": {
@@ -6623,7 +6623,7 @@
                 }
             ],
             "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
-            "time": "2021-09-17T15:28:14+00:00"
+            "time": "2021-10-02T14:08:47+00:00"
         },
         {
             "name": "phpspec/prophecy",
@@ -7703,6 +7703,7 @@
                     "type": "github"
                 }
             ],
+            "abandoned": true,
             "time": "2020-11-30T07:30:19+00:00"
         },
         {
@@ -7841,16 +7842,16 @@
         },
         {
             "name": "squizlabs/php_codesniffer",
-            "version": "3.6.0",
+            "version": "3.6.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
-                "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625"
+                "reference": "f268ca40d54617c6e06757f83f699775c9b3ff2e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ffced0d2c8fa8e6cdc4d695a743271fab6c38625",
-                "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625",
+                "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/f268ca40d54617c6e06757f83f699775c9b3ff2e",
+                "reference": "f268ca40d54617c6e06757f83f699775c9b3ff2e",
                 "shasum": ""
             },
             "require": {
@@ -7888,7 +7889,7 @@
                 "phpcs",
                 "standards"
             ],
-            "time": "2021-04-09T00:54:41+00:00"
+            "time": "2021-10-11T04:00:11+00:00"
         },
         {
             "name": "theseer/tokenizer",
diff --git a/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php b/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php
index 7730b6279c..c263c2e0fb 100644
--- a/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php
+++ b/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php
@@ -387,6 +387,13 @@ class SihamConnecteur implements ConnecteurRhInterface
                  'temoinValidite'    => 1,
                 ];
 
+            /*SITUATION FAMILIALE*/
+            $situationFamiliale[] =
+                ['dateEffetSituFam' => $dateEffet,
+                 'situFam'          => 'CEL',
+                 'temoinValidite'   => 1,
+                ];
+
             /*COORDONNEES POSTALES*/
             $adresse = '';
             $adresse .= (!empty($dossierIntervenant->getAdresseNumero())) ? $dossierIntervenant->getAdresseNumero() . ' ' : '';
@@ -468,6 +475,7 @@ class SihamConnecteur implements ConnecteurRhInterface
                 'listeCoordonneesBancaires' => $coordonneesBancaires,
                 'listeCarriere'             => $carriere,
                 //'listeContrats'             => $contrat,
+                'listeSituations'           => $situationFamiliale,
                 'listeModalitesServices'    => $service,
                 'listeStatuts'              => $statut,
                 'listeNationalites'         => $nationalites,
@@ -575,7 +583,7 @@ class SihamConnecteur implements ConnecteurRhInterface
                 'listeCarriere'          => $carriere,
                 'listeModalitesServices' => $service,
                 'listeStatuts'           => $statut,
-                //'listeContrats'          => $contrat,
+                'listeContrats'          => $contrat,
                 'listePositions'         => $position,
                 'motifEntree'            => 'REN',
                 'matricule'              => $matricule,
diff --git a/module/ExportRh/src/Form/Fieldset/SihamFieldset.php b/module/ExportRh/src/Form/Fieldset/SihamFieldset.php
index a82e7d4f69..9960f2b410 100644
--- a/module/ExportRh/src/Form/Fieldset/SihamFieldset.php
+++ b/module/ExportRh/src/Form/Fieldset/SihamFieldset.php
@@ -180,7 +180,19 @@ class SihamFieldset extends AbstractFieldset
     {
 
         $spec = [
-            'nomUsuel' => [
+            'emploi'          => [
+                'required' => true,
+            ],
+            'affectation'     => [
+                'required' => true,
+            ],
+            'position'        => [
+                'required' => true,
+            ],
+            'statut'          => [
+                'required' => true,
+            ],
+            'modaliteService' => [
                 'required' => true,
             ],
 
diff --git a/module/ExportRh/view/export-rh/export-rh/exporter.phtml b/module/ExportRh/view/export-rh/export-rh/exporter.phtml
index 643f693cb1..31f6b303d1 100755
--- a/module/ExportRh/view/export-rh/export-rh/exporter.phtml
+++ b/module/ExportRh/view/export-rh/export-rh/exporter.phtml
@@ -29,7 +29,9 @@ if ($priseEnCharge) {
         </div>
     <?php elseif ($haveContratOse === false): ?>
         <div class="messenger alert alert-warning">
-            L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> (<?= $intervenantDossier->getStatut()->getLibelle() ?>) n'a pas encore retourné son contrat. Vous pourrez le renouveller ou le prendre en charge dans <?= $nameConnecteur; ?> une fois le
+            L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> (<strong><?= $intervenantDossier->getStatut()->getLibelle() ?> <?= (!empty($intervenant->getStructure())) ? ' / ' . $intervenant->getStructure()->getLibelleLong() : '' ?></strong>) n'a pas
+            encore retourné son
+            contrat. Vous pourrez le renouveller ou le prendre en charge dans <?= $nameConnecteur; ?> une fois le
             contrat retourné et daté.
         </div>
 
@@ -38,20 +40,28 @@ if ($priseEnCharge) {
 
         <div class="well">
             <?php if (empty($intervenantRh)): ?>
-                <p>L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> (<?= $intervenantDossier->getStatut()->getLibelle() ?>) n'a pas été trouvé dans <?= $nameConnecteur; ?>. Vous pouvez si vous le souhaiter prendre en charge cet intervenant avec les
+                <p>L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> (<strong><?= $intervenantDossier->getStatut()->getLibelle() ?> <?= (!empty($intervenant->getStructure())) ? ' / ' . $intervenant->getStructure()->getLibelleLong() : '' ?></strong>) n'a
+                    pas été trouvé
+                    dans <?= $nameConnecteur; ?>. Vous pouvez si vous le souhaiter prendre en charge cet intervenant avec les
                     données de son dossier, résumées ci-dessous :</p>
             <?php else: ?>
 
                 <?php if (!empty($affectationEnCours) && !empty($contratEnCours)): ?>
-                    <p>L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> (<?= $intervenantDossier->getStatut()->getLibelle() ?>) est bien dans le <?= $nameConnecteur ?> (<strong>numéro de matricule :</strong> <?= $intervenantRh->getCodeRh() ?>). Il
+                    <p>L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> (<strong><?= $intervenantDossier->getStatut()->getLibelle() ?> <?= (!empty($intervenant->getStructure())) ? ' / ' . $intervenant->getStructure()->getLibelleLong() : '' ?></strong>)
+                        est bien dans
+                        le <?= $nameConnecteur ?> (<strong>matricule : <?= $intervenantRh->getCodeRh() ?></strong>). Il
                         possède déjà actuellement une affectation pour l'année
                         universitaire <?= $intervenant->getAnnee()->getLibelle() ?> ainsi qu'un contrat. Vous pouvez mettre à jour ses données personnelles si vous le souhaitez avec le bouton synchronisation en bas de page.</p>
                 <?php elseif (!empty($affectationEnCours) && empty($contratsEnCours)): ?>
-                    <p>L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> (<?= $intervenantDossier->getStatut()->getLibelle() ?>) est bien dans le <?= $nameConnecteur ?> (<strong>numéro de matricule :</strong> <?= $intervenantRh->getCodeRh() ?>).Il
+                    <p>L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> (<strong><?= $intervenantDossier->getStatut()->getLibelle() ?> <?= (!empty($intervenant->getStructure())) ? ' / ' . $intervenant->getStructure()->getLibelleLong() : '' ?></strong>)
+                        est bien dans
+                        le <?= $nameConnecteur ?> (<strong>matricule : <?= $intervenantRh->getCodeRh() ?></strong>).Il
                         possède une affectation mais pas encore de contrat
                         pour l'année <?= $intervenant->getAnnee()->getLibelle() ?>. Vous pouvez mettre à jour ses données personnelles si vous le souhaitez avec le bouton synchronisation en bas de page</p>
                 <?php else: ?>
-                    <p>L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> (<?= $intervenantDossier->getStatut()->getLibelle() ?>) est bien dans le <?= $nameConnecteur ?> (<strong>numéro de matricule :</strong> <?= $intervenantRh->getCodeRh() ?>).Il ne
+                    <p>L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> (<strong><?= $intervenantDossier->getStatut()->getLibelle() ?> <?= (!empty($intervenant->getStructure())) ? ' / ' . $intervenant->getStructure()->getLibelleLong() : '' ?></strong>)
+                        est bien dans
+                        le <?= $nameConnecteur ?> (<strong>matricule : <?= $intervenantRh->getCodeRh() ?></strong>).Il ne
                         possède pas encore d'affectation pour
                         l'année <?= $intervenant->getAnnee()->getLibelle() ?>. Vous pouvez le renouveller pour cette année à l'aide du formulaire ci-dessous.</p>
                 <?php endif; ?>
diff --git a/module/ExportRh/view/export-rh/export-rh/siham/dataREN.phtml b/module/ExportRh/view/export-rh/export-rh/siham/dataREN.phtml
index 58e8a703c0..2fa8b00391 100644
--- a/module/ExportRh/view/export-rh/export-rh/siham/dataREN.phtml
+++ b/module/ExportRh/view/export-rh/export-rh/siham/dataREN.phtml
@@ -85,8 +85,15 @@
                     <input type="checkbox" checked="" disabled="disabled" title="Cette donnée n'est pas synchronisable, pensez à la mettre à jour manuellement dans SIHAM">
                     <label>IBAN:</label>
                 </td>
-                <td><?= $intervenantDossier->getIBAN() ?></td>
-                <td class="active"><?= (!empty($intervenantRh)) ? $intervenantRh->getIBAN() : '' ?></td>
+                <td>
+                    <?= $intervenantDossier->getIBAN() ?>
+                    <?php if ($intervenantRh->getIBAN() != $intervenantDossier->getIBAN()): ?>
+                        <span class="glyphicon glyphicon-alert" style="color:#a40000;"></span>
+                    <?php endif; ?>
+                </td>
+                <td class="active">
+                    <?= (!empty($intervenantRh)) ? $intervenantRh->getIBAN() : '' ?>
+                </td>
             </tr>
             <tr>
                 <td>
@@ -94,11 +101,24 @@
                     <label>BIC:</label>
 
                 </td>
-                <td><?= $intervenantDossier->getBIC() ?></td>
-                <td class="active"><?= (!empty($intervenantRh)) ? $intervenantRh->getBIC() : '' ?></td>
+                <td>
+                    <?= $intervenantDossier->getBIC() ?>
+                    <?php if ($intervenantRh->getBIC() != $intervenantDossier->getBIC()): ?>
+                        <span class="glyphicon glyphicon-alert" style="color:#a40000;"></span>
+                    <?php endif; ?>
+                </td>
+                <td class="active">
+                    <?= (!empty($intervenantRh)) ? $intervenantRh->getBIC() : '' ?>
+                </td>
             </tr>
             </tbody>
         </table>
+        <p>
+            <?php if ($intervenantRh->getBIC() != $intervenantDossier->getBIC() || $intervenantRh->getIBAN() != $intervenantDossier->getIBAN()): ?>
+                <span class="glyphicon glyphicon-alert" style="color:#a40000;"></span> <span
+                        style="font-style: italic;color:#555753">&nbsp;Attention, le BIC et l'IBAN sont différents entre SIHAM et OSE, le renouvellement SIHAM ne met pas à jour cette information, pensez à le faire manuellement dans SIHAM.</span>
+            <?php endif; ?>
+        </p>
 
     </div>
 </div>
\ No newline at end of file
-- 
GitLab