From 8ea63d04a6c2be923097ea78e855a5b23e639ccc Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 20 Dec 2016 12:38:36 +0100 Subject: [PATCH] Testtool, Auswertung und Reihungstestadministration benutzen nun die neuen Reihungstestanmeldetabelle --- .../migrations/021_reihungstestperson.php | 197 ++++++++ cis/testtool/admin/auswertung.php | 425 +++++++++--------- cis/testtool/login.php | 111 +++-- content/student/aufnahmetermine.js.php | 12 +- content/student/studentDBDML.php | 33 +- include/prestudent.class.php | 69 +-- include/pruefling.class.php | 60 ++- include/reihungstest.class.php | 132 +++++- rdf/aufnahmetermine.rdf.php | 4 +- rdf/reihungstest.rdf.php | 31 +- .../reihungstest_administration.php | 329 ++++++++------ vilesci/stammdaten/reihungstestverwaltung.php | 91 ++-- 12 files changed, 935 insertions(+), 559 deletions(-) create mode 100644 application/migrations/021_reihungstestperson.php diff --git a/application/migrations/021_reihungstestperson.php b/application/migrations/021_reihungstestperson.php new file mode 100644 index 000000000..3ecf73aeb --- /dev/null +++ b/application/migrations/021_reihungstestperson.php @@ -0,0 +1,197 @@ +startUP(); + + $this->execQuery('CREATE OR REPLACE VIEW testtool.vw_auswertung_ablauf AS + SELECT tbl_gebiet.gebiet_id, + tbl_gebiet.bezeichnung AS gebiet, + tbl_ablauf.reihung, + tbl_gebiet.maxpunkte, + tbl_pruefling.pruefling_id, + tbl_pruefling.prestudent_id, + tbl_person.vorname, + tbl_person.nachname, + tbl_person.gebdatum, + tbl_person.geschlecht, + tbl_pruefling.semester, + upper(tbl_studiengang.typ::character varying(1)::text || tbl_studiengang.kurzbz::text) AS stg_kurzbz, + tbl_studiengang.bezeichnung AS stg_bez, + tbl_pruefling.registriert, + tbl_pruefling.idnachweis, + ( + SELECT sum(tbl_vorschlag.punkte) AS sum + FROM + testtool.tbl_vorschlag + JOIN testtool.tbl_antwort USING (vorschlag_id) + JOIN testtool.tbl_frage USING (frage_id) + WHERE + tbl_antwort.pruefling_id = tbl_pruefling.pruefling_id + AND tbl_frage.gebiet_id = tbl_gebiet.gebiet_id + ) AS punkte, + tbl_rt_person.rt_id as reihungstest_id, + tbl_ablauf.gewicht + FROM + testtool.tbl_pruefling + JOIN testtool.tbl_ablauf ON (tbl_ablauf.studiengang_kz = tbl_pruefling.studiengang_kz) + JOIN testtool.tbl_gebiet USING (gebiet_id) + JOIN public.tbl_prestudent USING (prestudent_id) + JOIN public.tbl_person USING (person_id) + JOIN public.tbl_rt_person USING (person_id) + JOIN lehre.tbl_studienplan ON (tbl_studienplan.studienplan_id=tbl_rt_person.studienplan_id) + JOIN lehre.tbl_studienordnung ON(tbl_studienordnung.studienordnung_id = tbl_studienplan.studienordnung_id) + JOIN public.tbl_studiengang ON (tbl_prestudent.studiengang_kz = tbl_studiengang.studiengang_kz) + WHERE + NOT (tbl_ablauf.gebiet_id IN ( SELECT tbl_kategorie.gebiet_id FROM testtool.tbl_kategorie)) + AND tbl_studienordnung.studiengang_kz=tbl_pruefling.studiengang_kz; + + CREATE OR REPLACE VIEW testtool.vw_auswertung_kategorie_semester AS + SELECT + tbl_kategorie.kategorie_kurzbz, + tbl_person.vorname, + tbl_person.nachname, + tbl_person.gebdatum, + tbl_person.geschlecht, + tbl_prestudent.prestudent_id, + tbl_rt_person.rt_id as reihungstest_id, + tbl_gebiet.gebiet_id, + upper(tbl_studiengang.typ::character varying(1)::text || tbl_studiengang.kurzbz::text) AS stg_kurzbz, + tbl_studiengang.bezeichnung AS stg_bez, + tbl_pruefling.registriert, + tbl_pruefling.idnachweis, + tbl_pruefling.semester, + tbl_pruefling.pruefling_id, + ( + SELECT + sum(tbl_vorschlag.punkte) AS sum + FROM + testtool.tbl_vorschlag + JOIN testtool.tbl_antwort USING (vorschlag_id) + JOIN testtool.tbl_frage USING (frage_id) + WHERE + tbl_antwort.pruefling_id = tbl_pruefling.pruefling_id + AND tbl_frage.gebiet_id = tbl_gebiet.gebiet_id + AND tbl_frage.kategorie_kurzbz::text = tbl_kategorie.kategorie_kurzbz::text + ) AS punkte + FROM + testtool.tbl_pruefling + JOIN testtool.tbl_ablauf ON (tbl_ablauf.studiengang_kz = tbl_pruefling.studiengang_kz) + JOIN testtool.tbl_gebiet USING (gebiet_id) + JOIN testtool.tbl_kategorie USING (gebiet_id) + JOIN public.tbl_prestudent USING (prestudent_id) + JOIN public.tbl_person USING (person_id) + JOIN public.tbl_studiengang ON (tbl_prestudent.studiengang_kz = tbl_studiengang.studiengang_kz) + JOIN public.tbl_rt_person USING(person_id) + JOIN lehre.tbl_studienplan ON(tbl_studienplan.studienplan_id=tbl_rt_person.studienplan_id) + JOIN lehre.tbl_studienordnung ON(tbl_studienordnung.studienordnung_id = tbl_studienplan.studienordnung_id) + WHERE + tbl_studienordnung.studiengang_kz = tbl_pruefling.studiengang_kz; + + CREATE OR REPLACE VIEW testtool.vw_auswertung_kategorie AS + SELECT + tbl_kategorie.kategorie_kurzbz, + tbl_person.vorname, + tbl_person.nachname, + tbl_person.gebdatum, + tbl_person.geschlecht, + tbl_prestudent.prestudent_id, + tbl_rt_person.rt_id as reihungstest_id, + tbl_gebiet.gebiet_id, + upper(tbl_studiengang.typ::character varying(1)::text || tbl_studiengang.kurzbz::text) AS stg_kurzbz, + tbl_studiengang.bezeichnung AS stg_bez, + tbl_pruefling.registriert, + tbl_pruefling.idnachweis, + tbl_pruefling.semester, + tbl_pruefling.pruefling_id, + ( + SELECT + sum(tbl_vorschlag.punkte) AS sum + FROM + testtool.tbl_vorschlag + JOIN testtool.tbl_antwort USING (vorschlag_id) + JOIN testtool.tbl_frage USING (frage_id) + WHERE + tbl_antwort.pruefling_id = tbl_pruefling.pruefling_id + AND tbl_frage.gebiet_id = tbl_gebiet.gebiet_id + AND tbl_frage.kategorie_kurzbz::text = tbl_kategorie.kategorie_kurzbz::text + ) AS punkte + FROM + testtool.tbl_pruefling + JOIN testtool.tbl_ablauf ON (tbl_ablauf.studiengang_kz = tbl_pruefling.studiengang_kz AND tbl_ablauf.semester = tbl_pruefling.semester) + JOIN testtool.tbl_gebiet USING (gebiet_id) + JOIN testtool.tbl_kategorie USING (gebiet_id) + JOIN public.tbl_prestudent USING (prestudent_id) + JOIN public.tbl_person USING (person_id) + JOIN public.tbl_studiengang ON (tbl_prestudent.studiengang_kz = tbl_studiengang.studiengang_kz) + JOIN public.tbl_rt_person USING(person_id) + JOIN lehre.tbl_studienplan ON (tbl_studienplan.studienplan_id = tbl_rt_person.studienplan_id) + JOIN lehre.tbl_studienordnung ON (tbl_studienordnung.studienordnung_id = tbl_studienplan.studienordnung_id) + WHERE + tbl_studienordnung.studiengang_kz=tbl_pruefling.studiengang_kz; + + CREATE OR REPLACE VIEW testtool.vw_auswertung AS + SELECT + tbl_gebiet.gebiet_id, + tbl_gebiet.bezeichnung AS gebiet, + tbl_gebiet.maxpunkte, + tbl_pruefling.pruefling_id, + tbl_pruefling.prestudent_id, + tbl_person.vorname, + tbl_person.nachname, + tbl_person.gebdatum, + tbl_person.geschlecht, + tbl_pruefling.semester, + upper(tbl_studiengang.typ::character varying(1)::text || tbl_studiengang.kurzbz::text) AS stg_kurzbz, + tbl_studiengang.bezeichnung AS stg_bez, + tbl_pruefling.registriert, + tbl_pruefling.idnachweis, + ( + SELECT + sum(tbl_vorschlag.punkte) AS sum + FROM + testtool.tbl_vorschlag + JOIN testtool.tbl_antwort USING (vorschlag_id) + JOIN testtool.tbl_frage USING (frage_id) + WHERE + tbl_antwort.pruefling_id = tbl_pruefling.pruefling_id + AND tbl_frage.gebiet_id = tbl_gebiet.gebiet_id + ) AS punkte, + tbl_rt_person.rt_id as reihungstest_id, + tbl_ablauf.gewicht, + tbl_person.person_id + FROM + testtool.tbl_pruefling + JOIN testtool.tbl_ablauf ON (tbl_ablauf.studiengang_kz = tbl_pruefling.studiengang_kz AND tbl_ablauf.semester = tbl_pruefling.semester) + JOIN testtool.tbl_gebiet USING (gebiet_id) + JOIN public.tbl_prestudent USING (prestudent_id) + JOIN public.tbl_person USING (person_id) + JOIN public.tbl_studiengang ON tbl_prestudent.studiengang_kz = tbl_studiengang.studiengang_kz + JOIN public.tbl_rt_person USING (person_id) + JOIN lehre.tbl_studienplan ON (tbl_studienplan.studienplan_id = tbl_rt_person.studienplan_id) + JOIN lehre.tbl_studienordnung ON (tbl_studienordnung.studienordnung_id = tbl_studienplan.studienordnung_id) + WHERE + tbl_studienordnung.studiengang_kz = tbl_prestudent.studiengang_kz + AND NOT (tbl_ablauf.gebiet_id IN ( SELECT tbl_kategorie.gebiet_id + FROM testtool.tbl_kategorie));'); + + $this->endUP(); + } + + public function down() + { + $this->startDown(); + $this->endDown(); + } +} \ No newline at end of file diff --git a/cis/testtool/admin/auswertung.php b/cis/testtool/admin/auswertung.php index 343ef7f0e..2f47370e4 100644 --- a/cis/testtool/admin/auswertung.php +++ b/cis/testtool/admin/auswertung.php @@ -16,9 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher , - * Rudolf Hangl and - * Gerald Simane-Sequens . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Gerald Simane-Sequens . */ /** * Auswertung fuer den Reihungstest @@ -39,18 +39,18 @@ $rechte->getBerechtigungen($user); if(!$rechte->isBerechtigt('lehre/reihungstest')) die('Sie haben keine Berechtigung fuer diese Seite'); - + if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='prestudent') { $search=trim((isset($_REQUEST['term']) ? $_REQUEST['term']:'')); if (is_null($search) ||$search=='') - exit(); - $qry = "SELECT - nachname, vorname, prestudent_id, student_uid, - UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) as stg, + exit(); + $qry = "SELECT + nachname, vorname, prestudent_id, student_uid, + UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) as stg, get_rolle_prestudent(prestudent_id, null) as status - FROM - public.tbl_person + FROM + public.tbl_person JOIN public.tbl_prestudent USING(person_id) JOIN public.tbl_studiengang USING(studiengang_kz) LEFT JOIN public.tbl_student USING (prestudent_id) @@ -61,7 +61,7 @@ if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='prestudent') lower(vorname || ' ' || nachname) like '%".$db->db_escape(mb_strtolower($search))."%' OR prestudent_id::text like '%".$db->db_escape(mb_strtolower($search))."%' OR student_uid::text like '%".$db->db_escape(mb_strtolower($search))."%' - ORDER BY nachname,vorname,stg + ORDER BY nachname,vorname,stg LIMIT 10 "; if($result = $db->db_query($qry)) @@ -85,40 +85,40 @@ if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='prestudent') function sortByField($multArray,$sortField,$desc=true) { $tmpKey=''; - $ResArray=array(); + $ResArray=array(); - if(!is_array($multArray)) - return array(); - - $maIndex=array_keys($multArray); - $maSize=count($multArray)-1; + if(!is_array($multArray)) + return array(); - for($i=0; $i < $maSize ; $i++) - { - $minElement=$i; - $tempMin=$multArray[$maIndex[$i]]->$sortField; - $tmpKey=$maIndex[$i]; - for($j=$i+1; $j <= $maSize; $j++) - { - if($multArray[$maIndex[$j]]->$sortField < $tempMin ) - { - $minElement=$j; - $tmpKey=$maIndex[$j]; - $tempMin=$multArray[$maIndex[$j]]->$sortField; - } - } - $maIndex[$minElement]=$maIndex[$i]; - $maIndex[$i]=$tmpKey; - } + $maIndex=array_keys($multArray); + $maSize=count($multArray)-1; - if($desc) - for($j=0;$j<=$maSize;$j++) - $ResArray[$maIndex[$j]]=$multArray[$maIndex[$j]]; - else - for($j=$maSize;$j>=0;$j--) - $ResArray[$maIndex[$j]]=$multArray[$maIndex[$j]]; + for($i=0; $i < $maSize ; $i++) + { + $minElement=$i; + $tempMin=$multArray[$maIndex[$i]]->$sortField; + $tmpKey=$maIndex[$i]; + for($j=$i+1; $j <= $maSize; $j++) + { + if($multArray[$maIndex[$j]]->$sortField < $tempMin ) + { + $minElement=$j; + $tmpKey=$maIndex[$j]; + $tempMin=$multArray[$maIndex[$j]]->$sortField; + } + } + $maIndex[$minElement]=$maIndex[$i]; + $maIndex[$i]=$tmpKey; + } - return $ResArray; + if($desc) + for($j=0;$j<=$maSize;$j++) + $ResArray[$maIndex[$j]]=$multArray[$maIndex[$j]]; + else + for($j=$maSize;$j>=0;$j--) + $ResArray[$maIndex[$j]]=$multArray[$maIndex[$j]]; + + return $ResArray; } $ergebnis=''; @@ -158,18 +158,18 @@ $qry = "SELECT * FROM bis.tbl_zgv"; if($result = $db->db_query($qry)) while($row = $db->db_fetch_object($result)) $zgv_arr[$row->zgv_code]=$row->zgv_kurzbz; - + $zgvma_arr['']=''; $qry = "SELECT * FROM bis.tbl_zgvmaster"; if($result = $db->db_query($qry)) while($row = $db->db_fetch_object($result)) $zgvma_arr[$row->zgvmas_code]=$row->zgvmas_kurzbz; - + // Reihungstests laden $sql_query="SELECT * FROM public.tbl_reihungstest WHERE date_part('year',datum)=date_part('year',now()) ORDER BY datum,uhrzeit"; if(!($result=$db->db_query($sql_query))) - die($db->db_last_error()); + die($db->db_last_error()); while ($row=$db->db_fetch_object($result)) { @@ -187,32 +187,31 @@ if (isset($_REQUEST['reihungstest'])) { // Vorkommende Gebiete laden $sql_query=" - SELECT DISTINCT gebiet_id, gebiet, vw_auswertung_ablauf.reihung - FROM - testtool.vw_auswertung_ablauf - JOIN public.tbl_prestudent USING(prestudent_id) + SELECT DISTINCT gebiet_id, gebiet, vw_auswertung_ablauf.reihung + FROM + testtool.vw_auswertung_ablauf + JOIN public.tbl_prestudent USING(prestudent_id) + JOIN public.tbl_rt_person USING(person_id) JOIN public.tbl_reihungstest ON(vw_auswertung_ablauf.reihungstest_id=tbl_reihungstest.reihungstest_id) JOIN testtool.tbl_ablauf USING(gebiet_id) WHERE 1=1"; if($reihungstest!='') - $sql_query.=" AND vw_auswertung_ablauf.reihungstest_id='".addslashes($reihungstest)."'"; + $sql_query.=" AND vw_auswertung_ablauf.reihungstest_id=".$db->db_add_param($reihungstest, FHC_INTEGER); if($datum_von!='') - $sql_query.=" AND tbl_reihungstest.datum>='$datum_von'"; + $sql_query.=" AND tbl_reihungstest.datum>=".$db->db_add_param($datum_von); if($datum_bis!='') - $sql_query.=" AND tbl_reihungstest.datum<='$datum_bis'"; + $sql_query.=" AND tbl_reihungstest.datum<=".$db->db_add_param($datum_bis); if($studiengang!='') - $sql_query.=" AND tbl_prestudent.studiengang_kz='".addslashes($studiengang)."'"; + $sql_query.=" AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang, FHC_INTEGER); if($semester!='') - $sql_query.=" AND tbl_ablauf.semester='".addslashes($semester)."' AND tbl_ablauf.studiengang_kz=tbl_prestudent.studiengang_kz"; + $sql_query.=" AND tbl_ablauf.semester=".$db->db_add_param($semester, FHC_INTEGER)." AND tbl_ablauf.studiengang_kz=tbl_prestudent.studiengang_kz"; if($prestudent_id!='') - $sql_query.=" AND prestudent_id='".addslashes($prestudent_id)."'"; - + $sql_query.=" AND prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER); + $sql_query.=" ORDER BY vw_auswertung_ablauf.reihung, gebiet_id"; - - //echo $sql_query; - + if(!($result=$db->db_query($sql_query))) - die($db->db_last_error()); + die($db->db_last_error()); while ($row=$db->db_fetch_object($result)) { if(!isset($gebiet[$row->gebiet_id])) @@ -220,33 +219,33 @@ if (isset($_REQUEST['reihungstest'])) $gebiet[$row->gebiet_id]->name=$row->gebiet; $gebiet[$row->gebiet_id]->gebiet_id=$row->gebiet_id; } - + // Alle Personen und deren Ergebnisse laden $sql_query="SELECT DISTINCT ON (pruefling_id,vw_auswertung_ablauf.gebiet_id) * FROM - testtool.vw_auswertung_ablauf + testtool.vw_auswertung_ablauf JOIN public.tbl_prestudent USING(prestudent_id) JOIN public.tbl_reihungstest ON(vw_auswertung_ablauf.reihungstest_id=tbl_reihungstest.reihungstest_id) JOIN testtool.tbl_ablauf ON(tbl_ablauf.gebiet_id=vw_auswertung_ablauf.gebiet_id) WHERE 1=1 AND tbl_ablauf.studiengang_kz=tbl_prestudent.studiengang_kz"; if($reihungstest!='') - $sql_query.=" AND vw_auswertung_ablauf.reihungstest_id='".addslashes($reihungstest)."'"; + $sql_query.=" AND vw_auswertung_ablauf.reihungstest_id=".$db->db_add_param($reihungstest, FHC_INTEGER); if($datum_von!='') - $sql_query.=" AND tbl_reihungstest.datum>='$datum_von'"; + $sql_query.=" AND tbl_reihungstest.datum>=".$db->db_add_param($datum_von); if($datum_bis!='') - $sql_query.=" AND tbl_reihungstest.datum<='$datum_bis'"; + $sql_query.=" AND tbl_reihungstest.datum<=".$db->db_add_param($datum_bis); if($studiengang!='') - $sql_query.=" AND tbl_prestudent.studiengang_kz='".addslashes($studiengang)."'"; + $sql_query.=" AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang, FHC_INTEGER); if($semester!='') - $sql_query.=" AND tbl_ablauf.semester='".addslashes($semester)."'"; + $sql_query.=" AND tbl_ablauf.semester=".$db->db_add_param($semester, FHC_INTEGER); if($prestudent_id!='') - $sql_query.=" AND prestudent_id='".addslashes($prestudent_id)."'"; - - + $sql_query.=" AND prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER); + + if(!($result=$db->db_query($sql_query))) - die($db->db_last_error()); - + die($db->db_last_error()); + while ($row=$db->db_fetch_object($result)) { if(!isset($ergebnis[$row->pruefling_id])) @@ -276,54 +275,53 @@ if (isset($_REQUEST['reihungstest'])) $prozent=100; else $prozent = ($row->punkte/$row->maxpunkte)*100; - + if($row->punkte>=$row->maxpunkte) $punkte=$row->maxpunkte; else - $punkte=$row->punkte; - + $punkte=$row->punkte; + $ergebnis[$row->pruefling_id]->gebiet[$row->gebiet_id]->prozent=$prozent; $ergebnis[$row->pruefling_id]->gebiet[$row->gebiet_id]->punkte=$punkte; - + if (isset($ergebnis[$row->pruefling_id]->gesamt)) $ergebnis[$row->pruefling_id]->gesamt+=$prozent*$row->gewicht; else $ergebnis[$row->pruefling_id]->gesamt=$prozent*$row->gewicht; - + if (isset($ergebnis[$row->pruefling_id]->gesamtpunkte)) $ergebnis[$row->pruefling_id]->gesamtpunkte+=$punkte; else $ergebnis[$row->pruefling_id]->gesamtpunkte=$punkte; } - + $ergb=sortByField($ergebnis,'gesamt'); - + // Vorkommende Kategorien laden - $sql_query="SELECT - DISTINCT kategorie_kurzbz, - (SELECT sum(punkte) FROM testtool.tbl_vorschlag JOIN testtool.tbl_frage USING(frage_id) - WHERE tbl_frage.kategorie_kurzbz=vw_auswertung_kategorie_semester.kategorie_kurzbz) as gesamtpunkte - FROM - testtool.vw_auswertung_kategorie_semester + $sql_query="SELECT + DISTINCT kategorie_kurzbz, + (SELECT sum(punkte) FROM testtool.tbl_vorschlag JOIN testtool.tbl_frage USING(frage_id) + WHERE tbl_frage.kategorie_kurzbz=vw_auswertung_kategorie_semester.kategorie_kurzbz) as gesamtpunkte + FROM + testtool.vw_auswertung_kategorie_semester JOIN public.tbl_prestudent USING(prestudent_id) JOIN public.tbl_reihungstest ON(vw_auswertung_kategorie_semester.reihungstest_id=tbl_reihungstest.reihungstest_id) WHERE 1=1"; if($reihungstest!='') - $sql_query.=" AND vw_auswertung_kategorie_semester.reihungstest_id='".addslashes($reihungstest)."'"; + $sql_query.=" AND vw_auswertung_kategorie_semester.reihungstest_id=".$db->db_add_param($reihungstest, FHC_INTEGER); if($datum_von!='') - $sql_query.=" AND tbl_reihungstest.datum>='$datum_von'"; + $sql_query.=" AND tbl_reihungstest.datum>=".$db->db_add_param($datum_von); if($datum_bis!='') - $sql_query.=" AND tbl_reihungstest.datum<='$datum_bis'"; + $sql_query.=" AND tbl_reihungstest.datum<=".$db->db_add_param($datum_bis); if($studiengang!='') - $sql_query.=" AND tbl_prestudent.studiengang_kz='".addslashes($studiengang)."'"; + $sql_query.=" AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang, FHC_INTEGER); if($prestudent_id!='') - $sql_query.=" AND vw_auswertung_kategorie_semester.prestudent_id='".addslashes($prestudent_id)."'"; + $sql_query.=" AND vw_auswertung_kategorie_semester.prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER); - if(!($result=$db->db_query($sql_query))) - die($db->db_last_error()); + die($db->db_last_error()); $gesamtpunkte=array(); - + while ($row=$db->db_fetch_object($result)) { if(!isset($kategorie[$row->kategorie_kurzbz])) @@ -331,38 +329,38 @@ if (isset($_REQUEST['reihungstest'])) $gesamtpunkte[$row->kategorie_kurzbz]=$row->gesamtpunkte; $kategorie[$row->kategorie_kurzbz]->name=$row->kategorie_kurzbz; } - + // Ergebnisse laden $sql_query=" - SELECT - vw_auswertung_kategorie_semester.*, - (SELECT typ FROM testtool.tbl_kriterien - WHERE gebiet_id=vw_auswertung_kategorie_semester.gebiet_id AND punkte=vw_auswertung_kategorie_semester.punkte + SELECT + vw_auswertung_kategorie_semester.*, + (SELECT typ FROM testtool.tbl_kriterien + WHERE gebiet_id=vw_auswertung_kategorie_semester.gebiet_id AND punkte=vw_auswertung_kategorie_semester.punkte AND kategorie_kurzbz=vw_auswertung_kategorie_semester.kategorie_kurzbz) as typ, tbl_prestudent.zgv_code, tbl_prestudent.zgvmas_code - FROM - testtool.vw_auswertung_kategorie_semester + FROM + testtool.vw_auswertung_kategorie_semester JOIN public.tbl_prestudent USING(prestudent_id) JOIN public.tbl_reihungstest ON(vw_auswertung_kategorie_semester.reihungstest_id=tbl_reihungstest.reihungstest_id) WHERE 1=1"; if($reihungstest!='') - $sql_query.=" AND vw_auswertung_kategorie_semester.reihungstest_id='".addslashes($reihungstest)."'"; + $sql_query.=" AND vw_auswertung_kategorie_semester.reihungstest_id=".$db->db_add_param($reihungstest, FHC_INTEGER); if($datum_von!='') - $sql_query.=" AND tbl_reihungstest.datum>='$datum_von'"; + $sql_query.=" AND tbl_reihungstest.datum>=".$db->db_add_param($datum_von); if($datum_bis!='') - $sql_query.=" AND tbl_reihungstest.datum<='$datum_bis'"; + $sql_query.=" AND tbl_reihungstest.datum<=".$db->db_add_param($datum_bis); if($studiengang!='') - $sql_query.=" AND tbl_prestudent.studiengang_kz='".addslashes($studiengang)."'"; + $sql_query.=" AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang, FHC_INTEGER); //if($semester!='') - // $sql_query.=" AND vw_auswertung_kategorie_semester.semester='".addslashes($semester)."'"; Auskommentiert, damit bei der Persönlichkeitsauswertung kein Kandidat verloren geht + // $sql_query.=" AND vw_auswertung_kategorie_semester.semester='".addslashes($semester)."'"; Auskommentiert, damit bei der Persönlichkeitsauswertung kein Kandidat verloren geht if($prestudent_id!='') - $sql_query.=" AND prestudent_id='".addslashes($prestudent_id)."'"; - + $sql_query.=" AND prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER); + $sql_query.=" ORDER BY nachname, vorname"; - + if(!($result=$db->db_query($sql_query))) - die($db->db_last_error()); - + die($db->db_last_error()); + while ($row=$db->db_fetch_object($result)) { if(!isset($erg_kat[$row->pruefling_id])) @@ -411,7 +409,7 @@ if(isset($_REQUEST['format']) && $_REQUEST['format']=='xls') // Creating a worksheet $titel_studiengang = (isset ($_REQUEST['studiengang']) && $_REQUEST['studiengang']!=''); $titel_semester = (isset ($_REQUEST['semester']) && $_REQUEST['semester']!=''); - + $worksheet =& $workbook->addWorksheet("Technischer Teil " .($titel_studiengang?$stg_arr[$_REQUEST['studiengang']]:'').($titel_semester?' '.$semester.'.Semester':'')); $worksheet->setInputEncoding('utf-8'); $worksheet->setZoom (85); @@ -421,37 +419,37 @@ if(isset($_REQUEST['format']) && $_REQUEST['format']=='xls') $format_bold->setAlign("center"); $format_bold->setFgColor(15); $format_bold->setVAlign('vcenter'); - + $format_bold_border =& $workbook->addFormat(); $format_bold_border->setBold(); $format_bold_border->setAlign("center"); $format_bold_border->setFgColor(15); $format_bold_border->setBorder(1); $format_bold_border->setBorderColor('white'); - + $format_date =& $workbook->addFormat(); $format_date->setNumFormat('YYYY-MM-DD'); - + $format_registriert =& $workbook->addFormat(); $format_registriert->setNumFormat('YYYY-MM-DD hh:mm:ss'); - + $format_punkte =& $workbook->addFormat(); $format_punkte->setNumFormat('0.00'); - + $format_punkte_rot =& $workbook->addFormat(); $format_punkte_rot->setNumFormat('0.00'); $format_punkte_rot->setColor ('22'); - + $format_prozent =& $workbook->addFormat(); $format_prozent->setNumFormat('0.00%'); - + $format_prozent_rot =& $workbook->addFormat(); $format_prozent_rot->setNumFormat('0.00%'); $format_prozent_rot->setColor ('22'); - + $format_male =& $workbook->addFormat(); $format_male->setColor ('blue'); - + $format_female =& $workbook->addFormat(); $format_female->setColor ('magenta'); @@ -491,39 +489,39 @@ if(isset($_REQUEST['format']) && $_REQUEST['format']=='xls') $worksheet->write(0,++$spalte,'ZGV MA', $format_bold); $worksheet->mergeCells(0,10,1,10); $maxlength[10]=20; - + $spalte=9; $zeile=0; - + foreach ($gebiet AS $gbt) - { + { ++$spalte; - $worksheet->write($zeile,++$spalte,strip_tags($gbt->name), $format_bold_border); + $worksheet->write($zeile,++$spalte,strip_tags($gbt->name), $format_bold_border); $worksheet->mergeCells($zeile,$spalte,0,$spalte+1); $maxlength[$spalte]=10; } $worksheet->write($zeile,++$spalte+1,'Gesamt', $format_bold_border); $worksheet->mergeCells($zeile,++$spalte,0,$spalte+1); $maxlength[$spalte]=12; - + $spalte=10; $zeile=0; - + foreach ($gebiet AS $gbt) - { + { $worksheet->write($zeile+1,++$spalte,'Punkte', $format_bold_border); - $worksheet->write($zeile+1,++$spalte,'Prozent', $format_bold_border); + $worksheet->write($zeile+1,++$spalte,'Prozent', $format_bold_border); $maxlength[$spalte]=10; } $worksheet->write($zeile+1,++$spalte,'Punkte', $format_bold_border); - $worksheet->write($zeile+1,++$spalte,'Prozent', $format_bold_border); + $worksheet->write($zeile+1,++$spalte,'Prozent', $format_bold_border); $maxlength[$spalte]=10; - + $maxspalten=$spalte; $zeile=1; $spalte=0; - + if(isset($ergb)) { foreach ($ergb AS $erg) @@ -535,7 +533,7 @@ if(isset($_REQUEST['format']) && $_REQUEST['format']=='xls') $worksheet->write($zeile,++$spalte,$erg->vorname); $worksheet->write($zeile,++$spalte,$erg->gebdatum, $format_date); if($erg->geschlecht=='m') - $worksheet->write($zeile,++$spalte,$erg->geschlecht, $format_male); + $worksheet->write($zeile,++$spalte,$erg->geschlecht, $format_male); else $worksheet->write($zeile,++$spalte,$erg->geschlecht, $format_female); $worksheet->write($zeile,++$spalte,$erg->registriert, $format_registriert); @@ -556,27 +554,27 @@ if(isset($_REQUEST['format']) && $_REQUEST['format']=='xls') else $worksheet->writeNumber($zeile,++$spalte,$erg->gebiet[$gbt->gebiet_id]->prozent/100,$format_prozent_rot); } - else + else { $worksheet->write($zeile,++$spalte,''); $worksheet->write($zeile,++$spalte,''); - } + } $worksheet->writeNumber($zeile,++$spalte,$erg->gesamtpunkte, $format_punkte); $worksheet->writeNumber($zeile,++$spalte,$erg->gesamt, $format_punkte); } } - + //Die Breite der Spalten setzen foreach($maxlength as $i=>$breite) $worksheet->setColumn($i, $i, $breite); - + if(isset($erg_kat) && count($erg_kat)>0) { // Creating second worksheet $worksheet2 =& $workbook->addWorksheet("Persoenlichkeit"); $worksheet2->setInputEncoding('utf-8'); $worksheet2->setZoom (85); - + $spalte=0; $zeile=0; @@ -614,33 +612,32 @@ if(isset($_REQUEST['format']) && $_REQUEST['format']=='xls') $worksheet2->mergeCells(0,10,1,10); $maxlength[10]=20; - $spalte=9; $zeile=0; - + foreach ($kategorie AS $gbt) - { + { ++$spalte; - $worksheet2->write($zeile,++$spalte,$gbt->name, $format_bold_border); + $worksheet2->write($zeile,++$spalte,$gbt->name, $format_bold_border); $worksheet2->mergeCells($zeile,$spalte,0,$spalte+1); $maxlength[$spalte]=10; } - + $spalte=10; $zeile=0; - + foreach ($kategorie AS $gbt) - { + { $worksheet2->write($zeile+1,++$spalte,'Punkte', $format_bold_border); - $worksheet2->write($zeile+1,++$spalte,'Typ', $format_bold_border); + $worksheet2->write($zeile+1,++$spalte,'Typ', $format_bold_border); $maxlength[$spalte]=10; } - + $maxspalten=$spalte; $zeile=1; $spalte=0; - + foreach ($erg_kat AS $erg) { $zeile++; @@ -650,7 +647,7 @@ if(isset($_REQUEST['format']) && $_REQUEST['format']=='xls') $worksheet2->write($zeile,++$spalte,$erg->vorname); $worksheet2->write($zeile,++$spalte,$erg->gebdatum, $format_date); if($erg->geschlecht=='m') - $worksheet2->write($zeile,++$spalte,$erg->geschlecht, $format_male); + $worksheet2->write($zeile,++$spalte,$erg->geschlecht, $format_male); else $worksheet2->write($zeile,++$spalte,$erg->geschlecht, $format_female); $worksheet2->write($zeile,++$spalte,$erg->registriert, $format_registriert); @@ -660,12 +657,12 @@ if(isset($_REQUEST['format']) && $_REQUEST['format']=='xls') $worksheet2->write($zeile,++$spalte,$zgv_arr[$erg->zgv]); $worksheet2->write($zeile,++$spalte,$zgvma_arr[$erg->zgvma]); foreach ($kategorie AS $gbt) - { + { $worksheet2->write($zeile,++$spalte,$erg->kategorie[$gbt->name]->punkte); $worksheet2->write($zeile,++$spalte,$erg->kategorie[$gbt->name]->typ); } } - + //Die Breite der Spalten setzen foreach($maxlength as $i=>$breite) $worksheet2->setColumn($i, $i, $breite); @@ -676,23 +673,23 @@ else { echo ' - + Testtool - Auswertung - + - + - +

Auswertung Reihungstest

-
+ Reihungstest wählen: 

Studiengang: @@ -753,24 +750,24 @@ else { if(isset($_REQUEST['studiengang']) && $_REQUEST['studiengang']==$kz && $_REQUEST['studiengang']!='') $selected='selected'; - else + else $selected=''; - + echo ''; } echo ' Semester: '; - + echo ' von Datum:  '; echo 'bis Datum:
'; echo '
'; @@ -797,93 +794,93 @@ else echo ' bis '.$datum_obj->formatDatum($datum_bis, 'd.m.Y'); if ($prestudent_id!='') echo ' PrestudentID: '.$prestudent_id; - + echo ''; echo '
Excel Icon Export

'; - + if (isset($_REQUEST['reihungstest'])) { - + echo '

Technischer Teil

- + - + '; - + foreach ($gebiet AS $gbt) echo ''; - + echo ' - - '; - + + '; + foreach ($gebiet AS $gbt) echo ""; - + echo ' - '; - - if(isset($ergb)) - { - foreach ($ergb AS $erg) - { - echo " - "; - // - foreach ($gebiet AS $gbt) - if (isset($erg->gebiet[$gbt->gebiet_id])) + '; + + if(isset($ergb)) + { + foreach ($ergb AS $erg) + { + echo " + "; + // + foreach ($gebiet AS $gbt) + if (isset($erg->gebiet[$gbt->gebiet_id])) if ($erg->gebiet[$gbt->gebiet_id]->punkte!='' && $erg->gebiet[$gbt->gebiet_id]->punkte!='0') - echo ''; - else - echo ''; + echo ''; + else + echo ''; else echo ''; echo ''; echo ''; - echo ''; - } - } - + echo ''; + } + } + echo '
PrestudentIn_IDNachnameVornamen GebDatumG ZGV ZGV MA RegistriertSTGStudiengangS'.$gbt->name.'Gesamt
PunkteProzentPunkteProzent
$erg->prestudent_id [prestudent_id target='blank'>Detail]$erg->nachname$erg->vorname$erg->gebdatum$erg->geschlecht".$zgv_arr[$erg->zgv]."".$zgvma_arr[$erg->zgvma]."$erg->registriert$erg->stg_kurzbz$erg->stg_bez$erg->semester$erg->idnachweis
$erg->prestudent_id [prestudent_id target='blank'>Detail]$erg->nachname$erg->vorname$erg->gebdatum$erg->geschlecht".$zgv_arr[$erg->zgv]."".$zgvma_arr[$erg->zgvma]."$erg->registriert$erg->stg_kurzbz$erg->stg_bez$erg->semester$erg->idnachweis'.number_format($erg->gebiet[$gbt->gebiet_id]->punkte,2,',',' ').''.number_format($erg->gebiet[$gbt->gebiet_id]->prozent,2,',',' ').' %'.number_format($erg->gebiet[$gbt->gebiet_id]->punkte,2,',',' ').''.number_format($erg->gebiet[$gbt->gebiet_id]->prozent,2,',',' ').' %'.number_format($erg->gebiet[$gbt->gebiet_id]->punkte,2,',',' ').''.number_format($erg->gebiet[$gbt->gebiet_id]->prozent,2,',',' ').' %'.number_format($erg->gebiet[$gbt->gebiet_id]->punkte,2,',',' ').''.number_format($erg->gebiet[$gbt->gebiet_id]->prozent,2,',',' ').' %'.number_format($erg->gesamtpunkte,2,',',' ').''.number_format($erg->gesamt,2,',',' ').'
- +

Persönlichkeit

- + - + '; - + foreach ($kategorie AS $gbt) echo ''; - + echo ''; - + foreach ($kategorie AS $gbt) echo ''; - - foreach ($erg_kat AS $erg) - { - echo " - "; - // - foreach ($kategorie AS $gbt) + + foreach ($erg_kat AS $erg) + { + echo " + "; + // + foreach ($kategorie AS $gbt) echo ''; - echo ''; - } - + echo ''; + } + echo '
PrestudentIDNachnameVornamen GebDatumG ZGV ZGV MA RegistriertSTGStudiengangS'.$gbt->name.'
PunkteTyp'; - + echo '
$erg->prestudent_id$erg->nachname$erg->vorname$erg->gebdatum$erg->geschlecht".$zgv_arr[$erg->zgv]."".$zgvma_arr[$erg->zgvma]."$erg->registriert$erg->stg_kurzbz$erg->stg_bez$erg->semester$erg->idnachweis
$erg->prestudent_id$erg->nachname$erg->vorname$erg->gebdatum$erg->geschlecht".$zgv_arr[$erg->zgv]."".$zgvma_arr[$erg->zgvma]."$erg->registriert$erg->stg_kurzbz$erg->stg_bez$erg->semester$erg->idnachweis'.$erg->kategorie[$gbt->name]->punkte.''.$erg->kategorie[$gbt->name]->typ.'
'; } } diff --git a/cis/testtool/login.php b/cis/testtool/login.php index e56345661..ffc7631b0 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -38,7 +38,7 @@ if (!$db = new basis_db()) //if(isset($_GET['lang'])) // setSprache($_GET['lang']); -$date = new datum(); +$date = new datum(); function getSpracheUser() { @@ -78,7 +78,7 @@ if(isset($_GET['sprache_user'])) setSpracheUser(DEFAULT_LANGUAGE); } -$sprache_user = getSpracheUser(); +$sprache_user = getSpracheUser(); $p = new phrasen($sprache_user); $gebdatum=''; @@ -101,7 +101,7 @@ if (isset($_GET['logout'])) if(isset($_POST['gebdatum']) && $_POST['gebdatum']!='') { - $gebdatum = $date->formatDatum($_POST['gebdatum'],'Y-m-d'); + $gebdatum = $date->formatDatum($_POST['gebdatum'],'Y-m-d'); } else $gebdatum=''; @@ -109,22 +109,39 @@ else if (isset($_POST['prestudent']) && isset($gebdatum)) { $ps=new prestudent($_POST['prestudent']); + //Geburtsdatum Pruefen if ($gebdatum==$ps->gebdatum) { + $reihungstest_id=''; //Freischaltung fuer zugeteilten Reihungstest pruefen $rt = new reihungstest(); - if($rt->load($ps->reihungstest_id)) + if($rt->getReihungstestPersonDatum($ps->prestudent_id, date('Y-m-d'))) + { + // TODO Was ist wenn da mehrere Zurueckkommen?! + if(isset($rt->result[0])) + $reihungstest_id = $rt->result[0]->reihungstest_id; + else + { + echo ''.$p->t('testtool/reihungstestKannNichtGeladenWerden').''; + } + } + else + { + echo 'Failed:'.$rt->errormsg; + } + //echo "Reihungstest $reihungstest_id"; + if($reihungstest_id != '' && $rt->load($reihungstest_id)) { if($rt->freigeschaltet) - { + { $pruefling = new pruefling(); if($pruefling->getPruefling($ps->prestudent_id)) { $studiengang = $pruefling->studiengang_kz; $semester = $pruefling->semester; } - else + else { $studiengang = $ps->studiengang_kz; $ps->getLastStatus($ps->prestudent_id); @@ -132,7 +149,7 @@ if (isset($_POST['prestudent']) && isset($gebdatum)) } if($semester=='') $semester=1; - + $_SESSION['prestudent_id']=$_POST['prestudent']; $_SESSION['studiengang_kz']=$studiengang; $_SESSION['nachname']=$ps->nachname; @@ -140,7 +157,7 @@ if (isset($_POST['prestudent']) && isset($gebdatum)) $_SESSION['gebdatum']=$ps->gebdatum; $stg_obj = new studiengang($studiengang); $_SESSION['sprache']=$stg_obj->sprache; - + $_SESSION['semester']=$semester; } else @@ -153,12 +170,12 @@ if (isset($_POST['prestudent']) && isset($gebdatum)) echo ''.$p->t('testtool/reihungstestKannNichtGeladenWerden').''; } } - else + else { echo ''.$p->t('testtool/geburtsdatumStimmtNichtUeberein').''; } } - + if (isset($_SESSION['prestudent_id'])) $prestudent_id=$_SESSION['prestudent_id']; else @@ -166,9 +183,7 @@ else //$prestudent_id=null; $ps=new prestudent(); $datum=date('Y-m-d'); - $ps->getPrestudentRT($datum,true); - if ($ps->num_rows==0) - $ps->getPrestudentRT($datum); + $ps->getPrestudentRT($datum); } if(isset($_GET['type']) && $_GET['type']=='sprachechange' && isset($_GET['sprache'])) @@ -179,14 +194,14 @@ if(isset($_GET['type']) && $_GET['type']=='sprachechange' && isset($_GET['sprach if(isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id'])) { $pruefling = new pruefling(); - + if(!$pruefling->getPruefling($_SESSION['prestudent_id'])) { $pruefling->new = true; - + $pruefling->studiengang_kz = $_SESSION['studiengang_kz']; $pruefling->semester = $_SESSION['semester']; - + $pruefling->idnachweis = ''; $pruefling->registriert = date('Y-m-d H:i:s'); $pruefling->prestudent_id = $_SESSION['prestudent_id']; @@ -204,11 +219,11 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) if($_POST['pruefling_id']!='') if(!$pruefling->load($_POST['pruefling_id'])) die('Pruefling wurde nicht gefunden'); - else + else $pruefling->new=false; - else + else $pruefling->new=true; - + $pruefling->studiengang_kz = $_SESSION['studiengang_kz']; $pruefling->idnachweis = isset($_POST['idnachweis'])?$_POST['idnachweis']:''; $pruefling->registriert = date('Y-m-d H:i:s'); @@ -227,64 +242,64 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) - + -parent.menu.location.reload()'; if($reload) echo ""; -?> +?> '.$p->t('testtool/startseite').''; if (isset($prestudent_id)) - { - + { + $prestudent = new prestudent($prestudent_id); $stg_obj = new studiengang($prestudent->studiengang_kz); $pruefling = new pruefling(); $typ = new studiengang($prestudent->studiengang_kz); - $typ->getStudiengangTyp($stg_obj->typ); - + $typ->getStudiengangTyp($stg_obj->typ); + //Sprachwahl des Studiengangs $qry = "SELECT sprachwahl FROM testtool.tbl_ablauf_vorgaben WHERE studiengang_kz=".$db->db_add_param($prestudent->studiengang_kz)." LIMIT 1"; $result = $db->db_query($qry); $sprachwahl = $db->db_fetch_object($result); $sprachwahl = $db->db_parse_bool($sprachwahl->sprachwahl); - - echo ''; + + echo ''; echo '
'.$p->t('testtool/begruessungstext').'

'; echo ''.$p->t('zeitaufzeichnung/id').': '.$_SESSION['prestudent_id'].'
'; echo ''.$p->t('global/name').': '.$_SESSION['vorname'].' '.$_SESSION['nachname'].'
'; @@ -293,10 +308,10 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) echo ''; echo ''; echo '

'; - + if($pruefling->getPruefling($prestudent_id)) { - + echo '
'; echo ''; echo ''; @@ -305,17 +320,17 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) //echo ''; echo '
'; echo '
'; - + //Wenn die Sprachwahl fuer diesen Studiengang aktiviert ist, dann die Sprachen anzeigen if($sprachwahl==true) { //Liste der Sprachen, die in den Gebieten vorkommen koennen - $qry = "SELECT distinct sprache - FROM - testtool.tbl_pruefling + $qry = "SELECT distinct sprache + FROM + testtool.tbl_pruefling JOIN testtool.tbl_ablauf USING(studiengang_kz) JOIN testtool.tbl_frage USING(gebiet_id) - JOIN testtool.tbl_frage_sprache USING(frage_id) + JOIN testtool.tbl_frage_sprache USING(frage_id) WHERE tbl_pruefling.pruefling_id=".$db->db_add_param($pruefling->pruefling_id)." ORDER BY sprache DESC"; @@ -326,7 +341,7 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) { if($_SESSION['sprache']==$row->sprache) $selected='style="border:1px solid black;"'; - else + else $selected=''; echo " sprache' class='Item' $selected>$row->sprache"; } @@ -339,7 +354,7 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) echo ''; } } - else + else { echo ''.$p->t('testtool/keinPrueflingseintragVorhanden').''; } @@ -347,7 +362,7 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) else { $prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:''); - + echo '
'; echo '  '; echo '
'; - + echo '


'.$p->t('testtool/willkommenstext').' diff --git a/content/student/aufnahmetermine.js.php b/content/student/aufnahmetermine.js.php index 5d4d7b6af..169cf2f4c 100644 --- a/content/student/aufnahmetermine.js.php +++ b/content/student/aufnahmetermine.js.php @@ -272,13 +272,16 @@ function AufnahmeTermineDelete() function AufnahemTermineReihungstestPunkteTransmit() { + var reihungstest_id = document.getElementById('aufnahmetermine-menulist-reihungstest').value; + var person_id = document.getElementById('aufnahmetermine-textbox-person_id').value; + var url = 'content/student/studentDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'getReihungstestPunkte'); - req.add('prestudent_id', AufnahmeTerminePrestudentID); - + req.add('person_id', person_id); + req.add('reihungstest_id', reihungstest_id); var response = req.executePOST(); var val = new ParseReturnValue(response) @@ -337,6 +340,11 @@ function AufnahmeTermineSpeichern() alert(response) else alert(val.dbdml_errormsg) + + document.getElementById('aufnahmetermine-textbox-rt_person_id').value=val.dbdml_data; + document.getElementById('aufnahmetermine-checkbox-neu').checked=false; + AufnahmeTermineLoadTree(); + return false; } else diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 14d06c2b6..f10620048 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -3765,13 +3765,13 @@ if(!$error) elseif(isset($_POST['type']) && $_POST['type']=='getReihungstestPunkte') { //Liefert die Reihungstestpunkte eines Prestudenten - if(isset($_POST['prestudent_id'])) + if(isset($_POST['person_id']) && isset($_POST['reihungstest_id'])) { $pruefling = new pruefling(); if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $data = $pruefling->getReihungstestErgebnis($_POST['prestudent_id'], true); + $data = $pruefling->getReihungstestErgebnisPerson($_POST['person_id'], true, $_POST['reihungstest_id']); else - $data = $pruefling->getReihungstestErgebnis($_POST['prestudent_id']); + $data = $pruefling->getReihungstestErgebnisPerson($_POST['person_id'], false, $_POST['reihungstest_id']); $return = true; } else @@ -3906,7 +3906,25 @@ if(!$error) $reihungstest->new=true; } - $reihungstest->rt_id = $rt_id; + $warnung_zu_viele_teilnehmer = false; + if($reihungstest->reihungstest_id != $rt_id) + { + // Wenn ein neuer Reihungstesttermin ausgewählt wird, dann wird geprueft ob + // noch genuegend Platz vorhanden ist. + $rt_help = new reihungstest(); + $aktuelle_anzahl = $rt_help->getTeilnehmerAnzahl($rt_id); + $rt_help->load($rt_id); + $max_teilnehmer = $rt_help->max_teilnehmer; + if($max_teilnehmer == '') + { + // Wenn keine Teilnehmer eingetragen sind, dann schauen welche Raeume zugeteilt + // sind und wie viel Platz dort ist + $max_teilnehmer = $rt_help->getPlatzAnzahlRaum($rt_id); + } + if($max_teilnehmer!='' && $aktuelle_anzahl >= $max_teilnehmer) + $warnung_zu_viele_teilnehmer = true; + } + $reihungstest->reihungstest_id = $rt_id; $reihungstest->person_id = $person_id; $reihungstest->punkte = $punkte; $reihungstest->teilgenommen = $teilgenommen; @@ -3920,6 +3938,13 @@ if(!$error) $error = false; $errormsg = 'Erfolgreich gespeichert'; $data = $reihungstest->rt_person_id; + if($warnung_zu_viele_teilnehmer) + { + $return = false; + $error = true; + $errormsg = 'Achtung - die Maximalanzahl der Teilnehmer wurde überschritten;'. + ' Prüfen Sie ob genug Platz zur Verfügung steht - Zuteilung wurde erfolgreich gespeichert'; + } } else { diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 9e5791a63..f03b5f67e 100755 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -357,23 +357,28 @@ class prestudent extends person /** * Laden aller Prestudenten, die an $datum zum Reihungstest geladen sind. - * Wenn $equal auf true gesetzt ist wird genau dieses Datum verwendet, - * ansonsten werden auch alle mit späterem Datum geladen. ---> von kindlm am 30.03.2012 geändert * da zukünftige Teilnehmer nicht mehr angezeigt werden sollen. + * @param date $datum Datum an dem der Reihungstest stattfindet * @return true wenn erfolgreich, false im Fehlerfall */ - public function getPrestudentRT($datum, $equal=false) + public function getPrestudentRT($datum) { - $sql_query='SELECT DISTINCT * FROM public.vw_prestudent WHERE rt_datum'; - if ($equal) - $sql_query.='='; - else - $sql_query.='='; - $sql_query.="'$datum' ORDER BY nachname,vorname"; + $sql_query='SELECT + DISTINCT tbl_prestudent.prestudent_id, + tbl_person.vorname, tbl_person.nachname, tbl_person.person_id, tbl_person.titelpre, + tbl_person.titelpost, tbl_person.gebdatum,tbl_prestudent.studiengang_kz, + tbl_reihungstest.* + FROM + public.tbl_prestudent + JOIN public.tbl_person USING(person_id) + JOIN public.tbl_rt_person USING(person_id) + JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) + WHERE tbl_reihungstest.datum='.$this->db_add_param($datum).' + ORDER BY nachname,vorname'; if(!$this->db_query($sql_query)) { - $this->errormsg = 'Fehler beim Speichern des Benutzer-Datensatzes:'.$sql_query; + $this->errormsg = 'Fehler beim Laden der Daten'; return false; } @@ -385,56 +390,12 @@ class prestudent extends person $ps->prestudent_id = $row->prestudent_id; $ps->person_id = $row->person_id; $ps->reihungstest_id = $row->reihungstest_id; - $ps->staatsbuergerschaft = $row->staatsbuergerschaft; - $ps->geburtsnation = $row->geburtsnation; - $ps->sprache = $row->sprache; - $ps->anrede = $row->anrede; $ps->titelpost = $row->titelpost; $ps->titelpre = $row->titelpre; $ps->nachname = $row->nachname; $ps->vorname = $row->vorname; - $ps->vornamen = $row->vornamen; $ps->gebdatum = $row->gebdatum; - $ps->gebort = $row->gebort; - $ps->gebzeit = $row->gebzeit; - // $ps->foto = $row->foto; - $ps->anmerkungen = $row->anmerkungen; - $ps->homepage = $row->homepage; - $ps->svnr = $row->svnr; - $ps->ersatzkennzeichen = $row->ersatzkennzeichen; - $ps->familienstand = $row->familienstand; - $ps->geschlecht = $row->geschlecht; - $ps->anzahlkinder = $row->anzahlkinder; - $ps->aktiv = $this->db_parse_bool($row->aktiv); - $ps->aufmerksamdurch_kurzbz = $row->aufmerksamdurch_kurzbz; $ps->studiengang_kz = $row->studiengang_kz; - $ps->berufstaetigkeit_code = $row->berufstaetigkeit_code; - $ps->ausbildungcode = $row->ausbildungcode; - $ps->zgv_code = $row->zgv_code; - $ps->zgvort = $row->zgvort; - $ps->zgvdatum = $row->zgvdatum; - //$ps->zgvnation = $row->zgvnation; - $ps->zgvmas_code = $row->zgvmas_code; - $ps->zgvmaort = $row->zgvmaort; - $ps->zgvmadatum = $row->zgvmadatum; - //$ps->zgvmanation = $row->zgvmanation; - $ps->aufnahmeschluessel = $row->aufnahmeschluessel; - $ps->facheinschlberuf = $this->db_parse_bool($row->facheinschlberuf); - $ps->anmeldungreihungstest = $row->anmeldungreihungstest; - $ps->reihungstestangetreten = $this->db_parse_bool($row->reihungstestangetreten); - $ps->punkte = $row->punkte; - $ps->rt_punkte1 = $row->rt_punkte1; - $ps->rt_punkte2 = $row->rt_punkte2; - $ps->bismelden = $this->db_parse_bool($row->bismelden); - $ps->rt_studiengang_kz = $row->rt_studiengang_kz; - $ps->rt_ort = $row->rt_ort; - $ps->rt_datum = $row->rt_datum; - $ps->rt_uhrzeit = $row->rt_uhrzeit; - $ps->updateamum = $row->updateamum; - $ps->updatevon = $row->updatevon; - $ps->insertamum = $row->insertamum; - $ps->insertvon = $row->insertvon; - //$ps->ext_id_prestudent = $row->ext_id_prestudent; $this->result[]=$ps; $this->num_rows++; } diff --git a/include/pruefling.class.php b/include/pruefling.class.php index b8baaae96..10174989b 100644 --- a/include/pruefling.class.php +++ b/include/pruefling.class.php @@ -307,15 +307,20 @@ class pruefling extends basis_db } /** - * Berechnet das Reihungstestergebnis fuer einen Prestudenten + * Berechnet das Reihungstestergebnis fuer eine Person und ggf Reihungstest * - * @param $prestudent_id + * @param $person_id ID der Person. + * @param $punkte Wenn true werden Punkte geliefert, sonst Prozentsumme. + * @param $reihungstest_id ID des Reihungstests. * @return Endpunkte des Reihungstests */ - public function getReihungstestErgebnis($prestudent_id, $punkte=false) + public function getReihungstestErgebnisPerson($person_id, $punkte=false, $reihungstest_id=null) { $qry = "SELECT * FROM testtool.vw_auswertung - WHERE prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER); + WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER); + + if(!is_null($reihungstest_id)) + $qry.=" AND reihungstest_id=".$this->db_add_param($reihungstest_id, FHC_INTEGER); $ergebnis=0; @@ -335,7 +340,52 @@ class pruefling extends basis_db if($punkte) $ergebnis +=$row->punkte; else - $ergebnis+=$prozent*$row->gewicht; + $ergebnis+=$prozent*$row->gewicht; + } + return $ergebnis; + } + else + { + $this->errormsg = 'Fehler bei einer Abfrage'; + return false; + } + } + + /** + * Berechnet das Reihungstestergebnis fuer einen Prestudenten und ggf Reihungstest + * + * @param $prestudent_id ID des Prestudenten + * @param $punkte Wenn true werden Punkte geliefert, sonst Prozentsumme. + * @param $reihungstest_id ID des Reihungstests. + * @return Endpunkte des Reihungstests + */ + public function getReihungstestErgebnisPrestudent($prestudent_id, $punkte=false, $reihungstest_id=null) + { + $qry = "SELECT * FROM testtool.vw_auswertung + WHERE prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER); + + if(!is_null($reihungstest_id)) + $qry.=" AND reihungstest_id=".$this->db_add_param($reihungstest_id, FHC_INTEGER); + + $ergebnis=0; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + //wenn maxpunkte ueberschritten wurde -> 100% + if($row->punkte>=$row->maxpunkte) + { + $prozent=100; + $row->punkte = $row->maxpunkte; + } + else + $prozent = ($row->punkte/$row->maxpunkte)*100; + + if($punkte) + $ergebnis +=$row->punkte; + else + $ergebnis+=$prozent*$row->gewicht; } return $ergebnis; } diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php index 802392230..4ba670919 100644 --- a/include/reihungstest.class.php +++ b/include/reihungstest.class.php @@ -28,7 +28,7 @@ require_once(dirname(__FILE__).'/basis_db.class.php'); class reihungstest extends basis_db { - public $new; // boolean + public $new=true; // boolean public $done = false; // boolean public $result = array(); @@ -476,7 +476,7 @@ class reihungstest extends basis_db FROM public.tbl_rt_person WHERE - reihungstest_id = '.$this->db_add_param($reihungstest_id, FHC_INTEGER); + rt_id = '.$this->db_add_param($reihungstest_id, FHC_INTEGER); if ($result = $this->db_query($qry)) { @@ -541,7 +541,7 @@ class reihungstest extends basis_db if ($row = $this->db_fetch_object($result)) { $this->rt_person_id = $row->rt_person_id; - $this->rt_id = $row->rt_id; + $this->reihungstest_id = $row->rt_id; $this->person_id = $row->person_id; $this->studienplan_id = $row->studienplan_id; $this->anmeldedatum = $row->anmeldedatum; @@ -584,7 +584,7 @@ class reihungstest extends basis_db $obj = new stdClass(); $obj->rt_person_id = $row->rt_person_id; - $obj->rt_id = $row->rt_id; + $obj->reihungstest_id = $row->rt_id; $obj->person_id = $row->person_id; $obj->studienplan_id = $row->studienplan_id; $obj->anmeldedatum = $row->anmeldedatum; @@ -606,10 +606,10 @@ class reihungstest extends basis_db /** * Liefert die Zuordnung einer Person zu einem Reihungstest * @param int $person_id ID der Person. - * @param int $rt_id ID des Reihungstests. + * @param int $reihungstest_id ID des Reihungstests. * @return boolean true wenn erfolgreich, false im Fehlerfall */ - public function getPersonReihungstest($person_id, $rt_id) + public function getPersonReihungstest($person_id, $reihungstest_id) { $qry = "SELECT * @@ -617,13 +617,13 @@ class reihungstest extends basis_db public.tbl_rt_person WHERE tbl_rt_person.person_id=".$this->db_add_param($person_id)." - AND rt_id=".$this->db_add_param($rt_id); + AND rt_id=".$this->db_add_param($reihungstest_id); if ($result = $this->db_query($qry)) { if ($row = $this->db_fetch_object($result)) { $this->rt_person_id = $row->rt_person_id; - $this->rt_id = $row->rt_id; + $this->reihungstest_id = $row->rt_id; $this->person_id = $row->person_id; $this->studienplan_id = $row->studienplan_id; $this->anmeldedatum = $row->anmeldedatum; @@ -647,18 +647,18 @@ class reihungstest extends basis_db /** * Liefert die Personen, die einem Ort des Reihungstests zugeteilt sind - * @param int $rt_id ID des Reihungstests. - * @param string $ort_kurzbz Ort des Reihungstests mit der ID $rt_id. + * @param int $reihungstest_id ID des Reihungstests. + * @param string $ort_kurzbz Ort des Reihungstests mit der ID $reihungstest_id. * @return true wenn ok, sonst false */ - public function getPersonReihungstestOrt($rt_id, $ort_kurzbz) + public function getPersonReihungstestOrt($reihungstest_id, $ort_kurzbz) { $qry = "SELECT * FROM public.tbl_rt_person WHERE - tbl_rt_person.rt_id=".$this->db_add_param($rt_id)." + tbl_rt_person.rt_id=".$this->db_add_param($reihungstest_id)." AND tbl_rt_person.ort_kurzbz=".$this->db_add_param($ort_kurzbz); if ($result = $this->db_query($qry)) { @@ -667,7 +667,7 @@ class reihungstest extends basis_db $obj = new stdClass(); $obj->rt_person_id = $row->rt_person_id; - $obj->rt_id = $row->rt_id; + $obj->reihungstest_id = $row->rt_id; $obj->person_id = $row->person_id; $obj->studienplan_id = $row->studienplan_id; $obj->anmeldedatum = $row->anmeldedatum; @@ -697,7 +697,7 @@ class reihungstest extends basis_db $qry = "BEGIN;INSERT INTO public.tbl_rt_person(person_id, rt_id, studienplan_id, anmeldedatum, teilgenommen, ort_kurzbz, punkte) VALUES(". $this->db_add_param($this->person_id, FHC_INTEGER).','. - $this->db_add_param($this->rt_id, FHC_INTEGER).','. + $this->db_add_param($this->reihungstest_id, FHC_INTEGER).','. $this->db_add_param($this->studienplan_id, FHC_INTEGER).','. $this->db_add_param($this->anmeldedatum).','. $this->db_add_param($this->teilgenommen, FHC_BOOLEAN).','. @@ -707,7 +707,7 @@ class reihungstest extends basis_db else { $qry = "UPDATE public.tbl_rt_person SET ". - ' rt_id = '.$this->db_add_param($this->rt_id).','. + ' rt_id = '.$this->db_add_param($this->reihungstest_id).','. ' studienplan_id = '.$this->db_add_param($this->studienplan_id).','. ' anmeldedatum='.$this->db_add_param($this->anmeldedatum).','. ' teilgenommen='.$this->db_add_param($this->teilgenommen, FHC_BOOLEAN).','. @@ -788,13 +788,14 @@ class reihungstest extends basis_db tbl_rt_ort.rt_id=".$this->db_add_param($reihungstest_id)." ORDER BY ort_kurzbz"; + if ($result = $this->db_query($qry)) { while ($row = $this->db_fetch_object($result)) { $obj = new stdClass(); - $obj->rt_id = $row->rt_id; + $obj->reihungstest_id = $row->rt_id; $obj->ort_kurzbz = $row->ort_kurzbz; $obj->uid = $row->uid; @@ -820,7 +821,7 @@ class reihungstest extends basis_db if ($this->new) { $qry = "INSERT INTO public.tbl_rt_ort(rt_id, ort_kurzbz, uid) VALUES(". - $this->db_add_param($this->rt_id, FHC_INTEGER).','. + $this->db_add_param($this->reihungstest_id, FHC_INTEGER).','. $this->db_add_param($this->ort_kurzbz).','. $this->db_add_param($this->uid).');'; } @@ -829,7 +830,7 @@ class reihungstest extends basis_db $qry = "UPDATE public.tbl_rt_ort SET ". ' ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).','. ' uid='.$this->db_add_param($this->uid).' '. - ' WHERE rt_id='.$this->db_add_param($this->rt_id, FHC_INTEGER).' AND '. + ' WHERE rt_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER).' AND '. ' ort_kurzbz='.$this->db_add_param($this->ort_kurzbz); } @@ -878,14 +879,14 @@ class reihungstest extends basis_db if ($this->new) { $qry = "INSERT INTO public.tbl_rt_studienplan(reihungstest_id, studienplan_id) VALUES(". - $this->db_add_param($this->rt_id, FHC_INTEGER).','. + $this->db_add_param($this->reihungstest_id, FHC_INTEGER).','. $this->db_add_param($this->studienplan_id).');'; } else { $qry = "UPDATE public.tbl_rt_studienplan SET ". ' studienplan_id='.$this->db_add_param($this->studienplan_id).' '. - ' WHERE reihungstest_id='.$this->db_add_param($this->rt_id, FHC_INTEGER).' AND '. + ' WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER).' AND '. ' studienplan_id='.$this->db_add_param($this->studienplan_id); } @@ -966,11 +967,16 @@ class reihungstest extends basis_db public function getReihungstestStudienplan($studienplan_arr) { $qry = "SELECT - distinct tbl_reihungstest.* + distinct a.*, + ( + SELECT count(*) FROM public.tbl_rt_person + WHERE rt_id=a.reihungstest_id + ) as angemeldete_teilnehmer FROM - public.tbl_reihungstest + public.tbl_reihungstest a JOIN public.tbl_rt_studienplan USING(reihungstest_id) - WHERE studienplan_id IN(".$this->db_implode4Sql($studienplan_arr).")"; + WHERE studienplan_id IN(".$this->db_implode4Sql($studienplan_arr).") + ORDER BY a.datum DESC"; if ($this->db_query($qry)) { @@ -995,6 +1001,7 @@ class reihungstest extends basis_db $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; $obj->stufe = $row->stufe; $obj->anmeldefrist = $row->anmeldefrist; + $obj->angemeldete_teilnehmer = $row->angemeldete_teilnehmer; $this->result[] = $obj; } @@ -1063,4 +1070,83 @@ class reihungstest extends basis_db return false; } } + + /** + * Laedt die Reihungstest-Zuordnungen eines Prestudenten zu einem Datum + * @param int $prestudent_id ID des Prestudenten. + * @param date $datum Datum an dem der Reihugnstest stattfindet. + * @return boolean true wenn erfolgreich geladen, false im Fehlerfall + */ + public function getReihungstestPersonDatum($prestudent_id, $datum) + { + $qry = "SELECT + tbl_rt_person.* + FROM + public.tbl_rt_person + JOIN public.tbl_prestudent USING(person_id) + JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) + WHERE + tbl_prestudent.prestudent_id = ".$this->db_add_param($prestudent_id)." + AND tbl_reihungstest.datum=".$this->db_add_param($datum); + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new stdClass(); + + $obj->rt_person_id = $row->rt_person_id; + $obj->reihungstest_id = $row->rt_id; + $obj->person_id = $row->person_id; + $obj->studienplan_id = $row->studienplan_id; + $obj->anmeldedatum = $row->anmeldedatum; + $obj->teilgenommen = $this->db_parse_bool($row->teilgenommen); + $obj->ort_kurzbz = $row->ort_kurzbz; + $obj->punkte = $row->punkte; + + $this->result[] = $obj; + + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Ermittelt die Anzahl der maximalen Platzanzahl aufgrund der Raumzuordnung + * @param int $reihungstest_id ID des Reihungstests. + * @return Anzahl der Plaetze + */ + public function getPlatzAnzahlRaum($reihungstest_id) + { + $qry = " + SELECT + sum(tbl_ort.arbeitsplaetze) as anzahl + FROM + public.tbl_rt_ort + JOIN public.tbl_ort USING(ort_kurzbz) + WHERE + tbl_rt_ort.rt_id = ".$this->db_add_param($reihungstest_id, FHC_INTEGER); + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + return $row->anzahl; + } + else + { + $this->errormsg = 'Fehler beim Laden der Arbeitsplaetze'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Arbeitsplaetze'; + return false; + } + } } diff --git a/rdf/aufnahmetermine.rdf.php b/rdf/aufnahmetermine.rdf.php index 5dfe05cdd..d3e24b966 100644 --- a/rdf/aufnahmetermine.rdf.php +++ b/rdf/aufnahmetermine.rdf.php @@ -73,14 +73,14 @@ function drawrow($row) global $oRdf, $datum_obj; $reihungstest_obj = new reihungstest(); - $reihungstest_obj->load($row->rt_id); + $reihungstest_obj->load($row->reihungstest_id); $studienplan = new studienplan(); $studienplan->loadStudienplan($row->studienplan_id); $i=$oRdf->newObjekt($row->rt_person_id); $oRdf->obj[$i]->setAttribut('rt_person_id',$row->rt_person_id,true); - $oRdf->obj[$i]->setAttribut('rt_id',$row->rt_id,true); + $oRdf->obj[$i]->setAttribut('rt_id',$row->reihungstest_id,true); $oRdf->obj[$i]->setAttribut('person_id',$row->person_id,true); $oRdf->obj[$i]->setAttribut('anmeldedatum',$datum_obj->formatDatum($row->anmeldedatum, 'd.m.Y'),true); $oRdf->obj[$i]->setAttribut('anmeldedatum_iso',$row->anmeldedatum,true); diff --git a/rdf/reihungstest.rdf.php b/rdf/reihungstest.rdf.php index 74122c11a..d5e6a2fb2 100644 --- a/rdf/reihungstest.rdf.php +++ b/rdf/reihungstest.rdf.php @@ -42,14 +42,14 @@ $rdf_url='http://www.technikum-wien.at/reihungstest'; xmlns:RT="/rdf#" > - + - + + @@ -57,8 +57,8 @@ if(isset($_GET['optional']) && $_GET['optional']=='true') -- keine Auswahl -- - - + + '; } @@ -87,6 +87,17 @@ elseif(isset($_GET['prestudent_id'])) $studienplan_arr[] = $row->studienplan_id; } + // Zusaetzlich auch die Studienplaene holen bei denen die + // Person schon zu Reihungstests zugeordnet ist + $prestudent = new prestudent(); + $prestudent->load($_GET['prestudent_id']); + $rt_help = new reihungstest(); + $rt_help->getReihungstestPerson($prestudent->person_id); + foreach($rt_help->result as $row) + { + $studienplan_arr[] = $row->studienplan_id; + } + $rt->getReihungstestStudienplan($studienplan_arr); } else @@ -103,8 +114,8 @@ foreach ($rt->result as $row) $bezeichnung = (array_key_exists($row->studiengang_kz, $stg)?$stg[$row->studiengang_kz].' ':'').$row->datum.' '.$row->uhrzeit.' '.$row->ort_kurzbz.' '.$row->anmerkung.$freieplaetze; ?> - - + + reihungstest_id; ?>]]> studiengang_kz; ?>]]> ort_kurzbz; ?>]]> @@ -112,10 +123,10 @@ foreach ($rt->result as $row) datum; ?>]]> uhrzeit; ?>]]> ]]> - - + + - + diff --git a/vilesci/stammdaten/reihungstest_administration.php b/vilesci/stammdaten/reihungstest_administration.php index 2d0ca7554..4a12fc4bf 100644 --- a/vilesci/stammdaten/reihungstest_administration.php +++ b/vilesci/stammdaten/reihungstest_administration.php @@ -15,13 +15,13 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * Authors: Christian Paminger < christian.paminger@technikum-wien.at > - * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Authors: Christian Paminger < christian.paminger@technikum-wien.at > + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ require_once('../../config/vilesci.config.inc.php'); -require_once('../../config/global.config.inc.php'); +require_once('../../config/global.config.inc.php'); require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/datum.class.php'); require_once('../../include/functions.inc.php'); @@ -32,8 +32,8 @@ require_once('../../include/studiengang.class.php'); require_once('../../include/reihungstest.class.php'); require_once('../../include/studiensemester.class.php'); require_once('../../include/log.class.php'); - -// Studiengang lesen + +// Studiengang lesen $s=new studiengang(); $s->getAll('typ, kurzbz', false); $studiengang=$s->result; @@ -47,13 +47,13 @@ if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='prestudent') { $search=trim((isset($_REQUEST['term']) ? $_REQUEST['term']:'')); if (is_null($search) ||$search=='') - exit(); - $qry = "SELECT + exit(); + $qry = "SELECT nachname, vorname, prestudent_id, - UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) as stg, + UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) as stg, get_rolle_prestudent(prestudent_id, null) as status - FROM - public.tbl_person + FROM + public.tbl_person JOIN public.tbl_prestudent USING(person_id) JOIN public.tbl_studiengang USING(studiengang_kz) WHERE @@ -78,7 +78,7 @@ if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='prestudent') } exit; } - + $user = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); @@ -95,50 +95,50 @@ echo ' - +

Reihungstest - Administration

'; @@ -150,24 +150,48 @@ if(isset($_POST['personzuteilen'])) { if(!$rechte->isBerechtigt('basis/testtool', null, 'sui')) die('Sie haben keine Berechtigung für diese Aktion. Seite neu laden'); - + $prestudent = new prestudent(); if($prestudent->load($_POST['prestudent_id'])) { - $prestudent->reihungstest_id=$_POST['reihungstest_id']; - $prestudent->new=false; - if($prestudent->save()) - echo 'Zuteilung gespeichert'; + $rt_obj = new reihungstest(); + if($rt_obj->getPersonReihungstest($prestudent->person_id, $_POST['reihungstest_id'])===false) + { + $rt_obj = new reihungstest(); + + $prestudent->getLastStatus($prestudent->prestudent_id, '', 'Interessent'); + + if($prestudent->studienplan_id!='') + { + $rt_obj->person_id=$prestudent->person_id; + $rt_obj->reihungstest_id=$_POST['reihungstest_id']; + $rt_obj->studienplan_id=$prestudent->studienplan_id; + $rt_obj->anmeldedatum = date('Y-m-d'); + $rt_obj->teilgenommen = false; + $rt_obj->ort_kurzbz = null; + $rt_obj->punkte = null; + + if($rt_obj->savePersonReihungstest()) + echo 'Zuteilung gespeichert'; + else + echo 'Fehler beim Speichern der Zuteilung'; + } + else + { + echo 'Interessent ist keinen Studienplan zugeordnet'; + } + } else - echo 'Fehler beim Speichern der Zuteilung'; + echo 'Person ist bereits zugeteilt'; + } else { echo 'Fehler beim Laden des Prestudenten'; - } + } } //Links -echo '
Auswertung | +echo '
Auswertung | Fragenadministration | Fragenkatalog

'; @@ -176,11 +200,20 @@ echo '
Anzeigen d if(isset($_GET['action']) && $_GET['action']=='showreihungstests') { - $qry = "SELECT kurzbzlang,datum,ort_kurzbz,anmerkung,uhrzeit,max_teilnehmer,insertvon,reihungstest_id, - (SELECT count(*) FROM public.tbl_prestudent WHERE reihungstest_id=tbl_reihungstest.reihungstest_id) as anzahl_teilnehmer + $qry = "SELECT + kurzbzlang, + datum, + anmerkung, + uhrzeit, + max_teilnehmer, + insertvon, + reihungstest_id, + array_to_string(ARRAY(SELECT ort_kurzbz FROM public.tbl_rt_ort WHERE rt_id=tbl_reihungstest.reihungstest_id),',') as orte, + (SELECT count(*) FROM public.tbl_rt_person + WHERE rt_id=tbl_reihungstest.reihungstest_id) as anzahl_teilnehmer FROM public.tbl_reihungstest JOIN public.tbl_studiengang USING (studiengang_kz) WHERE datum>=CURRENT_DATE ORDER BY datum"; - + if($result = $db->db_query($qry)) { echo ' @@ -188,7 +221,7 @@ if(isset($_GET['action']) && $_GET['action']=='showreihungstests') - + @@ -203,7 +236,7 @@ if(isset($_GET['action']) && $_GET['action']=='showreihungstests') echo ''; echo ""; echo ""; - echo ""; + echo ""; echo ""; echo ""; echo ""; @@ -219,14 +252,12 @@ if(isset($_GET['action']) && $_GET['action']=='showreihungstests') // Antworten eines Gebietes einer Person löschen und einen Logfile-Eintrag mit Undo-Befehl erstellen if(isset($_POST['prestudent']) && is_numeric($_POST['prestudent'])) $prestudent_id = $_POST['prestudent']; -else +else $prestudent_id = ''; $ps=new prestudent(); $datum=date('Y-m-d'); -$ps->getPrestudentRT($datum,true); -if ($ps->num_rows==0) - $ps->getPrestudentRT($datum); +$ps->getPrestudentRT($datum); $prestudent_arr = array(); //Array mit Dropdownwerten befüllen @@ -261,7 +292,7 @@ if($prestudent_id!='' && !in_array($prestudent_id, $prestudent_arr)) if ($prestudent_id!='' && $prestudent_id!='-1') { - $qry = "SELECT DISTINCT(tbl_gebiet.gebiet_id),tbl_gebiet.bezeichnung,tbl_gebiet.kurzbz FROM testtool.tbl_gebiet + $qry = "SELECT DISTINCT(tbl_gebiet.gebiet_id),tbl_gebiet.bezeichnung,tbl_gebiet.kurzbz FROM testtool.tbl_gebiet JOIN testtool.tbl_ablauf USING (gebiet_id) JOIN public.tbl_prestudent USING (studiengang_kz) WHERE tbl_prestudent.prestudent_id = ".$prestudent_id." @@ -283,7 +314,7 @@ if($result = $db->db_query($qry)) $selected='selected'; else $selected=''; - + echo ""; } echo ''; @@ -294,8 +325,8 @@ if(isset($_POST['deleteteilgebiet'])) { if(!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die('Sie haben keine Berechtigung für diese Aktion. Seite neu laden'); - - if(isset($_POST['prestudent']) && isset($_POST['gebiet']) && + + if(isset($_POST['prestudent']) && isset($_POST['gebiet']) && is_numeric($_POST['prestudent']) && is_numeric($_POST['gebiet'])) { $pruefling = new pruefling(); @@ -306,11 +337,11 @@ if(isset($_POST['deleteteilgebiet'])) //UNDO Befehl zusammenbauen und Log schreiben $undo=''; $db->db_query('BEGIN;'); - + $qry = "SELECT * FROM testtool.tbl_pruefling_frage WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id, FHC_INTEGER)." AND frage_id IN (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($_POST['gebiet'])."); "; - + if($db->db_query($qry)) { while($row = $db->db_fetch_object()) @@ -324,19 +355,19 @@ if(isset($_POST['deleteteilgebiet'])) $db->db_add_param($row->endtime).');'; } } - else + else { $db->errormsg = 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_pruefling_frage'; $db->db_query('ROLLBACK'); return false; } - - $qry = "SELECT * FROM testtool.tbl_antwort - WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id)." AND - vorschlag_id IN (SELECT vorschlag_id FROM testtool.tbl_vorschlag WHERE frage_id IN + + $qry = "SELECT * FROM testtool.tbl_antwort + WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id)." AND + vorschlag_id IN (SELECT vorschlag_id FROM testtool.tbl_vorschlag WHERE frage_id IN (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($_POST['gebiet']).")); "; - + if($db->db_query($qry)) { while($row = $db->db_fetch_object()) @@ -347,7 +378,7 @@ if(isset($_POST['deleteteilgebiet'])) $db->db_add_param($row->vorschlag_id, FHC_INTEGER).');'; } } - else + else { $db->errormsg = 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_antwort'; $db->db_query('ROLLBACK'); @@ -356,17 +387,17 @@ if(isset($_POST['deleteteilgebiet'])) //Gebiet loeschen $qry = "DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=".$db->db_add_param($pruefling->pruefling_id, FHC_INTEGER)." AND frage_id IN (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($_POST['gebiet'])."); - - DELETE FROM testtool.tbl_antwort - WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id)." AND - vorschlag_id IN (SELECT vorschlag_id FROM testtool.tbl_vorschlag WHERE frage_id IN + + DELETE FROM testtool.tbl_antwort + WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id)." AND + vorschlag_id IN (SELECT vorschlag_id FROM testtool.tbl_vorschlag WHERE frage_id IN (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($_POST['gebiet'])."));"; - + if($result = $db->db_query($qry)) { //Log schreiben $log = new log(); - + $log->new = true; $log->sql = $qry; $log->sqlundo = $undo; @@ -380,17 +411,17 @@ if(isset($_POST['deleteteilgebiet'])) $db->db_query('ROLLBACK'); return false; } - + $db->db_query('COMMIT;'); echo ''.$db->db_affected_rows($result).' Antworten wurden gelöscht'; } - else + else { $db->errormsg = 'Fehler beim Loeschen der Daten'; $db->db_query('ROLLBACK'); } } - else + else echo 'Wählen Sie bitte ein Gebiet, dessen Antworten Sie löschen wollen'; } @@ -399,21 +430,21 @@ echo 'db_query($qry)) { while($row = $db->db_fetch_object()) @@ -427,16 +458,16 @@ if(isset($_POST['delete_all'])) $db->db_add_param($row->endtime).');'; } } - else + else { $db->errormsg = 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_pruefling_frage'; $db->db_query('ROLLBACK'); return false; } - + $qry = "SELECT * FROM testtool.tbl_antwort WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id)."; "; - + if($db->db_query($qry)) { while($row = $db->db_fetch_object()) @@ -447,7 +478,7 @@ if(isset($_POST['delete_all'])) $db->db_add_param($row->vorschlag_id, FHC_INTEGER).');'; } } - else + else { $db->errormsg = 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_antwort'; $db->db_query('ROLLBACK'); @@ -456,12 +487,12 @@ if(isset($_POST['delete_all'])) //Gebiet loeschen $qry = "DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=".$db->db_add_param($pruefling->pruefling_id)."; DELETE FROM testtool.tbl_antwort WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";"; - + if($result = $db->db_query($qry)) { //Log schreiben $log = new log(); - + $log->new = true; $log->sql = $qry; $log->sqlundo = $undo; @@ -475,17 +506,17 @@ if(isset($_POST['delete_all'])) $db->db_query('ROLLBACK'); return false; } - + $db->db_query('COMMIT;'); echo ' Alle '.$db->db_affected_rows($result).' Antworten wurden gelöscht'; } - else + else { $db->errormsg = 'Fehler beim Loeschen der Daten'; $db->db_query('ROLLBACK'); } } - else + else echo 'Um alle Antworten eines Prüflings zu löschen, wählen Sie im DropDown bitte "Alle Gebiete" aus'; } @@ -552,12 +583,12 @@ if(isset($_GET['action']) && $_GET['action']=='deletedummyanswers') { if(!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die('Sie haben keine Berechtigung für diese Aktion. Seite neu laden'); - + $qry = "DELETE FROM testtool.tbl_antwort WHERE pruefling_id=(SELECT pruefling_id FROM testtool.tbl_pruefling WHERE prestudent_id=".$db->db_add_param(PRESTUDENT_ID_DUMMY_STUDENT)."); DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=(SELECT pruefling_id FROM testtool.tbl_pruefling WHERE prestudent_id=".$db->db_add_param(PRESTUDENT_ID_DUMMY_STUDENT).");"; if($db->db_query($qry)) echo ' Antworten wurden gelöscht'; - else + else echo ' Fehler beim Löschen der Antworten'; } @@ -567,12 +598,12 @@ if(isset($_POST['savedummystg']) && isset($_POST['stg'])) { if(!$rechte->isBerechtigt('basis/testtool', null, 'su')) die('Sie haben keine Berechtigung für diese Aktion. Seite neu laden'); - + $qry = "UPDATE public.tbl_prestudent SET studiengang_kz=".$db->db_add_param($_POST['stg'])." WHERE prestudent_id=".$db->db_add_param(PRESTUDENT_ID_DUMMY_STUDENT)."; - UPDATE testtool.tbl_pruefling SET studiengang_kz=".$db->db_add_param($_POST['stg'])." WHERE prestudent_id=".$db->db_add_param(PRESTUDENT_ID_DUMMY_STUDENT).";"; + UPDATE testtool.tbl_pruefling SET studiengang_kz=".$db->db_add_param($_POST['stg'])." WHERE prestudent_id=".$db->db_add_param(PRESTUDENT_ID_DUMMY_STUDENT).";"; if($db->db_query($qry)) echo 'Studiengang geändert!
'; - else + else echo 'Fehler beim Ändern des Studienganges!
'; } $name=''; @@ -586,7 +617,7 @@ if($result = $db->db_query($qry)) $dummystg=$row->studiengang_kz; } } -echo 'Studiengang von '.$name.' +echo 'Studiengang von '.$name.' '; echo ""; @@ -680,11 +711,11 @@ for ($i=0;$i<9;$i++) echo ""; else echo ""; -} +} echo ''; echo '  
'; -$qry="SELECT +$qry="SELECT UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) as stg, semester, studiengang_kz, @@ -701,22 +732,22 @@ $qry="SELECT level_sprung_ab, levelgleichverteilung, maxpunkte, - antwortenprozeile, + antwortenprozeile, (SELECT SUM (zeit) AS sum FROM testtool.tbl_gebiet JOIN testtool.tbl_ablauf USING (gebiet_id) WHERE studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); - if ($semester!='') - $qry.=" AND semester=".$db->db_add_param($semester, FHC_INTEGER); + if ($semester!='') + $qry.=" AND semester=".$db->db_add_param($semester, FHC_INTEGER); $qry.=" ) AS gesamtzeit, (SELECT SUM (zeit) AS sum FROM testtool.tbl_gebiet JOIN testtool.tbl_ablauf USING (gebiet_id) WHERE studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); - if ($semester!='') - $qry.=" AND semester=".$db->db_add_param($semester, FHC_INTEGER); + if ($semester!='') + $qry.=" AND semester=".$db->db_add_param($semester, FHC_INTEGER); $qry.=" )-'00:40:00'::time without time zone AS gesamtzeit_persoenlichkeit - FROM testtool.tbl_ablauf - JOIN testtool.tbl_gebiet USING (gebiet_id) + FROM testtool.tbl_ablauf + JOIN testtool.tbl_gebiet USING (gebiet_id) JOIN public.tbl_studiengang USING (studiengang_kz) WHERE studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); - if ($semester!='') + if ($semester!='') $qry.=" AND semester=".$db->db_add_param($semester, FHC_INTEGER); - + $qry.=" ORDER BY stg,semester,reihung"; //echo $qry; @@ -724,11 +755,11 @@ $row=$db->db_fetch_object($db->db_query($qry)); $num_rows=$db->db_num_rows($db->db_query($qry)); if ($studiengang_kz!=1 && $num_rows!=0) { - $gesamtzeit = $row->gesamtzeit; + $gesamtzeit = $row->gesamtzeit; if($result = $db->db_query($qry)) { $num_rows=$db->db_num_rows($result); - echo "
Kurzbz DatumOrtOrte Uhrzeit Teilnehmer Max-Teilnehmer
$row->kurzbzlang".$datum_obj->formatDatum($row->datum,'d.m.Y')."$row->ort_kurzbz$row->orte$row->uhrzeit$row->anzahl_teilnehmeranzahl_teilnehmer>$row->max_teilnehmer?"style='color: red; font-weight: bold'":"").">$row->max_teilnehmer
"; + echo "
"; echo " @@ -750,35 +781,35 @@ if ($studiengang_kz!=1 && $num_rows!=0) echo ""; for($i=0;$i<$num_rows;$i++) { - $row=$db->db_fetch_object($result); - echo ""; - echo " - - - - - "; - if ($row->gebiet_id==7) - { - echo ""; - $gesamtzeit = $row->gesamtzeit_persoenlichkeit; //Das Gebiet Persönlichkeit wird mit 20 Min. angezeigt und berechnet, läuft im System aber 60 Min. - $persoenlichkeit = true; - } - else - { - echo ""; - } - echo " - - - - - - - - - "; - echo "\n"; + $row=$db->db_fetch_object($result); + echo ""; + echo " + + + + + "; + if ($row->gebiet_id==7) + { + echo ""; + $gesamtzeit = $row->gesamtzeit_persoenlichkeit; //Das Gebiet Persönlichkeit wird mit 20 Min. angezeigt und berechnet, läuft im System aber 60 Min. + $persoenlichkeit = true; + } + else + { + echo ""; + } + echo " + + + + + + + + + "; + echo "\n"; } echo ""; echo ""; @@ -805,10 +836,10 @@ if ($studiengang_kz!=1 && $num_rows!=0) } else echo "Kein Eintrag gefunden!"; - + if ($persoenlichkeit) echo "
*Das Gebiet Persönlichkeit ist mit 60 Minuten eingestellt, kann aber in der Regel in 15-20 Minuten bearbeitet werden.
"; - + echo "
"; } @@ -820,7 +851,7 @@ if(isset($_GET['action']) && $_GET['action']=='sperren') { if(!$rechte->isBerechtigt('basis/testtool', null, 'su')) die('Sie haben keine Berechtigung für diese Aktion. Seite neu laden'); - + $rt = new reihungstest(); if($rt->load($_GET['reihungstest_id'])) { @@ -835,7 +866,7 @@ if(isset($_GET['action']) && $_GET['action']=='sperren') } } -$qry = "SELECT tbl_reihungstest.*,UPPER(tbl_studiengang.typ||tbl_studiengang.kurzbz)AS studiengang FROM public.tbl_reihungstest +$qry = "SELECT tbl_reihungstest.*,UPPER(tbl_studiengang.typ||tbl_studiengang.kurzbz)AS studiengang FROM public.tbl_reihungstest JOIN public.tbl_studiengang USING(studiengang_kz) WHERE freigeschaltet ORDER BY datum"; if($result = $db->db_query($qry)) @@ -863,7 +894,7 @@ if($result = $db->db_query($qry)) echo '
STG SEM KZ
$row->stg$row->semester$row->studiengang_kz$row->reihung$row->gebiet_id$row->bezeichnung00:20:00*$row->zeit$row->maxfragen$row->level_start$row->level_sprung_auf$row->level_sprung_ab$row->maxpunkte$row->antwortenprozeile
$row->stg$row->semester$row->studiengang_kz$row->reihung$row->gebiet_id$row->bezeichnung00:20:00*$row->zeit$row->maxfragen$row->level_start$row->level_sprung_auf$row->level_sprung_ab$row->maxpunkte$row->antwortenprozeile
'; } - + echo ' '; ?> \ No newline at end of file diff --git a/vilesci/stammdaten/reihungstestverwaltung.php b/vilesci/stammdaten/reihungstestverwaltung.php index 03c751427..8d6d1ba98 100644 --- a/vilesci/stammdaten/reihungstestverwaltung.php +++ b/vilesci/stammdaten/reihungstestverwaltung.php @@ -256,7 +256,7 @@ if(isset($_GET['excel'])) $worksheet->setMargins_LR (0.4); $worksheet->setMarginTop (0.79); $worksheet->setMarginBottom (0.59); - + // Titelzeilen $worksheet->write(0,0,'Anwesenheitsliste Aufnahmetermin vom '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); if ($row->ort_kurzbz=='') @@ -266,7 +266,7 @@ if(isset($_GET['excel'])) $worksheet->write(2,0,'Studienpläne: '.implode(', ', $studienplaene_arr)); $worksheet->write(3,0,'Stufe: '.$reihungstest->stufe); $worksheet->write(4,0,'Testmodule: '.implode(', ', $gebietbezeichnungen)); - + //Ueberschriften $zeile=6; $col=0; @@ -296,13 +296,13 @@ if(isset($_GET['excel'])) $maxlength[$col] = 3; $worksheet->write($zeile,++$col,"Unterschrift", $format_bold); $maxlength[$col] = 30; - + $ort_kurzbz = $row->ort_kurzbz; $zeile++; } - + $pruefling = new pruefling(); - + $prestudent = new prestudent(); $prestudent->getPrestudenten($row->person_id); $rt_in_anderen_stg=''; @@ -314,9 +314,9 @@ if(isset($_GET['excel'])) if($item->prestudent_id!=$row->prestudent_id) { if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id, true); + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true); else - $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id); + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id); if($erg!=0) { $rt_in_anderen_stg.=number_format($erg,2).' Punkte im Studiengang '.$studiengang->kuerzel_arr[$item->studiengang_kz]."; "; @@ -332,7 +332,7 @@ if(isset($_GET['excel'])) WHERE person_id=".$db->db_add_param($row->person_id)." AND studiensemester_kurzbz=".$db->db_add_param($reihungstest->studiensemester_kurzbz)." ORDER BY bezeichnung"; - + if($result_zuteilungen = $db->db_query($qry_zuteilungen)) { while($row_zuteilungen = $db->db_fetch_object($result_zuteilungen)) @@ -349,77 +349,77 @@ if(isset($_GET['excel'])) $weitere_zuteilungen[] = $row_zuteilungen->bezeichnung.' am '.$datum_obj->formatDatum($row_zuteilungen->datum, 'd.m.Y').' ('.implode(', ', $testmodule).')'; } } - + $col=0; $worksheet->write($zeile,$col, $row->vorname, $format_border); if(strlen($row->vorname)>$maxlength[$col]) $maxlength[$col] = strlen($row->vorname); - + $worksheet->write($zeile,++$col,$row->nachname, $format_border); if(strlen($row->nachname)>$maxlength[$col]) $maxlength[$col] = strlen($row->nachname); - + $worksheet->write($zeile,++$col, $row->geschlecht, $format_border_center); if(strlen($row->geschlecht)>$maxlength[$col]) $maxlength[$col] = strlen($row->geschlecht); - + $worksheet->write($zeile,++$col,$datum_obj->convertISODate($row->gebdatum), $format_border); if(strlen($row->gebdatum)>$maxlength[$col]) $maxlength[$col] = strlen($row->gebdatum); - + $worksheet->write($zeile,++$col,$studiengang->kuerzel_arr[$row->studiengang_kz], $format_border); if(strlen($studiengang->kuerzel_arr[$row->studiengang_kz])>$maxlength[$col]) $maxlength[$col] = strlen($studiengang->kuerzel_arr[$row->studiengang_kz]); - + $worksheet->write($zeile,++$col,$row->ausbildungssemester, $format_border_center); if(strlen($row->ausbildungssemester)>$maxlength[$col]) $maxlength[$col] = strlen($row->ausbildungssemester); - + $worksheet->write($zeile,++$col,$rt_in_anderen_stg, $format_border); if(strlen($rt_in_anderen_stg)>$maxlength[$col]) $maxlength[$col] = strlen($rt_in_anderen_stg); - + $worksheet->write($zeile,++$col,implode("\n", $weitere_zuteilungen), $format_border); foreach ($weitere_zuteilungen as $items) { if (strlen($items)>$maxlength[$col]) $maxlength[$col] = strlen($items); } - + $worksheet->write($zeile,++$col,$row->email, $format_border); if(strlen($row->email)>$maxlength[$col]) $maxlength[$col] = strlen($row->email); - + $adresse = new adresse(); $adresse->loadZustellAdresse($row->person_id); - + $worksheet->write($zeile,++$col,$adresse->strasse, $format_border); if(strlen($adresse->strasse)>$maxlength[$col]) $maxlength[$col] = strlen($adresse->strasse); - + $worksheet->write($zeile,++$col,$adresse->plz, $format_border_left); if(strlen($adresse->plz)>$maxlength[$col]) $maxlength[$col] = strlen($adresse->plz); - + $worksheet->write($zeile,++$col,$adresse->ort, $format_border); if(strlen($adresse->ort)>$maxlength[$col]) $maxlength[$col] = strlen($adresse->ort); - + $worksheet->write($zeile,++$col,'', $format_border); - + if(count($weitere_zuteilungen)>2) $worksheet->setRow($zeile, count($weitere_zuteilungen)*14); else $worksheet->setRow($zeile, 35); - + $zeile++; - + //Die Breite der Spalten setzen foreach($maxlength as $col=>$breite) $worksheet->setColumn($col, $col, $breite+2); } } - else + else { // Creating a worksheet $worksheet =& $workbook->addWorksheet("Keine Daten"); @@ -432,7 +432,7 @@ if(isset($_GET['excel'])) $worksheet->setMargins_LR (0.4); $worksheet->setMarginTop (0.79); $worksheet->setMarginBottom (0.59); - + // Titelzeilen $worksheet->write(0,0,'Anwesenheitsliste Aufnahmetermin vom '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); @@ -821,7 +821,7 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren'])) { $add_ort = new reihungstest(); $add_ort->new = true; - $add_ort->rt_id = $reihungstest->reihungstest_id; + $add_ort->reihungstest_id = $reihungstest->reihungstest_id; $add_ort->ort_kurzbz = $_POST['ort_kurzbz']; $add_ort->uid = null; @@ -843,7 +843,7 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren'])) { $rt_stpl = new reihungstest(); $rt_stpl->new = true; - $rt_stpl->rt_id = $reihungstest->reihungstest_id; + $rt_stpl->reihungstest_id = $reihungstest->reihungstest_id; $rt_stpl->studienplan_id = $_POST['studienplan_id']; if ($rt_stpl->saveStudienplanReihungstest()) @@ -925,8 +925,7 @@ if(isset($_POST['raumzuteilung_speichern'])) $raumzuteilung->punkte = $load_person->punkte; $raumzuteilung->studienplan_id = $load_person->studienplan_id; - $raumzuteilung->rt_id = $load_person->rt_id; - $raumzuteilung->rt_id_old = $load_person->rt_id; + $raumzuteilung->reihungstest_id = $load_person->reihungstest_id; $raumzuteilung->person_id = $key; $raumzuteilung->ort_kurzbz = $_POST['raumzuteilung']; } @@ -995,9 +994,9 @@ if(isset($_GET['type']) && $_GET['type']=='saveallrtpunkte') { $pruefling = new pruefling(); if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $rtpunkte = $pruefling->getReihungstestErgebnis($row->prestudent_id,true); + $rtpunkte = $pruefling->getReihungstestErgebnisPerson($row->person_id, true, $reihungstest->reihungstest_id); else - $rtpunkte = $pruefling->getReihungstestErgebnis($row->prestudent_id); + $rtpunkte = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $reihungstest->reihungstest_id); $reihungstest->punkte = $rtpunkte; $reihungstest->reihungstestangetreten=true; $reihungstest->save(false); @@ -1080,8 +1079,7 @@ if(isset($_GET['type']) && $_GET['type']=='verteilen') $raumzuteilung->punkte = $load_person->punkte; $raumzuteilung->studienplan_id = $load_person->studienplan_id; - $raumzuteilung->rt_id = $load_person->rt_id; - $raumzuteilung->rt_id_old = $load_person->rt_id; + $raumzuteilung->reihungstest_id = $load_person->reihungstest_id; $raumzuteilung->person_id = $row->person_id; $raumzuteilung->ort_kurzbz = $ort->ort_kurzbz; } @@ -1165,8 +1163,7 @@ if(isset($_GET['type']) && $_GET['type']=='auffuellen') $raumzuteilung->punkte = $load_person->punkte; $raumzuteilung->studienplan_id = $load_person->studienplan_id; - $raumzuteilung->rt_id = $load_person->rt_id; - $raumzuteilung->rt_id_old = $load_person->rt_id; + $raumzuteilung->reihungstest_id = $load_person->reihungstest_id; $raumzuteilung->person_id = $row->person_id; $raumzuteilung->ort_kurzbz = $ort->ort_kurzbz; } @@ -1221,7 +1218,7 @@ if(isset($_POST['aufsicht']) && $_POST['aufsicht']!='' && !isset($_POST['kopiere else { $save_aufsicht->new = false; - $save_aufsicht->rt_id = $_POST['reihungstest_id']; + $save_aufsicht->reihungstest_id = $_POST['reihungstest_id']; $save_aufsicht->ort_kurzbz = $key; $save_aufsicht->uid = $uid; if (!$save_aufsicht->saveOrtReihungstest()) @@ -1824,9 +1821,9 @@ if($result = $db->db_query($qry)) if(defined('REIHUNGSTEST_ERGEBNISSE_BERECHNEN') && REIHUNGSTEST_ERGEBNISSE_BERECHNEN) { if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $rtergebnis = $pruefling->getReihungstestErgebnis($row->prestudent_id,true); + $rtergebnis = $pruefling->getReihungstestErgebnisPerson($row->person_id,true, $reihungstest->reihungstest_id); else - $rtergebnis = $pruefling->getReihungstestErgebnis($row->prestudent_id); + $rtergebnis = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $reihungstest->reihungstest_id); $prestudent = new prestudent(); $prestudent->getPrestudenten($row->person_id); $rt_in_anderen_stg=''; @@ -1835,14 +1832,13 @@ if($result = $db->db_query($qry)) if($item->prestudent_id!=$row->prestudent_id) { if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id, true); + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true); else - $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id); + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id); if($erg!=0) { $rt_in_anderen_stg.=number_format($erg,2).' Punkte im Studiengang '.$studiengang->kuerzel_arr[$item->studiengang_kz].'
'; } - } } } @@ -1937,9 +1933,9 @@ if($result = $db->db_query($qry)) if(defined('REIHUNGSTEST_ERGEBNISSE_BERECHNEN') && REIHUNGSTEST_ERGEBNISSE_BERECHNEN) { if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $rtergebnis = $pruefling->getReihungstestErgebnis($row->prestudent_id,true); + $rtergebnis = $pruefling->getReihungstestErgebnisPerson($row->person_id,true, $reihungstest->reihungstest_id); else - $rtergebnis = $pruefling->getReihungstestErgebnis($row->prestudent_id); + $rtergebnis = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $reihungstest->reihungstest_id); $prestudent = new prestudent(); $prestudent->getPrestudenten($row->person_id); $rt_in_anderen_stg=''; @@ -1948,14 +1944,13 @@ if($result = $db->db_query($qry)) if($item->prestudent_id!=$row->prestudent_id) { if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id, true); + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true); else - $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id); + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id); if($erg!=0) { $rt_in_anderen_stg.=number_format($erg,2).' Punkte im Studiengang '.$studiengang->kuerzel_arr[$item->studiengang_kz].'
'; } - } } }