Commit 7dc59e73 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Ajout de la notion de contracutalisation dans SIHAM

parent 8b0e5c71
......@@ -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());
}
}
}
......
......@@ -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
......@@ -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');
}
......
......@@ -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);
......
......@@ -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">
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment