Loading CHANGELOG.md +10 −0 Original line number Diff line number Diff line Loading @@ -3,7 +3,17 @@ ## Correction de bugs * L'interface d'administration des motifs de modification de service est de nouveau pleinement fonctionelle. * La suppression d'un élément pédagogique de l'ODF complémentaire refonctionne. * Correction d'un bug dans le cache : si un fichier n'était pas déjà en cache il y avait plantage. ## Nouveautés * Formule de calcul de Lyon2 * L'administrateur se voit attibuer systématiquement l'accès à toutes les nouvelles fonctionnalités ## Notes de mise à jour Les versions 7.3 ou 7.4 de PHP sont maintenant nécessaires. # OSE 10-zf2 et 10-zf3 Loading INSTALL.md +0 −1 Original line number Diff line number Diff line Loading @@ -89,7 +89,6 @@ Dépendances requises : * ldap * bcmath * mbstring * mcrypt * opcache * xml * zip Loading admin/src/DataGen.php +14 −0 Original line number Diff line number Diff line Loading @@ -377,6 +377,20 @@ class DataGen $this->syncTable($tbl, $params); } } /* L'administrateur doit avoir tous les droits obligatoirement! */ $this->oseAdmin->getBdd()->exec(" INSERT INTO role_privilege(privilege_id, role_id) SELECT p.id privilege_id, r.id role_id FROM privilege p JOIN role r ON r.code = 'administrateur' LEFT JOIN role_privilege rp on rp.privilege_id = p.id AND rp.role_id = r.id WHERE rp.role_id IS NULL "); } Loading code/Contrôle des séquences.phpdeleted 100755 → 0 +0 −132 Original line number Diff line number Diff line <?php /** * @var $this \Application\View\Renderer\PhpRenderer * @var $controller \Zend\Mvc\Controller\AbstractController * @var $container \Interop\Container\ContainerInterface * @var $viewName string * @var $viewFile string */ $bdd = new \Application\Connecteur\Bdd\BddConnecteur(); $bdd->setEntityManager($container->get(\Application\Constants::BDD)); $tables = getData($bdd); $tableToModif = isset($_REQUEST['table-to-modif']) ? $_REQUEST['table-to-modif'] : null; if ($tableToModif && isset($tables[$tableToModif]) && !empty($tables[$tableToModif]['sql'])) { foreach ($tables[$tableToModif]['sql'] as $query) { $bdd->exec($query); } die('OK'); } ?> <h1>Contrôle des valeurs des séquences</h1> <table class="table table-bordered table-condensed table-hover"> <thead> <tr> <th>Table</th> <th>Séquence</th> <th>Séq. val</th> <th>Dernier ID</th> <th>SQL</th> </tr> </thead> <tbody> <?php foreach ($tables as $table => $d): extract($d); ?> <tr<?= $probleme ? ' class="bg-danger"' : '' ?>> <td><?= $table ?></td> <td><?= $sequence ?></td> <td><?= $seqVal ?></td> <td><?= $maxId ?></td> <td> <?php if (!empty($sql)): ?> <button class="btn btn-default btn-maj-seq" data-table="<?= $table ?>">MAJ séquence</button> <?php endif; ?> </td> </tr> <?php endforeach; ?> </tbody> </table> <script> $(function () { $('.btn-maj-seq').click(function () { majSeq($(this).data('table')) }); }); function majSeq(table) { var url = '<?= $_SERVER['REQUEST_URI'] ?>'; $.post(url, {"table-to-modif": table}, function (data) { alertFlash('Réussi', 'success', 1000); window.location.reload(); }).fail(function (jqXHR) { alertFlash(jqXHR.responseText, 'danger', 5000); console.log(jqXHR); }); } </script> <?php function getData(Application\Connecteur\Bdd\BddConnecteur $bdd) { $sql = " SELECT utc.table_name, us.sequence_name, us.last_number FROM USER_TAB_COLUMNS utc JOIN USER_SEQUENCES us ON us.sequence_name = SUBSTR(utc.table_name,1,23) || '_ID_SEQ' WHERE utc.column_name = 'ID' "; $dt = $bdd->fetch($sql, [], 'TABLE_NAME'); $sqls = []; foreach ($dt as $tableName => $d) { $sqls[$tableName] = "SELECT '$tableName' table_name, max(id) max_id FROM $tableName"; } $ids = $bdd->fetch(implode(' UNION ', $sqls), [], 'TABLE_NAME'); $tables = []; foreach ($dt as $tableName => $d) { $sequence = $d['SEQUENCE_NAME']; $seqVal = (int)$d['LAST_NUMBER']; $maxId = (int)$ids[$tableName]['MAX_ID']; $probleme = $seqVal <= $maxId; $modifSqls = []; if ($maxId - $seqVal >= 0) { $modifSqls[] = "ALTER SEQUENCE $sequence INCREMENT BY " . ($maxId - $seqVal + 1); $modifSqls[] = "SELECT $sequence.NEXTVAL FROM dual"; $modifSqls[] = "ALTER SEQUENCE $sequence INCREMENT BY 1"; } $tables[$tableName] = [ 'sequence' => $sequence, 'seqVal' => $seqVal, 'maxId' => $maxId, 'probleme' => $probleme, 'sql' => $modifSqls, ]; } return $tables; } No newline at end of file code/FormuleTestColleurLyon2.php 0 → 100644 +223 −0 Original line number Diff line number Diff line <?php /** * @var $this \Application\View\Renderer\PhpRenderer * @var $controller \Zend\Mvc\Controller\AbstractController * @var $container \Interop\Container\ContainerInterface * @var $viewName string * @var $viewFile string */ $formuleTestIntervenantId = 132; $data = "901 Oui CM 50,00 % 0,00 % 50,00 % 20 h 1,5 HETD 30 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 15 HETD 0 HETD 15 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 909 Oui TD 50,00 % 25,00 % 25,00 % 50 h 1 HETD 50 HETD 0 HETD 0,00 % 0 HETD 0 HETD 50 HETD 40,00 % 50 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 12,5 HETD 12,5 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 902 Oui CM 0,00 % 0,00 % 100,00 % 50 h 1,5 HETD 75 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 75 HETD 65,22 % 14,35 HETD 60,65 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 14,35 HETD 0 HETD 0 HETD 0 HETD 60,65 HETD 0 HETD 0 HETD D4DAC10000 Oui Référentiel 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 20 HETD 16,00 % 0 HETD 20 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 20 HETD D4DAC10000 Oui CM 0,00 % 0,00 % 100,00 % 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 15 HETD 31,58 % 0 HETD 15 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 15 HETD 0 HETD 0 HETD 901 Oui TD 0,00 % 0,00 % 100,00 % 40 h 1 HETD 40 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 40 HETD 34,78 % 7,65 HETD 32,35 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 7,65 HETD 0 HETD 0 HETD 0 HETD 32,35 HETD 0 HETD 0 HETD 901 Oui Référentiel 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 40 HETD 32,00 % 0 HETD 40 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 40 HETD 909 Oui CM 80,00 % 0,00 % 20,00 % 50 h 1,5 HETD 75 HETD 0 HETD 0,00 % 0 HETD 0 HETD 75 HETD 60,00 % 75 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 60 HETD 0 HETD 15 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 901 Oui Référentiel 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 15 HETD 12,00 % 0 HETD 15 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 15 HETD ETAB-X Non TD 100,00 % 0,00 % 0,00 % 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 30 HETD 66,67 % 0 HETD 30 HETD 0 HETD 0 HETD 0 HETD 0 HETD 30 HETD 0 HETD 0 HETD 0 HETD 0 HETD ETAB-X Non Référentiel 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 40 HETD 32,00 % 0 HETD 40 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 40 HETD ETAB-Y Non CM 100,00 % 0,00 % 0,00 % 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 0 HETD 0,00 % 0 HETD 0 HETD 15 HETD 33,33 % 0 HETD 15 HETD 0 HETD 0 HETD 0 HETD 0 HETD 15 HETD 0 HETD 0 HETD 0 HETD 0 HETD 909 Oui Référentiel 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 0 HETD 0,00 % 0 HETD 0 HETD 10 HETD 8,00 % 0 HETD 10 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 10 HETD 901 Oui TD 40,00 % 20,00 % 40,00 % 15 h 1 HETD 15 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 6 HETD 3 HETD 6 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD D4DAC10000 Oui CM 0,00 % 0,00 % 100,00 % 5 h 1,5 HETD 7,5 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 7,5 HETD 15,79 % 0 HETD 7,5 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 7,5 HETD 0 HETD 0 HETD D4DAC10000 Oui TD 100,00 % 0,00 % 0,00 % 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 25 HETD 52,63 % 0 HETD 25 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 25 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é */ $correspStructs = [ '901' => 1, '909' => 2, '902' => 3, 'U1LY200000' => 4, 'D4DAC10000' => 5, 'ETAB-X' => 6, 'ETAB-Y' => 7, ]; $correspChamps = [ 'structureTest' => 0, 'referentiel' => 2, 'serviceStatutaire' => null, 'typeInterventionCode' => 2, 'tauxFi' => 3, 'tauxFa' => 4, 'tauxFc' => 5, 'ponderationServiceDu' => null, 'ponderationServiceCompl' => null, 'param1' => 0, 'param2' => 1, 'param3' => null, 'param4' => null, 'param5' => null, 'heures' => 6, 'aServiceFi' => 40, 'aServiceFa' => 41, 'aServiceFc' => 42, 'aServiceReferentiel' => 43, 'aHeuresComplFi' => 44, 'aHeuresComplFa' => 45, 'aHeuresComplFc' => 46, 'aHeuresComplFcMajorees' => 47, 'aHeuresComplReferentiel' => 48, ]; function transfo(array $c) { if ($c['typeInterventionCode'] == 'Référentiel') { $c['typeInterventionCode'] = null; $c['referentiel'] = true; } else { $c['referentiel'] = false; } return $c; } $debug = false; //$debug = true; $defaults = [ 'referentiel' => false, 'serviceStatutaire' => true, 'tauxFi' => 100, 'tauxFa' => 0, 'tauxFc' => 0, 'ponderationServiceDu' => 1, 'ponderationServiceCompl' => 1, ]; /** @var \Doctrine\ORM\EntityManager $bdd */ $bdd = $container->get(\Application\Constants::BDD); $data = explode("\n", $data); $vhHead = []; $vhData = []; foreach ($data as $l) { if (trim($l)) { $cOri = explode("\t", trim($l)); $values = []; foreach ($correspChamps as $col => $index) { if ($index !== null) { $vhHead[$col] = $col; $values[$col] = $cOri[$index]; if ('' === $values[$col] && isset($defaults[$col])) { $values[$col] = $defaults[$col]; } } } $values = transfo($values); foreach ($correspChamps as $col => $index) { if ($index !== null) { if ((null === $values[$col] || '' === $values[$col]) && isset($defaults[$col])) { $values[$col] = $defaults[$col]; } } } if (isset($values['structureTest']) && !empty($values['structureTest']) && !$values['structureTest'] instanceof \Application\Entity\Db\FormuleTestStructure) { try { $values['structureTest'] = $bdd->getRepository(\Application\Entity\Db\FormuleTestStructure::class)->find($correspStructs[$values['structureTest']]); } catch (\Exception $e) { throw new \Exception("Composante " . $values['structureTest'] . " non mappée", 0, $e); } } $lfloat = [ 'tauxFi', 'tauxFa', 'tauxFc', 'heures', 'ponderationServiceDu', 'ponderationServiceCompl', 'aServiceFi', 'aServiceFa', 'aServiceFc', 'aServiceReferentiel', 'aHeuresComplFi', 'aHeuresComplFa', 'aHeuresComplFc', 'aHeuresComplFcMajorees', 'aHeuresComplReferentiel', ]; foreach ($lfloat as $col) { if (isset($values[$col])) { $values[$col] = stringToFloat($values[$col]); } } $ltaux = ['tauxFi', 'tauxFa', 'tauxFc']; foreach ($ltaux as $col) { if (isset($values[$col])) { $values[$col] = $values[$col] / 100; } } $lbool = ['referentiel', 'serviceStatutaire']; foreach ($lbool as $col) { if (isset($values[$col])) { $values[$col] = (bool)$values[$col]; } } $values['debugInfo'] = $cOri; $vhData[] = $values; } } if (!$debug) { /** @var \Application\Service\FormuleTestIntervenantService $ftiService */ $ftiService = $container->get(\Application\Service\FormuleTestIntervenantService::class); $fti = $ftiService->get($formuleTestIntervenantId); $bdd->getConnection()->exec('DELETE FROM formule_test_volume_horaire WHERE intervenant_test_id = ' . $fti->getId()); foreach ($vhData as $i => $values) { $vh = new \Application\Entity\Db\FormuleTestVolumeHoraire(); $vh->setIntervenantTest($fti); foreach ($vhHead as $col) { $vh->{'set' . ucfirst($col)}($values[$col]); } try { $bdd->persist($vh); $bdd->flush($vh); $vhData[$i]['debugInfo'] = 'OK'; } catch (\Exception $e) { $vhData[$i]['debugInfo'] = $e->getMessage(); } } } ?> <style> table { font-size: 8pt; } </style> <table class="table table-bordered table-condensed table-extra-condensed table-hover"> <tr> <?php foreach ($vhHead as $col): ?> <th><?= $col; ?></th> <?php endforeach; ?> <th>Infos Débug</th> </tr> <?php foreach ($vhData as $values) { echo '<tr>'; foreach ($values as $col => $value) { if (is_array($value)) { $value = '<pre style="font-size:8pt">' . var_export($value, true) . '</pre>'; } echo "<td>$value</td>"; } echo '</tr>'; } ?> </table> No newline at end of file Loading
CHANGELOG.md +10 −0 Original line number Diff line number Diff line Loading @@ -3,7 +3,17 @@ ## Correction de bugs * L'interface d'administration des motifs de modification de service est de nouveau pleinement fonctionelle. * La suppression d'un élément pédagogique de l'ODF complémentaire refonctionne. * Correction d'un bug dans le cache : si un fichier n'était pas déjà en cache il y avait plantage. ## Nouveautés * Formule de calcul de Lyon2 * L'administrateur se voit attibuer systématiquement l'accès à toutes les nouvelles fonctionnalités ## Notes de mise à jour Les versions 7.3 ou 7.4 de PHP sont maintenant nécessaires. # OSE 10-zf2 et 10-zf3 Loading
INSTALL.md +0 −1 Original line number Diff line number Diff line Loading @@ -89,7 +89,6 @@ Dépendances requises : * ldap * bcmath * mbstring * mcrypt * opcache * xml * zip Loading
admin/src/DataGen.php +14 −0 Original line number Diff line number Diff line Loading @@ -377,6 +377,20 @@ class DataGen $this->syncTable($tbl, $params); } } /* L'administrateur doit avoir tous les droits obligatoirement! */ $this->oseAdmin->getBdd()->exec(" INSERT INTO role_privilege(privilege_id, role_id) SELECT p.id privilege_id, r.id role_id FROM privilege p JOIN role r ON r.code = 'administrateur' LEFT JOIN role_privilege rp on rp.privilege_id = p.id AND rp.role_id = r.id WHERE rp.role_id IS NULL "); } Loading
code/Contrôle des séquences.phpdeleted 100755 → 0 +0 −132 Original line number Diff line number Diff line <?php /** * @var $this \Application\View\Renderer\PhpRenderer * @var $controller \Zend\Mvc\Controller\AbstractController * @var $container \Interop\Container\ContainerInterface * @var $viewName string * @var $viewFile string */ $bdd = new \Application\Connecteur\Bdd\BddConnecteur(); $bdd->setEntityManager($container->get(\Application\Constants::BDD)); $tables = getData($bdd); $tableToModif = isset($_REQUEST['table-to-modif']) ? $_REQUEST['table-to-modif'] : null; if ($tableToModif && isset($tables[$tableToModif]) && !empty($tables[$tableToModif]['sql'])) { foreach ($tables[$tableToModif]['sql'] as $query) { $bdd->exec($query); } die('OK'); } ?> <h1>Contrôle des valeurs des séquences</h1> <table class="table table-bordered table-condensed table-hover"> <thead> <tr> <th>Table</th> <th>Séquence</th> <th>Séq. val</th> <th>Dernier ID</th> <th>SQL</th> </tr> </thead> <tbody> <?php foreach ($tables as $table => $d): extract($d); ?> <tr<?= $probleme ? ' class="bg-danger"' : '' ?>> <td><?= $table ?></td> <td><?= $sequence ?></td> <td><?= $seqVal ?></td> <td><?= $maxId ?></td> <td> <?php if (!empty($sql)): ?> <button class="btn btn-default btn-maj-seq" data-table="<?= $table ?>">MAJ séquence</button> <?php endif; ?> </td> </tr> <?php endforeach; ?> </tbody> </table> <script> $(function () { $('.btn-maj-seq').click(function () { majSeq($(this).data('table')) }); }); function majSeq(table) { var url = '<?= $_SERVER['REQUEST_URI'] ?>'; $.post(url, {"table-to-modif": table}, function (data) { alertFlash('Réussi', 'success', 1000); window.location.reload(); }).fail(function (jqXHR) { alertFlash(jqXHR.responseText, 'danger', 5000); console.log(jqXHR); }); } </script> <?php function getData(Application\Connecteur\Bdd\BddConnecteur $bdd) { $sql = " SELECT utc.table_name, us.sequence_name, us.last_number FROM USER_TAB_COLUMNS utc JOIN USER_SEQUENCES us ON us.sequence_name = SUBSTR(utc.table_name,1,23) || '_ID_SEQ' WHERE utc.column_name = 'ID' "; $dt = $bdd->fetch($sql, [], 'TABLE_NAME'); $sqls = []; foreach ($dt as $tableName => $d) { $sqls[$tableName] = "SELECT '$tableName' table_name, max(id) max_id FROM $tableName"; } $ids = $bdd->fetch(implode(' UNION ', $sqls), [], 'TABLE_NAME'); $tables = []; foreach ($dt as $tableName => $d) { $sequence = $d['SEQUENCE_NAME']; $seqVal = (int)$d['LAST_NUMBER']; $maxId = (int)$ids[$tableName]['MAX_ID']; $probleme = $seqVal <= $maxId; $modifSqls = []; if ($maxId - $seqVal >= 0) { $modifSqls[] = "ALTER SEQUENCE $sequence INCREMENT BY " . ($maxId - $seqVal + 1); $modifSqls[] = "SELECT $sequence.NEXTVAL FROM dual"; $modifSqls[] = "ALTER SEQUENCE $sequence INCREMENT BY 1"; } $tables[$tableName] = [ 'sequence' => $sequence, 'seqVal' => $seqVal, 'maxId' => $maxId, 'probleme' => $probleme, 'sql' => $modifSqls, ]; } return $tables; } No newline at end of file
code/FormuleTestColleurLyon2.php 0 → 100644 +223 −0 Original line number Diff line number Diff line <?php /** * @var $this \Application\View\Renderer\PhpRenderer * @var $controller \Zend\Mvc\Controller\AbstractController * @var $container \Interop\Container\ContainerInterface * @var $viewName string * @var $viewFile string */ $formuleTestIntervenantId = 132; $data = "901 Oui CM 50,00 % 0,00 % 50,00 % 20 h 1,5 HETD 30 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 15 HETD 0 HETD 15 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 909 Oui TD 50,00 % 25,00 % 25,00 % 50 h 1 HETD 50 HETD 0 HETD 0,00 % 0 HETD 0 HETD 50 HETD 40,00 % 50 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 12,5 HETD 12,5 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 902 Oui CM 0,00 % 0,00 % 100,00 % 50 h 1,5 HETD 75 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 75 HETD 65,22 % 14,35 HETD 60,65 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 14,35 HETD 0 HETD 0 HETD 0 HETD 60,65 HETD 0 HETD 0 HETD D4DAC10000 Oui Référentiel 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 20 HETD 16,00 % 0 HETD 20 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 20 HETD D4DAC10000 Oui CM 0,00 % 0,00 % 100,00 % 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 15 HETD 31,58 % 0 HETD 15 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 15 HETD 0 HETD 0 HETD 901 Oui TD 0,00 % 0,00 % 100,00 % 40 h 1 HETD 40 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0,00 % 0 HETD 0 HETD 40 HETD 34,78 % 7,65 HETD 32,35 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 7,65 HETD 0 HETD 0 HETD 0 HETD 32,35 HETD 0 HETD 0 HETD 901 Oui Référentiel 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 40 HETD 32,00 % 0 HETD 40 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 40 HETD 909 Oui CM 80,00 % 0,00 % 20,00 % 50 h 1,5 HETD 75 HETD 0 HETD 0,00 % 0 HETD 0 HETD 75 HETD 60,00 % 75 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 60 HETD 0 HETD 15 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 901 Oui Référentiel 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 15 HETD 12,00 % 0 HETD 15 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 15 HETD ETAB-X Non TD 100,00 % 0,00 % 0,00 % 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 30 HETD 66,67 % 0 HETD 30 HETD 0 HETD 0 HETD 0 HETD 0 HETD 30 HETD 0 HETD 0 HETD 0 HETD 0 HETD ETAB-X Non Référentiel 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 40 HETD 32,00 % 0 HETD 40 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 40 HETD ETAB-Y Non CM 100,00 % 0,00 % 0,00 % 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 0 HETD 0,00 % 0 HETD 0 HETD 15 HETD 33,33 % 0 HETD 15 HETD 0 HETD 0 HETD 0 HETD 0 HETD 15 HETD 0 HETD 0 HETD 0 HETD 0 HETD 909 Oui Référentiel 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 0 HETD 0,00 % 0 HETD 0 HETD 10 HETD 8,00 % 0 HETD 10 HETD 0 HETD 0,00 % 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 10 HETD 901 Oui TD 40,00 % 20,00 % 40,00 % 15 h 1 HETD 15 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 6 HETD 3 HETD 6 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD 0 HETD D4DAC10000 Oui CM 0,00 % 0,00 % 100,00 % 5 h 1,5 HETD 7,5 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 7,5 HETD 15,79 % 0 HETD 7,5 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 7,5 HETD 0 HETD 0 HETD D4DAC10000 Oui TD 100,00 % 0,00 % 0,00 % 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 25 HETD 52,63 % 0 HETD 25 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 25 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é */ $correspStructs = [ '901' => 1, '909' => 2, '902' => 3, 'U1LY200000' => 4, 'D4DAC10000' => 5, 'ETAB-X' => 6, 'ETAB-Y' => 7, ]; $correspChamps = [ 'structureTest' => 0, 'referentiel' => 2, 'serviceStatutaire' => null, 'typeInterventionCode' => 2, 'tauxFi' => 3, 'tauxFa' => 4, 'tauxFc' => 5, 'ponderationServiceDu' => null, 'ponderationServiceCompl' => null, 'param1' => 0, 'param2' => 1, 'param3' => null, 'param4' => null, 'param5' => null, 'heures' => 6, 'aServiceFi' => 40, 'aServiceFa' => 41, 'aServiceFc' => 42, 'aServiceReferentiel' => 43, 'aHeuresComplFi' => 44, 'aHeuresComplFa' => 45, 'aHeuresComplFc' => 46, 'aHeuresComplFcMajorees' => 47, 'aHeuresComplReferentiel' => 48, ]; function transfo(array $c) { if ($c['typeInterventionCode'] == 'Référentiel') { $c['typeInterventionCode'] = null; $c['referentiel'] = true; } else { $c['referentiel'] = false; } return $c; } $debug = false; //$debug = true; $defaults = [ 'referentiel' => false, 'serviceStatutaire' => true, 'tauxFi' => 100, 'tauxFa' => 0, 'tauxFc' => 0, 'ponderationServiceDu' => 1, 'ponderationServiceCompl' => 1, ]; /** @var \Doctrine\ORM\EntityManager $bdd */ $bdd = $container->get(\Application\Constants::BDD); $data = explode("\n", $data); $vhHead = []; $vhData = []; foreach ($data as $l) { if (trim($l)) { $cOri = explode("\t", trim($l)); $values = []; foreach ($correspChamps as $col => $index) { if ($index !== null) { $vhHead[$col] = $col; $values[$col] = $cOri[$index]; if ('' === $values[$col] && isset($defaults[$col])) { $values[$col] = $defaults[$col]; } } } $values = transfo($values); foreach ($correspChamps as $col => $index) { if ($index !== null) { if ((null === $values[$col] || '' === $values[$col]) && isset($defaults[$col])) { $values[$col] = $defaults[$col]; } } } if (isset($values['structureTest']) && !empty($values['structureTest']) && !$values['structureTest'] instanceof \Application\Entity\Db\FormuleTestStructure) { try { $values['structureTest'] = $bdd->getRepository(\Application\Entity\Db\FormuleTestStructure::class)->find($correspStructs[$values['structureTest']]); } catch (\Exception $e) { throw new \Exception("Composante " . $values['structureTest'] . " non mappée", 0, $e); } } $lfloat = [ 'tauxFi', 'tauxFa', 'tauxFc', 'heures', 'ponderationServiceDu', 'ponderationServiceCompl', 'aServiceFi', 'aServiceFa', 'aServiceFc', 'aServiceReferentiel', 'aHeuresComplFi', 'aHeuresComplFa', 'aHeuresComplFc', 'aHeuresComplFcMajorees', 'aHeuresComplReferentiel', ]; foreach ($lfloat as $col) { if (isset($values[$col])) { $values[$col] = stringToFloat($values[$col]); } } $ltaux = ['tauxFi', 'tauxFa', 'tauxFc']; foreach ($ltaux as $col) { if (isset($values[$col])) { $values[$col] = $values[$col] / 100; } } $lbool = ['referentiel', 'serviceStatutaire']; foreach ($lbool as $col) { if (isset($values[$col])) { $values[$col] = (bool)$values[$col]; } } $values['debugInfo'] = $cOri; $vhData[] = $values; } } if (!$debug) { /** @var \Application\Service\FormuleTestIntervenantService $ftiService */ $ftiService = $container->get(\Application\Service\FormuleTestIntervenantService::class); $fti = $ftiService->get($formuleTestIntervenantId); $bdd->getConnection()->exec('DELETE FROM formule_test_volume_horaire WHERE intervenant_test_id = ' . $fti->getId()); foreach ($vhData as $i => $values) { $vh = new \Application\Entity\Db\FormuleTestVolumeHoraire(); $vh->setIntervenantTest($fti); foreach ($vhHead as $col) { $vh->{'set' . ucfirst($col)}($values[$col]); } try { $bdd->persist($vh); $bdd->flush($vh); $vhData[$i]['debugInfo'] = 'OK'; } catch (\Exception $e) { $vhData[$i]['debugInfo'] = $e->getMessage(); } } } ?> <style> table { font-size: 8pt; } </style> <table class="table table-bordered table-condensed table-extra-condensed table-hover"> <tr> <?php foreach ($vhHead as $col): ?> <th><?= $col; ?></th> <?php endforeach; ?> <th>Infos Débug</th> </tr> <?php foreach ($vhData as $values) { echo '<tr>'; foreach ($values as $col => $value) { if (is_array($value)) { $value = '<pre style="font-size:8pt">' . var_export($value, true) . '</pre>'; } echo "<td>$value</td>"; } echo '</tr>'; } ?> </table> No newline at end of file