X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Ffusionax.php;h=1b076983ab415b7a03a7523744670bbe49383b67;hb=164566891eef6e4027b2dfccda0040d37f10605b;hp=d09af8ec0fdbb8d996a83c804121cba765edc7f1;hpb=723ea674199306b74f36ebfe673163b0bd3d9f21;p=platal.git diff --git a/modules/fusionax.php b/modules/fusionax.php index d09af8e..1b07698 100644 --- a/modules/fusionax.php +++ b/modules/fusionax.php @@ -42,7 +42,8 @@ class FusionAxModule extends PLModule 'fusionax/deceased' => $this->make_hook('deceased', AUTH_MDP, 'admin'), 'fusionax/promo' => $this->make_hook('promo', AUTH_MDP, 'admin'), 'fusionax/names' => $this->make_hook('names', AUTH_MDP, 'admin'), - 'fusionax/edu' => $this->make_hook('edu', AUTH_MDP, 'admin') + 'fusionax/edu' => $this->make_hook('edu', AUTH_MDP, 'admin'), + 'fusionax/corps' => $this->make_hook('corps', AUTH_MDP, 'admin') ); } elseif (Platal::globals()->merge->state == 'done') { return array( @@ -110,17 +111,17 @@ class FusionAxModule extends PLModule } else { // séparation de l'archive en fichiers par tables $file = $spoolpath . $file; - // Removes master and doctorate students - exec('grep -v "^[A-Z]\{2\}.[0-9]\{4\}[MD][0-9]\{3\}" ' . $file . ' > ' . $file . '.tmp'); - exec('mv -f ' . $file . '.tmp ' . $file); // Split export into specialised files exec('grep "^AD" ' . $file . ' > ' . $spoolpath . 'Adresses.txt'); exec('grep "^AN" ' . $file . ' > ' . $spoolpath . 'Anciens.txt'); + exec('grep "^FO.[0-9]\{4\}[MD][0-9]\{3\}.Etudiant" ' . $file . ' > ' . $spoolpath . 'Formations_MD.txt'); + exec('grep "^FO.[0-9]\{4\}[MD][0-9]\{3\}.Doct. de" ' . $file . ' >> ' . $spoolpath . 'Formations_MD.txt'); exec('grep "^FO" ' . $file . ' > ' . $spoolpath . 'Formations.txt'); exec('grep "^AC" ' . $file . ' > ' . $spoolpath . 'Activites.txt'); exec('grep "^EN" ' . $file . ' > ' . $spoolpath . 'Entreprises.txt'); exec($modulepath . 'formation.pl'); exec('mv -f ' . $spoolpath . 'Formations_out.txt ' . $spoolpath . 'Formations.txt'); + exec('mv -f ' . $spoolpath . 'Formations_MD_out.txt ' . $spoolpath . 'Formations_MD.txt'); $report[] = 'Fichier parsé.'; $report[] = 'Import dans la base en cours...'; $next = 'integrateSQL'; @@ -133,7 +134,8 @@ class FusionAxModule extends PLModule 1 => 'Adresses.sql', 2 => 'Anciens.sql', 3 => 'Formations.sql', - 4 => 'Entreprises.sql' + 4 => 'Entreprises.sql', + 5 => 'Formations_MD.sql' ); if ($file != '') { // récupère le contenu du fichier sql @@ -156,7 +158,7 @@ class FusionAxModule extends PLModule } else { $nextfile = 0; } - if ($nextfile > 4) { + if ($nextfile > 5) { // tous les fichiers ont été exécutés, on passe à l'étape suivante $next = 'adds1920'; } else { @@ -235,7 +237,7 @@ class FusionAxModule extends PLModule $next = 'clean'; } elseif ($action == 'clean') { // nettoyage du fichier temporaire - exec('rm -Rf ' . $spoolpath); + //exec('rm -Rf ' . $spoolpath); $report[] = 'Import finit.'; } foreach($report as $t) { @@ -454,7 +456,7 @@ class FusionAxModule extends PLModule if ($action == 'updateXorg') { XDB::execute('UPDATE fusionax_deceased SET deces_xorg = deces_ax - WHERE deces_xorg = "0000-00-00"'); + WHERE deces_xorg IS NULL'); } if ($action == 'updateAX') { XDB::execute('UPDATE fusionax_deceased @@ -475,7 +477,7 @@ class FusionAxModule extends PLModule $page->assign('deceasedErrors', $deceasedErrorsSql->fetchOneCell()); $res = XDB::iterator('SELECT pid, ax_id, promo, private_name, deces_ax FROM fusionax_deceased - WHERE deces_xorg = "0000-00-00" + WHERE deces_xorg IS NULL LIMIT 10'); $page->assign('nbDeceasedMissingInXorg', $res->total()); $page->assign('deceasedMissingInXorg', $res); @@ -580,20 +582,20 @@ class FusionAxModule extends PLModule { $page->changeTpl('fusionax/education.tpl'); - $missingEducation = XDB::rawIterator("SELECT DISTINCT(f.Intitule_diplome) + $missingEducation = XDB::rawIterator("SELECT DISTINCT(f.Intitule_formation) FROM fusionax_formations AS f - WHERE f.Intitule_diplome != '' AND NOT EXISTS (SELECT * - FROM profile_education_enum AS e - WHERE f.Intitule_diplome = e.name)"); - $missingDegree = XDB::rawIterator("SELECT DISTINCT(f.Intitule_formation) + WHERE f.Intitule_formation != '' AND NOT EXISTS (SELECT * + FROM profile_education_enum AS e + WHERE f.Intitule_formation = e.name)"); + $missingDegree = XDB::rawIterator("SELECT DISTINCT(f.Intitule_diplome) FROM fusionax_formations AS f - WHERE f.Intitule_formation != '' AND NOT EXISTS (SELECT * - FROM profile_education_degree_enum AS e - WHERE f.Intitule_formation = e.abbreviation)"); - $missingCouple = XDB::rawIterator("SELECT DISTINCT(f.Intitule_diplome) AS edu, f.Intitule_formation AS degree, ee.id AS eduid, de.id AS degreeid + WHERE f.Intitule_diplome != '' AND NOT EXISTS (SELECT * + FROM profile_education_degree_enum AS e + WHERE f.Intitule_diplome = e.abbreviation)"); + $missingCouple = XDB::rawIterator("SELECT DISTINCT(f.Intitule_formation) AS edu, f.Intitule_diplome AS degree, ee.id AS eduid, de.id AS degreeid FROM fusionax_formations AS f - INNER JOIN profile_education_enum AS ee ON (f.Intitule_diplome = ee.name) - INNER JOIN profile_education_degree_enum AS de ON (f.Intitule_formation = de.abbreviation) + INNER JOIN profile_education_enum AS ee ON (f.Intitule_formation = ee.name) + INNER JOIN profile_education_degree_enum AS de ON (f.Intitule_diplome = de.abbreviation) WHERE f.Intitule_diplome != '' AND f.Intitule_formation != '' AND NOT EXISTS (SELECT * FROM profile_education_degree AS d @@ -607,6 +609,27 @@ class FusionAxModule extends PLModule $page->assign('missingCoupleCount', $missingCouple->total()); } + function handler_corps(&$page) + { + $page->changeTpl('fusionax/corps.tpl'); + + $missingCorps = XDB::rawIterator('SELECT DISTINCT(f.corps_sortie) AS name + FROM fusionax_anciens AS f + WHERE NOT EXISTS (SELECT * + FROM profile_corps_enum AS c + WHERE f.corps_sortie = c.abbreviation)'); + $missingGrade = XDB::rawIterator('SELECT DISTINCT(f.grade) AS name + FROM fusionax_anciens AS f + WHERE NOT EXISTS (SELECT * + FROM profile_corps_rank_enum AS c + WHERE f.grade = c.name)'); + + $page->assign('missingCorps', $missingCorps); + $page->assign('missingGrade', $missingGrade); + $page->assign('missingCorpsCount', $missingCorps->total()); + $page->assign('missingGradeCount', $missingGrade->total()); + } + function handler_issues_deathdate(&$page, $action = '') { $page->changeTpl('fusionax/deathdate_issues.tpl');