Skip to content
Snippets Groups Projects
Commit ea9cb3da authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Merge branch 'master' of https://git.unicaen.fr/open-source/OSE into ll-optimisation_-chargens

parents 26530c6d 1479372b
Branches
Tags
No related merge requests found
Showing
with 382 additions and 286 deletions
......@@ -8,292 +8,20 @@
* @var $viewFile string
*/
$si = $container->get(\Application\Service\IntervenantService::class);
//$i = $si->get(193437);
/** @var \ExportRh\Service\ExportRhService $erhs */
$erhs = $container->get(\ExportRh\Service\ExportRhService::class);
class Iparser
{
public $bdd;
$p = $erhs->getIntervenantExportParams();
var_dump($p);
public $data = [];
//$p->prenom = true;
public $actions = [];
$erhs->saveIntervenantExportParams();
public $allActions = [];
public $fncs = [];
public $fncsStatuts = [];
private $cFnc;
private $cAnnee;
private $cCode;
public $statuts = [];
public function fetch()
{
$filter = "
AND annee_id IN (2020)
--AND code = 1002
";
$bdd = adminBdd();
$sts = $bdd->select('select si.id, ti.libelle || \' <br /><br /> \' || si.libelle libelle FROM statut_intervenant si join type_intervenant ti on ti.id = si.type_intervenant_id');
foreach ($sts as $st) {
$this->statuts[$st['ID']] = $st['LIBELLE'];
}
$sql = "
with idata as (select
intervenant_id, listagg(cc.t, ', ') within group( order by cc.t) tbls
from
(
select count(*) || ' AGREMENT' t, intervenant_id from AGREMENT where histo_destruction is null GROUP BY intervenant_id
union all select count(*) || ' CONTRAT' t, intervenant_id from CONTRAT where histo_destruction is null GROUP BY intervenant_id
union all select count(*) || ' INTERVENANT_DOSSIER' t, intervenant_id from INTERVENANT_DOSSIER where histo_destruction is null GROUP BY intervenant_id
union all select count(*) || ' MODIFICATION_SERVICE_DU' t, intervenant_id from MODIFICATION_SERVICE_DU where histo_destruction is null GROUP BY intervenant_id
union all select count(*) || ' PIECE_JOINTE' t, intervenant_id from PIECE_JOINTE where histo_destruction is null GROUP BY intervenant_id
union all select count(*) || ' SERVICE' t, intervenant_id from SERVICE where histo_destruction is null GROUP BY intervenant_id
union all select count(*) || ' SERVICE_REFERENTIEL' t, intervenant_id from SERVICE_REFERENTIEL where histo_destruction is null GROUP BY intervenant_id
union all select count(*) || ' VALIDATION' t, intervenant_id from VALIDATION where histo_destruction is null GROUP BY intervenant_id
union all select count(*) || ' FORMULE_RESULTAT' t, intervenant_id from FORMULE_RESULTAT where 1=1 GROUP BY intervenant_id
) cc
GROUP BY intervenant_id)
SELECT
i.id, i.annee_id, i.code, i.source_code, i.statut_id, i.sync_statut, i.histo_creation, i.histo_destruction, idata.tbls
FROM
intervenant i
LEFT JOIN idata ON idata.intervenant_id = i.id
where
1=1 $filter
";
$s = $bdd->select($sql, [], ['fetch' => \BddAdmin\Bdd::FETCH_EACH]);
while ($i = $s->next()) {
if (!isset($this->data[$i['ANNEE_ID']][$i['CODE']][$i['STATUT_ID']])) {
$this->data[$i['ANNEE_ID']][$i['CODE']][$i['STATUT_ID']] = ['i' => [], 's' => [], 'd' => []];
}
$this->data[$i['ANNEE_ID']][$i['CODE']][$i['STATUT_ID']]['i'][] = $i;
}
$sql = "
SELECT * FROM V_DIFF_INTERVENANT WHERE 1=1 $filter
";
$s = $bdd->select($sql, [], ['fetch' => \BddAdmin\Bdd::FETCH_EACH]);
while ($i = $s->next()) {
if (!isset($this->data[$i['ANNEE_ID']][$i['CODE']][$i['STATUT_ID']])) {
$this->data[$i['ANNEE_ID']][$i['CODE']][$i['STATUT_ID']] = ['i' => [], 's' => [], 'd' => []];
}
$this->data[$i['ANNEE_ID']][$i['CODE']][$i['STATUT_ID']]['d'][] = 'diff';
}
$sql = "SELECT
i.annee_id, i.code, i.statut_id, i.source_code, i.validite_debut, i.validite_fin
FROM
src_intervenant i
WHERE
1=1 $filter
";
$s = $bdd->select($sql, [], ['fetch' => \BddAdmin\Bdd::FETCH_EACH]);
while ($i = $s->next()) {
if (!isset($this->data[$i['ANNEE_ID']][$i['CODE']][$i['STATUT_ID']])) {
$this->data[$i['ANNEE_ID']][$i['CODE']][$i['STATUT_ID']] = ['i' => [], 's' => [], 'd' => []];
}
$this->data[$i['ANNEE_ID']][$i['CODE']][$i['STATUT_ID']]['s'][] = $i;
}
}
public function makeFncs()
{
/* On élimine s'il n'y a aucun diff */
$this->fncs['Aucune différence'] = function ($annee, $code, $statut, array $intervenants, array $sources, array $diff) {
if (empty($diff)) return true;
};
/* Recherche des fiches uniques des 2 côtés et avec les mêmes source_code *
$this->fncsStatuts['Fiches uniques des 2 côtés avec mêmes sources codes'] = function ($annee, $code, array $statuts) {
if (1 == count($statuts)) {
$statuts = current($statuts);
if (1 == count($statuts['i']) && 1 == count($statuts['s'])) {
$i = $statuts['i'][0];
$s = $statuts['i'][0];
if ($i['SOURCE_CODE'] == $s['SOURCE_CODE']) {
return true; // pas de problème : cas le + simple + 1 statut et tout matche
}
}
}
};
/* Ca matche au niveau d'un seul statut *
$this->fncs['Fiches avec des source_code égaux'] = function ($annee, $code, $statut, array $intervenants, array $sources, array $diff) {
if (1 == count($intervenants) && 1 == count($sources)) {
if ($intervenants[0]['SOURCE_CODE'] == $sources[0]['SOURCE_CODE']) {
return true; // on a traité le pb
}
}
};
/* Recherche des fiches vides et pas dans la vue source *
$this->fncs['Fiches avec des source_code différents'] = function ($annee, $code, $statut, array $intervenants, array $sources, array $diff) {
if (1 == count($intervenants) && 1 == count($sources)) {
if ($intervenants[0]['SOURCE_CODE'] != $sources[0]['SOURCE_CODE']) {
$sql = 'UPDATE INTERVENANT SET source_code = \'' . $sources[0]['SOURCE_CODE'] . '\' WHERE id = ' . $intervenants[0]['ID'] . ';';
$this->addAction($sql);
return true; // on a traité le pb
}
}
};
/* Recherche des fiches vides et pas dans la vue source *
$this->fncs['Fiches vides sans aucune source'] = function ($annee, $code, $statut, array $intervenants, array $sources, array $diff) {
if (1 == count($intervenants) && 0 == count($sources)) {
$i = $intervenants[0];
if (null === $i['TBLS']) {
$this->addAction('DELETE FROM intervenant WHERE id = ' . $i['ID'] . ' AND annee_id = ' . $annee . ';');
return true;
}
}
};
/* Anciens codes sans nouvelle fiche en façe *
$this->fncs[] = function ($annee, $code, $statut, array $intervenants, array $sources, array $diff) {
if (1 == count($intervenants) && 0 == count($sources)) {
$c = $intervenants[0]['SOURCE_CODE'];
$c = str_replace('-', '', $c);
if ((string)(int)$c === $c) {
return true; // ancien code
}
}
};
/**/
}
public function exec()
{
foreach ($this->fncsStatuts as $currentFnc => $fnc) {
$this->cFnc = $currentFnc;
foreach ($this->data as $annee => $dataa) {
$this->cAnnee = $annee;
foreach ($dataa as $code => $ds) {
$this->cCode = $code;
$res = $fnc($annee, $code, $ds);
if (true === $res) {
unset($this->data[$annee][$code]);
if (empty($this->data[$annee])) {
unset($this->data[$annee]);
}
}
}
}
}
foreach ($this->fncs as $currentFnc => $fnc) {
$this->cFnc = $currentFnc;
foreach ($this->data as $annee => $dataa) {
$this->cAnnee = $annee;
foreach ($dataa as $code => $ds) {
$this->cCode = $code;
foreach ($ds as $statut => $dsi) {
$res = $fnc($annee, $code, $statut, $dsi['i'], $dsi['s'], $dsi['d']);
if (true === $res) {
unset($this->data[$annee][$code][$statut]);
if (empty($this->data[$annee][$code])) {
unset($this->data[$annee][$code]);
}
if (empty($this->data[$annee])) {
unset($this->data[$annee]);
}
}
}
}
}
}
}
public function addAction(string $sql)
{
if (!isset($this->actions[$this->cFnc])) {
$this->actions[$this->cFnc] = [];
}
$this->actions[$this->cFnc][] = $sql;
}
public function display()
{
foreach ($this->data as $annee => $dataa) {
foreach ($dataa as $code => $datai) {
echo '<h2>Intervenant Code ' . $code . ', Année ' . $annee . '</h2>';
echo '<table class="table table-bordered table-condensed table-extra-condensed table-hover">';
echo "<tr><th>Statut</th><th>Fiches OSE</th><th>Fiches Sources</th></tr>";
foreach ($datai as $statut => $di) {
echo "<tr><th>" . $this->statuts[$statut] . "</th><th>";
foreach ($di['i'] as $dii) {
unset($dii['CODE']);
unset($dii['STATUT_ID']);
unset($dii['ANNEE_ID']);
var_dump($dii);
}
echo '</th><th>';
foreach ($di['s'] as $dii) {
unset($dii['CODE']);
unset($dii['STATUT_ID']);
unset($dii['ANNEE_ID']);
var_dump($dii);
}
echo '</th><th>';
foreach ($di['d'] as $did) {
/*unset($did['CODE']);
unset($did['STATUT_ID']);
unset($did['ANNEE_ID']);
var_dump($did);*/
echo $did;
}
echo '</th></tr>';
}
echo '</table>';
}
}
echo '<pre>';
foreach ($this->actions as $fnc => $actions) {
echo "\n\n-- $fnc\n";
echo implode("\n", $actions);
}
echo '</pre>';
}
}
$ip = new IParser();
$ip->fetch();
$ip->makeFncs();
$ip->exec();
$ip->display();
\ No newline at end of file
//$sc = $container->get(\ExportRh\Connecteur\Siham\SihamConnecteur::class);
//$sc->test();
\ No newline at end of file
......@@ -19,7 +19,8 @@
"unicaen/import" : "3.1.5",
"unicaen/tbl" : "4.2",
"unicaen/open-document" : "3.0.2",
"ocramius/proxy-manager" : "2.2.3"
"ocramius/proxy-manager" : "2.2.3",
"unicaen/siham" : "^1.0"
},
"require-dev" : {
"zendframework/zend-test" : "3.3.0",
......
......@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "d4d7f73605fcc0171019b55994d8d94c",
"content-hash": "18f8830a24bceaafb795349271d75ec5",
"packages": [
{
"name": "beberlei/assert",
......@@ -2892,6 +2892,39 @@
"description": "Bibliothèque utile lorsqu'on utilise un base de données Oracle",
"time": "2020-03-05T15:42:28+00:00"
},
{
"name": "unicaen/siham",
"version": "1.4",
"source": {
"type": "git",
"url": "https://git.unicaen.fr/lib/unicaen/siham.git",
"reference": "ca056ea766128de913435f2920c43f9e5fea2e23"
},
"require": {
"zendframework/zend-mail": "^2.10",
"zendframework/zend-mime": "^2.7"
},
"require-dev": {
"phpunit/phpunit": "^5.6"
},
"type": "library",
"autoload": {
"psr-0": {
"UnicaenSiham": "src/"
},
"classmap": [
"./Module.php"
]
},
"authors": [
{
"name": "Antony Le Courtes",
"email": "antony.lecourtes@unicaen.fr"
}
],
"description": "PHP library for SIHAM webservices",
"time": "2021-10-28T13:19:26+00:00"
},
{
"name": "unicaen/tbl",
"version": "4.1",
......
......@@ -257,6 +257,13 @@ return [
'dir' => __DIR__ . '/data/fichiers',
],
/* Export RH */
'export-rh' => [
//définition du connecteur SI RH à utiliser pour le module export RH de OSE
'actif' => true,
'connecteur' => 'siham',
],
/* Base de données Actul+ */
'actul' => [
......
......@@ -95,7 +95,6 @@ class AppConfig
'Zend\Router',
'Zend\Session',
'Zend\Validator',
'DoctrineModule',
'DoctrineORMModule',
'ZfcUser',
......@@ -103,7 +102,9 @@ class AppConfig
'UnicaenAuth',
'UnicaenImport',
'UnicaenTbl',
'UnicaenSiham',
'Application',
'ExportRh',
];
if (!self::inConsole()) {
......
<?php
return [
'export-rh' => [
'actif' => AppConfig::get('export-rh', 'actif') ? AppConfig::get('export-rh', 'actif') : false,
'connecteur' => AppConfig::get('export-rh', 'connecteur') ? AppConfig::get('export-rh', 'connecteur') : '',
],
];
\ No newline at end of file
......@@ -9,6 +9,21 @@ if (file_exists($versionFile)) {
return [
'unicaen-app' => [
'proxies' => [
'10.14.128.39',
'10.14.128.100',
'10.14.128.100',
'10.14.128.101',
'10.14.128.137',
],
'reverse-proxies' => [
'193.55.120.23',
'193.55.120.24',
'193.55.120.25',
],
'masque-ip' => '10.',
/**
* Informations concernant cette application
*/
......
......@@ -21,6 +21,18 @@ return [
'position' => 2,
'commentaire' => NULL,
],
'CODE_RH' => [
'name' => 'CODE_RH',
'type' => 'string',
'bdd-type' => 'VARCHAR2',
'length' => 10,
'scale' => NULL,
'precision' => NULL,
'nullable' => TRUE,
'default' => NULL,
'position' => 4,
'commentaire' => NULL,
],
'ID' => [
'name' => 'ID',
'type' => 'int',
......
......@@ -705,6 +705,18 @@ return [
'position' => 58,
'commentaire' => NULL,
],
'EXPORT_DATE' => [
'name' => 'EXPORT_DATE',
'type' => 'date',
'bdd-type' => 'DATE',
'length' => 0,
'scale' => NULL,
'precision' => NULL,
'nullable' => TRUE,
'default' => NULL,
'position' => 59,
'commentaire' => 'Date du dernier export vers le SIRH',
],
],
'columns-order' => 'ID,ANNEE_ID,CODE,UTILISATEUR_CODE,STRUCTURE_ID,STATUT_ID,GRADE_ID,DISCIPLINE_ID,CIVILITE_ID,NOM_USUEL,PRENOM,DATE_NAISSANCE,NOM_PATRONYMIQUE,COMMUNE_NAISSANCE,PAYS_NAISSANCE_ID,DEPARTEMENT_NAISSANCE_ID,PAYS_NATIONALITE_ID,TEL_PRO,TEL_PERSO,EMAIL_PRO,EMAIL_PERSO,ADDR_PRECISIONS,ADDR_NUMERO,ADDR_NUMERO_COMPL_ID,ADDR_VOIRIE_ID,ADDR_VOIE,ADDR_LIEU_DIT,ADDR_CODE_POSTAL,ADDR_COMMUNE,ADDR_PAYS_ID,NUMERO_INSEE,NUMERO_INSEE_PROVISOIRE,IBAN,BIC,RIB_HORS_SEPA,AUTRE_1,AUTRE_2,AUTRE_3,AUTRE_4,AUTRE_5,EMPLOYEUR_ID,MONTANT_INDEMNITE_FC,CRITERE_RECHERCHE,SOURCE_ID,SOURCE_CODE,SYNC_STATUT,SYNC_STRUCTURE,HISTO_CREATION,HISTO_CREATEUR_ID,HISTO_MODIFICATION,HISTO_MODIFICATEUR_ID,HISTO_DESTRUCTION,HISTO_DESTRUCTEUR_ID',
];
......
......@@ -33,6 +33,18 @@ return [
'position' => 8,
'commentaire' => NULL,
],
'CODE_RH' => [
'name' => 'CODE_RH',
'type' => 'string',
'bdd-type' => 'VARCHAR2',
'length' => 50,
'scale' => NULL,
'precision' => NULL,
'nullable' => TRUE,
'default' => NULL,
'position' => 44,
'commentaire' => 'Code de correspondance avec le SI RH',
],
'DEPASSEMENT' => [
'name' => 'DEPASSEMENT',
'type' => 'bool',
......
......@@ -21,6 +21,18 @@ return [
'position' => 2,
'commentaire' => NULL,
],
'CODE_RH' => [
'name' => 'CODE_RH',
'type' => 'string',
'bdd-type' => 'VARCHAR2',
'length' => 10,
'scale' => NULL,
'precision' => NULL,
'nullable' => TRUE,
'default' => NULL,
'position' => 12,
'commentaire' => NULL,
],
'HISTO_CREATEUR_ID' => [
'name' => 'HISTO_CREATEUR_ID',
'type' => 'int',
......
CREATE OR REPLACE FORCE VIEW V_INDICATEUR_380 AS
SELECT
rownum id,
t."INTERVENANT_ID",t."ANNEE_ID",t."STRUCTURE_ID"
FROM (
SELECT
i.id intervenant_id,
MAX(i.annee_id) annee_id,
MAX(i.structure_id) structure_id
FROM intervenant i
JOIN contrat c ON c.intervenant_id = i.id AND c.histo_destruction IS NULL
JOIN statut_intervenant si ON si.id = i.statut_id
WHERE i.export_date IS NULL
AND si.code != 'BIATSS'
AND si.type_intervenant_id = 2
AND (COALESCE(i.affectation_fin, to_date('01/01/9999', 'dd/mm/YYYY')) < sysdate OR i.affectation_fin IS NULL )
AND c.date_retour_signe IS NOT NULL
AND i.annee_id = (SELECT valeur FROM parametre p WHERE nom = 'annee')
GROUP BY i.id
) t
......@@ -312,6 +312,16 @@ return [
'TEM_DISTINCT' => false,
'TEM_NOT_STRUCTURE' => false,
],
380 => [
'TYPE' => 'Contrat / avenant',
'ENABLED' => true,
'LIBELLE_PLURIEL' => '%s vacataires doivent être pris en charge ou renouvellés dans le SI RH',
'LIBELLE_SINGULIER' => '%s vacataire doit être pris en charge ou renouvellés dans le SI RH',
'MESSAGE' => null,
'ROUTE' => 'intervenant/exporter-rh',
'TEM_DISTINCT' => false,
'TEM_NOT_STRUCTURE' => false,
],
110 => [
'TYPE' => 'Affectation',
'ENABLED' => true,
......
......@@ -48,6 +48,7 @@ return [
'visualisation-historises' => 'Voir les intervenants historisés',
'edition' => 'Edition',
'suppression' => 'Suppression',
'exporter' => 'Exporter vers SIRH',
'statut-edition' => 'Statuts (Édition)',
'statut-visualisation' => 'Statuts (Visualisation)',
'autres-visualisation' => 'Champs autres (Visualisation)',
......@@ -418,4 +419,5 @@ return [
],
],
];
\ No newline at end of file
......@@ -143,7 +143,7 @@ FROM (
WHEN statut_source_nautorise = 1 THEN 'drop'
-- Si on est sur un statut "Autres" et qu'il y a un autre statut du même type
WHEN types_identiques = 0 AND statut_source_autre = 1 THEN 'drop'
WHEN types_identiques = 1 AND statut_source_autre = 1 THEN 'drop'
-- sinon on laisse passer
ELSE 'insert'
......
CREATE
OR REPLACE FORCE VIEW SRC_UO AS
SELECT
sm.valeur uo,
s2.libelle_court || ' (' || sm.valeur || ')' libelle_court_uo,
s2.libelle_long || ' (' || sm.valeur || ')' libelle_long_uo
FROM v_structure@octoprod s1
JOIN v_structure@octoprod s2 ON s1.niv2_id = s2.id
JOIN structure_mapping@octoprod sm ON sm.structure_id = s1.id AND sm.source_id = 'SIHAM'
WHERE s1.type_id IN (2,3)
ORDER BY s2.libelle_court, valeur ASC
\ No newline at end of file
**ATTENTION** : cette docmuentation est valable à partir de la version 17 de OSE. Pour les versions antérieures le module exportRh n'est pas disponible.
# Principe
Le module ExportRh de OSE permet de rendre une disponible au sein de l'applicatif une fonctionnalité d'export des données intervenants dans le SI RH. Pour le moment, seul SIHAM est pris en charge par ce module.
Si vous activez le module export et que vous avez SIHAM, vous pourrez pour un intervenant, vacataire et uniquement pour l'année universitaire en cours, lancer une prise en charge ou un renouvellement directement dans SIHAM à partir de OSE.
A noter que le renouvellement, ou la prise en charge SIHAM n'est possible que si le contrat OSE a une date de retour signée.
# Configuration du connecteur SIHAM
Pour utiliser le module ExportRh Siham vous devez ajouter dans le fichier de configuration config.local.php les lignes suivantes :
```php
'export-rh' => [
//définition du connecteur SI RH à utiliser pour le module export RH de OSE
'actif' => true,//False pour désactiver l'export RH
'connecteur' => 'siham',//Le nom du connecteur dont vous avez besoin, pour le moment seul le connecteur SIHAM a été développé.
],
```
L'utilisation du connecteur SIHAM du module ExportRh nécessite aussi l'ajout d'un fichier de configration spécifique à SIHAM dans le dossier à la racine /config/autoload/unicaen-siham.gloabl.php
```php
<?php
return [
'unicaen-siham' => [
// Options concernant l'appel du web service .
'api' => [
'base_url' => 'https://siham.xxxxx.fr/',//L'url permettant d'accéder aux webservices SIHAM
'wsdl' => [//Définition des webservices utilisables
'DossierAgentWebService' => 'DossierAgentWebService/DossierAgentWebService?wsdl',
'RechercheAgentWebService' => 'RechercheAgentWebService/RechercheAgentWebService?wsdl',
'ListeAgentsWebService' => 'ListeAgentsWebService/ListeAgentsWebService?wsdl',
'DossierParametrageWebService' => 'DossierParametrageWebService/DossierParametrageWebService?wsdl',
'PECWebService' => 'PECWebService/PECWebService?wsdl',
],
],
'debug' => [
/*Active le debug des interactions avec les webservices SIHAM*/
'activate' => true,
/*Debug uniquement si une exception est levée*/
'onlyException' => false,
/* IP ou nom DNS du serveur SMTP */
'smtpHost' => 'xxxxxxxxxxx',
/* Port du serveur SMTP (généralement, 25) */
'smtpPort' => 25,
/* Adresse de l'expéditeur par défaut */
'from' => 'xxxxx@xxxx.xx',
/* Adresse du destinataire*/
'to' => 'xxxxx@xxxx.xx',
],
// Options du client SOAP utilisé pour appeler le web service.
'soap_client' => [
'params' => [
//Crédentials pour accéder aux webservices SIHAM
'login' => 'xxxxx',
'password' => 'xxxxx',
'version' => SOAP_1_1,
'cache_wsdl' => 0,
'trace' => 1,
//'proxy_host' => 'host.domain.fr',
//'proxy_port' => 3128,
],
],
'code-nomenclature' => [
//Code répertoire des différentes nommenclatures SIHAM utilsées
'grades' => 'HJB',
'corps' => 'HJV',
'section-cnu' => 'VSP',
'specialites' => 'HIS',
'familles-proffessionnelles' => 'VFP',
'qualites-statutaires' => 'HJK',
'categories' => 'HKE',
'type-contrats' => 'UIP',
'statuts' => 'HJ8',
'modalites' => 'UHU',
'positions' => 'HKK',
'echelons' => 'HKM',
'administration' => 'UAA',
'etablissements' => 'DRE',
'mode-paiement' => 'DRN',
'pays' => 'UIN',
],
'code-administration' => 'UCN',
'code-etablissement' => '0141408E',
//Permet de filtrer les valeurs affichées dans le formulaire de prise en charge SIHAM par code répertoire
'filters' => [
'HKK' => [
'ACI01' => 'ACI01 - Affecté dans l\'administration',
],
'emplois' => [
'UCNVCE' => 'UCNVCE - Vacataire chargé d\'enseignement',
'UCNVA' => 'UCNVA - Vacataire administratif',
],
'UHU' => [
'MS100' => 'MS100 - Temps plein',
],
'HJ8' => [
'C2038' => 'C2038 - Chargé d\'enseignement',
'C2041' => 'C2041 - Agent temporaire vacataire',
'C2052' => 'C2052 - Chargé d\'enseignement vacataire fonctionnaire',
'C1201' => 'C1201 - Intermittent spectacle',
'C1204' => 'C1204 - Autre personnel payé acte / tâche',
'C1210' => 'C1210 - Praticien agréé - Maître de stage',
],
],
//Permet d'excluse les statuts pour lesquels on ne souhaite pas faire de PEC ou REN
'exclude-statut-ose' => [
'BIATSS' => 'BIATSS',
'SS_EMPLOI_NON_ETUD' => 'Sans emploi, non étudiant',
'IMP' => 'Vacataire académique sur convention',
],
],
];
```
doc/Export-Rh/export-privilege.png

144 KiB

doc/Export-Rh/fiche-export.png

88.4 KiB

**ATTENTION** : cette docmuentation est valable à partir de la version 17 de OSE. Pour les versions antérieures le module exportRh n'est pas disponible.
# Principe
Le module ExportRh de OSE permet de rendre une disponible au sein de l'applicatif une fonctionnalité d'export des données intervenants dans le SI RH. Pour le moment, seul SIHAM est pris en charge par ce module.
Si vous activez le module export et que vous avez SIHAM, vous pourrez pour un intervenant, vacataire et uniquement pour l'année universitaire en cours, lancer une prise en charge ou un renouvellement directement dans SIHAM à partir de OSE.
A noter que le renouvellement, ou la prise en charge SIHAM n'est possible que si le contrat OSE a une date de retour signée.
# Fonctionnement du connecteur SIHAM
## Privilège et accès à l'export
Pour accéder aux écrans d'export RH, il faut vous rendre au niveau de la fiche de l'intervenant, si vous avez le privilège associé, vous verrez un nouvel onglet Export RH :
![Fiche export RH](fiche-export.png)
Voici le nouveau privilège à donner aux rôles :
![Privilege export RH](export-privilege.png)
## Prise en charge d'un intervenant (PEC)
On appelle prise en charge (PEC), le fait d'exporter vers SIHAM un intervenant inconnu du SI RH. Un matricule va être créé et attribué à cet intervenant.
Pour une PEC, les données personnelles sont injectées dans SIHAM pour la première fois, on parle bien des données issues du dossier de l'intervenant et non pas celles de la fiche intervenant :
![Données personnelles mises à jour](pec-donnees.png)
Lors d'une prise en charge, OSE va créer un nouvelle affectation pour l'année universitaire en cours, et créer le statut, le type d'emploi, la position administrative et le service dans SIHAM, le tout en auto validé dans SIHAM.
Toutes ces informations sont paramétrables à l'aide du formulaire personnalisé SIHAM :
![Formulaire SIHAM](formulaire-connecteur-siham.png)
## Renouvellement d'un intervenant (REN)
On appelle renouvellement (REN), le fait d'exporter vers SIHAM un intervenant déjà connu du SI RH.
Le renouvellement va d'abord mettre à jour certaines données personnelles de l'intervenant, à noter que vous pourrez désactiver la synchronisation de certaines données en décochant les lignes :
![Données personnelles mises à jour](renouvellement-donnees.png)
**Attention, les WS SIHAM de l'AMUE sont buggés pour la mise à jour des coordonnées bancaires lors d'un renouvellement, il faudra donc les mettre à jour manuellement si nécessaire. Une demande d'assistance est en cours (mettre le lien ici)**
De la même façon, OSE va créer un nouvelle affectation pour l'année universitaire en cours, et mettre à jour le statut, le type d'emploi, la position administrative et le service dans SIHAM, le tout en auto validé dans SIHAM.
![Formulaire SIHAM](formulaire-connecteur-siham.png)
## Suite à la PEC ou au REN
Une fois la prise en charge ou le renouvellement effectué via OSE, vous retrouverez le dossier de l'agent à jour, il ne vous restera plus qu'à le contractualiser manuellement dans SIHAM.
![SIHAM](siham.png)
## Synchronisation
Si l'intervenant possède déjà une affectation sur l'année en cours, vous ne pourrez donc pas lancer une PEC ou un REN, mais vous aurez quand même la possiblité de synchroniser les quelques données personnelles de OSE vers SIHAM.
**Attention, les WS SIHAM de l'AMUE sont buggés pour la mise à jour des coordonnées bancaires lors d'une synchronisation, il faudra donc les mettre à jour manuellement si nécessaire. Une demande d'assistance est en cours (mettre le lien ici)**
## Indicateur
Un nouvel indicateur situé dans la rubrique contrat des indicateurs (indicateur N°380), vous donne la liste des vacataires à prendre en charge ou à renouveller.
Il n'est utilisable que sur l'année universitaire en cours, car comme dit précédement, seul les vacataires de l'année universitaire en cours sont concernés par le module ExporRh.
![INDICATEUR](indicateur.png)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment