Commit 152cc90c authored by Laurent Lécluse's avatar Laurent Lécluse
Browse files

Merge branch 'formule_test_v2' into 'master'

Formule test v2

See merge request !39
parents dc0d27de 10c76ee0
......@@ -77,7 +77,17 @@ CREATE TABLE "FORMULE"
( "ID" NUMBER(*,0) NOT NULL ENABLE,
"LIBELLE" VARCHAR2(100 CHAR) NOT NULL ENABLE,
"PACKAGE_NAME" VARCHAR2(30 CHAR) NOT NULL ENABLE,
"PROCEDURE_NAME" VARCHAR2(30 CHAR) NOT NULL ENABLE
"PROCEDURE_NAME" VARCHAR2(30 CHAR) NOT NULL ENABLE,
"I_PARAM_1_LIBELLE" VARCHAR2(100 CHAR),
"I_PARAM_2_LIBELLE" VARCHAR2(100 CHAR),
"I_PARAM_3_LIBELLE" VARCHAR2(100 CHAR),
"I_PARAM_4_LIBELLE" VARCHAR2(100 CHAR),
"I_PARAM_5_LIBELLE" VARCHAR2(100 CHAR),
"VH_PARAM_1_LIBELLE" VARCHAR2(100 CHAR),
"VH_PARAM_2_LIBELLE" VARCHAR2(100 CHAR),
"VH_PARAM_3_LIBELLE" VARCHAR2(100 CHAR),
"VH_PARAM_4_LIBELLE" VARCHAR2(100 CHAR),
"VH_PARAM_5_LIBELLE" VARCHAR2(100 CHAR)
);
/
......@@ -94,11 +104,11 @@ CREATE TABLE "FORMULE_TEST_INTERVENANT"
"HEURES_SERVICE_STATUTAIRE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
"HEURES_SERVICE_MODIFIE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
"DEPASSEMENT_SERVICE_DU_SANS_HC" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
"PARAM_1" VARCHAR2(50 CHAR),
"PARAM_2" VARCHAR2(50 CHAR),
"PARAM_3" VARCHAR2(50 CHAR),
"PARAM_4" VARCHAR2(50 CHAR),
"PARAM_5" VARCHAR2(50 CHAR),
"PARAM_1" VARCHAR2(100 CHAR),
"PARAM_2" VARCHAR2(100 CHAR),
"PARAM_3" VARCHAR2(100 CHAR),
"PARAM_4" VARCHAR2(100 CHAR),
"PARAM_5" VARCHAR2(100 CHAR),
"A_SERVICE_DU" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
"C_SERVICE_DU" FLOAT(126),
"DEBUG_INFO" CLOB
......@@ -127,15 +137,14 @@ CREATE TABLE "FORMULE_TEST_VOLUME_HORAIRE"
"TAUX_FI" FLOAT(126) DEFAULT 1 NOT NULL ENABLE,
"TAUX_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
"TAUX_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
"TAUX_SERVICE_DU" FLOAT(126) DEFAULT 1 NOT NULL ENABLE,
"TAUX_SERVICE_COMPL" FLOAT(126) DEFAULT 1 NOT NULL ENABLE,
"TYPE_INTERVENTION_CODE" VARCHAR2(15 CHAR),
"PONDERATION_SERVICE_DU" FLOAT(126) DEFAULT 1 NOT NULL ENABLE,
"PONDERATION_SERVICE_COMPL" FLOAT(126) DEFAULT 1 NOT NULL ENABLE,
"PARAM_1" VARCHAR2(50 CHAR),
"PARAM_2" VARCHAR2(50 CHAR),
"PARAM_3" VARCHAR2(50 CHAR),
"PARAM_4" VARCHAR2(50 CHAR),
"PARAM_5" VARCHAR2(50 CHAR),
"PARAM_1" VARCHAR2(100 CHAR),
"PARAM_2" VARCHAR2(100 CHAR),
"PARAM_3" VARCHAR2(100 CHAR),
"PARAM_4" VARCHAR2(100 CHAR),
"PARAM_5" VARCHAR2(100 CHAR),
"HEURES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
"A_SERVICE_FI" FLOAT(126),
"A_SERVICE_FA" FLOAT(126),
......@@ -5167,95 +5176,97 @@ GROUP BY
/
CREATE OR REPLACE FORCE VIEW V_FORMULE_VOLUME_HORAIRE AS
SELECT
to_number( 1 || vh.id ) id,
vh.id volume_horaire_id,
null volume_horaire_ref_id,
s.id service_id,
null service_referentiel_id,
s.intervenant_id intervenant_id,
ti.id type_intervention_id,
vh.type_volume_horaire_id type_volume_horaire_id,
vhe.etat_volume_horaire_id etat_volume_horaire_id,
CASE WHEN ep.id IS NOT NULL THEN ep.taux_fi ELSE 1 END taux_fi,
CASE WHEN ep.id IS NOT NULL THEN ep.taux_fa ELSE 0 END taux_fa,
CASE WHEN ep.id IS NOT NULL THEN ep.taux_fc ELSE 0 END taux_fc,
ep.structure_id structure_id,
MAX(COALESCE( m.ponderation_service_du, 1)) ponderation_service_du,
MAX(COALESCE( m.ponderation_service_compl, 1)) ponderation_service_compl,
COALESCE(tf.service_statutaire,1) service_statutaire,
vh.heures heures,
vh.horaire_debut horaire_debut,
vh.horaire_fin horaire_fin,
COALESCE(tis.taux_hetd_service,ti.taux_hetd_service,1) taux_service_du,
COALESCE(tis.taux_hetd_complementaire,ti.taux_hetd_complementaire,1) taux_service_compl
FROM
volume_horaire vh
JOIN service s ON s.id = vh.service_id
JOIN intervenant i ON i.id = s.intervenant_id
JOIN type_intervention ti ON ti.id = vh.type_intervention_id
JOIN v_volume_horaire_etat vhe ON vhe.volume_horaire_id = vh.id
LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
LEFT JOIN etape e ON e.id = ep.etape_id
LEFT JOIN type_formation tf ON tf.id = e.type_formation_id
LEFT JOIN element_modulateur em ON em.element_id = s.element_pedagogique_id
AND em.histo_destruction IS NULL
LEFT JOIN modulateur m ON m.id = em.modulateur_id
LEFT JOIN type_intervention_statut tis ON tis.type_intervention_id = ti.id AND tis.statut_intervenant_id = i.statut_id
WHERE
vh.histo_destruction IS NULL
AND s.histo_destruction IS NULL
AND vh.heures <> 0
AND vh.motif_non_paiement_id IS NULL
AND s.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, s.intervenant_id )
GROUP BY
vh.id, s.id, s.intervenant_id, ti.id, vh.type_volume_horaire_id, vhe.etat_volume_horaire_id, ep.id,
ep.taux_fi, ep.taux_fa, ep.taux_fc, ep.structure_id, tf.service_statutaire, vh.heures,
vh.horaire_debut, vh.horaire_fin, tis.taux_hetd_service, tis.taux_hetd_complementaire,
ti.taux_hetd_service, ti.taux_hetd_complementaire
UNION ALL
SELECT
to_number( 2 || vhr.id ) id,
null volume_horaire_id,
vhr.id volume_horaire_ref_id,
null service_id,
sr.id service_referentiel_id,
sr.intervenant_id intervenant_id,
null type_intervention_id,
vhr.type_volume_horaire_id type_volume_horaire_id,
evh.id etat_volume_horaire_id,
0 taux_fi,
0 taux_fa,
0 taux_fc,
sr.structure_id structure_id,
1 ponderation_service_du,
1 ponderation_service_compl,
COALESCE(fr.service_statutaire,1) service_statutaire,
vhr.heures heures,
vhr.horaire_debut horaire_debut,
vhr.horaire_fin horaire_fin,
1 taux_service_du,
1 taux_service_compl
FROM
volume_horaire_ref vhr
JOIN service_referentiel sr ON sr.id = vhr.service_referentiel_id
JOIN v_volume_horaire_ref_etat vher ON vher.volume_horaire_ref_id = vhr.id
JOIN etat_volume_horaire evh ON evh.id = vher.etat_volume_horaire_id
JOIN fonction_referentiel fr ON fr.id = sr.fonction_id
WHERE
vhr.histo_destruction IS NULL
AND sr.histo_destruction IS NULL
AND vhr.heures <> 0
AND sr.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, sr.intervenant_id )
SELECT
to_number( 1 || vh.id ) id,
vh.id volume_horaire_id,
null volume_horaire_ref_id,
s.id service_id,
null service_referentiel_id,
s.intervenant_id intervenant_id,
ti.id type_intervention_id,
vh.type_volume_horaire_id type_volume_horaire_id,
vhe.etat_volume_horaire_id etat_volume_horaire_id,
CASE WHEN ep.id IS NOT NULL THEN ep.taux_fi ELSE 1 END taux_fi,
CASE WHEN ep.id IS NOT NULL THEN ep.taux_fa ELSE 0 END taux_fa,
CASE WHEN ep.id IS NOT NULL THEN ep.taux_fc ELSE 0 END taux_fc,
ep.structure_id structure_id,
MAX(COALESCE( m.ponderation_service_du, 1)) ponderation_service_du,
MAX(COALESCE( m.ponderation_service_compl, 1)) ponderation_service_compl,
COALESCE(tf.service_statutaire,1) service_statutaire,
vh.heures heures,
vh.horaire_debut horaire_debut,
vh.horaire_fin horaire_fin,
ti.code type_intervention_code,
COALESCE(tis.taux_hetd_service,ti.taux_hetd_service,1) taux_service_du,
COALESCE(tis.taux_hetd_complementaire,ti.taux_hetd_complementaire,1) taux_service_compl
FROM
volume_horaire vh
JOIN service s ON s.id = vh.service_id
JOIN intervenant i ON i.id = s.intervenant_id
JOIN type_intervention ti ON ti.id = vh.type_intervention_id
JOIN v_volume_horaire_etat vhe ON vhe.volume_horaire_id = vh.id
LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
LEFT JOIN etape e ON e.id = ep.etape_id
LEFT JOIN type_formation tf ON tf.id = e.type_formation_id
LEFT JOIN element_modulateur em ON em.element_id = s.element_pedagogique_id
AND em.histo_destruction IS NULL
LEFT JOIN modulateur m ON m.id = em.modulateur_id
LEFT JOIN type_intervention_statut tis ON tis.type_intervention_id = ti.id AND tis.statut_intervenant_id = i.statut_id
WHERE
vh.histo_destruction IS NULL
AND s.histo_destruction IS NULL
AND vh.heures <> 0
AND vh.motif_non_paiement_id IS NULL
AND s.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, s.intervenant_id )
GROUP BY
vh.id, s.id, s.intervenant_id, ti.id, vh.type_volume_horaire_id, vhe.etat_volume_horaire_id, ep.id,
ep.taux_fi, ep.taux_fa, ep.taux_fc, ep.structure_id, tf.service_statutaire, vh.heures,
vh.horaire_debut, vh.horaire_fin, tis.taux_hetd_service, tis.taux_hetd_complementaire,
ti.code, ti.taux_hetd_service, ti.taux_hetd_complementaire
UNION ALL
ORDER BY
SELECT
to_number( 2 || vhr.id ) id,
null volume_horaire_id,
vhr.id volume_horaire_ref_id,
null service_id,
sr.id service_referentiel_id,
sr.intervenant_id intervenant_id,
null type_intervention_id,
vhr.type_volume_horaire_id type_volume_horaire_id,
evh.id etat_volume_horaire_id,
0 taux_fi,
0 taux_fa,
0 taux_fc,
sr.structure_id structure_id,
1 ponderation_service_du,
1 ponderation_service_compl,
COALESCE(fr.service_statutaire,1) service_statutaire,
vhr.heures heures,
vhr.horaire_debut horaire_debut,
vhr.horaire_fin horaire_fin,
null type_intervention_code,
1 taux_service_du,
1 taux_service_compl
FROM
volume_horaire_ref vhr
JOIN service_referentiel sr ON sr.id = vhr.service_referentiel_id
JOIN v_volume_horaire_ref_etat vher ON vher.volume_horaire_ref_id = vhr.id
JOIN etat_volume_horaire evh ON evh.id = vher.etat_volume_horaire_id
JOIN fonction_referentiel fr ON fr.id = sr.fonction_id
WHERE
vhr.histo_destruction IS NULL
AND sr.histo_destruction IS NULL
AND vhr.heures <> 0
AND sr.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, sr.intervenant_id )
ORDER BY
horaire_fin, horaire_debut, volume_horaire_id, volume_horaire_ref_id;
/
......@@ -5699,9 +5710,10 @@ values (formule_id_seq.nextval, 'Université de Caen', 'FORMULE_UNICAEN', 'CALCU
insert into formule(id, libelle, package_name, procedure_name)
values (formule_id_seq.nextval, 'Université de Montpellier', 'FORMULE_MONTPELLIER', 'CALCUL_RESULTAT');
INSERT INTO "OSE"."FORMULE" (ID, LIBELLE, PACKAGE_NAME, PROCEDURE_NAME) VALUES (formule_id_seq.nextval, 'Université Le Havre Normandie', 'FORMULE_ULHN', 'CALCUL_RESULTAT');
INSERT INTO FORMULE (ID, LIBELLE, PACKAGE_NAME, PROCEDURE_NAME) VALUES (formule_id_seq.nextval, 'Université Le Havre Normandie', 'FORMULE_ULHN', 'CALCUL_RESULTAT');
INSERT INTO FORMULE (ID, LIBELLE, PACKAGE_NAME, PROCEDURE_NAME, VH_PARAM_1_LIBELLE) VALUES (formule_id_seq.nextval, 'Université de Nanterre', 'FORMULE_NANTERRE', 'CALCUL_RESULTAT', 'Code composante');
--INSERT INTO "OSE"."FORMULE" (ID, LIBELLE, PACKAGE_NAME, PROCEDURE_NAME) VALUES (formule_id_seq.nextval, 'Université de Bretagne Occidentale', 'FORMULE_UBO', 'CALCUL_RESULTAT');
--INSERT INTO FORMULE (ID, LIBELLE, PACKAGE_NAME, PROCEDURE_NAME) VALUES (formule_id_seq.nextval, 'Université de Bretagne Occidentale', 'FORMULE_UBO', 'CALCUL_RESULTAT');
......
<?php
/**
* @var $this \Application\View\Renderer\PhpRenderer
* @var $controller \Zend\Mvc\Controller\AbstractController
* @var $viewName string
* @var $sl \Zend\ServiceManager\ServiceLocatorInterface
*/
$formuleTestIntervenantId = 106;
$data = "901 CM 100,00 % 0,00 % 0,00 % Oui 200 1,5 HETD 1,5 HETD 300 HETD 76,92 % 295,38 HETD 98,46 % 1,54 % 4,62 HETD 300 HETD 0 h 0 HETD 300 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD
909 TD 100,00 % 0,00 % 0,00 % Oui 80 1 HETD 1 HETD 80 HETD 20,51 % 78,77 HETD 98,46 % 1,54 % 1,23 HETD 380 HETD 0 h 0 HETD 80 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD
901 TP 100,00 % 0,00 % 0,00 % Oui 10 1 HETD 0,67 HETD 10 HETD 2,56 % 9,85 HETD 98,46 % 1,54 % 0,1 HETD 384 HETD 6 h 4 HETD 4 HETD 0 HETD 0 HETD 0 HETD 4 HETD 0 HETD 0 HETD 0 HETD 0 HETD
";
/*
Structures :
1 Droit
2 Histoire
3 IAE
4 IUT
5 Lettres
6 Santé
7 Sciences
8 SUAPS
9 Université
*/
$data = explode("\n", $data);
?>
<style>
table {
font-size: 8pt;
}
</style>
<table class="table table-bordered table-condensed table-extra-condensed table-hover">
<tr>
<th>Composante</th>
<th>Service statutaire</th>
<th>Référentiel</th>
<th>Type d'intervention</th>
<th>Taux FI</th>
<th>Taux FA</th>
<th>Taux FC</th>
<th>Modulateur HC</th>
<th>Heures</th>
<th>SFi</th>
<th>SFa</th>
<th>SFc</th>
<th>SRef</th>
<th>HCFi</th>
<th>HCFa</th>
<th>HCFc</th>
<th>HCFcM</th>
<th>HCRef</th>
<th>Tableau</th>
</tr>
<?php
/** @var \Doctrine\ORM\EntityManager $bdd */
$bdd = $sl->get(\Application\Constants::BDD);
/** @var \Application\Service\FormuleTestIntervenantService $ftiService */
$ftiService = $sl->get(\Application\Service\FormuleTestIntervenantService::class);
$fti = $ftiService->get($formuleTestIntervenantId);
$bdd->getConnection()->exec('DELETE FROM formule_test_volume_horaire WHERE intervenant_test_id = ' . $formuleTestIntervenantId);
foreach ($data as $l) {
if (trim($l)) {
$c = explode("\t", trim($l));
$correspStructs = [
'P1' => 1,
'901' => 1,
'C1' => 2,
'909' => 2,
'C2' => 3,
'920' => 3,
'C3' => 4,
'970' => 5,
'UNIV' => 9,
];
$composante = $correspStructs[$c[0]];
$serviceStatutaire = strtolower($c[6]) == 'oui';
$typeIntervention = $c[1];
$referentiel = false;
$tauxFi = $c[2];
$tauxFa = $c[3];
$tauxFc = $c[4];
$modulateurHC = $c[5];
$heures = $c[7];
$serviceFi = stringToFloat(substr($c[22], 0, -5));
$serviceFa = stringToFloat(substr($c[23], 0, -5));
$serviceFc = stringToFloat(substr($c[24], 0, -5));
$serviceReferentiel = stringToFloat(substr($c[25], 0, -5));
$heuresComplFi = stringToFloat(substr($c[26], 0, -5));
$heuresComplFa = stringToFloat(substr($c[27], 0, -5));
$heuresComplFc = stringToFloat(substr($c[28], 0, -5));
$heuresComplFcMaj = stringToFloat(substr($c[29], 0, -5));
$heuresComplReferentiel = stringToFloat(substr($c[30], 0, -5));
// Transformations
if ($typeIntervention == 'Référentiel') $typeIntervention = 'REFERENTIEL';
$referentiel = $typeIntervention == 'REFERENTIEL';
$tauxFi = stringToFloat(substr($tauxFi,0,-1)) / 100;
$tauxFa = stringToFloat(substr($tauxFa,0,-1)) / 100;
$tauxFc = stringToFloat(substr($tauxFc,0,-1)) / 100;
if ('' == $modulateurHC) $modulateurHC = 1;
//$heures = substr($heures, -2);
$heures = stringToFloat($heures);
$debug = false;
// $debug = true;
// Traitement et affichage
$composante = $sl->get(\Application\Constants::BDD)->getRepository(\Application\Entity\Db\FormuleTestStructure::class)->find($composante);
if ($debug) {
$c = '<pre>' . var_export($c, true) . '</pre>';
} else {
$c = '';
$vh = new \Application\Entity\Db\FormuleTestVolumeHoraire();
$vh->setIntervenantTest($fti);
$vh->setStructureTest($composante);
$vh->setServiceStatutaire($serviceStatutaire);
$vh->setReferentiel($referentiel);
$vh->setTypeInterventionCode($typeIntervention);
$vh->setTauxFi($tauxFi);
$vh->setTauxFa($tauxFa);
$vh->setTauxFc($tauxFc);
$vh->setPonderationServiceCompl($modulateurHC);
$vh->setHeures($heures);
$vh->setAServiceFi($serviceFi);
$vh->setAServiceFa($serviceFa);
$vh->setAServiceFc($serviceFc);
$vh->setAServiceReferentiel($serviceReferentiel);
$vh->setAHeuresComplFi($heuresComplFi);
$vh->setAHeuresComplFa($heuresComplFa);
$vh->setAHeuresComplFc($heuresComplFc);
$vh->setAHeuresComplFcMajorees($heuresComplFcMaj);
$vh->setAHeuresComplReferentiel($heuresComplReferentiel);
$bdd->persist($vh);
$bdd->flush($vh);
}
?>
<tr>
<td><?= $composante ?></td>
<td><?= $serviceStatutaire ? 'Oui' : 'Non' ?></td>
<td><?= $referentiel ? 'Oui' : 'Non' ?></td>
<td><?= $typeIntervention ?></td>
<td><?= $tauxFi ?></td>
<td><?= $tauxFa ?></td>
<td><?= $tauxFc ?></td>
<td><?= $modulateurHC ?></td>
<td><?= $heures ?></td>
<td><?= $serviceFi ?></td>
<td><?= $serviceFa ?></td>
<td><?= $serviceFc ?></td>
<td><?= $serviceReferentiel ?></td>
<td><?= $heuresComplFi ?></td>
<td><?= $heuresComplFa ?></td>
<td><?= $heuresComplFc ?></td>
<td><?= $heuresComplFcMaj ?></td>
<td><?= $heuresComplReferentiel ?></td>
<td><?= $c ?></td>
</tr>
<?php
}
}
?>
</table>
This diff is collapsed.
<?php
/**
* @var $this \Application\View\Renderer\PhpRenderer
* @var $controller \Zend\Mvc\Controller\AbstractController
* @var $viewName string
* @var $sl \Zend\ServiceManager\ServiceLocatorInterface
*/
$formuleTestIntervenantId = 113;
$data = "901 CM 100,00 % 0,00 % 0,00 % Oui 20 h 1,5 HETD 30 HETD 30 HETD 100,00 % 30 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 30 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD
909 TD 0,00 % 100,00 % 0,00 % Oui 50 h 1 HETD 50 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 50 HETD 100,00 % 17 HETD 33 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 17 HETD 0 HETD 0 HETD 0 HETD 33 HETD 0 HETD 0 HETD 0 HETD
KE8 TP 0,00 % 0,00 % 100,00 % Oui 30 h 1 HETD 30 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 30 HETD 54,55 % 0 HETD 30 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 30 HETD 0 HETD 0 HETD
KE8 Référentiel Non 20 h 1 HETD 20 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 20 HETD 18,18 % 0 HETD 20 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 20 HETD
UP10 CM 100,00 % 0,00 % 0,00 % Oui 10 h 1,5 HETD 15 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 15 HETD 33,33 % 15 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 15 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD
901 TD 0,00 % 0,00 % 100,00 % Oui 20 h 1 HETD 20 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 20 HETD 100,00 % 0 HETD 20 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 20 HETD 0 HETD 0 HETD
901 Référentiel Non 40 h 1 HETD 40 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 40 HETD 36,36 % 0 HETD 40 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 40 HETD
909 Référentiel Non 50 h 1 HETD 50 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 50 HETD 45,45 % 0 HETD 50 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 50 HETD
901 Référentiel Oui 15 h 1 HETD 15 HETD 0 HETD 0,00 % 0 HETD 0 HETD 15 HETD 25,00 % 15 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 15 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD
KE8 TP 100,00 % 0,00 % 0,00 % Oui 30 h 1 HETD 30 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 30 HETD 66,67 % 30 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 30 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD
901 Référentiel Oui 40 h 1 HETD 40 HETD 0 HETD 0,00 % 0 HETD 0 HETD 40 HETD 66,67 % 40 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 40 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD
909 CM 100,00 % 0,00 % Oui 10 h 1,5 HETD 15 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 15 HETD 100,00 % 15 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 15 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD
909 Référentiel Oui 10 h 1 HETD 10 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 10 HETD 100,00 % 10 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 10 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD
901 TD 0,00 % 100,00 % 0,00 % Oui 15 h 1 HETD 15 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 15 HETD 100,00 % 15 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 15 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD
901 Référentiel Oui 5 h 1 HETD 5 HETD 0 HETD 0,00 % 0 HETD 0 HETD 5 HETD 8,33 % 5 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 5 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD
909 TD 0,00 % 0,00 % 100,00 % Oui 25 h 1 HETD 25 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 25 HETD 45,45 % 0 HETD 25 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 25 HETD 0 HETD 0 HETD
";
/*
Structures :
1 Droit
2 Histoire
3 IAE
4 IUT
5 Lettres
6 Santé
7 Sciences
8 SUAPS
9 Université
*/
$data = explode("\n", $data);
?>
<style>
table {
font-size: 8pt;
}
</style>
<table class="table table-bordered table-condensed table-extra-condensed table-hover">
<tr>
<th>Composante</th>
<th>Service statutaire</th>
<th>Référentiel</th>
<th>Type d'intervention</th>
<th>Taux FI</th>
<th>Taux FA</th>
<th>Taux FC</th>
<th>Modulateur HC</th>
<th>Heures</th>
<th>SFi</th>
<th>SFa</th>
<th>SFc</th>
<th>SRef</th>
<th>HCFi</th>
<th>HCFa</th>
<th>HCFc</th>
<th>HCFcM</th>
<th>HCRef</th>
<th>Tableau</th>
</tr>
<?php
/** @var \Doctrine\ORM\EntityManager $bdd */
$bdd = $sl->get(\Application\Constants::BDD);
/** @var \Application\Service\FormuleTestIntervenantService $ftiService */
$ftiService = $sl->get(\Application\Service\FormuleTestIntervenantService::class);
$fti = $ftiService->get($formuleTestIntervenantId);
$bdd->getConnection()->exec('DELETE FROM formule_test_volume_horaire WHERE intervenant_test_id = ' . $formuleTestIntervenantId);
foreach ($data as $l) {
if (trim($l)) {
$c = explode("\t", trim($l));
$correspStructs = [
'P1' => 1,
'901' => 1,
'C1' => 2,
'909' => 2,
'C2' => 3,
'920' => 3,
'C3' => 4,
'KE8' => 8,
'UNIV' => 9,
'UP10' => 9,
];
$composante = $correspStructs[$c[0]];
$serviceStatutaire = strtolower($c[5]) == 'oui';
$typeIntervention = $c[1];
$referentiel = false;
$tauxFi = $c[2];
$tauxFa = $c[3];
$tauxFc = $c[4];
$modulateurHC = 1;
$heures = $c[6];
$serviceFi = stringToFloat(substr($c[60], 0, -5));
$serviceFa = stringToFloat(substr($c[61], 0, -5));
$serviceFc = stringToFloat(substr($c[62], 0, -5));
$serviceReferentiel = stringToFloat(substr($c[63], 0, -5));
$heuresComplFi = stringToFloat(substr($c[64], 0, -5));
$heuresComplFa = stringToFloat(substr($c[65], 0, -5));
$heuresComplFc = stringToFloat(substr($c[66], 0, -5));
$heuresComplFcMaj = stringToFloat(substr($c[67], 0, -5));
$heuresComplReferentiel = stringToFloat(substr($c[68], 0, -5));
// Transformations
if ($typeIntervention == 'Référentiel') $typeIntervention = 'REFERENTIEL';
$referentiel = $typeIntervention == 'REFERENTIEL';
$tauxFi = (float)str_replace(',','.',substr($tauxFi,0,-1)) / 100;
$tauxFa = (float)str_replace(',','.',substr($tauxFa,0,-1)) / 100;
$tauxFc = (float)str_replace(',','.',substr($tauxFc,0,-1)) / 100;
if ('' == $modulateurHC) $modulateurHC = 1;
$heures = substr($heures, 0, -2);
$heures = stringToFloat($heures);
$debug = false;
// $debug = true;
// Traitement et affichage
$composante = $sl->get(\Application\Constants::BDD)->getRepository(\Application\Entity\Db\FormuleTestStructure::class)->find($composante);
if ($debug) {
$c = '<pre>' . var_export($c, true) . '</pre>';
} else {
$c = '';
$vh = new \Application\Entity\Db\FormuleTestVolumeHoraire();
$vh->setIntervenantTest($fti);
$vh->setStructureTest($composante);
$vh->setServiceStatutaire($serviceStatutaire);
$vh->setReferentiel($referentiel);
$vh->setTypeInterventionCode($typeIntervention);
$vh->setTauxFi($tauxFi);
$vh->setTauxFa($tauxFa);
$vh->setTauxFc($tauxFc);
$vh->setPonderationServiceCompl($modulateurHC);
$vh->setHeures($heures);
$vh->setAServiceFi($serviceFi);