{
if (Platal::globals()->merge->state == 'pending') {
return array(
- 'fusionax' => $this->make_hook('index', AUTH_MDP, 'admin'),
- 'fusionax/import' => $this->make_hook('import', AUTH_MDP, 'admin'),
- 'fusionax/view' => $this->make_hook('view', AUTH_MDP, 'admin'),
- 'fusionax/ids' => $this->make_hook('ids', AUTH_MDP, 'admin'),
- '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/corps' => $this->make_hook('corps', AUTH_MDP, 'admin')
+ 'fusionax' => $this->make_hook('index', AUTH_PASSWD, 'admin'),
+ 'fusionax/import' => $this->make_hook('import', AUTH_PASSWD, 'admin'),
+ 'fusionax/view' => $this->make_hook('view', AUTH_PASSWD, 'admin'),
+ 'fusionax/ids' => $this->make_hook('ids', AUTH_PASSWD, 'admin'),
+ 'fusionax/deceased' => $this->make_hook('deceased', AUTH_PASSWD, 'admin'),
+ 'fusionax/promo' => $this->make_hook('promo', AUTH_PASSWD, 'admin'),
+ 'fusionax/names' => $this->make_hook('names', AUTH_PASSWD, 'admin'),
+ 'fusionax/edu' => $this->make_hook('edu', AUTH_PASSWD, 'admin'),
+ 'fusionax/corps' => $this->make_hook('corps', AUTH_PASSWD, 'admin')
);
} elseif (Platal::globals()->merge->state == 'done') {
return array(
- 'fusionax' => $this->make_hook('index', AUTH_MDP, 'admin,edit_directory'),
- 'fusionax/issues' => $this->make_hook('issues', AUTH_MDP, 'admin,edit_directory'),
- 'fusionax/issues/deathdate' => $this->make_hook('issues_deathdate', AUTH_MDP, 'admin,edit_directory'),
- 'fusionax/issues/promo' => $this->make_hook('issues_promo', AUTH_MDP, 'admin,edit_directory'),
+ 'fusionax' => $this->make_hook('index', AUTH_PASSWD, 'admin,edit_directory'),
+ 'fusionax/issues' => $this->make_hook('issues', AUTH_PASSWD, 'admin,edit_directory'),
+ 'fusionax/issues/deathdate' => $this->make_hook('issues_deathdate', AUTH_PASSWD, 'admin,edit_directory'),
+ 'fusionax/issues/promo' => $this->make_hook('issues_promo', AUTH_PASSWD, 'admin,edit_directory'),
);
}
}
- function handler_index(&$page)
+ function handler_index($page)
{
if (Platal::globals()->merge->state == 'pending') {
$page->changeTpl('fusionax/index.tpl');
}
/** Import de l'annuaire de l'AX depuis l'export situé dans le home de jacou */
- function handler_import(&$page, $action = 'index', $file = '')
+ function handler_import($page, $action = 'index', $file = '')
{
if ($action == 'index') {
$page->changeTpl('fusionax/import.tpl');
exec('mv -f ' . $spoolpath . 'Formations_MD_out.txt ' . $spoolpath . 'Formations_MD.txt');
$report[] = 'Fichier parsé.';
$report[] = 'Import dans la base en cours...';
+ XDB::execute("UPDATE profiles
+ SET ax_id = NULL
+ WHERE ax_id = ''");
$next = 'integrateSQL';
}
} elseif ($action == 'integrateSQL') {
FROM fusionax_anciens
WHERE promotion_etude = 1920;');
- $nameTypes = DirEnum::getOptions(DirEnum::NAMETYPES);
- $nameTypes = array_flip($nameTypes);
$eduSchools = DirEnum::getOptions(DirEnum::EDUSCHOOLS);
$eduSchools = array_flip($eduSchools);
$eduDegrees = DirEnum::getOptions(DirEnum::EDUDEGREES);
$entry_year = 1920;
$grad_year = 1923;
$promo = 'X1920';
- $sex = PlUser::GENDER_MALE;
+ $hrpromo = '1920';
+ $sex = 'male';
$xorgId = 19200000;
$type = 'x';
- while (list($firstname, $lastname, $ax_id) = $res->next()) {
- $hrid = self::getHrid($firstname, $lastname, $promo);
+ while ($new = $res->next()) {
+ $firstname = $new['prenom'];
+ $lastname = $new['Nom_complet'];
+ $ax_id = $new['ax_id'];
+ $hrid = User::makeHrid($firstname, $lastname, $hrpromo);
$res1 = XDB::query('SELECT COUNT(*)
FROM accounts
WHERE hruid = {?}', $hrid);
VALUES ({?}, {?}, {?}, {?})',
$hrid, $xorgId, $ax_id, $sex);
$pid = XDB::insertId();
- XDB::execute('INSERT INTO profile_name (pid, name, typeid)
- VALUES ({?}, {?}, {?})',
- $pid, $lastname, $nameTypes['name_ini']);
- XDB::execute('INSERT INTO profile_name (pid, name, typeid)
- VALUES ({?}, {?}, {?})',
- $pid, $firstname, $nameTypes['firstname_ini']);
+ XDB::execute('INSERT INTO profile_public_names (pid, lastname_initial, firstname_initial, lastname_main, firstname_main)
+ VALUES ({?}, {?}, {?}, {?}, {?})',
+ $pid, $lastname, $firstname, $lastname, $firstname);
XDB::execute('INSERT INTO profile_display (pid, yourself, public_name, private_name,
directory_name, short_name, sort_name, promo)
VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})',
XDB::execute('INSERT INTO profile_education (pid, eduid, degreeid, entry_year, grad_year, flags)
VALUES ({?}, {?}, {?}, {?}, {?}, {?})',
$pid, $eduSchools[Profile::EDU_X], $degreeid, $entry_year, $grad_year, 'primary');
- XDB::execute('INSERT INTO accounts (hruid, type, is_admin, state, full_name, directory_name, display_name, sex)
- VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?})',
- $hrid, $type, 0, 'active', $fullName, $directoryName, $lastname, $sex);
+ XDB::execute('INSERT INTO accounts (hruid, type, is_admin, state, full_name, directory_name, display_name, lastname, firstname, sex)
+ VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})',
+ $hrid, $type, 0, 'pending', $fullName, $directoryName, $firstname, $lastname, $firstname, $sex);
$uid = XDB::insertId();
XDB::execute('INSERT INTO account_profiles (uid, pid, perms)
VALUES ({?}, {?}, {?})',
$uid, $pid, 'owner');
}
$report[] = 'Promo 1920 ajoutée.';
+ $next = 'adds2011';
+ } elseif ($action == 'adds2011') {
+ // Adds promotion 2011 from AX db.
+ $report[] = 'Ajout des élèves manquant de la promotion 2011';
+ $res = XDB::iterator("SELECT prenom, Nom_complet, ax_id, Civilite
+ FROM fusionax_anciens
+ WHERE promotion_etude = 2011 AND groupe_promo = 'X'
+ AND NOT EXISTS (SELECT 1
+ FROM profiles
+ WHERE profiles.ax_id = fusionax_anciens.ax_id)");
+
+ $eduSchools = DirEnum::getOptions(DirEnum::EDUSCHOOLS);
+ $eduSchools = array_flip($eduSchools);
+ $eduDegrees = DirEnum::getOptions(DirEnum::EDUDEGREES);
+ $eduDegrees = array_flip($eduDegrees);
+ $degreeid = $eduDegrees[Profile::DEGREE_X];
+ $entry_year = 2011;
+ $grad_year = 2014;
+ $promo = 'X2011';
+ $hrpromo = '2011';
+ $type = 'x';
+
+ while ($new = $res->next()) {
+ $firstname = $new['prenom'];
+ $lastname = $new['Nom_complet'];
+ $ax_id = $new['ax_id'];
+ $civilite = $new['Civilite'];
+ $hrid = User::makeHrid($firstname, $lastname, $hrpromo);
+ $res1 = XDB::query('SELECT COUNT(*)
+ FROM accounts
+ WHERE hruid = {?}', $hrid);
+ $res2 = XDB::query('SELECT COUNT(*)
+ FROM profiles
+ WHERE hrpid = {?}', $hrid);
+ if (is_null($hrid) || $res1->fetchOneCell() > 0 || $res2->fetchOneCell() > 0) {
+ $report[] = $ax_id . ' non ajouté';
+ }
+ $fullName = $firstname . ' ' . $lastname;
+ $directoryName = $lastname . ' ' . $firstname;
+ if ($civilite == 'M') {
+ $sex = 'male';
+ } else {
+ $sex = 'female';
+ }
+
+ XDB::execute('INSERT INTO profiles (hrpid, ax_id, sex, title)
+ VALUES ({?}, {?}, {?}, {?})',
+ $hrid, $ax_id, $sex, $civilite);
+ $pid = XDB::insertId();
+ XDB::execute('INSERT INTO profile_public_names (pid, lastname_initial, firstname_initial, lastname_main, firstname_main)
+ VALUES ({?}, {?}, {?}, {?}, {?})',
+ $pid, $lastname, $firstname, $lastname, $firstname);
+ XDB::execute('INSERT INTO profile_display (pid, yourself, public_name, private_name,
+ directory_name, short_name, sort_name, promo)
+ VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})',
+ $pid, $firstname, $fullName, $fullName, $directoryName, $fullName, $directoryName, $promo);
+ XDB::execute('INSERT INTO profile_education (pid, eduid, degreeid, entry_year, grad_year, flags)
+ VALUES ({?}, {?}, {?}, {?}, {?}, {?})',
+ $pid, $eduSchools[Profile::EDU_X], $degreeid, $entry_year, $grad_year, 'primary');
+ XDB::execute('INSERT INTO accounts (hruid, type, is_admin, state, full_name, directory_name, display_name, lastname, firstname, sex)
+ VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})',
+ $hrid, $type, 0, 'pending', $fullName, $directoryName, $firstname, $lastname, $firstname, $sex);
+ $uid = XDB::insertId();
+ XDB::execute('INSERT INTO account_profiles (uid, pid, perms)
+ VALUES ({?}, {?}, {?})',
+ $uid, $pid, 'owner');
+ }
+ $report[] = 'Promo 2011 ajoutée.';
+
$next = 'view';
} elseif ($action == 'view') {
XDB::execute('CREATE OR REPLACE ALGORITHM=MERGE VIEW fusionax_xorg_anciens AS
SELECT p.pid, p.ax_id, pd.promo, pd.private_name, pd.public_name,
pd.sort_name, pd.short_name, pd.directory_name
FROM profiles AS p
- INNER JOIN profile_display AS pd USING(pid)');
+ INNER JOIN profile_display AS pd ON (pd.pid = p.pid)');
$next = 'clean';
} elseif ($action == 'clean') {
// nettoyage du fichier temporaire
exit;
}
- function handler_view(&$page, $action = '')
+ function handler_view($page, $action = '')
{
$page->changeTpl('fusionax/view.tpl');
if ($action == 'create') {
INNER JOIN fusionax_anciens AS a ON (a.ax_id = p.ax_id)
WHERE p.deathdate != a.Date_deces OR (p.deathdate IS NULL AND a.Date_deces != '0000-00-00')");
XDB::execute('DROP VIEW IF EXISTS fusionax_promo');
- XDB::execute('CREATE VIEW fusionax_promo AS
- SELECT p.pid, p.ax_id, pd.private_name, pd.promo, pe.entry_year AS promo_etude_xorg,
+ XDB::execute("CREATE VIEW fusionax_promo AS
+ SELECT p.pid, p.ax_id, pd.private_name, pd.promo, pe.entry_year AS promo_etude_xorg, f.groupe_promo,
f.promotion_etude AS promo_etude_ax, pe.grad_year AS promo_sortie_xorg
FROM profiles AS p
INNER JOIN profile_display AS pd ON (p.pid = pd.pid)
- INNER JOIN profile_education AS pe ON (p.pid = pe.pid)
+ INNER JOIN profile_education AS pe ON (p.pid = pe.pid AND FIND_IN_SET('primary', pe.flags))
INNER JOIN fusionax_anciens AS f ON (p.ax_id = f.ax_id)
- WHERE pd.promo != CONCAT(\'X\', f.promotion_etude)
- AND !(f.promotion_etude = pe.entry_year + 1 AND pe.grad_year = pe.entry_year + 4)');
+ WHERE (f.groupe_promo = 'X' AND pd.promo != CONCAT('X', f.promotion_etude)
+ AND !(f.promotion_etude = pe.entry_year + 1 AND pe.grad_year = pe.entry_year + 4)
+ AND !(f.promotion_etude = pe.entry_year + 2 AND pe.grad_year = pe.entry_year + 5)
+ AND f.promotion_etude != 0)
+ OR (f.groupe_promo = 'D' AND f.promotion_etude != pe.grad_year)
+ OR (f.groupe_promo = 'M' AND f.promotion_etude != pe.entry_year)
+ GROUP BY p.pid");
$page->trigSuccess('Les VIEW ont bien été créées.');
}
}
}
/* Cherche les les anciens présents dans Xorg avec un matricule_ax ne correspondant à rien dans la base de l'AX
- * (mises à part les promo 1921 et 1923 qui ne figurent pas dans les données de l'AX)*/
+ * (mises à part les promo 1921, 1922, 1923, 1924, 1925, 1927 qui ne figurent pas dans les données de l'AX)*/
private static function find_wrong_in_xorg($limit = 10)
{
return XDB::iterator('SELECT u.promo, u.pid, u.private_name
WHERE NOT EXISTS (SELECT *
FROM fusionax_anciens AS f
WHERE f.ax_id = u.ax_id)
- AND u.ax_id IS NOT NULL AND promo != \'X1921\' AND promo != \'X1923\'');
+ AND u.ax_id IS NOT NULL AND promo NOT IN (\'X1921\', \'X1922\', \'X1923\', \'X1924\', \'X1925\', \'X1927\')');
}
/** Lier les identifiants d'un ancien dans les deux annuaires
{
$easy_to_link = XDB::iterator("
SELECT u.private_name, u.promo, u.pid, ax.ax_id,
- CONCAT(ax.prenom, ' ', ax.nom_complet, ' (X', ax.promotion_etude, ')') AS display_name_ax,
+ CONCAT(ax.prenom, ' ', ax.nom_complet, ' (', ax.groupe_promo, ax.promotion_etude, ')') AS display_name_ax,
COUNT(*) AS nbMatches
FROM fusionax_anciens AS ax
INNER JOIN fusionax_import AS i ON (i.ax_id = ax.ax_id AND i.pid IS NULL)
LEFT JOIN fusionax_xorg_anciens AS u ON (u.ax_id IS NULL
- AND u.promo = CONCAT('X', ax.promotion_etude)
+ AND u.promo = CONCAT(ax.groupe_promo, ax.promotion_etude)
AND (CONCAT(ax.prenom, ' ', ax.nom_complet) = u.private_name
OR CONCAT(ax.prenom, ' ', ax.nom_complet) = u.public_name
OR CONCAT(ax.prenom, ' ', ax.nom_complet) = u.short_name))
}
return XDB::iterator("
SELECT u.private_name, u.promo, u.pid, ax.ax_id,
- CONCAT(ax.prenom, ' ', ax.nom_complet, ' (X', ax.promotion_etude, ')') AS display_name_ax,
+ CONCAT(ax.prenom, ' ', ax.nom_complet, ' (', ax.groupe_promo, ax.promotion_etude, ')') AS display_name_ax,
COUNT(*) AS nbMatches
FROM fusionax_anciens AS ax
INNER JOIN fusionax_import AS i ON (i.ax_id = ax.ax_id AND i.pid IS NULL)
AND (CONCAT(ax.prenom, ' ', ax.nom_complet) = u.private_name
OR CONCAT(ax.prenom, ' ', ax.nom_complet) = u.public_name
OR CONCAT(ax.prenom, ' ', ax.nom_complet) = u.short_name)
- AND u.promo < CONCAT('X', ax.promotion_etude + 2)
- AND u.promo > CONCAT('X', ax.promotion_etude - 2))
+ AND u.promo < CONCAT(ax.groupe_promo, ax.promotion_etude + 2)
+ AND u.promo > CONCAT(ax.groupe_promo, ax.promotion_etude - 2))
GROUP BY u.pid
HAVING u.pid IS NOT NULL AND nbMatches = 1" . ($limit ? (' LIMIT ' . $limit) : ''));
}
/** Module de mise en correspondance les ids */
- function handler_ids(&$page, $part = 'main', $pid = null, $ax_id = null)
+ function handler_ids($page, $part = 'main', $pid = null, $ax_id = null)
{
$nbToLink = 100;
$page->assign('xorg_title', 'Polytechnique.org - Fusion - Mise en correspondance simple');
$page->changeTpl('fusionax/idsMissingInAx.tpl');
$missingInAX = XDB::iterator('SELECT promo, pid, private_name
FROM fusionax_xorg_anciens
- WHERE ax_id IS NULL');
+ WHERE ax_id IS NULL
+ ORDER BY promo');
$page->assign('missingInAX', $missingInAX);
return;
}
// locate all persons from AX's database that are not here
$page->changeTpl('fusionax/idsMissingInXorg.tpl');
$missingInXorg = XDB::iterator("SELECT CONCAT(a.prenom, ' ', a.Nom_usuel) AS private_name,
- a.promotion_etude AS promo, a.ax_id
+ CONCAT(a.groupe_promo, a.promotion_etude) AS promo, a.ax_id
FROM fusionax_import
INNER JOIN fusionax_anciens AS a USING (ax_id)
- WHERE fusionax_import.pid IS NULL");
+ WHERE fusionax_import.pid IS NULL
+ ORDER BY promo");
$page->assign('missingInXorg', $missingInXorg);
return;
}
}
}
- function handler_deceased(&$page, $action = '')
+ function handler_deceased($page, $action = '')
{
if ($action == 'updateXorg') {
XDB::execute('UPDATE fusionax_deceased
$page->assign('deceasedDifferent', $res);
}
- function handler_promo(&$page, $action = '')
+ function handler_promo($page, $action = '')
{
$page->changeTpl('fusionax/promo.tpl');
- $res = XDB::iterator('SELECT pid, private_name, promo_etude_xorg, promo_sortie_xorg, promo_etude_ax, promo
+ $res = XDB::iterator("SELECT pid, private_name, promo_etude_xorg, promo_sortie_xorg, promo_etude_ax, promo
FROM fusionax_promo
WHERE !(promo_etude_ax + 1 = promo_etude_xorg AND promo_etude_xorg + 3 = promo_sortie_xorg)
AND !(promo_etude_ax + 1 = promo_etude_xorg AND promo_etude_xorg + 4 = promo_sortie_xorg)
- AND !(promo_etude_ax = promo_etude_xorg + 1)
- ORDER BY promo_etude_xorg');
+ AND !(promo_etude_ax = promo_etude_xorg + 1) AND groupe_promo = 'X'
+ ORDER BY promo_etude_xorg");
$nbMissmatchingPromos = $res->total();
$page->assign('nbMissmatchingPromos', $res->total());
$page->assign('missmatchingPromos', $res);
- $res = XDB::iterator('SELECT pid, private_name, promo_etude_xorg, promo_sortie_xorg, promo_etude_ax, promo
+ $res = XDB::iterator("SELECT pid, private_name, promo_etude_xorg, promo_sortie_xorg, promo_etude_ax, promo
FROM fusionax_promo
- WHERE promo_etude_ax = promo_etude_xorg + 1
- ORDER BY promo_etude_xorg');
+ WHERE promo_etude_ax = promo_etude_xorg + 1 AND groupe_promo = 'X'
+ ORDER BY promo_etude_xorg");
$nbMissmatchingPromos += $res->total();
$page->assign('nbMissmatchingPromos1', $res->total());
$page->assign('missmatchingPromos1', $res);
- $res = XDB::iterator('SELECT pid, private_name, promo_etude_xorg, promo_sortie_xorg, promo_etude_ax, promo
+ $res = XDB::iterator("SELECT pid, private_name, promo_etude_xorg, promo_sortie_xorg, promo_etude_ax, promo
FROM fusionax_promo
- WHERE promo_etude_ax + 1 = promo_etude_xorg AND promo_etude_xorg + 3 = promo_sortie_xorg
- ORDER BY promo_etude_xorg');
+ WHERE promo_etude_ax + 1 = promo_etude_xorg AND promo_etude_xorg + 3 = promo_sortie_xorg AND groupe_promo = 'X'
+ ORDER BY promo_etude_xorg");
$nbMissmatchingPromos += $res->total();
$page->assign('nbMissmatchingPromos2', $res->total());
$page->assign('missmatchingPromos2', $res);
- $res = XDB::iterator('SELECT pid, private_name, promo_etude_xorg, promo_sortie_xorg, promo_etude_ax, promo
+ $res = XDB::iterator("SELECT pid, private_name, promo_etude_xorg, promo_sortie_xorg, promo_etude_ax, promo
FROM fusionax_promo
- WHERE promo_etude_ax + 1 = promo_etude_xorg AND promo_etude_xorg + 4 = promo_sortie_xorg
- ORDER BY promo_etude_xorg');
+ WHERE promo_etude_ax + 1 = promo_etude_xorg AND promo_etude_xorg + 4 = promo_sortie_xorg AND groupe_promo = 'X'
+ ORDER BY promo_etude_xorg");
$nbMissmatchingPromos += $res->total();
$page->assign('nbMissmatchingPromos3', $res->total());
$page->assign('missmatchingPromos3', $res);
+ $res = XDB::iterator("SELECT pid, private_name, promo_etude_xorg, promo_sortie_xorg, promo_etude_ax, promo
+ FROM fusionax_promo
+ WHERE groupe_promo = 'M'
+ ORDER BY promo_etude_xorg");
+ $nbMissmatchingPromos += $res->total();
+ $page->assign('nbMissmatchingPromosM', $res->total());
+ $page->assign('missmatchingPromosM', $res);
+
+
+ $res = XDB::iterator("SELECT pid, private_name, promo_etude_xorg, promo_sortie_xorg, promo_etude_ax, promo
+ FROM fusionax_promo
+ WHERE groupe_promo = 'D'
+ ORDER BY promo_etude_xorg");
+ $nbMissmatchingPromos += $res->total();
+ $page->assign('nbMissmatchingPromosD', $res->total());
+ $page->assign('missmatchingPromosD', $res);
+
$page->assign('nbMissmatchingPromosTotal', $nbMissmatchingPromos);
}
- function handler_names(&$page, $action = '')
+ function handler_names($page, $action = '')
{
$page->changeTpl('fusionax/names.tpl');
- $res = XDB::query('SELECT COUNT(*)
- FROM fusionax_anciens AS f
- INNER JOIN profiles AS p ON (f.ax_id = p.ax_id)');
- $page->assign('total', $res->fetchOneCell());
-
- // To be checked:
- // | lastname | 1 |
- // | lastname_marital | 2 |
- // | lastname_ordinary | 3 |
- // | firstname | 4 |
- // | firstname_ordinary | 7 |
- // | firstname_other | 8 |
- // | name_other | 9 |
- // | name_ini | 10 |
- // | firstname_ini | 11 |
- $res = XDB::query("SELECT COUNT(*)
- FROM fusionax_anciens AS f
- INNER JOIN profiles AS p ON (f.ax_id = p.ax_id)
- LEFT JOIN profile_name AS pnp ON (p.pid = pnp.pid AND pnp.typeid = 1)
- LEFT JOIN profile_name AS pnm ON (p.pid = pnm.pid AND pnm.typeid = 2)
- LEFT JOIN profile_name AS pno ON (p.pid = pno.pid AND pno.typeid = 3)
- LEFT JOIN profile_name AS pne ON (p.pid = pne.pid AND pne.typeid = 9)
- LEFT JOIN profile_name AS pni ON (p.pid = pni.pid AND pni.typeid = 10)
- WHERE IF(f.partic_patro, CONCAT(f.partic_patro, CONCAT(' ', f.Nom_patronymique)), f.Nom_patronymique) NOT IN (pnp.name, pno.name, pnm.name, pne.name, pni.name)
- OR IF(f.partic_nom, CONCAT(f.partic_nom, CONCAT(' ', f.Nom_usuel)), f.Nom_usuel) NOT IN (pnp.name, pno.name, pnm.name, pne.name, pni.name)
- OR f.Nom_complet NOT IN (pnp.name, pno.name, pnm.name, pne.name, pni.name)");
- $page->assign('lastnameIssues', $res->fetchOneCell());
-
- $res = XDB::query('SELECT COUNT(*)
- FROM fusionax_anciens AS f
- INNER JOIN profiles AS p ON (f.ax_id = p.ax_id)
- LEFT JOIN profile_name AS pnf ON (p.pid = pnf.pid AND pnf.typeid = 4)
- LEFT JOIN profile_name AS pno ON (p.pid = pno.pid AND pno.typeid = 7)
- LEFT JOIN profile_name AS pne ON (p.pid = pne.pid AND pne.typeid = 8)
- LEFT JOIN profile_name AS pni ON (p.pid = pni.pid AND pni.typeid = 11)
- WHERE f.prenom NOT IN (pnf.name, pno.name, pne.name, pni.name)');
- $page->assign('firstnameIssues', $res->fetchOneCell());
+ if ($action == 'first') {
+ $res = XDB::rawFetchAllAssoc('SELECT p.pid, p.ax_id, p.hrpid,
+ f.prenom, ppn.firstname_initial, ppn.firstname_main, ppn.firstname_ordinary
+ FROM fusionax_anciens AS f
+ INNER JOIN profiles AS p ON (f.ax_id = p.ax_id)
+ INNER JOIN profile_public_names AS ppn ON (p.pid = ppn.pid)
+ WHERE f.prenom NOT IN (ppn.firstname_initial, ppn.firstname_main, ppn.firstname_ordinary)');
+ $page->assign('firstnameIssues', $res);
+ } elseif ($action == 'last') {
+ $res = XDB::rawFetchAllAssoc("SELECT p.pid, p.ax_id, p.hrpid,
+ f.Nom_patronymique, f.Nom_usuel, f.Nom_complet,
+ ppn.lastname_initial, ppn.lastname_main, ppn.lastname_marital, ppn.lastname_ordinary
+ FROM fusionax_anciens AS f
+ INNER JOIN profiles AS p ON (f.ax_id = p.ax_id)
+ INNER JOIN profile_public_names AS ppn ON (p.pid = ppn.pid)
+ WHERE IF(f.partic_patro, CONCAT(f.partic_patro, CONCAT(' ', f.Nom_patronymique)), f.Nom_patronymique) NOT IN (ppn.lastname_initial, ppn.lastname_main, ppn.lastname_marital, ppn.lastname_ordinary)
+ AND IF(f.partic_nom, CONCAT(f.partic_nom, CONCAT(' ', f.Nom_usuel)), f.Nom_usuel) NOT IN (ppn.lastname_initial, ppn.lastname_main, ppn.lastname_marital, ppn.lastname_ordinary)
+ AND f.Nom_complet NOT IN (ppn.lastname_initial, ppn.lastname_main, ppn.lastname_marital, ppn.lastname_ordinary)");
+ $page->assign('lastnameIssues', $res);
+ } else {
+ $res = XDB::query('SELECT COUNT(*)
+ FROM fusionax_anciens AS f
+ INNER JOIN profiles AS p ON (f.ax_id = p.ax_id)');
+ $page->assign('total', $res->fetchOneCell());
+
+ $res = XDB::rawFetchOneCell("SELECT COUNT(*)
+ FROM fusionax_anciens AS f
+ INNER JOIN profiles AS p ON (f.ax_id = p.ax_id)
+ INNER JOIN profile_public_names AS ppn ON (p.pid = ppn.pid)
+ WHERE IF(f.partic_patro, CONCAT(f.partic_patro, CONCAT(' ', f.Nom_patronymique)), f.Nom_patronymique) NOT IN (ppn.lastname_initial, ppn.lastname_main, ppn.lastname_marital, ppn.lastname_ordinary)
+ AND IF(f.partic_nom, CONCAT(f.partic_nom, CONCAT(' ', f.Nom_usuel)), f.Nom_usuel) NOT IN (ppn.lastname_initial, ppn.lastname_main, ppn.lastname_marital, ppn.lastname_ordinary)
+ AND f.Nom_complet NOT IN (ppn.lastname_initial, ppn.lastname_main, ppn.lastname_marital, ppn.lastname_ordinary)");
+ $page->assign('lastnameIssues', $res);
+
+ $res = XDB::rawFetchOneCell('SELECT COUNT(*)
+ FROM fusionax_anciens AS f
+ INNER JOIN profiles AS p ON (f.ax_id = p.ax_id)
+ INNER JOIN profile_public_names AS ppn ON (p.pid = ppn.pid)
+ WHERE f.prenom NOT IN (ppn.firstname_initial, ppn.firstname_main, ppn.firstname_ordinary)');
+ $page->assign('firstnameIssues', $res);
+ }
+ $page->assign('action', $action);
}
- function handler_edu(&$page, $action = '')
+ function handler_edu($page, $action = '')
{
$page->changeTpl('fusionax/education.tpl');
$page->assign('missingCoupleCount', $missingCouple->total());
}
- function handler_corps(&$page)
+ function handler_corps($page)
{
$page->changeTpl('fusionax/corps.tpl');
$page->assign('missingGradeCount', $missingGrade->total());
}
- function handler_issues_deathdate(&$page, $action = '')
+ function handler_issues_deathdate($page, $action = '')
{
$page->changeTpl('fusionax/deathdate_issues.tpl');
if ($action == 'edit') {
$page->assign('total', count($issues));
}
- function handler_issues_promo(&$page, $action = '')
+ function handler_issues_promo($page, $action = '')
{
$page->changeTpl('fusionax/promo_issues.tpl');
if ($action == 'edit') {
$page->assign('total', count($issues));
}
- function handler_issues(&$page, $action = '')
+ function handler_issues($page, $action = '')
{
static $issueList = array(
'name' => 'noms',