diff --git a/module/Application/src/Application/Controller/IntervenantController.php b/module/Application/src/Application/Controller/IntervenantController.php index fad0b184c1234320b22e79eb7c67db9842e87286..099ed22c0c3c1b85810936bd65c6df23fe030c64 100755 --- a/module/Application/src/Application/Controller/IntervenantController.php +++ b/module/Application/src/Application/Controller/IntervenantController.php @@ -189,9 +189,12 @@ class IntervenantController extends AbstractController $this->getProcessusPlafond()->controle($intervenant, $typeVolumeHoraire); $campagneSaisie = $this->getServiceCampagneSaisie()->getBy($intervenant->getStatut()->getTypeIntervenant(), $typeVolumeHoraire); + if (!$campagneSaisie->estOuverte()) { + die; $role = $this->getServiceContext()->getSelectedIdentityRole(); if ($role->getIntervenant()) { + $this->flashMessenger()->addErrorMessage($campagneSaisie->getMessage($role)); } else { $this->flashMessenger()->addWarningMessage($campagneSaisie->getMessage($role)); diff --git a/module/Application/src/Application/View/Helper/Intervenant/IntervenantViewHelper.php b/module/Application/src/Application/View/Helper/Intervenant/IntervenantViewHelper.php index ea3c8148e5a5c8a987f6029d7f84e3d10c76a29b..9ddd46b361661f74ac59505d425dbfdb5c6fd589 100755 --- a/module/Application/src/Application/View/Helper/Intervenant/IntervenantViewHelper.php +++ b/module/Application/src/Application/View/Helper/Intervenant/IntervenantViewHelper.php @@ -204,4 +204,5 @@ class IntervenantViewHelper extends AbstractHtmlElement return $statuts; } + } \ No newline at end of file diff --git a/module/ExportRh/config/module.config.php b/module/ExportRh/config/module.config.php index 460ea395bae9a07354efdcc507be43bb3b405699..f7870ad78c10ddf4314bb029e2d82058f458f89e 100644 --- a/module/ExportRh/config/module.config.php +++ b/module/ExportRh/config/module.config.php @@ -56,6 +56,17 @@ return [ ], ], ], + 'sync' => [ + 'type' => 'Segment', + 'may_terminate' => false, + 'options' => [ + 'route' => '/:intervenant/sync', + 'defaults' => [ + 'controller' => Controller\ExportRhController::class, + 'action' => 'synchroniser', + ], + ], + ], 'administration' => [ 'type' => 'Literal', 'may_terminate' => true, @@ -131,7 +142,7 @@ return [ ], [ 'controller' => Controller\ExportRhController::class, - 'action' => ['exporter', 'prise-en-charge', 'renouvellement'], + 'action' => ['exporter', 'prise-en-charge', 'renouvellement', 'synchroniser'], 'privileges' => [Privileges::EXPORT_RH_SYNC], 'assertion' => ExportRhAssertion::class, diff --git a/module/ExportRh/src/Connecteur/ConnecteurRhInterface.php b/module/ExportRh/src/Connecteur/ConnecteurRhInterface.php index bda2dddc10e9d23b2fc3549c4988a90bb128a381..3f978737acf4c7e6a9e38bfd5108845e3548851c 100644 --- a/module/ExportRh/src/Connecteur/ConnecteurRhInterface.php +++ b/module/ExportRh/src/Connecteur/ConnecteurRhInterface.php @@ -13,7 +13,15 @@ interface ConnecteurRhInterface - public function trouverIntervenantRh(\Application\Entity\Db\Intervenant $intervenant): ?IntervenantRh; + public function recupererIntervenantRh(\Application\Entity\Db\Intervenant $intervenant): ?IntervenantRh; + + + + public function recupererDonneesAdministrativesIntervenantRh(\Application\Entity\Db\Intervenant $intervenant): ?array; + + + + public function recupererAffectationEnCoursIntervenantRh(\Application\Entity\Db\Intervenant $intervenant): ?array; @@ -21,6 +29,34 @@ interface ConnecteurRhInterface + public function renouvellerIntervenantRh(\Application\Entity\Db\Intervenant $intervenant, array $postData): ?string; + + + + public function synchroniserDonneesPersonnelles(\Application\Entity\Db\Intervenant $intervenant, $datas): bool; + + + + public function recupererListeUO(): ?array; + + + + public function recupererListePositions(): ?array; + + + + public function recupererListeEmplois(): ?array; + + + + public function recupererListeStatuts(): ?array; + + + + public function recupererListeModalites(): ?array; + + + public function getConnecteurName(): string; diff --git a/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php b/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php index ef51f20330850ab32b4a53f74dda967e25f550dc..365d7c3104b4e97a9a8b0e18f42a660013cc4c12 100644 --- a/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php +++ b/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php @@ -11,6 +11,7 @@ use ExportRh\Form\Fieldset\SihamFieldset; use UnicaenSiham\Exception\SihamException; use UnicaenSiham\Service\Siham; use Zend\Form\Fieldset; +use Zend\Validator\Date; class SihamConnecteur implements ConnecteurRhInterface @@ -38,8 +39,7 @@ class SihamConnecteur implements ConnecteurRhInterface ]; $listIntervenantRh = []; - //$result = $this->siham->rechercherAgent($params); - $result = $this->siham->recupererListeAgents($params); + $result = $this->siham->recupererListeAgents($params); if (!empty($result)) { foreach ($result as $v) { @@ -60,12 +60,12 @@ class SihamConnecteur implements ConnecteurRhInterface - public function trouverIntervenantRh(\Application\Entity\Db\Intervenant $intervenant): ?IntervenantRh + public function recupererIntervenantRh(\Application\Entity\Db\Intervenant $intervenant): ?IntervenantRh { if (!empty($intervenant->getCodeRh())) { $codeRh = $intervenant->getCodeRh(); - //Si code RH ne contient pas UCN alors on le reformate + //Si code RH ne contient pas UCN alors on le reformate par rapport au masque matricule de SIHAM if (!strstr($codeRh, 'UCN')) { $codeRh = $this->siham->getCodeAdministration() . str_pad($codeRh, 9, '0', STR_PAD_LEFT); } @@ -81,10 +81,17 @@ class SihamConnecteur implements ConnecteurRhInterface $intervenantRh = new IntervenantRH(); $intervenantRh->setNomUsuel($agent->getNomUsuel()); $intervenantRh->setPrenom($agent->getPrenom()); - $intervenantRh->setDateNaissance(new \DateTime($agent->getDateNaissance())); $intervenantRh->setTelPerso($agent->getTelephonePerso()); + $intervenantRh->setTelPersoDateDebut($agent->getTelephonePersoDateDebut()); $intervenantRh->setTelPro($agent->getTelephonePro()); - $intervenantRh->setNumeroInsee($agent->getNumeroInseeDefinitif()); + $intervenantRh->setTelProDateDebut($agent->getTelephoneProDateDebut()); + $intervenantRh->setEmailPro($agent->getEmailPro()); + $intervenantRh->setEmailProDateDebut($agent->getEmailProDateDebut()); + $intervenantRh->setEmailPerso($agent->getEmailPerso()); + $intervenantRh->setEmailPersoDateDebut($agent->getEmailPersoDateDebut()); + $intervenantRh->setIBAN($agent->getIban()); + $intervenantRh->setBIC($agent->getBic()); + $intervenantRh->setCodeRh($agent->getMatricule()); return $intervenantRh; } @@ -95,7 +102,7 @@ class SihamConnecteur implements ConnecteurRhInterface - public function recupererDonneesAdministrativesIntervenantRh(\Application\Entity\Db\Intervenant $intervenant) + public function recupererDonneesAdministrativesIntervenantRh(\Application\Entity\Db\Intervenant $intervenant): ?array { try { if (!empty($intervenant->getCodeRh())) { @@ -109,14 +116,15 @@ class SihamConnecteur implements ConnecteurRhInterface $dateObservation = $intervenant->getAnnee()->getDateDebut(); $params = [ - 'listeMatricules' => [$codeRh], - 'dateObservation' => $intervenant->getAnnee()->getDateDebut()->format('Y-m-d'), + 'listeMatricules' => [$codeRh], + 'dateObservation' => $intervenant->getAnnee()->getDateDebut()->format('Y-m-d'), + 'dateFinObservation' => $intervenant->getAnnee()->getDateFin()->format('Y-m-d'), ]; $donneesAdministratives = $this->siham->recupererDonneesAdministrativeAgent($params); - return $donneesAdministratives; + return (array)$donneesAdministratives; } return null; @@ -127,16 +135,85 @@ class SihamConnecteur implements ConnecteurRhInterface - public function recupererAffectationEnCours($intervenant) + public function recupererAffectationEnCoursIntervenantRh(\Application\Entity\Db\Intervenant $intervenant): ?array { - $affectation = []; + $affectations = []; $donneesAdministratives = $this->recupererDonneesAdministrativesIntervenantRh($intervenant); - - if (!empty($donneesAdministratives->listeAffectations)) { - $affectation = $donneesAdministratives->listeAffectations; + if (!empty($donneesAdministratives['listeAffectations']) || !empty($donneesAdministratives->listeAffectations)) { + $listeAffectations = (isset($donneesAdministratives['listeAffectations'])) ? $donneesAdministratives['listeAffectations'] : $donneesAdministratives->listeAffectations; + foreach ($listeAffectations as $affectation) { + //On prend uniquement les affectations fonctionnelles + if ($affectation->codeTypeRattachement == 'FUN') { + $affectations[] = $affectation; + } + }; } - return $affectation; + + return $affectations; + } + + + + public function synchroniserDonneesPersonnelles(\Application\Entity\Db\Intervenant $intervenant, $datas): bool + { + try { + + + $intervenantRh = $this->recupererIntervenantRh($intervenant); + $dossierIntervenant = $this->getServiceDossier()->getByIntervenant($intervenant); + + //Synchronisation Tel pro + if ($datas['generiqueFieldset']['telPro']) { + $params = [ + 'matricule' => $intervenantRh->getCodeRh(), + 'numero' => $dossierIntervenant->getTelPro(), + 'dateDebut' => $intervenantRh->getTelProDateDebut(), + ]; + + $this->siham->modifierCoordonneesAgent($params, Siham::SIHAM_CODE_TYPOLOGIE_FIXE_PRO); + } + + //Synchronisation Tel perso + if ($datas['generiqueFieldset']['telPerso']) { + $params = [ + 'matricule' => $intervenantRh->getCodeRh(), + 'numero' => $dossierIntervenant->getTelPerso(), + 'dateDebut' => $intervenantRh->getTelPersoDateDebut(), + ]; + + $this->siham->modifierCoordonneesAgent($params, Siham::SIHAM_CODE_TYPOLOGIE_PORTABLE_PERSO); + } + + //Synchronisation email pro + if ($datas['generiqueFieldset']['emailPro']) { + $params = [ + 'matricule' => $intervenantRh->getCodeRh(), + 'numero' => $dossierIntervenant->getEmailPro(), + 'dateDebut' => $intervenantRh->getEmailProDateDebut(), + ]; + + $this->siham->modifierCoordonneesAgent($params, Siham::SIHAM_CODE_TYPOLOGIE_EMAIL_PRO); + } + + //Synchronisation email perso + if ($datas['generiqueFieldset']['emailPerso']) { + $params = [ + 'matricule' => $intervenantRh->getCodeRh(), + 'numero' => $dossierIntervenant->getEmailPerso(), + 'dateDebut' => $intervenantRh->getEmailPersoDateDebut(), + ]; + + $this->siham->modifierCoordonneesAgent($params, Siham::SIHAM_CODE_TYPOLOGIE_EMAIL_PERSO); + } + + //TODO : Synchroniser l'adresse + + + return true; + } catch (SihamException $e) { + throw new \Exception($e->getMessage()); + } } @@ -150,6 +227,7 @@ class SihamConnecteur implements ConnecteurRhInterface /* Récupération du dossier de l'intervenant */ $dossierIntervenant = $this->getServiceDossier()->getByIntervenant($intervenant); + /*POSITION ADMINISTRATIVE*/ $position[] = ['dateEffetPosition' => $datas['connecteurForm']['anneeUniversitaire'], @@ -182,6 +260,7 @@ class SihamConnecteur implements ConnecteurRhInterface 'debutAdresse' => $datas['connecteurForm']['anneeUniversitaire'], ]; + //TODO : travailler les coordonnées bancaires pour la prise en charge /*COORDONNEES BANCAIRES $coordonnees = $this->siham->formatCoordoonneesBancairesForSiham($dossierIntervenant->getIBAN(), $dossierIntervenant->getBIC()); $coordonnees['dateDebBanque'] = $this->getRequest()->getPost('anneeUniversitaire'); @@ -274,33 +353,49 @@ class SihamConnecteur implements ConnecteurRhInterface /* Récupération du dossier de l'intervenant */ $dossierIntervenant = $this->getServiceDossier()->getByIntervenant($intervenant); + $currentDate = new \DateTime(); + $currentMonth = $currentDate->format('m'); + if ($currentMonth < 9) { + $dateEffet = $datas['connecteurForm']['anneeUniversitaire'] + 1 . $currentDate->format('-m-d'); + } else { + $dateEffet = $datas['connecteurForm']['anneeUniversitaire'] . $currentDate->format('-m-d'); + } + + + /*Formatage du matricule*/ + $matricule = $intervenant->getCodeRh(); + //Si code RH ne contient pas UCN alors on le reformate + if (!strstr($matricule, 'UCN')) { + $matricule = $this->siham->getCodeAdministration() . str_pad($matricule, 9, '0', STR_PAD_LEFT); + } + /*POSITION ADMINISTRATIVE*/ $position[] = - ['dateEffetPosition' => $datas['connecteurForm']['anneeUniversitaire'], + ['dateEffetPosition' => $dateEffet, 'position' => $datas['connecteurForm']['position']]; /*STATUT*/ $statut[] = - ['dateEffetStatut' => $datas['connecteurForm']['anneeUniversitaire'], + ['dateEffetStatut' => $dateEffet, 'statut' => $datas['connecteurForm']['statut']]; /*MODALITE SERVICE*/ $service[] = - ['dateEffetModalite' => $datas['connecteurForm']['anneeUniversitaire'], + ['dateEffetModalite' => $dateEffet, 'modalite' => $datas['connecteurForm']['modaliteService']]; $params = [ 'categorieEntree' => 'ACTIVE', - 'dateRenouvellement' => $datas['connecteurForm']['anneeUniversitaire'], + 'dateRenouvellement' => $dateEffet, 'emploi' => $datas['connecteurForm']['emploi'], 'listeModalitesServices' => $service, 'listeStatuts' => $statut, - + 'listePositions' => $position, 'motifEntree' => 'REN', - 'matricule' => $intervenant->getCodeRh(), + 'matricule' => $matricule, 'temoinValidite' => '1', 'UO' => $datas['connecteurForm']['affectation'], ]; @@ -340,21 +435,21 @@ class SihamConnecteur implements ConnecteurRhInterface - public function recupererListeEmplois(): array + public function recupererListeEmplois(): ?array { return $this->siham->recupererListeEmplois(); } - public function recupererListeStatuts(): array + public function recupererListeStatuts(): ?array { return $this->siham->recupererListeStatuts(); } - public function recupererListeModalites(): array + public function recupererListeModalites(): ?array { return $this->siham->recupererListeModalites(); } diff --git a/module/ExportRh/src/Controller/ExportRhController.php b/module/ExportRh/src/Controller/ExportRhController.php index 9d8c77a35ba5568a98cd49c85e1f051c2ee8bd48..36a5583026f9bc3c260fb8c9217f00435a93d507 100644 --- a/module/ExportRh/src/Controller/ExportRhController.php +++ b/module/ExportRh/src/Controller/ExportRhController.php @@ -101,19 +101,14 @@ class ExportRhController extends AbstractController */ try { $intervenantRh = $this->exportRhService->getIntervenantRh($intervenant); + //On a trouvé un intervenant dans le SI RH if (!empty($intervenantRh)) { - //On a trouvé un intervenant dans le SI RH - $affectationEnCours = $this->exportRhService->getAffectationEnCours($intervenant); //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 + $affectationEnCours = current($this->exportRhService->getAffectationEnCoursIntervenantRh($intervenant)); + $renouvellement = true; if (!empty($affectationEnCours)) { - foreach ($affectationEnCours as $affectation) //Si non on propose un renouvellement de l'intervenant SI RH - { - if ($affectation->codeTypeRattachement == 'FUN') { - $affectationFonctionnelle = $affectation; - $renouvellement = false; - } - } + $renouvellement = false; } } else { $priseEnCharge = true; @@ -121,11 +116,11 @@ class ExportRhController extends AbstractController $nameConnecteur = $this->exportRhService->getConnecteurName(); - $form = $this->getExportRhForm(); - } catch (SihamException $e) { + $form = $this->getExportRhForm($intervenant); + } catch (\Exception $e) { $this->flashMessenger()->addErrorMessage($e->getMessage()); } - + return compact('typeIntervenant', 'intervenant', @@ -136,7 +131,7 @@ class ExportRhController extends AbstractController 'renouvellement', 'priseEnCharge', 'nameConnecteur', - 'affectationFonctionnelle'); + 'affectationEnCours'); } @@ -182,9 +177,9 @@ class ExportRhController extends AbstractController $posts = $this->getRequest()->getPost(); $result = $this->exportRhService->renouvellementIntervenantRh($intervenant, $posts); if ($result !== false) { - $this->flashMessenger()->addSuccessMessage('succes du renouvellement matricule : ' . $result); + $this->flashMessenger()->addSuccessMessage('Le renouvellement s\'est déroulé avec succés'); } else { - $this->flashMessenger()->addErrorMessage('Probleme de renouvellement'); + $this->flashMessenger()->addErrorMessage('Un problème est survenu lors de la tentative de renouvellement de l\'intervenant'); } } } catch (\Exception $e) { @@ -194,4 +189,30 @@ class ExportRhController extends AbstractController return $this->redirect()->toRoute('intervenant/exporter', [], [], true); } + + + + public function synchroniserAction() + { + try { + if ($this->getRequest()->isPost()) { + $intervenant = $this->getEvent()->getParam('intervenant'); + if (!$intervenant) { + throw new \LogicException('Intervenant non précisé ou inexistant'); + } + + $posts = $this->getRequest()->getPost(); + $result = $this->exportRhService->synchroniserDonneesPersonnelles($intervenant, $posts); + if ($result !== false) { + $this->flashMessenger()->addSuccessMessage('Les données personnelles ont bien été synchronisé'); + } else { + $this->flashMessenger()->addErrorMessage('Un problème est survenu lors de la synchronisation des données personnelles'); + } + } + } catch (\Exception $e) { + $this->flashMessenger()->addErrorMessage($e->getMessage()); + } + + return $this->redirect()->toRoute('intervenant/exporter', [], [], true); + } } diff --git a/module/ExportRh/src/Entity/IntervenantRh.php b/module/ExportRh/src/Entity/IntervenantRh.php index 32acea61d3dbaeb82d9f38fdfb469c0e5cc4cffb..2e7dc956ef2354c20f48d8d36c55b212df2ad9f7 100644 --- a/module/ExportRh/src/Entity/IntervenantRh.php +++ b/module/ExportRh/src/Entity/IntervenantRh.php @@ -49,12 +49,20 @@ class IntervenantRh public ?string $telPro; + public ?string $telProDateDebut; + public ?string $telPerso; + public ?string $telPersoDateDebut; + public ?string $emailPro; + public ?string $emailProDateDebut; + public ?string $emailPerso; + public ?string $emailPersoDateDebut; + public ?string $adressePrecisions; public ?string $adresseNumero; @@ -547,6 +555,30 @@ class IntervenantRh + /** + * @return string|null + */ + public function getTelProDateDebut(): ?string + { + return $this->telProDateDebut; + } + + + + /** + * @param string|null $telProDateDebut + * + * @return IntervenantRH + */ + public function setTelProDateDebut(?string $telProDateDebut): IntervenantRH + { + $this->telProDateDebut = $telProDateDebut; + + return $this; + } + + + /** * @return string|null */ @@ -571,6 +603,30 @@ class IntervenantRh + /** + * @return string|null + */ + public function getTelPersoDateDebut(): ?string + { + return $this->telPersoDateDebut; + } + + + + /** + * @param string|null $telPersoDateDebut + * + * @return IntervenantRH + */ + public function setTelPersoDateDebut(?string $telPersoDateDebut): IntervenantRH + { + $this->telPersoDateDebut = $telPersoDateDebut; + + return $this; + } + + + /** * @return string|null */ @@ -595,6 +651,30 @@ class IntervenantRh + /** + * @return string|null + */ + public function getEmailProDateDebut(): ?string + { + return $this->emailProDateDebut; + } + + + + /** + * @param string|null $emailProDateDebut + * + * @return IntervenantRH + */ + public function setEmailProDateDebut(?string $emailProDateDebut): IntervenantRH + { + $this->emailProDateDebut = $emailProDateDebut; + + return $this; + } + + + /** * @return string|null */ @@ -619,6 +699,30 @@ class IntervenantRh + /** + * @return string|null + */ + public function getEmailPersoDateDebut(): ?string + { + return $this->emailPersoDateDebut; + } + + + + /** + * @param string|null $emailPersoDateDebut + * + * @return IntervenantRH + */ + public function setEmailPersoDateDebut(?string $emailPersoDateDebut): IntervenantRH + { + $this->emailPersoDateDebut = $emailPersoDateDebut; + + return $this; + } + + + /** * @return string|null */ diff --git a/module/ExportRh/src/Form/ExportRhForm.php b/module/ExportRh/src/Form/ExportRhForm.php index 1bab9a666b84ecedfedd879d49c7451de62a06f2..5ef4a91ac82f129624b56d2df5af6b1c29b7664a 100644 --- a/module/ExportRh/src/Form/ExportRhForm.php +++ b/module/ExportRh/src/Form/ExportRhForm.php @@ -9,7 +9,7 @@ use Zend\Form\Fieldset; class ExportRhForm extends AbstractForm { - protected $fieldsetConnecteur = null; + protected $fieldsetConnecteur; diff --git a/module/ExportRh/src/Form/Factory/ExportRhFormFactory.php b/module/ExportRh/src/Form/Factory/ExportRhFormFactory.php index 1eb7e0666e9152d3c57355ec6535a2abb8b77829..d5369f5c010541b10be031323eb19ad2546e7f8e 100644 --- a/module/ExportRh/src/Form/Factory/ExportRhFormFactory.php +++ b/module/ExportRh/src/Form/Factory/ExportRhFormFactory.php @@ -17,7 +17,8 @@ class ExportRhFormFactory public function __invoke(ContainerInterface $container, $requestedName, $options = null) { - $config = $container->get('Config'); + $config = $container->get('Config'); + $connecteur = ''; switch ($config['export-rh']['connecteur']) { case 'siham': @@ -25,8 +26,10 @@ class ExportRhFormFactory break; } + $fieldset = $connecteur->recupererFieldsetConnecteur(); + $form = new ExportRhForm($fieldset); return $form; diff --git a/module/ExportRh/src/Form/Fieldset/SihamFieldset.php b/module/ExportRh/src/Form/Fieldset/SihamFieldset.php index fbfb4421fa7ecca1cd2ffdcb107174291a8181de..a82e7d4f693f46679cde63fe7c6b5c549afe32ba 100644 --- a/module/ExportRh/src/Form/Fieldset/SihamFieldset.php +++ b/module/ExportRh/src/Form/Fieldset/SihamFieldset.php @@ -30,8 +30,7 @@ class SihamFieldset extends AbstractFieldset $this->get('anneeUniversitaire') - ->setValueOptions(['' => '(Sélectionnez une année de prise en charge)', - '2020-09-01' => '2020/2021', + ->setValueOptions(['2020-09-01' => '2020/2021', '2021-09-01' => '2021/2022',]); @@ -52,9 +51,17 @@ class SihamFieldset extends AbstractFieldset 'type' => 'Select', ]); + $valuesModaliteService = \UnicaenApp\Util::collectionAsOptions($this->getSihamConnecteur()->recupererListeModalites()); + + if (count($valuesModaliteService) == 1) { + $this->get('modaliteService') + ->setValueOptions($valuesModaliteService) + ->setAttribute('readonly', 'readonly'); + } else { + $this->get('modaliteService') + ->setValueOptions(['' => '(Sélectionnez une modalité de service)'] + $valuesModaliteService); + } - $this->get('modaliteService') - ->setValueOptions(['' => '(Sélectionnez une modalité de service)'] + \UnicaenApp\Util::collectionAsOptions($this->getSihamConnecteur()->recupererListeModalites())); //Statut $this->add([ @@ -71,9 +78,17 @@ class SihamFieldset extends AbstractFieldset 'type' => 'Select', ]); + $valuesStatut = \UnicaenApp\Util::collectionAsOptions($this->getSihamConnecteur()->recupererListeStatuts()); + + if (count($valuesStatut) == 1) { + $this->get('statut') + ->setValueOptions($valuesStatut) + ->setAttribute('readonly', 'readonly'); + } else { + $this->get('statut') + ->setValueOptions(['' => '(Sélectionnez un statut)'] + $valuesStatut); + } - $this->get('statut') - ->setValueOptions(['' => '(Sélectionnez un statut)'] + \UnicaenApp\Util::collectionAsOptions($this->getSihamConnecteur()->recupererListeStatuts())); //Position administrative $this->add([ @@ -90,9 +105,17 @@ class SihamFieldset extends AbstractFieldset 'type' => 'Select', ]); + $valuesPosition = \UnicaenApp\Util::collectionAsOptions($this->getSihamConnecteur()->recupererListePositions()); + + if (count($valuesPosition) == 1) { + $this->get('position') + ->setValueOptions($valuesPosition) + ->setAttribute('readonly', 'readonly'); + } else { + $this->get('statut') + ->setValueOptions(['' => '(Sélectionnez une position)'] + $valuesPosition); + } - $this->get('position') - ->setValueOptions(['' => '(Sélectionnez une position administrative)'] + \UnicaenApp\Util::collectionAsOptions($this->getSihamConnecteur()->recupererListePositions())); //Affectation $this->add([ @@ -109,9 +132,17 @@ class SihamFieldset extends AbstractFieldset 'type' => 'Select', ]); + $valuesAffectation = \UnicaenApp\Util::collectionAsOptions($this->getSihamConnecteur()->recupererListeUO()); + + if (count($valuesAffectation) == 1) { + $this->get('affectation') + ->setValueOptions($valuesAffectation) + ->setAttribute('readonly', 'readonly'); + } else { + $this->get('affectation') + ->setValueOptions(['' => '(Sélectionnez une affectation)'] + $valuesAffectation); + } - $this->get('affectation') - ->setValueOptions(['' => '(Sélectionnez une affectation)'] + \UnicaenApp\Util::collectionAsOptions($this->getSihamConnecteur()->recupererListeUO())); //Type d'emploi $this->add([ @@ -128,9 +159,17 @@ class SihamFieldset extends AbstractFieldset 'type' => 'Select', ]); + $valuesEmploi = \UnicaenApp\Util::collectionAsOptions($this->getSihamConnecteur()->recupererListeEmplois()); + + if (count($valuesEmploi) == 1) { + $this->get('emploi') + ->setValueOptions($valuesEmploi) + ->setAttribute('readonly', 'readonly'); + } else { + $this->get('emploi') + ->setValueOptions(['' => '(Sélectionnez un emploi)'] + $valuesEmploi); + } - $this->get('emploi') - ->setValueOptions(['' => '(Sélectionnez un type d\'emploi)'] + \UnicaenApp\Util::collectionAsOptions($this->getSihamConnecteur()->recupererListeEmplois())); return $this; } diff --git a/module/ExportRh/src/Service/ExportRhService.php b/module/ExportRh/src/Service/ExportRhService.php index 767def32b7b9a13d0913049ad25ff71ae00475b7..9fd95f2fade8bdb6328a41513d7b0f5460fb49f2 100644 --- a/module/ExportRh/src/Service/ExportRhService.php +++ b/module/ExportRh/src/Service/ExportRhService.php @@ -57,7 +57,7 @@ class ExportRhService extends AbstractService public function getIntervenantRh($intervenant) { - $intervenantRh = $this->connecteur->trouverIntervenantRh($intervenant); + $intervenantRh = $this->connecteur->recupererIntervenantRh($intervenant); return $intervenantRh; } @@ -88,9 +88,9 @@ class ExportRhService extends AbstractService - public function getAffectationEnCours($intervenant) + public function getAffectationEnCoursIntervenantRh($intervenant) { - $affectation = $this->connecteur->recupererAffectationEnCours($intervenant); + $affectation = $this->connecteur->recupererAffectationEnCoursIntervenantRh($intervenant); return $affectation; @@ -147,6 +147,13 @@ class ExportRhService extends AbstractService + public function synchroniserDonneesPersonnelles(Intervenant $intervenant, $datas) + { + return $this->connecteur->synchroniserDonneesPersonnelles($intervenant, $datas); + } + + + public function getIntervenantRHParamsDescription(): array { $desc = [ diff --git a/module/ExportRh/view/export-rh/export-rh/exporter.phtml b/module/ExportRh/view/export-rh/export-rh/exporter.phtml index ea80448395e3474086d54aa570813d6695f79dde..74ef9303d713c213c3095424d2010878b676afde 100755 --- a/module/ExportRh/view/export-rh/export-rh/exporter.phtml +++ b/module/ExportRh/view/export-rh/export-rh/exporter.phtml @@ -10,7 +10,7 @@ if ($priseEnCharge) { } elseif ($renouvellement) { $action = 'intervenant/ren'; } else { - $action = 'intervenant/ren'; + $action = 'intervenant/sync'; } ?> @@ -19,172 +19,200 @@ if ($priseEnCharge) { <?php echo $this->messenger()->addCurrentMessagesFromFlashMessenger()->addMessagesFromFlashMessenger(); ?> -<div class="messenger alert alert-warning"> - <?php if ($typeIntervenant == 'P'): ?> - L'export des données intervenants vers le SIRH n'est disponible que pour les vacataires. - <?php elseif (empty($intervenantDossierValidation)): ?> - Vous devez d'abord valider les données personnelles de <?= $intervenant; ?> pour pouvoir les synchroniser avec le SIRH - <?php elseif (empty($intervenantRh)): ?> - <?php endif; ?> -</div> -<?php if (!empty($form)): ?> - <?php - $form->prepare(); - $generiqueFieldset = $form->get('generiqueFieldset'); - $connecteurFieldset = $form->get('connecteurForm'); - ?> - - <form class="no-intranavigation" action="<?= $this->url($action, ['intervenant' => $intervenant->getId()]) ?>" method="post"> - <!--Partie générique du formulaire--> - <div class="panel panel-default"> - <div class="panel-heading">Récapitulatif des données personnelles</div> - <div class="panel-body"> - <?php if (empty($intervenantRh)): ?> - <p>L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> n'a pas été trouvé dans le SI RH. Vous pouvez si vous le souhaiter prendre en charge cette intervenant avec les données de son dossier, résumées ci-dessous :</p> - <?php else: ?> - <?php if (!empty($affectationFonctionnelle)): ?> - <p>L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> est bien dans le <?= $nameConnecteur ?>. Il possède déjà actuellement une affectation pour l'année universitaire en cours. Vous pouvez mettre à jour ses données personnelles si - vous le souhaitez avec le bouton synchronisation ci-dessous.</p> - <?php else: ?> - <p>L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> est bien dans le <?= $nameConnecteur ?>.Il ne possède pas encore d'affectation pour l'année en cours. Vous pouvez le renouveller pour cette année à l'aide du formulaire - ci-dessous.</p> - <?php endif; ?> - <?php endif; ?> - - <table class="table"> - <thead> - <tr> - <th>Champs</th> - <th>Données</th> - - </tr> - </thead> - <tbody> - <tr> - <td> - <?= $this->formCheckbox($generiqueFieldset->get('nomUsuel')); ?> - <?= $this->formLabel($generiqueFieldset->get('nomUsuel')) ?> : - </td> - <td><?= $intervenantDossier->getNomUsuel() ?></td> - </tr> - <tr> - <td> - <?= $this->formCheckbox($generiqueFieldset->get('prenom')); ?> - <?= $this->formLabel($generiqueFieldset->get('prenom')) ?> : - </td> - <td><?= $intervenantDossier->getPrenom() ?></td> - - </tr> - <tr> - <td> - <?= $this->formCheckbox($generiqueFieldset->get('dateNaissance')); ?> - <?= $this->formLabel($generiqueFieldset->get('dateNaissance')) ?> : - </td> - <td><?= $intervenantDossier->getDateNaissance()->format('d/m/Y') ?></td> - - </tr> - <tr> - <td> - <?= $this->formCheckbox($generiqueFieldset->get('nationalite')); ?> - <?= $this->formLabel($generiqueFieldset->get('nationalite')) ?> : - </td> - <td><?= $intervenantDossier->getPaysNationalite()->getLibelle() ?></td> - </tr> - - <tr> - <td> - <?= $this->formCheckbox($generiqueFieldset->get('adressePrincipale')); ?> - <?= $this->formLabel($generiqueFieldset->get('adressePrincipale')) ?> : - </td> - <td> - <?php - $adresse = ''; - $adresse .= (!empty($intervenantDossier->getAdresseNumero())) ? $intervenantDossier->getAdresseNumero() . ' ' : ''; - $adresse .= (!empty($intervenantDossier->getAdresseNumeroCompl())) ? $intervenantDossier->getAdresseNumeroCompl() . ' ' : ''; - $adresse .= (!empty($intervenantDossier->getAdresseVoirie())) ? $intervenantDossier->getAdresseVoirie() . ' ' : ''; - $adresse .= (!empty($intervenantDossier->getAdresseVoie())) ? $intervenantDossier->getAdresseVoie() . ' ' : ''; - $adresse .= (!empty($intervenantDossier->getAdressePrecisions())) ? '<br/>' . $intervenantDossier->getAdressePrecisions() . ' ' : ''; - $adresse .= '<br/>'; - $adresse .= $intervenantDossier->getAdresseCodePostal() . ' ' . $intervenantDossier->getAdresseCommune(); - echo $adresse; - ?> - </td> - </tr> - <tr> - <td> - <?= $this->formCheckbox($generiqueFieldset->get('telPro')); ?> - <?= $this->formLabel($generiqueFieldset->get('telPro')) ?> : - </td> - <td><?= $intervenantDossier->getTelPro() ?></td> - </tr> - <tr> - <td> - <?= $this->formCheckbox($generiqueFieldset->get('telPerso')); ?> - <?= $this->formLabel($generiqueFieldset->get('telPerso')) ?> : - </td> - <td><?= $intervenantDossier->getTelPerso() ?></td> - </tr> - <tr> - <td> - <?= $this->formCheckbox($generiqueFieldset->get('emailPro')); ?> - <?= $this->formLabel($generiqueFieldset->get('emailPro')) ?> : - </td> - <td><?= $intervenantDossier->getEmailPro() ?></td> - </tr> - <tr> - <td> - <?= $this->formCheckbox($generiqueFieldset->get('emailPerso')); ?> - <?= $this->formLabel($generiqueFieldset->get('emailPerso')) ?> : - </td> - <td><?= $intervenantDossier->getEmailPerso() ?></td> - </tr> - <tr> - <td> - <?= $this->formCheckbox($generiqueFieldset->get('numeroInsee')); ?> - <?= $this->formLabel($generiqueFieldset->get('numeroInsee')) ?> : - </td> - <td><?= $intervenantDossier->getNumeroInsee() ?></td> - - </tr> - <tr> - <td> - <?= $this->formCheckbox($generiqueFieldset->get('iban')); ?> - <?= $this->formLabel($generiqueFieldset->get('iban')) ?> : - </td> - <td><?= $intervenantDossier->getIBAN() ?></td> - </tr> - <tr> - <td> - <?= $this->formCheckbox($generiqueFieldset->get('bic')); ?> - <?= $this->formLabel($generiqueFieldset->get('bic')) ?> : - </td> - <td><?= $intervenantDossier->getBIC() ?></td> - </tr> - </tbody> - </table> +<?php if ($typeIntervenant == 'P'): ?> + <div class="messenger alert alert-warning"> + L'export des données intervenants vers <?= $nameConnecteur; ?> n'est disponible que pour les vacataires. + </div> +<?php elseif (empty($intervenantDossierValidation)): ?> + <div class="messenger alert alert-warning"> + Vous devez d'abord valider les données personnelles de <?= $intervenant; ?> pour pouvoir les synchroniser avec <?= $nameConnecteur; ?> + </div> +<?php endif; ?> +<?php if (!empty($intervenantDossierValidation)): ?> + + <div class="well"> + <?php if (empty($intervenantRh)): ?> + <p>L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> 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)): ?> + <p>L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> est bien dans le <?= $nameConnecteur ?> (<strong>numéro de matricule :</strong> <?= $intervenantRh->getCodeRh() ?>). Il possède déjà actuellement une affectation pour l'année + universitaire <?= $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() ?> est bien dans le <?= $nameConnecteur ?> (<strong>numéro de matricule :</strong> <?= $intervenantRh->getCodeRh() ?>).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; ?> + <?php endif; ?> + </div> + <?php if (!empty($form)): ?> + <?php + $form->prepare(); + $generiqueFieldset = $form->get('generiqueFieldset'); + $connecteurFieldset = $form->get('connecteurForm'); + + ?> + <!-- BLOC AFFECTATIOn --> + <?php if (!empty($affectationEnCours)): ?> + <div class="panel panel-default"> + <div class="panel-heading">Affectation <?= $nameConnecteur ?> en cours</div> + <div class="panel-body"> + <table> + <table class="table"> + <thead> + <tr> + <th>Champs</th> + <th>Données</th> + + </tr> + </thead> + <tbody> + <tr> + <td>Affecté a</td> + <td><?= $affectationEnCours->libLongStructureNiv2 ?></td> + </tr> + <tr> + <td>Date début</td> + <td><?= $affectationEnCours->dateDebutAffectation ?></td> + </tr> + <tr> + <td>Date fin</td> + <td><?= $affectationEnCours->dateFinAffectation ?></td> + </tr> + <tr> + <td>Type de rattachement</td> + <td><?= $affectationEnCours->libLongTypeRattachement ?></td> + </tr> + </tbody> + </table> + </table> + </div> </div> - </div> - <?php if ($priseEnCharge): ?> - - <!-- Formulaire spécifique au connecteur--> - <?php - echo $this->partial('export-rh/export-rh/' . $nameConnecteur . '/connecteurForm', compact('connecteurFieldset')); - ?> - - <p> - <input type="submit" value="Prendre en charge l'agent"/> - </p> - <?php elseif ($renouvellement): ?> - <?php - echo $this->partial('export-rh/export-rh/' . $nameConnecteur . '/connecteurForm', compact('connecteurFieldset')); - ?> - - <p> - <input type="submit" value="Renouveller l'agent"/> - </p> <?php endif; ?> - - </form> + <form class="no-intranavigation" action="<?= $this->url($action, ['intervenant' => $intervenant->getId()]) ?>" method="post"> + <!--Partie générique du formulaire--> + <div class="panel panel-default"> + <div class="panel-heading">Récapitulatif des données personnelles synchronisables</div> + <div class="panel-body"> + + <table class="table"> + <thead> + <tr> + <th>Champs</th> + <th>OSE</th> + <th><?= $nameConnecteur ?></th> + + </tr> + </thead> + <tbody> + <tr> + <td> + <?= $this->formCheckbox($generiqueFieldset->get('adressePrincipale')); ?> + <?= $this->formLabel($generiqueFieldset->get('adressePrincipale')) ?> : + </td> + <td> + <?php + $adresse = ''; + $adresse .= (!empty($intervenantDossier->getAdresseNumero())) ? $intervenantDossier->getAdresseNumero() . ' ' : ''; + $adresse .= (!empty($intervenantDossier->getAdresseNumeroCompl())) ? $intervenantDossier->getAdresseNumeroCompl() . ' ' : ''; + $adresse .= (!empty($intervenantDossier->getAdresseVoirie())) ? $intervenantDossier->getAdresseVoirie() . ' ' : ''; + $adresse .= (!empty($intervenantDossier->getAdresseVoie())) ? $intervenantDossier->getAdresseVoie() . ' ' : ''; + $adresse .= (!empty($intervenantDossier->getAdressePrecisions())) ? '<br/>' . $intervenantDossier->getAdressePrecisions() . ' ' : ''; + $adresse .= '<br/>'; + $adresse .= $intervenantDossier->getAdresseCodePostal() . ' ' . $intervenantDossier->getAdresseCommune(); + echo $adresse; + ?> + </td> + <td class="active"></td> + </tr> + <tr> + <td> + + </td> + <td><?= $intervenantDossier->getNomUsuel() ?></td> + <td class="active"><?= $intervenantRh->getNomUsuel() ?></td> + </tr> + <tr> + <td> + <?= $this->formCheckbox($generiqueFieldset->get('telPro')); ?> + <?= $this->formLabel($generiqueFieldset->get('telPro')) ?> : + </td> + <td><?= $intervenantDossier->getTelPro() ?></td> + <td class="active"><?= $intervenantRh->getTelPro() ?></td> + </tr> + <tr> + <td> + <?= $this->formCheckbox($generiqueFieldset->get('telPerso')); ?> + <?= $this->formLabel($generiqueFieldset->get('telPerso')) ?> : + </td> + <td><?= $intervenantDossier->getTelPerso() ?></td> + <td class="active"><?= $intervenantRh->getTelPerso() ?></td> + </tr> + <tr> + <td> + <?= $this->formCheckbox($generiqueFieldset->get('emailPro')); ?> + <?= $this->formLabel($generiqueFieldset->get('emailPro')) ?> : + </td> + <td><?= $intervenantDossier->getEmailPro() ?></td> + <td class="active"><?= $intervenantRh->getEmailPro() ?></td> + </tr> + <tr> + <td> + <?= $this->formCheckbox($generiqueFieldset->get('emailPerso')); ?> + <?= $this->formLabel($generiqueFieldset->get('emailPerso')) ?> : + </td> + <td><?= $intervenantDossier->getEmailPerso() ?></td> + <td class="active"><?= $intervenantRh->getEmailPerso() ?></td> + </tr> + + <tr> + <td> + <?= $this->formCheckbox($generiqueFieldset->get('iban')); ?> + <?= $this->formLabel($generiqueFieldset->get('iban')) ?> : + </td> + <td><?= $intervenantDossier->getIBAN() ?></td> + <td class="active"><?= $intervenantRh->getIBAN() ?></td> + </tr> + <tr> + <td> + <?= $this->formCheckbox($generiqueFieldset->get('bic')); ?> + <?= $this->formLabel($generiqueFieldset->get('bic')) ?> : + </td> + <td><?= $intervenantDossier->getBIC() ?></td> + <td class="active"><?= $intervenantRh->getBIC() ?></td> + </tr> + </tbody> + </table> + + </div> + </div> + <?php if ($priseEnCharge): ?> + + <!-- Formulaire spécifique au connecteur--> + <?php + echo $this->partial('export-rh/export-rh/' . $nameConnecteur . '/connecteurForm', compact('connecteurFieldset', 'nameConnecteur', 'intervenant')); + ?> + + <p> + <input type="submit" value="Prendre en charge l'agent"/> + </p> + <?php elseif ($renouvellement): ?> + <?php + echo $this->partial('export-rh/export-rh/' . $nameConnecteur . '/connecteurForm', compact('connecteurFieldset', 'nameConnecteur', 'intervenant')); + ?> + + <p> + <input type="submit" value="Renouveller l'agent"/> + </p> + <?php else: ?> + <p> + <input type="submit" value="Synchroniser données personnelles"/> + </p> + <?php endif; ?> + + </form> + <?php endif; ?> <?php endif; ?> diff --git a/module/ExportRh/view/export-rh/export-rh/siham/connecteurForm.phtml b/module/ExportRh/view/export-rh/export-rh/siham/connecteurForm.phtml index 15aebff492e2113b099722002e49070df22f750b..2acd244520aa59f023d6d2cd8adef9ad3aecca5a 100644 --- a/module/ExportRh/view/export-rh/export-rh/siham/connecteurForm.phtml +++ b/module/ExportRh/view/export-rh/export-rh/siham/connecteurForm.phtml @@ -1,7 +1,8 @@ <div class="panel panel-default"> - <div class="panel-heading">Configuration de la prise en charge</div> + <div class="panel-heading">Configuration de la prise en charge dans <?= $nameConnecteur; ?></div> <div class="panel-body"> - <p>Veuillez paramétrer la prise en charge de l'agent : </p> + <!-- Année universitaire de prise en charge --> + <input type="hidden" name="connecteurForm[anneeUniversitaire]" value="<?= $intervenant->getAnnee()->getId() ?>"/> <table class="table"> <thead> <tr> @@ -11,10 +12,7 @@ </tr> </thead> <tbody> - <tr> - <td><?= $this->formLabel($connecteurFieldset->get('anneeUniversitaire')) ?> :</td> - <td><?= $this->formSelect($connecteurFieldset->get('anneeUniversitaire')); ?></td> - </tr> + <tr> <td><?= $this->formLabel($connecteurFieldset->get('emploi')) ?> :</td> <td><?= $this->formSelect($connecteurFieldset->get('emploi')); ?></td> diff --git a/module/UnicaenSiham/src/UnicaenSiham/Service/Siham.php b/module/UnicaenSiham/src/UnicaenSiham/Service/Siham.php index c9c77c4876cc1556eb5d7049ce4a3b7611757d5f..a269a76e8b198e5ee503b47e69f9f35b223aa20e 100644 --- a/module/UnicaenSiham/src/UnicaenSiham/Service/Siham.php +++ b/module/UnicaenSiham/src/UnicaenSiham/Service/Siham.php @@ -381,7 +381,7 @@ class Siham $dateDebut = new \DateTime(); $paramsWS = ['ParamModifDP' => [ - 'codeEtablissement' => (isset($params['codeEtablissement'])) ? strtoupper($params['codeEtablissement']) : '', + 'codeEtablissement' => $this->codeEtablissement, 'codeUOAffectAdresse' => '',//Obligatoire sinon le WS plante... 'typeAction' => (!empty($params['dateDebut'])) ? self::SIHAM_TYPE_ACTION_MODIFICATION : self::SIHAM_TYPE_ACTION_AJOUT,//obligatoire 'dateDebut' => (!empty($params['dateDebut'])) ? $params['dateDebut'] : $dateDebut->format('Y-m-d'), @@ -391,10 +391,11 @@ class Siham 'typeNumero' => $type, ]]; + try { $client = $this->sihamClient->getClient('DossierAgentWebService'); $result = $client->ModifDonneesPersonnelles($paramsWS); - + if (isset($result->return)) { if ($result->return->statutMAJ == 1) { return true; @@ -490,6 +491,7 @@ class Siham try { //On récupére l'agent pour pouvoir le modifier $client = $this->sihamClient->getClient('DossierAgentWebService'); + //TODO : à retester car fait planter les WS siham dans le mode mise à jour //$result->ModifCoordonneesBancaires($paramsWS); } catch (\SoapFault $e) { throw new SihamException($e->faultstring, 0, $e); @@ -724,7 +726,7 @@ class Siham throw new SihamException($e->faultstring, 0, $e); } - return false; + return null; } @@ -766,7 +768,6 @@ class Siham 'temoinValidite' => '1']; //Traitement des positions - $listePositions = []; @@ -796,7 +797,7 @@ class Siham 'listeModalitesServices' => $listeModalitesServices, 'listeStatuts' => $listeStatuts, 'listePositions' => $listePositions, - 'motifEntree' => (isset($params['motifEntree'])) ? strtoupper($params['motifEntree']) : self::SIHAM_MOTIF_ENTREE_DEFAULT, + //'motifEntree' => (isset($params['motifEntree'])) ? strtoupper($params['motifEntree']) : self::SIHAM_MOTIF_ENTREE_DEFAULT, 'matricule' => (isset($params['matricule'])) ? strtoupper($params['matricule']) : '', 'temoinValidite' => (isset($params['temoinValidite'])) ? strtoupper($params['temoinValidite']) : '', 'UO' => (isset($params['UO'])) ? strtoupper($params['UO']) : '', @@ -835,6 +836,7 @@ class Siham } elseif ($result->return->statut == 'MAJ OK' && !empty($result->return->matricule)) { return $result->return->matricule; } else { + throw new SihamException('Erreur non identifié, veuillez vous rapprocher du support informatique', 0); } } catch (\SoapFault $e) { @@ -842,7 +844,7 @@ class Siham throw new SihamException($e->faultstring, 0, $e); } - return false; + return null; }