diff --git a/composer.lock b/composer.lock index 3a3bdfc82e29635210f31a4cf5f8056835ae82af..6da7f0c3d440b82e5b7f23230b44ac15378bf145 100755 --- a/composer.lock +++ b/composer.lock @@ -2896,7 +2896,7 @@ "source": { "type": "git", "url": "https://git.unicaen.fr/lib/unicaen/siham.git", - "reference": "edc2151decc41330d478287b7a85e94d9d49d6b3" + "reference": "02c25ea8a9c706a9c0686182a1c982f54797c1a1" }, "require": { "zendframework/zend-mail": "^2.10", @@ -2921,7 +2921,7 @@ } ], "description": "PHP library for SIHAM webservices", - "time": "2021-09-14T09:06:03+00:00" + "time": "2021-09-15T13:50:23+00:00" }, { "name": "unicaen/tbl", diff --git a/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php b/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php index dce0b26ce654a42c81764babd0d6602271508468..eff63f7ee101a818c1969d3353f1a9805533f54f 100644 --- a/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php +++ b/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php @@ -65,6 +65,7 @@ class SihamConnecteur implements ConnecteurRhInterface public function recupererIntervenantRh(\Application\Entity\Db\Intervenant $intervenant): ?IntervenantRh { + $agent = ''; if (!empty($intervenant->getCodeRh())) { $codeRh = $intervenant->getCodeRh(); @@ -81,12 +82,14 @@ class SihamConnecteur implements ConnecteurRhInterface $agent = $this->siham->recupererDonneesPersonnellesAgent($params); } else { $codeRh = $this->trouverCodeRhByInsee($intervenant); - $params = - [ - 'listeMatricules' => [$codeRh], - ]; + if (!empty($codeRh)) { + $params = + [ + 'listeMatricules' => [$codeRh], + ]; - $agent = $this->siham->recupererDonneesPersonnellesAgent($params); + $agent = $this->siham->recupererDonneesPersonnellesAgent($params); + } } if (!empty($agent)) { @@ -266,7 +269,6 @@ class SihamConnecteur implements ConnecteurRhInterface $this->siham->modifierCoordonneesAgent($params, Siham::SIHAM_CODE_TYPOLOGIE_EMAIL_PERSO); } - //TODO : Synchroniser l'adresse if ($datas['generiqueFieldset']['adressePrincipale']) { $adresse = ''; @@ -294,6 +296,19 @@ class SihamConnecteur implements ConnecteurRhInterface $this->siham->modifierAdressePrincipaleAgent($params); } + //Fait planter les WS SIHAM.... + /*if ($datas['generiqueFieldset']['iban']) { + $anneeUniversitaire = $this->getExportRhService()->getAnneeUniversitaireEnCours(); + $dateEffet = $anneeUniversitaire->getDateDebut()->format('Y-m-d'); + $coordonnees = $this->siham->formatCoordoonneesBancairesForSiham($dossierIntervenant->getIBAN(), $dossierIntervenant->getBIC()); + $coordonnees['dateDebBanque'] = $dateEffet; + $coordonnees['temoinValidite'] = '1'; + $coordonnees['modePaiement'] = '25'; + $coordonneesBancaires[] = $coordonnees; + $this->siham->modifierCoordonnéesBancairesAgent($coordonneesBancaires); + die; + }*/ + return true; } catch @@ -525,6 +540,8 @@ class SihamConnecteur implements ConnecteurRhInterface $matricule = $this->siham->renouvellementAgent($params); + //Mise à jour des données personnelles de l'agent + $this->synchroniserDonneesPersonnellesIntervenantRh($intervenant, $datas); return $matricule; } catch (SihamException $e) { diff --git a/module/ExportRh/src/Controller/ExportRhController.php b/module/ExportRh/src/Controller/ExportRhController.php index 72a62f92e6a67dc14cbb590b7faf26b60be985d8..7af10d5e9a68ebb88858ee5362aa6d38570628fe 100644 --- a/module/ExportRh/src/Controller/ExportRhController.php +++ b/module/ExportRh/src/Controller/ExportRhController.php @@ -4,6 +4,7 @@ namespace ExportRh\Controller; use Application\Controller\AbstractController; +use Application\Entity\Db\Contrat; use Application\Service\Traits\ContextServiceAwareTrait; use Application\Service\Traits\DossierServiceAwareTrait; use ExportRh\Form\ExportRhForm; @@ -95,6 +96,18 @@ class ExportRhController extends AbstractController $renouvellement = false; $priseEnCharge = false; + /*Vérification si contrat avec date de retour*/ + $haveContratOse = false; + $contratsOse = $intervenant->getContrat(); + foreach ($contratsOse as $contrat) { + /** + * @var Contrat $contrat + */ + if (!empty($contrat->getDateRetourSigne())) { + $haveContratOse = true; + } + } + /** * Etape 1 : On cherche si l'intervenant est déjà dans le SI RH * Etape 2 : Si pas dans le SI RH alors c'est une prise en charge @@ -128,7 +141,7 @@ class ExportRhController extends AbstractController } catch (\Exception $e) { $this->flashMessenger()->addErrorMessage($e->getMessage()); } - + $vm = new ViewModel(); $vm->setTemplate('export-rh/export-rh/exporter'); $vm->setVariables(compact('typeIntervenant', @@ -136,6 +149,7 @@ class ExportRhController extends AbstractController 'intervenantRh', 'intervenantDossier', 'intervenantDossierValidation', + 'haveContratOse', 'form', 'renouvellement', 'priseEnCharge', diff --git a/module/ExportRh/src/Service/ExportRhService.php b/module/ExportRh/src/Service/ExportRhService.php index f086296e4ec35b083b141f3ae1a3a278d7dd16da..7fe8b7b603ef2663ccd7a475b5c603f6155cb058 100644 --- a/module/ExportRh/src/Service/ExportRhService.php +++ b/module/ExportRh/src/Service/ExportRhService.php @@ -156,7 +156,7 @@ class ExportRhService extends AbstractService { return $this->connecteur->synchroniserDonneesPersonnellesIntervenantRh($intervenant, $datas); } - + public function getFieldsetConnecteur(): Fieldset diff --git a/module/ExportRh/view/export-rh/export-rh/exporter.phtml b/module/ExportRh/view/export-rh/export-rh/exporter.phtml index 073d11e0ae775bd9f0a3e8c06a95245704ce3be0..066905994c0326cd62e8ad8f75ce962a4699277c 100755 --- a/module/ExportRh/view/export-rh/export-rh/exporter.phtml +++ b/module/ExportRh/view/export-rh/export-rh/exporter.phtml @@ -26,15 +26,15 @@ if ($priseEnCharge) { <?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. + L'export des données intervenants vers <?= $nameConnecteur; ?> n'est pas disponible pour les intervenants permanents. </div> - <?php elseif (empty($intervenantDossierValidation)): ?> + <?php elseif ($haveContratOse === false): ?> <div class="messenger alert alert-warning"> - Vous devez d'abord valider les données personnelles de <?= $intervenant; ?> pour pouvoir les synchroniser avec <?= $nameConnecteur; ?> + L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> 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> <?php endif; ?> - <?php if (!empty($intervenantDossierValidation)): ?> + <?php if ($haveContratOse === true): ?> <div class="well"> <?php if (empty($intervenantRh)): ?> @@ -46,8 +46,7 @@ if ($priseEnCharge) { 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 elseif (!empty($affectationEnCours) && empty($contratsEnCours)): ?> <p>L'intervenant <?= $intervenantDossier->getPrenom() . ' ' . $intervenantDossier->getNomUsuel() ?> est bien dans le <?= $nameConnecteur ?> (<strong>numéro de matricule :</strong> <?= $intervenantRh->getCodeRh() ?>).Il possède une affectation mais pas encore de contrat - l'année <?= $intervenant->getAnnee()->getLibelle() ?>. Vous - pouvez le renouveller pour cette année à l'aide du formulaire ci-dessous.</p> + 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() ?> 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> @@ -83,10 +82,6 @@ if ($priseEnCharge) { <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> @@ -256,7 +251,7 @@ if ($priseEnCharge) { </form> <p> - <button onclick="$('.form-export-rh').submit();" class="btn btn-primary">Prendre en charge l'intervenant</button> + <button onclick="$('.form-export-rh').submit();" class="btn btn-primary">Prendre en charge l'intervenant dans <?= $nameConnecteur; ?></button> </p> <?php elseif ($renouvellement): ?> <?php @@ -264,12 +259,12 @@ if ($priseEnCharge) { ?> </form> <p> - <button onclick="$('.form-export-rh').submit();" class="btn btn-primary">Renouveller l'intervenant</button> + <button onclick="$('.form-export-rh').submit();" class="btn btn-primary">Renouveller l'intervenant dans <?= $nameConnecteur; ?></button> </p> <?php else: ?> </form> <p> - <button onclick="$('.form-export-rh').submit();" class="btn btn-primary">Synchroniser les données personnelles</button> + <button onclick="$('.form-export-rh').submit();" class="btn btn-primary">Synchroniser les données personnelles dans <?= $nameConnecteur; ?></button> </p> <?php endif; ?> <?php endif; ?>