require_once('phplib/phplib.php');
require_once('common.php');
check_personeel();
$db = mdb2_open($dsn);
$herinfo = get_better_herinfo($db, $_GET);
if (!isset($_GET['klas']) || $_GET['klas'] == '') $_GET['klas'] = '%';
if (isset($_GET['allen'])) $left = 'LEFT ';
else $left = '';
// STUPID GROUP_CONCAT (in mssql from codeplex doesn't support long delimiters)
// so we delimit by ', ' insteadof '
', which is ugly
//'/' $concat_cont subj_abbrev $concat_cont ': ' $concat_cont info $concat_end herinfo
if (!isset($_GET['doorgeschoven'])) $doorgeschoven = '';
else $doorgeschoven = ' AND gemaakt = 0';
//$doorgeschoven = ' AND gemaakt = 0';
$hers = mdb2_query($db, <<'), '(nog) geen toets(en)') toets
FROM $kldv.grp
JOIN (
SELECT *
FROM $kldv.ppl2grp
WHERE ppl_enter <= {$herinfo['period_deadline']}
AND ppl_exit > {$herinfo['period_deadline']}
) AS actualppl2grp USING (grp_id)
{$left}JOIN (
SELECT period_id, ppl_id,
CONCAT(IFNULL(
GROUP_CONCAT(CONVERT(doc.ppl_login USING 'utf8mb4')),
'DOC?'),
':', PTA(pta_id)) herinfo
FROM ( SELECT rex_id, period_id, pta_id, ppl_id FROM rex ) AS rex_real
JOIN (
SELECT * FROM $kldv.ppl2grp
WHERE ppl_enter <= {$herinfo['period_deadline']}
AND ppl_exit > {$herinfo['period_deadline']}
) AS actualppl2grp USING (ppl_id)
JOIN $kldv.grp USING (grp_id)
JOIN ptas USING (pta_id)
JOIN $kldv.subj USING (subj_id)
LEFT JOIN (
SELECT ppl_login, subj_id, grp_id FROM $kldv.grp2subj
JOIN (
SELECT * FROM $kldv.year2grp2subj
WHERE grp2subj_enter <= {$herinfo['period_deadline']}
AND grp2subj_exit > {$herinfo['period_deadline']}
) AS actualyear2grp2subj USING (grp2subj_id)
JOIN (
SELECT * FROM $kldv.ppl2grp2subj
WHERE ppl_enter <= {$herinfo['period_deadline']}
AND ppl_exit > {$herinfo['period_deadline']}
) AS actualppl2grp2subj USING (grp2subj_id)
JOIN $kldv.ppl USING (ppl_id)
) doc USING (subj_id, grp_id)
-- WHERE period_id = {$herinfo['period_id']} AND stvt != 'BLOKKADE'$doorgeschoven
WHERE period_id = {$herinfo['period_id']}$doorgeschoven
GROUP BY rex_id, period_id, ppl_id, subj_abbrev, pta_id
) AS bla USING (ppl_id)
JOIN $kldv.ppl USING (ppl_id)
JOIN $kldv.ppl2grp AS participating
ON participating.ppl_id = ppl.ppl_id
AND participating.ppl_enter <= {$herinfo['period_deadline']}
AND participating.ppl_exit > {$herinfo['period_deadline']}
JOIN period2grp ON period2grp.grp_id = participating.grp_id AND period2grp.period_id = {$herinfo['period_id']}
JOIN $kldv.ppl2grp AS ppl2stamklas
ON ppl2stamklas.ppl_id = ppl.ppl_id
AND ppl2stamklas.ppl_enter <= {$herinfo['period_deadline']}
AND ppl2stamklas.ppl_exit > {$herinfo['period_deadline']}
JOIN $kldv.grp AS stamklas ON stamklas.grp_id = ppl2stamklas.grp_id AND stamklas.grp_home = 1
WHERE grp.grp_name LIKE '%q'
GROUP BY actualppl2grp.ppl_id, ppl_forename, ppl_surname, ppl_prefix, ppl_login, stamklas.grp_name
ORDER BY ppl_surname, ppl_forename, ppl_prefix
EOQ
, $_GET['klas']);
$klas = $_GET['klas'];
if (!($row = $hers->fetchRow(MDB2_FETCHMODE_ORDERED))) {
if ($afkorting && $klas) $msg = htmlenc($afkorting).' heeft op dit moment geen herkansers uit klas '.htmlenc($klas).'.';
else if ($afkorting) $msg = htmlenc($afkorting). ' heeft op dit moment geen herkansers.';
else if ($klas) $msg = 'Geen enkele leerling uit '.htmlenc($klas).' heeft op dit moment een herkansing opgegeven.';
else $msg = 'Geen enkele leerling heeft op dit moment een herkansing opgegeven.';
error_user('Geen herkansingen gevonden', $msg);
}
$hers->seek();
$totalen = mdb2_query($db, << {$herinfo['period_deadline']}
JOIN $kldv.ppl2grp AS ppl2grp2 ON ppl2grp2.ppl_id = ppl2grp.ppl_id
AND ppl2grp2.ppl_enter <= {$herinfo['period_deadline']}
AND ppl2grp2.ppl_exit > {$herinfo['period_deadline']}
JOIN $kldv.grp AS grp2 ON grp2.grp_id = ppl2grp2.grp_id
LEFT JOIN rex ON rex.ppl_id = ppl2grp.ppl_id AND rex.period_id = period2grp.period_id
LEFT JOIN ptas USING (pta_id)
WHERE grp2.grp_name LIKE '%q' AND (stvt != 'BLOKKADE' OR stvt IS NULL)
AND period2grp.period_id = {$herinfo['period_id']}
EOQ
, $_GET['klas']);
$per_vak = mdb2_query($db, << {$herinfo['period_deadline']}
JOIN rex ON rex.ppl_id = ppl2grp.ppl_id AND rex.period_id = period2grp.period_id
JOIN ptas USING (pta_id)
JOIN $kldv.subj ON subj.subj_id = rex.subj_id
WHERE grp_name LIKE '%q' AND stvt != 'BLOKKADE'
AND period2grp.period_id = {$herinfo['period_id']}
GROUP BY subj.subj_id, subj_abbrev
ORDER BY inschrijvingen DESC
EOQ
, $_GET['klas']);
$per_klas = mdb2_query($db, << {$herinfo['period_deadline']}
LEFT JOIN rex ON rex.ppl_id = ppl2grp.ppl_id AND rex.period_id = period2grp.period_id
LEFT JOIN ptas USING (pta_id)
WHERE grp_name LIKE '%q'
AND period2grp.period_id = {$herinfo['period_id']}
AND ( stvt != 'BLOKKADE' OR stvt IS NULL )
GROUP BY grp_name
EOQ
, $_GET['klas']);
$per_doc = mdb2_query($db, << {$herinfo['period_deadline']}
JOIN $kldv.grp AS grp2 ON grp2.grp_id = ppl2grp2.grp_id
JOIN $kldv.ppl2grp ON ppl2grp.ppl_id = rex.ppl_id
AND ppl2grp.ppl_enter <= {$herinfo['period_deadline']}
AND ppl2grp.ppl_exit > {$herinfo['period_deadline']}
JOIN $kldv.grp ON grp.grp_id = ppl2grp.grp_id
JOIN $kldv.grp2subj ON grp2subj.grp_id = ppl2grp.grp_id
AND grp2subj.subj_id = rex.subj_id
JOIN $kldv.year2grp2subj ON year2grp2subj.grp2subj_id = grp2subj.grp2subj_id
AND grp2subj_enter <= {$herinfo['period_deadline']}
AND grp2subj_exit > {$herinfo['period_deadline']}
JOIN $kldv.ppl2grp2subj ON ppl2grp2subj.grp2subj_id = grp2subj.grp2subj_id
AND ppl2grp2subj.ppl_enter <= {$herinfo['period_deadline']}
AND ppl2grp2subj.ppl_exit > {$herinfo['period_deadline']}
JOIN $kldv.ppl ON ppl.ppl_id = ppl2grp2subj.ppl_id
WHERE grp2.grp_name LIKE '%q' AND stvt != 'BLOKKADE'
AND grp2.grp_home = 1
AND rex.period_id = {$herinfo['period_id']}
GROUP BY ppl_login
ORDER BY inschrijvingen DESC
EOQ
, $_GET['klas']);
$per_toets = mdb2_query($db, << {$herinfo['period_deadline']}
JOIN $kldv.grp ON grp.grp_id = ppl2grp.grp_id
WHERE rex.period_id = {$herinfo['period_id']} AND grp_name LIKE '%q' AND stvt != 'BLOKKADE'
GROUP BY pta_id
) tmp
ORDER BY inschrijvingen DESC
EOQ
, $_GET['klas']);
html_start();
?>
terug
if (!isset($_GET['allen'])) { ?>
Toon ook leerlingen die geen her hebben opgegeven.
} else { ?>
Toon alleen leerlingen met minimaal 1 her.
} ?>
Overzichten en totalen voor klas(sen) echo($klas) ?>
mdb2_res_table($totalen); ?>
Per leerling
mdb2_res_table($hers); ?>
Per vak/klas/docent/toets
mdb2_res_table($per_vak); ?>
mdb2_res_table($per_klas); ?>
mdb2_res_table($per_doc); ?>
mdb2_res_table($per_toets); ?>
html_end();
apache_note('phplib_action', 'lijst van '.$_GET['klas']);
?>
| |