Commit 2715fac8 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Utilisation de la notion de contrat pour autoriser l'export RH

parent 451a7daf
......@@ -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",
......
......@@ -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) {
......
......@@ -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',
......
......@@ -156,7 +156,7 @@ class ExportRhService extends AbstractService
{
return $this->connecteur->synchroniserDonneesPersonnellesIntervenantRh($intervenant, $datas);
}
public function getFieldsetConnecteur(): Fieldset
......
......@@ -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; ?>
......
Markdown is supported
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