From d98fac2649f49ba81c1fc166c0b62e77780d84b7 Mon Sep 17 00:00:00 2001
From: Antony Le Courtes <antony.lecourtes@unicaen.fr>
Date: Mon, 26 Jul 2021 15:22:36 +0200
Subject: [PATCH] Synchronisation de l'adresse

---
 composer.lock                                 |  5 ++-
 .../src/Connecteur/Siham/SihamConnecteur.php  | 40 ++++++++++++++++++-
 .../src/Controller/ExportRhController.php     |  3 ++
 module/ExportRh/src/Entity/IntervenantRh.php  | 26 ++++++++++++
 .../ExportRh/src/Service/ExportRhService.php  |  7 ++++
 .../view/export-rh/export-rh/exporter.phtml   | 16 +++++++-
 6 files changed, 92 insertions(+), 5 deletions(-)

diff --git a/composer.lock b/composer.lock
index 0d1364353d..8a2394112a 100755
--- a/composer.lock
+++ b/composer.lock
@@ -2884,7 +2884,7 @@
             "source": {
                 "type": "git",
                 "url": "https://git.unicaen.fr/lib/unicaen/siham.git",
-                "reference": "147f055c50636a7329e47ecc79c26326dcc10475"
+                "reference": "b57e42f7d66ae72e410d216aa740ab9337fded83"
             },
             "require": {
                 "unicaen/app": "^3.0"
@@ -2908,7 +2908,7 @@
                 }
             ],
             "description": "PHP library for SIHAM webservices",
-            "time": "2021-07-22T14:04:13+00:00"
+            "time": "2021-07-26T08:57:28+00:00"
         },
         {
             "name": "unicaen/tbl",
@@ -7687,6 +7687,7 @@
                     "type": "github"
                 }
             ],
+            "abandoned": true,
             "time": "2020-11-30T07:30:19+00:00"
         },
         {
diff --git a/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php b/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php
index 356052ac2c..46e43fc121 100644
--- a/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php
+++ b/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php
@@ -92,6 +92,15 @@ class SihamConnecteur implements ConnecteurRhInterface
                 $intervenantRh->setIBAN($agent->getIban());
                 $intervenantRh->setBIC($agent->getBic());
                 $intervenantRh->setCodeRh($agent->getMatricule());
+                $intervenantRh->setAdresseNumero($agent->getNoVoieAdresse());
+                $intervenantRh->setAdresseNumeroCompl(null);
+                $intervenantRh->setAdresseVoirie(null);
+                $intervenantRh->setAdresseVoie($agent->getNomVoieAdresse());
+                $intervenantRh->setAdressePrecisions($agent->getComplementAdresse());
+                $intervenantRh->setAdresseCodePostal($agent->getCodePostalAdresse());
+                $intervenantRh->setAdresseCommune($agent->getBureauDistributeurAdresse());
+                $intervenantRh->setAdresseDateDebut($agent->getDateDebutAdresse());
+
 
                 return $intervenantRh;
             }
@@ -208,10 +217,37 @@ class SihamConnecteur implements ConnecteurRhInterface
             }
 
             //TODO : Synchroniser l'adresse
+            if ($datas['generiqueFieldset']['adressePrincipale']) {
+
+                $adresse = '';
+                $adresse .= (!empty($dossierIntervenant->getAdresseNumero())) ? $dossierIntervenant->getAdresseNumero() . ' ' : '';
+                $adresse .= (!empty($dossierIntervenant->getAdresseNumeroCompl())) ? $dossierIntervenant->getAdresseNumeroCompl() . ' ' : '';
+                $adresse .= (!empty($dossierIntervenant->getAdresseVoirie())) ? $dossierIntervenant->getAdresseVoirie() . ' ' : '';
+                $adresse .= (!empty($dossierIntervenant->getAdresseVoie())) ? $dossierIntervenant->getAdresseVoie() . ' ' : '';
+                $adresse .= (!empty($dossierIntervenant->getAdressePrecisions())) ? $dossierIntervenant->getAdressePrecisions() . ' ' : '';
+
+
+                $params = [
+                    'matricule'          => $intervenantRh->getCodeRh(),
+                    'dateDebut'          => $intervenantRh->getAdresseDateDebut(),
+                    'bureauDistributeur' => $dossierIntervenant->getAdresseCommune(),
+                    'complementAdresse'  => $adresse,
+                    'noVoie'             => ' ',
+                    'natureVoie'         => '',
+                    'nomVoie'            => ' ',
+                    'commune'            => $dossierIntervenant->getAdresseCommune(),
+                    'codePostal'         => $dossierIntervenant->getAdresseCodePostal(),
+                    'codePays'           => $dossierIntervenant->getAdressePays()->getCode(),
+
+                ];
+
+                $this->siham->modifierAdressePrincipaleAgent($params);
+            }
 
 
             return true;
-        } catch (SihamException $e) {
+        } catch
+        (SihamException $e) {
             throw new \Exception($e->getMessage());
         }
     }
@@ -333,6 +369,8 @@ class SihamConnecteur implements ConnecteurRhInterface
             ];
 
             $matricule = $this->siham->priseEnChargeAgent($params);
+            var_dump($this->siham->getClient()->getLastRequest());
+            die;
 
 
             return $matricule;
diff --git a/module/ExportRh/src/Controller/ExportRhController.php b/module/ExportRh/src/Controller/ExportRhController.php
index 2f7b390497..a37f456f7c 100644
--- a/module/ExportRh/src/Controller/ExportRhController.php
+++ b/module/ExportRh/src/Controller/ExportRhController.php
@@ -101,6 +101,7 @@ class ExportRhController extends AbstractController
          */
         try {
             $intervenantRh = $this->exportRhService->getIntervenantRh($intervenant);
+            
             //On a trouvé un intervenant dans le SI RH
             if (!empty($intervenantRh)) {
                 //On regarde si il a une affectation en cours pour l'année courante si oui alors on propose uniquement une synchronisation des données personnelles
@@ -150,6 +151,7 @@ class ExportRhController extends AbstractController
 
 
                 $result = $this->exportRhService->priseEnChargeIntrervenantRh($intervenant, $posts);
+
                 if ($result !== false) {
                     $this->flashMessenger()->addSuccessMessage('succes matricule : ' . $result);
                 } else {
@@ -157,6 +159,7 @@ class ExportRhController extends AbstractController
                 }
             }
         } catch (\Exception $e) {
+
             $this->flashMessenger()->addErrorMessage($e->getMessage());
         }
 
diff --git a/module/ExportRh/src/Entity/IntervenantRh.php b/module/ExportRh/src/Entity/IntervenantRh.php
index 2e7dc956ef..4f77db3a9e 100644
--- a/module/ExportRh/src/Entity/IntervenantRh.php
+++ b/module/ExportRh/src/Entity/IntervenantRh.php
@@ -63,6 +63,8 @@ class IntervenantRh
 
     public ?string             $emailPersoDateDebut;
 
+    public ?string             $adresseDateDebut;
+
     public ?string             $adressePrecisions;
 
     public ?string             $adresseNumero;
@@ -723,6 +725,30 @@ class IntervenantRh
 
 
 
+    /**
+     * @return string|null
+     */
+    public function getAdresseDateDebut(): ?string
+    {
+        return $this->adresseDateDebut;
+    }
+
+
+
+    /**
+     * @param string|null $adresseDateDebut
+     *
+     * @return IntervenantRH
+     */
+    public function setAdresseDateDebut(?string $adresseDateDebut): IntervenantRH
+    {
+        $this->adresseDateDebut = $adresseDateDebut;
+
+        return $this;
+    }
+
+
+
     /**
      * @return string|null
      */
diff --git a/module/ExportRh/src/Service/ExportRhService.php b/module/ExportRh/src/Service/ExportRhService.php
index 9fd95f2fad..80bf8da217 100644
--- a/module/ExportRh/src/Service/ExportRhService.php
+++ b/module/ExportRh/src/Service/ExportRhService.php
@@ -255,4 +255,11 @@ class ExportRhService extends AbstractService
         return $this->connecteur->getConnecteurName();
     }
 
+
+
+    public function getConnecteur()
+    {
+        return $this->connecteur;
+    }
+
 }
\ No newline at end of file
diff --git a/module/ExportRh/view/export-rh/export-rh/exporter.phtml b/module/ExportRh/view/export-rh/export-rh/exporter.phtml
index 5ceb826cdf..271ae8b885 100755
--- a/module/ExportRh/view/export-rh/export-rh/exporter.phtml
+++ b/module/ExportRh/view/export-rh/export-rh/exporter.phtml
@@ -15,7 +15,7 @@ if ($priseEnCharge) {
 
 ?>
 <br/>
-    
+
 <form class="no-intranavigation form-export-rh" action="<?= $this->url($action, ['intervenant' => $intervenant->getId()]) ?>" method="post">
 
     <?php echo $this->messenger()->addCurrentMessagesFromFlashMessenger()->addMessagesFromFlashMessenger(); ?>
@@ -126,7 +126,19 @@ if ($priseEnCharge) {
                         echo $adresse;
                         ?>
                     </td>
-                    <td class="active"></td>
+                    <td class="active">
+                        <?php
+                        $adresse = '';
+                        $adresse .= (!empty(trim($intervenantRh->getAdresseNumero()))) ? $intervenantRh->getAdresseNumero() . ' ' : '';
+                        $adresse .= (!empty(trim($intervenantRh->getAdresseNumeroCompl()))) ? $intervenantRh->getAdresseNumeroCompl() . ' ' : '';
+                        $adresse .= (!empty(trim($intervenantRh->getAdresseVoirie()))) ? $intervenantRh->getAdresseVoirie() . ' ' : '';
+                        $adresse .= (!empty(trim($intervenantRh->getAdresseVoie()))) ? $intervenantRh->getAdresseVoie() . ' ' : '';
+                        $adresse .= (!empty(trim($intervenantRh->getAdressePrecisions()))) ? '<br/>' . $intervenantRh->getAdressePrecisions() . ' ' : '';
+                        $adresse .= '<br/>';
+                        $adresse .= $intervenantRh->getAdresseCodePostal() . ' ' . $intervenantRh->getAdresseCommune();
+                        echo $adresse;
+                        ?>
+                    </td>
                 </tr>
                 <tr>
                     <td>
-- 
GitLab