diff --git a/module/Application/src/Application/Controller/IndexController.php b/module/Application/src/Application/Controller/IndexController.php index a7889a017876353d183ce8d3b8ecc6e3be1c5160..c78a447988bab37dfe09e887320f7c9fd6a4708d 100755 --- a/module/Application/src/Application/Controller/IndexController.php +++ b/module/Application/src/Application/Controller/IndexController.php @@ -21,7 +21,7 @@ class IndexController extends AbstractController use IntervenantServiceAwareTrait; use UserContextServiceAwareTrait; use ParametresServiceAwareTrait; - + /** * @@ -68,8 +68,8 @@ class IndexController extends AbstractController $intervenant = $this->getServiceIntervenant()->getByCode($role->getIntervenant()->getCode()); if ($intervenant) { //Correction mauvais refresh du role lors du changement d'année - $this->serviceUserContext->setSelectedIdentityRole($intervenant->getStatut()->getRoleId()); - //$this->serviceUserContext->setNextSelectedIdentityRole($intervenant->getStatut()->getRoleId()); + // $this->serviceUserContext->setSelectedIdentityRole($intervenant->getStatut()->getRoleId()); + $this->serviceUserContext->setNextSelectedIdentityRole($intervenant->getStatut()->getRoleId()); } } } diff --git a/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php b/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php index 2c4a4601a5dd8804359b9df9cfb37d753e31f0a7..544e2c227e96259add85bd5a672e6ff283196a5f 100644 --- a/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php +++ b/module/ExportRh/src/Connecteur/Siham/SihamConnecteur.php @@ -148,12 +148,19 @@ class SihamConnecteur implements ConnecteurRhInterface { $affectations = []; $donneesAdministratives = $this->recupererDonneesAdministrativesIntervenantRh($intervenant); + 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; + $dateDebutAffectation = new \DateTime($affectation->dateDebutAffectation); + $dateFinAffectation = new \DateTime($affectation->dateFinAffectation); + $currentDate = new \DateTime(); + if ($currentDate > $dateDebutAffectation and $currentDate > $dateFinAffectation) { + $affectations[] = $affectation; + } } }; } @@ -165,13 +172,25 @@ class SihamConnecteur implements ConnecteurRhInterface public function recupererContratEnCoursIntervenantRh(Intervenant $intervenant): ?array { - $contrat = []; + $contrats = []; $donneesAdministratives = $this->recupererDonneesAdministrativesIntervenantRh($intervenant); - var_dump($donneesAdministratives); - die; + if (!empty($donneesAdministratives['listeContrats']) || !empty($donneesAdministratives->listeContrats)) { + $listeContrats = (isset($donneesAdministratives['listeContrats']) && is_array($donneesAdministratives['listeContrats'])) ? $donneesAdministratives['listeContrats'] : [$donneesAdministratives['listeContrats']]; + + + foreach ($listeContrats as $contrat) { + + $dateDebutContrat = new \DateTime($contrat->dateDebutContrat); + $dateFinContrat = new \DateTime($contrat->dateFinReelleContrat); + $currentDate = new \DateTime(); + if ($currentDate > $dateDebutContrat and $currentDate > $dateFinContrat) { + $contrats[] = $contrat; + } + } + }; - return true; + return $contrats; } @@ -502,6 +521,13 @@ class SihamConnecteur implements ConnecteurRhInterface + public function recupererListeContrats(): ?array + { + return $this->siham->recupererListeContrats(); + } + + + public function getConnecteurName(): string { return 'siham'; @@ -515,5 +541,4 @@ class SihamConnecteur implements ConnecteurRhInterface return $fieldset; } - } \ No newline at end of file diff --git a/module/ExportRh/src/Controller/ExportRhController.php b/module/ExportRh/src/Controller/ExportRhController.php index 382783e1fa8922ccb33fd4385ce4f386344d8953..a2a8c1179e147d650ac80f834246cf3d691a574c 100644 --- a/module/ExportRh/src/Controller/ExportRhController.php +++ b/module/ExportRh/src/Controller/ExportRhController.php @@ -106,8 +106,9 @@ class ExportRhController extends AbstractController 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 $affectationEnCours = current($this->exportRhService->getAffectationEnCoursIntervenantRh($intervenant)); - $this->recupererContratEnCoursIntervenantRh($intervenant); - + //On regarde si il a un contrat en cours pour l'année courante + $contratEnCours = current($this->exportRhService->getContratEnCoursIntervenantRh($intervenant)); + $renouvellement = true; if (!empty($affectationEnCours)) { $renouvellement = false; @@ -133,7 +134,8 @@ class ExportRhController extends AbstractController 'renouvellement', 'priseEnCharge', 'nameConnecteur', - 'affectationEnCours'); + 'affectationEnCours', + 'contratEnCours'); } diff --git a/module/ExportRh/src/Service/ExportRhService.php b/module/ExportRh/src/Service/ExportRhService.php index 1bd6197b6c50440d4f3ba74062d77de8dc611b61..b1add14e03a842992b0621e8aecd78f5b246a47d 100644 --- a/module/ExportRh/src/Service/ExportRhService.php +++ b/module/ExportRh/src/Service/ExportRhService.php @@ -85,7 +85,9 @@ class ExportRhService extends AbstractService public function getContratEnCoursIntervenantRh($intervenant) { - return true; + $contrat = $this->connecteur->recupererContratEnCoursIntervenantRh($intervenant); + + return $contrat; } @@ -125,6 +127,13 @@ class ExportRhService extends AbstractService + public function getListContrats() + { + return $this->connecteur->recupererListeContrats(); + } + + + public function priseEnChargeIntrervenantRh(Intervenant $intervenant, $datas) { return $this->connecteur->prendreEnChargeIntervenantRh($intervenant, $datas); diff --git a/module/ExportRh/view/export-rh/export-rh/exporter.phtml b/module/ExportRh/view/export-rh/export-rh/exporter.phtml index c0d54a2576137cea9e960cab3e8dbf8849211bf9..7f003753fd1e5a0b2d9f606d1b917b95a50e7358 100755 --- a/module/ExportRh/view/export-rh/export-rh/exporter.phtml +++ b/module/ExportRh/view/export-rh/export-rh/exporter.phtml @@ -37,9 +37,13 @@ if ($priseEnCharge) { <?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)): ?> + <?php if (!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 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 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> <?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 @@ -56,42 +60,81 @@ if ($priseEnCharge) { $connecteurFieldset = $form->get('connecteurForm'); ?> - <!-- BLOC AFFECTATIOn --> + <!-- 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 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> </div> </div> + <?php else: ?> + <div class="panel panel-default"> + <div class="panel-heading">Affectation <?= $nameConnecteur ?> en cours</div> + <div class="panel-body" style="text-align:center;"> + Aucune affectation en cours dans SIHAM + </div> + </div> + <?php endif; ?> + <?php if (!empty($contratsEnCours)): ?> + <div class="panel panel-default"> + <div class="panel-heading">Contrat <?= $nameConnecteur ?> en cours</div> + <div class="panel-body"> + <table class="table"> + <tbody> + <tr> + <td>Type de contrat</td> + <td><?= $contratsEnCours->libLongTypeContrat ?></td> + </tr> + <tr> + <td>Date début contrat</td> + <td><?= $contratsEnCours->dateDebutContrat ?></td> + </tr> + <tr> + <td>Date fin de contrat prévue</td> + <td><?= $contratsEnCours->dateFinPrevueContrat ?></td> + </tr> + <tr> + <td>Date fin de contrat réelle</td> + <td><?= $contratsEnCours->dateFinReelleContrat ?></td> + </tr> + </tbody> + </table> + </div> + </div> + <?php else: ?> + <div class="panel panel-default"> + <div class="panel-heading">Contrat <?= $nameConnecteur ?> en cours</div> + <div class="panel-body" style="text-align:center;"> + Aucun contrat en cours dans SIHAM + </div> + </div> <?php endif; ?> <!--Partie générique du formulaire--> <div class="panel panel-default">