'1e', '09:20:00' => '2e', '11:20:00' => '4e', '12:10:00' => '5e', '14:20:00' => '7e', '15:10:00' => '8e' ); if ($s1 == $s2) return; echo("VOEGSAMEN $t1 $t2 $s1 $s2\n"); if (isset($uren[$t1])) $t1 = $uren[$t1]; if (isset($uren[$t2])) $t2 = $uren[$t2]; mdb2_exec($db, "UPDATE toetsen SET toets_surv = '%q' WHERE toets_id = $id", "$t1:$s1,$t2:$s2"); } function insert_or_merge($db, $file_id, $formula, $date, $start, $end, $afd, $vak, $grp, $lok, $surv) { echo("insert $formula $date $start $end $afd $vak $grp $lok $surv\n"); $helft1 = mdb2_single_assoc($db, "SELECT * FROM toetsen WHERE toets_end = '%q' AND file_id = $file_id AND toets_formula = '%q' AND toets_afd = '%q' AND toets_vak = '%q' AND toets_grp = '%q' AND toets_lok = '%q'", $start, $formula, $afd, $vak, $grp, $lok); $helft2 = mdb2_single_assoc($db, "SELECT * FROM toetsen WHERE toets_start = '%q' AND file_id = $file_id AND toets_formula = '%q' AND toets_afd = '%q' AND toets_vak = '%q' AND toets_grp = '%q' AND toets_lok = '%q'", $end, $formula, $afd, $vak, $grp, $lok); if ($helft1) { echo("helft 1 hebben we al\n"); // dan moeten het het tijdstip updaten en de surveillanten samenvoegen mdb2_exec($db, "UPDATE toetsen SET toets_end = '%q' WHERE toets_id = {$helft1['toets_id']}", $end); // surveillanten samenvoegen voegsamen($db, $helft1['toets_id'], $helft1['toets_start'], $start.':00', $helft1['toets_surv'], $surv); print_r($helft1); } else if ($helft2) { echo("helft 2 hebben we al\n"); mdb2_exec($db, "UPDATE toetsen SET toets_start = '%q' WHERE toets_id = {$helft2['toets_id']}", $start); // surveillanten samenvoegen voegsamen($db, $helft2['toets_id'], $start.':00', $helft2['toets_start'], $surv, $helft2['toets_surv']); print_r($helft2); } else if (!$gotit) { mdb2_exec($db, "INSERT INTO toetsen ( file_id, toets_formula, toets_date, toets_start, toets_end, toets_afd, toets_vak, toets_grp, toets_lok, toets_surv ) VALUES ( $file_id, '%q', '%q', '%q', '%q', '%q', '%q', '%q', '%q', '%q' )", $formula, $date, $start, $end, $afd, $vak, $grp, $lok, $surv); } } function parse_udmz($filename, $file_id) { global $db; $udmz = read_udmz_file($filename); echo('filename='.$filename.' file_id='.$file_id."\n"); foreach ($udmz['Toets'] as $toets) { $afdvaks = explode(',', $toets['afdvak']); //print_r($toets); if (!preg_match('/\[(\d{8}):(\d{2}):(\d{2}):(\d{2})-(\d{8}):(\d{2}):(\d{2}):(\d{2})>/', $toets['TIMESET'], $matches)) error_system('ongeldige waarde van TIMESET'); if ($matches[1] != $matches[5]) error_system('datum van begin en eind niet hetzelfde'); $date = $matches[1]; $start = "{$matches[2]}:{$matches[3]}"; $end = "{$matches[6]}:{$matches[7]}"; echo("date=$date start=$start end=$end\n"); foreach ($afdvaks as $afdvak) { $split = explode('.', $afdvak); echo('afd = '.$split[0].' vak = '.$split[1]."\n"); insert_or_merge($db, $file_id, $toets['FORMULA'], $date, $start, $end, $split[0], $split[1], $toets['Grp'], isset($_POST['hide_lokalen'])?'':$toets['Lok'], isset($_POST['hide_surveillanten'])?'':$toets['Doc']); //mdb2_exec($db, "INSERT INTO toetsen ( file_id, toets_formula, toets_date, toets_start, toets_end, toets_afd, toets_vak, toets_grp, toets_lok, toets_surv ) VALUES ( $file_id, '%q', '%q', '%q', '%q', '%q', '%q', '%q', '%q', '%q' )", $toets['FORMULA'], $date, $start, $end, $split[0], $split[1], $toets['Grp'], isset($_POST['hide_lokalen'])?'':$toets['Lok'], isset($_POST['hide_surveillanten'])?'':$toets['Doc']); } } fatsoeneer($file_id); foreach ($udmz['Mondeling'] as $mondeling) { $afdvaks = explode(',', $mondeling['afdvak']); if (count($afdvaks) != 1 || $afdvaks[0] == '') error_system("dit systeem verwacht op dit moment 1 afdvaks"); if (!preg_match('/\[(\d{8}):(\d{2}):(\d{2}):(\d{2})-(\d{8}):(\d{2}):(\d{2}):(\d{2})>/', $mondeling['TIMESET'], $matches)) error_system('ongeldige waarde van TIMESET'); if ($matches[1] != $matches[5]) error_system('datum van begin en eind niet hetzelfde'); $date = $matches[1]; $start = "{$matches[2]}:{$matches[3]}"; $end = "{$matches[6]}:{$matches[7]}"; echo("date=$date start=$start end=$end\n"); foreach ($afdvaks as $afdvak) { $split = explode('.', $afdvak); echo('afd = '.$split[0].' vak = '.$split[1]."\n"); $afdlln = explode(',', $mondeling['Lln']); echo("afdlln:\n"); print_r($afdlln); if (/*count($afdlln) != 1 ||*/ $afdlln[0] == '') error_system("dit systeem verwacht op dit moment minstens 1 lln per mondeling"); //echo("splitlln:\n"); //$splitlln = explode('.', $afdlln[0]); // $ll = $splitlln[1]; foreach ($afdlln as $afdll) { print_r($splitlln); $splitlln = explode('.', $afdll); $ll = $splitlln[1]; mdb2_exec($db, "INSERT INTO mondelingen ( file_id, mondeling_date, mondeling_start, mondeling_end, mondeling_afd, mondeling_vak, mondeling_ll, mondeling_lok, mondeling_doc) VALUES ( $file_id, '%q', '%q', '%q', '%q', '%q', '%q', '%q', '%q' )", $date, $start, $end, $split[0], $split[1], $ll, isset($_POST['hide_lokalen'])?'':$mondeling['Lok'], $mondeling['Doc']); } } } return true; } if (!isset($_POST['restrict']) || ($_POST['restrict'] != 'ADMIN' && $_POST['restrict'] != 'TEACHER' && $_POST['restrict'] != 'STUDENT')) error_system('ongeldige waarde voor restrict'); if (preg_match('/^(.*)TP ?(\d).*_(\d+)\.UDMZ/', strtoupper($filename), $matches)) { //if (preg_match('/^TP ?(\d) Week (\d+)_(\d+)/', $filename, $matches)) { //echo('TP'.$matches[2].' week '.$matches[1].' versie '.$matches[3]."\n"); print_r($matches); //echo("check: is \$matches[2] = TPnummer\n"); //exit; $exists = mdb2_single_val($db, "SELECT COUNT(*) FROM files WHERE file_md5 = '%q'", $md5); echo('exists='.$exists."\n"); if (!$exists) { if (!move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $data.$md5)) { error_system('unable to store uploaded file'); } } mdb2_exec($db, "INSERT INTO files ( file_md5, file_name, file_version, file_tp, file_ok, file_restrict ) VALUES ( '%q', '%q', %i, %i, 0, '%q' )", $md5, $filename, $_POST['version'], $matches[2], $_POST['restrict']); $file_id = mdb2_single_val($db, 'SELECT LAST_INSERT_ID()'); echo("file_id=$file_id\n"); if (parse_udmz($data.$md5, $file_id)) { echo("succes\n"); mdb2_exec($db, "UPDATE files SET file_ok = 1 WHERE file_id = $file_id"); } else { echo("fail!\n"); } } else error_system('bestandsnaam heeft onjuiste vorm '.strtoupper($filename)); ?>