From f4e1abdb811a61aa03e849b23d8104a69f985986 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laurent=20L=C3=A9cluse?= <laurent.lecluse@unicaen.fr> Date: Fri, 26 Jun 2020 10:27:20 +0200 Subject: [PATCH] =?UTF-8?q?Quelques=20coquilles=20restantes,=20al=C3=A9mio?= =?UTF-8?q?ration=20du=20reporting=20&=20tests=20=20toutes=20ann=C3=A9es?= =?UTF-8?q?=20confondues?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/migration/AgrementStructure.php | 155 +++++++++++++------------- 1 file changed, 77 insertions(+), 78 deletions(-) diff --git a/admin/migration/AgrementStructure.php b/admin/migration/AgrementStructure.php index bb572cd0ca..b937e5b26b 100644 --- a/admin/migration/AgrementStructure.php +++ b/admin/migration/AgrementStructure.php @@ -46,19 +46,15 @@ class AgrementStructure extends AbstractMigration { $bdd = $this->manager->getBdd(); $console = $this->manager->getOseAdmin()->getConsole(); - $console->println("Récupération des agréments conseil restreint sans structure"); //La vue TBL_AGREMENT a changé, donc il faut d'abord recharger la vue agrement pour le traitement - $console->println("------------------------------------------------------------------"); - $console->println("Nouveau calcul du tableau de bord agrement"); + $console->println("Calcul du tableau de bord agrement"); $bdd->exec('BEGIN unicaen_tbl.calculer(\'agrement\'); END;'); $tacrId = (int)$bdd->select("SELECT id FROM type_agrement WHERE code = 'CONSEIL_RESTREINT'")[0]['ID']; - $bdd->exec("alter trigger AGREMENT_CK disable"); - //On récupère les agrements de type conseil restreint sans structure $agrementsToRecreate = []; - $sql = 'SELECT + $sql = "SELECT a.id agrement_id, i.id intervenant_id, i.annee_id annee_id, @@ -69,28 +65,30 @@ class AgrementStructure extends AbstractMigration FROM AGREMENT a JOIN INTERVENANT i ON i.id = a.intervenant_id WHERE - a.type_agrement_id = 1 + a.type_agrement_id = $tacrId AND a.structure_id IS NULL AND a.histo_destruction IS NULL - AND i.annee_id = 2019'; + "; $agrements = $bdd->select($sql); //Nombre d'agréments concernés $nbAgrement = count($agrements); - $console->println("Il y a $nbAgrement a corriger"); - $nbAgrementCorrige = 0; - //On commence le traitement de chaque agrément qui pose problème - foreach ($agrements as $agrement) { - try { - $structureId = false; - $nomIntervenant = $agrement['NOM_USUEL']; - $intervenantId = $agrement['INTERVENANT_ID']; - $agrementId = $agrement['AGREMENT_ID']; - $console->println("------------------------------------------------------------------"); - $console->println("Traitement de l'agrement de $nomIntervenant / Agrement_id : $agrementId"); - $console->println("Recherche d'un structure id dans la table TBL_AGREMENT"); - //On recherche d'abord dans la table TBL_AGREMENT pour trouver la structure possible - $sqlAgrement = "SELECT + if ($nbAgrement > 0) { + $bdd->exec("alter trigger AGREMENT_CK disable"); + $console->println("Il y a $nbAgrement agréments du conseil restreint a corriger"); + $nbAgrementCorrige = 0; + //On commence le traitement de chaque agrément qui pose problème + foreach ($agrements as $agrement) { + try { + $structureId = false; + $nomIntervenant = $agrement['NOM_USUEL']; + $intervenantId = $agrement['INTERVENANT_ID']; + $agrementId = $agrement['AGREMENT_ID']; + $console->println("------------------------------------------------------------------"); + $console->println("Traitement de l'agrement de $nomIntervenant / Agrement_id : $agrementId"); + $console->println("Recherche d'un structure id dans la table TBL_AGREMENT"); + //On recherche d'abord dans la table TBL_AGREMENT pour trouver la structure possible + $sqlAgrement = "SELECT ta.structure_id structure_id, ta.intervenant_id intervenant_id FROM @@ -100,21 +98,21 @@ class AgrementStructure extends AbstractMigration AND ta.type_agrement_id = $tacrId AND ta.agrement_id IS NULL"; - $agrements = $bdd->select($sqlAgrement); - - $nbStructuresPossibles = count($agrements); - //Cas où une seule structure est trouvée dans la table TBL_AGREMENT - if ($nbStructuresPossibles == 1) { - $agrement = current($agrements); - //Je set la variable $structureId pour l'update - $structureId = $agrement['STRUCTURE_ID']; - $console->println("Une seule structure trouvée pour cet intervenant / Structure_id : " . $structureId); - } else { - //Cas où j'ai plusieurs structures possibles. - $console->println("Plusieurs structure_id possible pour cet agrément : $nbStructuresPossibles"); - $console->println("Recherche des structures possibles via les contrats"); - //Il faut donc remonter au niveau des contrats pour pouvoir essayer de trouver le bon structure_id de l'agrement - $sqlContrats = "SELECT + $agrements = $bdd->select($sqlAgrement); + + $nbStructuresPossibles = count($agrements); + //Cas où une seule structure est trouvée dans la table TBL_AGREMENT + if ($nbStructuresPossibles == 1) { + $agrement = current($agrements); + //Je set la variable $structureId pour l'update + $structureId = $agrement['STRUCTURE_ID']; + $console->println("Une seule structure trouvée pour cet intervenant / Structure_id : " . $structureId); + } else { + //Cas où j'ai plusieurs structures possibles. + $console->println("Plusieurs structure_id possible pour cet agrément : $nbStructuresPossibles"); + $console->println("Recherche des structures possibles via les contrats"); + //Il faut donc remonter au niveau des contrats pour pouvoir essayer de trouver le bon structure_id de l'agrement + $sqlContrats = "SELECT c.structure_id structure_id, c.intervenant_id intervenant_id FROM @@ -123,62 +121,63 @@ class AgrementStructure extends AbstractMigration c.intervenant_id = $intervenantId AND c.histo_destruction IS NULL"; - $contrats = $bdd->select($sqlContrats); + $contrats = $bdd->select($sqlContrats); - $nbContrats = count($contrats); - //Cas où j'ai un contrat unique valide, je peux donc isoler la structure_id pour la mettre à jour dans l'agrément - if ($nbContrats == 1) { - $contrat = current($contrats); - //Je set la variable $structureId pour l'update - $structureId = $contrat['STRUCTURE_ID']; - $console->println("Un contrat unique trouvé et validé avec la structure id : " . $structureId); + $nbContrats = count($contrats); + //Cas où j'ai un contrat unique valide, je peux donc isoler la structure_id pour la mettre à jour dans l'agrément + if ($nbContrats == 1) { + $contrat = current($contrats); + //Je set la variable $structureId pour l'update + $structureId = $contrat['STRUCTURE_ID']; + $console->println("Un contrat unique trouvé et validé avec la structure id : " . $structureId); + } } - } - //Si j'ai réussi à identifier une structure unique alors je peux mettre à jour la table agrement - if ($structureId !== false) { - $console->println("Mise à jour de l'agrement id : $agrementId avec le structure id : $structureId", $console::COLOR_LIGHT_GREEN); - $sqlUpdate = "UPDATE AGREMENT SET STRUCTURE_ID = $structureId WHERE ID = $agrementId"; - $nbAgrementCorrige++; - $bdd->exec($sqlUpdate); - } else { - //Sinon je fais un soft delete de l'agrement - //on met une date précise pour retrouver facilement - $console->println("Suppression de l'agrément id : $agrementId car aucune structure n'a pu être identifiée", $console::COLOR_LIGHT_RED); - $agrementsToRecreate [] = $agrement; - $sqlDelete = "UPDATE + //Si j'ai réussi à identifier une structure unique alors je peux mettre à jour la table agrement + if ($structureId !== false) { + $console->println("Mise à jour de l'agrement id : $agrementId avec le structure id : $structureId", $console::COLOR_LIGHT_GREEN); + $sqlUpdate = "UPDATE AGREMENT SET STRUCTURE_ID = $structureId WHERE ID = $agrementId"; + $nbAgrementCorrige++; + $bdd->exec($sqlUpdate); + } else { + //Sinon je fais un soft delete de l'agrement + //on met une date précise pour retrouver facilement + $console->println("Suppression de l'agrément id : $agrementId car aucune structure n'a pu être identifiée", $console::COLOR_LIGHT_RED); + $agrementsToRecreate [] = $agrement; + $sqlDelete = "UPDATE AGREMENT SET HISTO_DESTRUCTION = TO_DATE('2020 - 01 - 01', 'YYYY - MM - DD'), HISTO_DESTRUCTEUR_ID = HISTO_CREATEUR_ID WHERE ID = $agrementId"; - $bdd->exec($sqlDelete); + $bdd->exec($sqlDelete); + } + } catch (Exception $e) { + $console->println($e->getMessage()); } - } catch (Exception $e) { - $console->println($e->getMessage()); } - } - if (!empty($agrementsToRecreate)) { - $console->println("Seulement $nbAgrementCorrige sur $nbAgrement on été corrigés", $console::COLOR_LIGHT_RED); - $console->println("Les intervenants suivants nécessitent une intervention manuelle de votre part : il faut saisir à nouveau leurs agréments du conseil restreint : ", $console::COLOR_LIGHT_RED); - foreach ($agrementsToRecreate as $value) { - $console->println($value['PRENOM'] . " " . $value['NOM_USUEL'] . " (id : " . $value['INTERVENANT_ID'] . " / code : " . $value['CODE_INTERVENANT'] . ")", $console::COLOR_LIGHT_RED); + if (!empty($agrementsToRecreate)) { + $console->println("Seulement $nbAgrementCorrige sur $nbAgrement on été corrigés", $console::COLOR_LIGHT_RED); + $console->println("Les intervenants suivants nécessitent une intervention manuelle de votre part : il faut saisir à nouveau leurs agréments du conseil restreint : ", $console::COLOR_LIGHT_RED); + foreach ($agrementsToRecreate as $value) { + $console->println($value['PRENOM'] . " " . $value['NOM_USUEL'] . " (année : " . $value['ANNEE_ID'] . " / id : " . $value['INTERVENANT_ID'] . " / code : " . $value['CODE_INTERVENANT'] . ")", $console::COLOR_LIGHT_RED); + } + } else { + $console->println("Les $nbAgrement agrements restreints sans structure on été corrigés.", $console::COLOR_LIGHT_GREEN); } - } else { - $console->println("Les $nbAgrement agrements restreints sans structure on été corrigé.", $console::COLOR_LIGHT_GREEN); - } - $bdd->exec("alter trigger AGREMENT_CK enable"); + $bdd->exec("alter trigger AGREMENT_CK enable"); - //On recalcule les tableaux de bord agrement et workflow pour tout remettre d'équerre - $console->println("------------------------------------------------------------------"); - $console->println("Nouveau calcul du tableau de bord agrement"); - $bdd->exec('BEGIN unicaen_tbl.calculer(\'agrement\'); END;'); + //On recalcule les tableaux de bord agrement et workflow pour tout remettre d'équerre + $console->println("------------------------------------------------------------------"); + $console->println("Nouveau calcul du tableau de bord agrement"); + $bdd->exec('BEGIN unicaen_tbl.calculer(\'agrement\'); END;'); - $console->println("Nouveau calcul du tableau de bord workflow"); - $bdd->exec('BEGIN unicaen_tbl.calculer(\'workflow\'); END;'); + $console->println("Nouveau calcul du tableau de bord workflow"); + $bdd->exec('BEGIN unicaen_tbl.calculer(\'workflow\'); END;'); - $console->println("Terminé"); + $console->println("Terminé"); + } } } \ No newline at end of file -- GitLab