{
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'),
);
}
}
$report[] = 'Fichier parsé.';
$report[] = 'Import dans la base en cours...';
$next = 'integrateSQL';
+ XDB::execute("UPDATE profiles
+ SET ax_id = NULL
+ WHERE ax_id = ''");
}
} elseif ($action == 'integrateSQL') {
// intégration des données dans la base MySQL
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);
VALUES ({?}, {?}, {?}, {?})',
$hrid, $xorgId, $ax_id, $sex);
$pid = XDB::insertId();
- XDB::execute('INSERT INTO profile_name (pid, name, typeid)
+ XDB::execute('INSERT INTO profile_public_names (pid, lastname_initial, firstname_initial)
VALUES ({?}, {?}, {?})',
- $pid, $lastname, $nameTypes['name_ini']);
- XDB::execute('INSERT INTO profile_name (pid, name, typeid)
- VALUES ({?}, {?}, {?})',
- $pid, $firstname, $nameTypes['firstname_ini']);
+ $pid, $lastname, $firstname);
XDB::execute('INSERT INTO profile_display (pid, yourself, public_name, private_name,
directory_name, short_name, sort_name, promo)
VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})',
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,
+ 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)
}
/* 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, 1923, 1924, 1925 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 NOT IN (\'X1921\', \'X1923\', \'X1924\', \'X1925\')');
+ 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
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);
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)");
+ $res = XDB::rawFetchOneCell("SELECT COUNT(*)
+ FROM fusionax_anciens AS f
+ INNER JOIN profiles AS p ON (f.ax_id = p.ax_id)
+ WHERE IF(f.partic_patro, CONCAT(f.partic_patro, CONCAT(' ', f.Nom_patronymique)), f.Nom_patronymique) NOT IN (p.lastname_initial, p.lastname_main, p.lastname_marital, p.lastname_ordinary)
+ OR IF(f.partic_nom, CONCAT(f.partic_nom, CONCAT(' ', f.Nom_usuel)), f.Nom_usuel) NOT IN (p.lastname_initial, p.lastname_main, p.lastname_marital, p.lastname_ordinary)
+ OR f.Nom_complet NOT IN (p.lastname_initial, p.lastname_main, p.lastname_marital, p.lastname_ordinary)");
$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)');
+ $res = XDB::rawFetchOneCell('SELECT COUNT(*)
+ FROM fusionax_anciens AS f
+ INNER JOIN profiles AS p ON (f.ax_id = p.ax_id)
+ WHERE f.prenom NOT IN (p.firstname_initial, p.firstname_main, p.firstname_ordinary)');
$page->assign('firstnameIssues', $res->fetchOneCell());
}