Commit 3d5e5982 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

WIP intégration module export RH

parent 3e14d568
......@@ -520,13 +520,13 @@ class IntervenantController extends AbstractController
$typeIntervenant = $intervenant->getStatut()->getTypeIntervenant()->getCode();
$sihamConnecteur = $this->getSihamConnecteur();
$intervenantRH = $sihamConnecteur->rechercherIntervenant($intervenant);
$intervenantRh = $sihamConnecteur->trouverIntervenantRh($intervenant);
if (!$intervenant) {
$this->flashMessenger()->addErrorMessage("Aucun intervenant n'a été trouvé dans le SIRH");
}
return compact('typeIntervenant', 'intervenant', 'intervenantRH', 'intervenantDossier', 'intervenantDossierValidation');
return compact('typeIntervenant', 'intervenant', 'intervenantRh', 'intervenantDossier', 'intervenantDossierValidation');
}
......
......@@ -124,6 +124,20 @@ class IntervenantService extends AbstractEntityService
public function getByCodeRh(string $codeRh): ?Intervenant
{
$anneeId = $this->getServiceContext()->getAnnee()->getId();
$statutId = null;
$structureId = $this->getServiceContext()->getStructure();
if ($structureId) $structureId = $structureId->getId();
$bones = $this->getBones(['CODE_RH' => $codeRh, 'ANNEE_ID' => $anneeId]);
return $this->bestIntervenantByBones($bones, $codeRh, $anneeId, null, null);
}
/**
*
* @param string $sourceCode
......
<?php
/**
* @var \Application\Entity\Db\Intervenant $intervenant
* @var \ExportRh\Entity\IntervenantRh $intervenantRh
*/
$intervenant->getNomUsuel()
?>
<br/>
<div class="messenger alert alert-warning">
<?php if ($typeIntervenant == 'P'): ?>
L'export des données intervenants vers le SIRH n'est disponible que pour les vacataires.
<?php elseif (empty($intervenantDossierValidation)): ?>
Vous devez d'abord valider les données personnelles de <?= $intervenant; ?> pour pouvoir les synchroniser avec le SIRH
<?php endif; ?>
</div>
<table class="table">
<thead>
<tr>
<th>Champs</th>
<th>Intervenant OSE</th>
<th>Intervenant SI RH</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" checked="checked" name="nomUsuel"/> Nom usuel :</td>
<td><?= $intervenant->getNomUsuel() ?></td>
<td><?= $intervenantRh->getNomUsuel() ?></td>
</tr>
<tr>
<td><input type="checkbox" checked="checked" name="nomUsuel"/> Prénom :</td>
<td><?= $intervenant->getPrenom() ?></td>
<td><?= $intervenantRh->getPrenom() ?></td>
</tr>
<tr>
<td><input type="checkbox" checked="checked" name="nomUsuel"/> Date de naissance :</td>
<td><?= $intervenant->getDateNaissance()->format('d/m/Y') ?></td>
<td><?= $intervenantRh->getDateNaissance()->format('d/m/Y') ?></td>
</tr>
<tr>
<td><input type="checkbox" checked="checked" name="nomUsuel"/> Numéro INSEE</td>
<td><?= $intervenant->getNumeroInsee() ?></td>
<td><?= $intervenantRh->getNumeroInsee() ?></td>
</tr>
<tr>
<td><input type="checkbox" checked="checked" name="nomUsuel"/> Tel pro :</td>
<td><?= $intervenant->getTelPro() ?></td>
<td><?= $intervenantRh->getTelPro() ?></td>
</tr>
<tr>
<td><input type="checkbox" checked="checked" name="nomUsuel"/> Tel perso :</td>
<td><?= $intervenant->getTelPerso() ?></td>
<td><?= $intervenantRh->getTelPerso() ?></td>
</tr>
</tbody>
</table>
......@@ -3,8 +3,7 @@
namespace ExportRh\Connecteur;
use ExportRh\Entity\Intervenant;
use ExportRh\Entity\IntervenantRH;
use ExportRh\Entity\IntervenantRh;
interface ConnecteurRhInterface
{
......@@ -15,18 +14,14 @@ interface ConnecteurRhInterface
*
* @return array
*/
public function rechercherIntervenant($nomUsuel, $prenom, $insee, $dateNaissance): ?IntervenantRH;
public function rechercherIntervenantRh($nomUsuel = '', $prenom = '', $insee = ''): array;
public function trouverIntervenant(\Application\Entity\Db\Intervenant $intervenant): ?IntervenantRH;
public function trouverIntervenantRh(\Application\Entity\Db\Intervenant $intervenant): ?IntervenantRh;
/**
* @param Intervenant $intervenant
*
* @return bool
*/
public function exporterIntervenant(Intervenant $intervenant): bool;
public function prendreEnChargeIntervenantRh(\Application\Entity\Db\Intervenant $intervenant): ?IntervenantRh;
}
\ No newline at end of file
......@@ -4,10 +4,10 @@ namespace ExportRh\Connecteur\Siham;
use ExportRh\Connecteur\ConnecteurRhInterface;
use ExportRh\Entity\Intervenant;
use ExportRh\Entity\IntervenantRH;
use ExportRh\Entity\IntervenantRh;
use UnicaenSiham\Service\Siham;
class SihamConnecteur implements ConnecteurRhInterface
{
......@@ -22,61 +22,65 @@ class SihamConnecteur implements ConnecteurRhInterface
public function rechercherIntervenant($nom, $prenom, $insee, $dateNaissance): ?IntervenantRH
public function rechercherIntervenantRh($nomUsuel = '', $prenom = '', $insee = ''): array
{
$params = [
'nomUsuel' => $nom,
$params = [
'nomUsuel' => $nomUsuel,
'prenom' => $prenom,
'numeroInsee' => $insee,
];
$result = $this->siham->rechercherAgent($params);
$intervenantRH = new IntervenantRH();
$intervenantRH->setNomUsuel($result->getNomUsuel());
return $intervenantRH;
$listIntervenantRh = [];
//$result = $this->siham->rechercherAgent($params);
$result = $this->siham->recupererListeAgents($params);
if (!empty($result)) {
foreach ($result as $v) {
$intervenantRh = new IntervenantRh();
$intervenantRh->setNomUsuel($v->getNomUsuel());
$intervenantRh->setPrenom($v->getPrenom());
$intervenantRh->setCodeRh($v->getMatricule());
$dateNaissance = new \DateTime($v->getDateNaissance());
$intervenantRh->setDateNaissance($dateNaissance);
$intervenantRh->setNumeroInsee($v->getNumeroInsee());
$listIntervenantRh[] = $intervenantRh;
}
}
return $listIntervenantRh;
}
public function trouverIntervenant(\Application\Entity\Db\Intervenant $intervenant): ?IntervenantRH
public function trouverIntervenantRh(\Application\Entity\Db\Intervenant $intervenant): ?IntervenantRh
{
$intervenantRH = null;
$intervenantRh = null;
if (!empty($intervenant->getCodeRh())) {
$params =
[
'listeMatricules' => [$intervenant->getCodeRh()],
];
$agent = $this->siham->recupererDonneesPersonnellesAgent($params);
$intervenantRH = new IntervenantRH();
$intervenantRH->setNomUsuel($agent->getNomUsuel());
$intervenantRH->setPrenom($agent->getPrenom());
$intervenantRH->setTelPerso($agent->getTelephonePerso());
$intervenantRH->setTelPro($agent->getTelephonePro());
$intervenantRh = new IntervenantRH();
$intervenantRh->setNomUsuel($agent->getNomUsuel());
$intervenantRh->setPrenom($agent->getPrenom());
$intervenantRh->setDateNaissance(new \DateTime($agent->getDateNaissance()));
$intervenantRh->setTelPerso($agent->getTelephonePerso());
$intervenantRh->setTelPro($agent->getTelephonePro());
$intervenantRh->setNumeroInsee($agent->getNumeroInsee());
}
return $intervenantRH;
return $intervenantRh;
}
public
function prendreEnChargeIntervenant(\Application\Entity\Db\Intervenant $intervenant): Intervenant
public function prendreEnChargeIntervenantRh(\Application\Entity\Db\Intervenant $intervenant): ?IntervenantRh
{
}
public
function exporterIntervenant(Intervenant $intervenant): bool
{
// TODO: Implement intervenantExport() method.
}
public
function test()
{
echo 'test réussi';
}
}
\ No newline at end of file
......@@ -33,27 +33,28 @@ class AdministrationController extends AbstractController
public function chercherIntervenantRhAction(): array
{
$connecteurRh = $this->getExportRhService();
$connecteurRh->getIntervenantRh([]);
$params = [
'nomUsuel' => '',
'prenom' => '',
];
$agents = [];
$listIntervenantRh = [];
try {
if ($this->getRequest()->isPost()) {
$params['nomUsuel'] = $this->getRequest()->getPost('nomUsuel');
$params['prenom'] = $this->getRequest()->getPost('prenom');
//$agents = $this->siham->rechercherAgent($params);
$nomUsuel = $this->getRequest()->getPost('nomUsuel');
$prenom = $this->getRequest()->getPost('prenom');
$insee = $this->getRequest()->getPost('insee');
$listIntervenantRh = $connecteurRh->getListIntervenantRh($nomUsuel, $prenom, $insee);
}
} catch (SihamException $e) {
$this->flashMessenger()->addErrorMessage($e->getMessage());
}
return compact('agents');
return compact('listIntervenantRh');
}
}
......@@ -7,12 +7,13 @@ use Application\Entity\Db\Civilite;
use Application\Entity\Db\Departement;
use Application\Entity\Db\Discipline;
use Application\Entity\Db\Grade;
use Application\Entity\Db\Intervenant;
use Application\Entity\Db\Pays;
use Application\Entity\Db\StatutIntervenant;
use Application\Entity\Db\Structure;
use Application\Entity\Db\Voirie;
class IntervenantRH
class IntervenantRh
{
public ?string $code;
......@@ -98,6 +99,32 @@ class IntervenantRH
public ?string $sourceCode;
public ?Intervenant $intervenant;
/**
* @return Intervenant|null
*/
public function getIntervenant(): ?Intervenant
{
return $this->intervenant;
}
/**
* @param Intervenant|null $intervenant
*
* @return IntervenantRh
*/
public function setIntervenant(?Intervenant $intervenant): IntervenantRh
{
$this->intervenant = $intervenant;
return $this;
}
/**
......
......@@ -3,6 +3,7 @@
namespace ExportRh\Service;
use Application\Service\AbstractService;
use Application\Service\Traits\IntervenantServiceAwareTrait;
use Application\Service\Traits\ParametresServiceAwareTrait;
use ExportRh\Entity\IntervenantRHExportParams;
......@@ -14,6 +15,7 @@ use ExportRh\Entity\IntervenantRHExportParams;
class ExportRhService extends AbstractService
{
use ParametresServiceAwareTrait;
use IntervenantServiceAwareTrait;
/**
* @var IntervenantRHExportParams
......@@ -31,11 +33,31 @@ class ExportRhService extends AbstractService
public function getIntervenantRh($params)
public function getListIntervenantRh($nomUsuel, $prenom, $insee)
{
$this->connecteur->rechercherIntervenantRH($params);
return true;
$listIntervenantRh = $this->connecteur->rechercherIntervenantRH($nomUsuel, $prenom, $insee);
$intervenantService = $this->getServiceIntervenant();
if (!empty($listIntervenantRh)) {
foreach ($listIntervenantRh as $key => $intervenantRh) {
$intervenant = $intervenantService->getByCodeRh($intervenantRh->getCodeRh());
if ($intervenant) {
$intervenantRh->setIntervenant($intervenant);
$listIntervenantRh[$key] = $intervenantRh;
}
}
}
return $listIntervenantRh;
}
public function getIntervenantRh($intervenant)
{
$intervenantRh = $this->connecteur->trouverIntervenantRh($intervenant);
return $intervenantRh;
}
......
......@@ -17,19 +17,4 @@ class SihamClientFactory
return new SihamClient($wsdl, $soapParams);
}
/* public function __invoke(ContainerInterface $container): SoapClient
{
$moduleConfig = $container->get(ModuleConfig::class);
$soapClientConfig = $moduleConfig->getSoapClientConfig();
return new SoapClient($soapClientConfig);
}
*/
}
......@@ -162,7 +162,7 @@ class Siham
$agents = [];
$paramsWS = ['ParamRecupListeAgents' => [
'codeEtablissement' => (isset($params['codeEtablissement'])) ? $params['codeEtablissement'] : '',
'codeEtablissement' => $this->codeEtablissement,
'nomUsuel' => (isset($params['nomUsuel'])) ? strtoupper($params['nomUsuel']) : '',
'nomPatronymique' => (isset($params['nomPatronymique'])) ? strtoupper($params['nomPatronymique']) : '',
'prenom' => (isset($params['prenom'])) ? strtoupper($params['prenom']) : '',
......@@ -177,6 +177,7 @@ class Siham
try {
$client = $this->sihamClient->getClient('ListeAgentsWebService');
$result = $client->recupListeAgents($paramsWS);
if (isset($result->return)) {
if (is_array($result->return)) {
foreach ($result->return as $values) {
......
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