Skip to content
Snippets Groups Projects
Commit 0bc73cb7 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

WIP renouvellement

parent 4d989075
No related branches found
No related tags found
No related merge requests found
......@@ -95,6 +95,52 @@ class SihamConnecteur implements ConnecteurRhInterface
public function recupererDonneesAdministrativesIntervenantRh(\Application\Entity\Db\Intervenant $intervenant)
{
try {
if (!empty($intervenant->getCodeRh())) {
$codeRh = $intervenant->getCodeRh();
//Si code RH ne contient pas UCN alors on le reformate
if (!strstr($codeRh, 'UCN')) {
$codeRh = $this->siham->getCodeAdministration() . str_pad($codeRh, 9, '0', STR_PAD_LEFT);
}
$dateObservation = $intervenant->getAnnee()->getDateDebut();
$params =
[
'listeMatricules' => [$codeRh],
'dateObservation' => $intervenant->getAnnee()->getDateDebut()->format('Y-m-d'),
];
$donneesAdministratives = $this->siham->recupererDonneesAdministrativeAgent($params);
return $donneesAdministratives;
}
return null;
} catch (SihamException $e) {
throw new \Exception($e->getMessage());
}
}
public function recupererAffectationEnCours($intervenant)
{
$affectation = [];
$donneesAdministratives = $this->recupererDonneesAdministrativesIntervenantRh($intervenant);
if (!empty($donneesAdministratives->listeAffectations)) {
$affectation = $donneesAdministratives->listeAffectations;
}
return $affectation;
}
public function prendreEnChargeIntervenantRh(\Application\Entity\Db\Intervenant $intervenant, $datas): ?string
{
try {
......
......@@ -85,14 +85,35 @@ class ExportRhController extends AbstractController
/* Récupération de la validation du dossier si elle existe */
$intervenantDossierValidation = $this->getServiceDossier()->getValidation($intervenant);
$typeIntervenant = $intervenant->getStatut()->getTypeIntervenant()->getCode();
$renouvellement = false;
$priseEnCharge = false;
/**
* 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
* Etape 3 : Si il est déjà dans le SI RH alors on regarde si il a une affectation en cours pour l'année en cours
* Etape 4 : Si il a une affectation en cours alors on propose uniquement la mise à jour des données personnelles
* Etape 5 : Si il n'a pas encore d'affectation on propose alors un renouvellement de l'intervenant
*/
$intervenantRh = $this->exportRhService->getIntervenantRh($intervenant);
/*Scénario 1 : Intervenant non présent dans le SI RH*/
if ($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
$renouvellement = true;
if (!empty($affectationEnCours)) {
//Si non on propose un renouvellement de l'intervenant SI RH
$renouvellement = false;
}
} else {
$priseEnCharge = true;
}
$form = $this->getExportRhForm();
/*Scénario 2 : Intervenant présent dans le SI RH donc uniquement mis à jour des données*/
/*Scénario 3 : Intervenant présent dans le SI RH avec une affectation*/
$nameConnecteur = $this->exportRhService->getConnecteurName();
......@@ -102,6 +123,8 @@ class ExportRhController extends AbstractController
'intervenantDossier',
'intervenantDossierValidation',
'form',
'renouvellement',
'priseEnCharge',
'nameConnecteur');
}
......
......@@ -79,6 +79,26 @@ class ExportRhService extends AbstractService
public function getDonneesAdministrativeIntervenantRh($intervenant)
{
$donneesAdministratives = $this->connecteur->recupererDonneesAdministrativesIntervenantRh($intervenant);
return $donneesAdministratives;
}
public function getAffectationEnCours($intervenant)
{
$affectation = $this->connecteur->recupererAffectationEnCours($intervenant);
var_dump($affectation);
die;
return $affectation;
}
public function getListeUO()
{
return $this->connecteur->recupererListeUO();
......
......@@ -22,7 +22,6 @@ $connecteurFieldset = $form->get('connecteurForm');
<?php endif; ?>
</div>
<?php echo $this->messenger()->addCurrentMessagesFromFlashMessenger()->addMessagesFromFlashMessenger(); ?>
<?php if (empty($intervenantRh)): ?>
<form class="no-intranavigation" action="<?= $this->url('intervenant/pec', ['intervenant' => $intervenant->getId()]) ?>" method="post">
<!--Partie générique du formulaire-->
......@@ -145,6 +144,8 @@ $connecteurFieldset = $form->get('connecteurForm');
</div>
</div>
<?php if ($priseEnCharge): ?>
<!-- Formulaire spécifique au connecteur-->
<?php
echo $this->partial('export-rh/export-rh/' . $nameConnecteur . '/connecteurForm', compact('connecteurFieldset'));
......@@ -153,8 +154,10 @@ $connecteurFieldset = $form->get('connecteurForm');
<p>
<input type="submit" value="Prendre en charge l'agent"/>
</p>
</form>
<?php elseif ($renouvellement): ?>
renouvellement
<?php endif; ?>
</form>
......@@ -240,6 +240,38 @@ class Siham
public function recupererDonneesAdministrativeAgent(array $params)
{
$listMatricules = [];
foreach ($params['listeMatricules'] as $matricule) {
$listeMatricules[] = ['matricule' => $matricule];
}
$paramsWS = ['ParamListAgent' => [
'codeEtablissement' => $this->codeEtablissement,
'dateFinObservation' => (isset($params['dateFinObservation'])) ? $params['dateFinObservation'] : '',
'dateObservation' => '',//(isset($params['dateObservation'])) ? $params['dateObservation'] : '',
'listeMatricules' => $listeMatricules,
]];
try {
$client = $this->sihamClient->getClient('DossierAgentWebService');
$result = $client->RecupDonneesAdministratives($paramsWS);
if (isset($result->return)) {
return $result->return;
}
} catch (\SoapFault $e) {
throw new SihamException($e->faultstring, 0, $e);
}
}
/**
* @param $params array Paramètres du webservice : bisTer, codePostal, complementAdresse,dateDebut, matricule,
* natureVoie, noVoie, nomVoie, ville
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment