diff --git a/content/lvplanung/timetable-week.xul.php b/content/lvplanung/timetable-week.xul.php index 04ec84c22..d82ffd7be 100644 --- a/content/lvplanung/timetable-week.xul.php +++ b/content/lvplanung/timetable-week.xul.php @@ -243,22 +243,29 @@ if ($aktion=='stpl_move' || $aktion=='stpl_set') $moved[]=$stundenplan_id; $lehrstunde=new lehrstunde(); $lehrstunde->load($stundenplan_id,$db_stpl_table); - $undo.=$lehrstunde->getUndo($db_stpl_table); - $diffStunde=$new_stunde-$lehrstunde->stunde; - $lehrstunde->datum=$new_datum; - $lehrstunde->stunde=$new_stunde; - if ($ort!=$old_ort) - $lehrstunde->ort_kurzbz=$ort; - if ($aktion=='stpl_set') - $lehrstunde->ort_kurzbz=$new_ort; - $kollision=$lehrstunde->kollision($db_stpl_table); - if ($kollision && !$ignore_kollision) - $kollision_msg.=$lehrstunde->errormsg; - if (!$kollision || $ignore_kollision || $kollisionsanzahl>0) + if($rechte->isBerechtigt('lehre/lvplan',$lehrstunde->studiengang_kz,'ui')) { - if(!$lehrstunde->save($uid,$db_stpl_table)) - $error_msg.=$lehrstunde->errormsg; - $sql.=$lehrstunde->lastqry; + $undo.=$lehrstunde->getUndo($db_stpl_table); + $diffStunde=$new_stunde-$lehrstunde->stunde; + $lehrstunde->datum=$new_datum; + $lehrstunde->stunde=$new_stunde; + if ($ort!=$old_ort) + $lehrstunde->ort_kurzbz=$ort; + if ($aktion=='stpl_set') + $lehrstunde->ort_kurzbz=$new_ort; + $kollision=$lehrstunde->kollision($db_stpl_table); + if ($kollision && !$ignore_kollision) + $kollision_msg.=$lehrstunde->errormsg; + if (!$kollision || $ignore_kollision || $kollisionsanzahl>0) + { + if(!$lehrstunde->save($uid,$db_stpl_table)) + $error_msg.=$lehrstunde->errormsg; + $sql.=$lehrstunde->lastqry; + } + } + else + { + $error_msg.="Sie haben keine Berechtigung zur Verschiebung von Stunden des Studienganges ".$lehrstunde->studiengang; } } // Mehrfachauswahl @@ -270,21 +277,28 @@ if ($aktion=='stpl_move' || $aktion=='stpl_set') { $lehrstunde=new lehrstunde(); $lehrstunde->load($stundenplan_id,$db_stpl_table); - $undo.=$lehrstunde->getUndo($db_stpl_table); - $lehrstunde->datum=$new_datum; - $lehrstunde->stunde+=$diffStunde; - if ($ort!=$old_ort) - $lehrstunde->ort_kurzbz=$ort; - if ($aktion=='stpl_set') - $lehrstunde->ort_kurzbz=$new_ort; - $kollision=$lehrstunde->kollision($db_stpl_table); - if ($kollision && !$ignore_kollision) - $kollision_msg.=$lehrstunde->errormsg; - if (!$kollision || $ignore_kollision || $kollisionsanzahl>0) + if($rechte->isBerechtigt('lehre/lvplan',$lehrstunde->studiengang_kz,'ui')) { - if(!$lehrstunde->save($uid,$db_stpl_table)) - $error_msg.=$lehrstunde->errormsg; - $sql.=$lehrstunde->lastqry; + $undo.=$lehrstunde->getUndo($db_stpl_table); + $lehrstunde->datum=$new_datum; + $lehrstunde->stunde+=$diffStunde; + if ($ort!=$old_ort) + $lehrstunde->ort_kurzbz=$ort; + if ($aktion=='stpl_set') + $lehrstunde->ort_kurzbz=$new_ort; + $kollision=$lehrstunde->kollision($db_stpl_table); + if ($kollision && !$ignore_kollision) + $kollision_msg.=$lehrstunde->errormsg; + if (!$kollision || $ignore_kollision || $kollisionsanzahl>0) + { + if(!$lehrstunde->save($uid,$db_stpl_table)) + $error_msg.=$lehrstunde->errormsg; + $sql.=$lehrstunde->lastqry; + } + } + else + { + $error_msg.="Sie haben keine Berechtigung zur Verschiebung von Stunden des Studienganges ".$lehrstunde->studiengang; } } } @@ -309,206 +323,232 @@ elseif ($aktion=='stpl_delete_single' || $aktion=='stpl_delete_block') { $lehrstunde=new lehrstunde(); - //Einzelne Stunden entfernen - if(isset($stpl_id)) + if($rechte->isBerechtigt('lehre/lvplan',null,'uid')) { - foreach ($stpl_id as $stundenplan_id) + //Einzelne Stunden entfernen + if(isset($stpl_id)) { - $lehrstunde->delete($stundenplan_id,$db_stpl_table); - $error_msg.=$lehrstunde->errormsg; + foreach ($stpl_id as $stundenplan_id) + { + $lehrstunde->delete($stundenplan_id,$db_stpl_table); + $error_msg.=$lehrstunde->errormsg; + } + } + + //Loeschen von mehreren Stunden + if(isset($stpl_idx)) + { + foreach ($stpl_idx as $stundenplan_id) + { + $lehrstunde->delete($stundenplan_id,$db_stpl_table); + $error_msg.=$lehrstunde->errormsg; + } + } + + if(isset($res_id)) + { + $reservierung=new reservierung(); + foreach ($res_id as $reservierung_id) + { + $reservierung->delete($reservierung_id); + $error_msg.=$reservierung->errormsg; + } + } + + //Loeschen von mehreren Reservierungen + if(isset($res_idx)) + { + $reservierung=new reservierung(); + foreach ($res_idx as $reservierung_id) + { + $reservierung->delete($reservierung_id); + $error_msg.=$reservierung->errormsg; + } } } - - //Loeschen von mehreren Stunden - if(isset($stpl_idx)) + else { - foreach ($stpl_idx as $stundenplan_id) - { - $lehrstunde->delete($stundenplan_id,$db_stpl_table); - $error_msg.=$lehrstunde->errormsg; - } - } - - if(isset($res_id)) - { - $reservierung=new reservierung(); - foreach ($res_id as $reservierung_id) - { - $reservierung->delete($reservierung_id); - $error_msg.=$reservierung->errormsg; - } - } - - //Loeschen von mehreren Reservierungen - if(isset($res_idx)) - { - $reservierung=new reservierung(); - foreach ($res_idx as $reservierung_id) - { - $reservierung->delete($reservierung_id); - $error_msg.=$reservierung->errormsg; - } + $error_msg.="Sie haben keine Berechtigung fuer diese Aktion"; } } // ******************** Lehrveranstaltung setzen ****************************** elseif ($aktion=='lva_single_set') { - $z=0; - foreach ($lva_id AS $le_id) + if($rechte->isBerechtigt('lehre/lvplan',null,'ui')) { - $lva[$z]=new lehreinheit(); - $lva[$z]->loadLE($le_id); - //$error_msg.='test'.$le_id.($lva[$i]->errormsg).($lva[$i]->stundenblockung); - for ($j=0;$j<$lva[$z]->stundenblockung && $error_msg=='';$j++) - if (!$lva[$z]->check_lva($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table) && !$ignore_kollision) - $kollision_msg.=$lva[$z]->errormsg."\n"; - $z++; + $z=0; + foreach ($lva_id AS $le_id) + { + $lva[$z]=new lehreinheit(); + $lva[$z]->loadLE($le_id); + //$error_msg.='test'.$le_id.($lva[$i]->errormsg).($lva[$i]->stundenblockung); + for ($j=0;$j<$lva[$z]->stundenblockung && $error_msg=='';$j++) + if (!$lva[$z]->check_lva($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table) && !$ignore_kollision) + $kollision_msg.=$lva[$z]->errormsg."\n"; + $z++; + } + for ($i=0;$i<$z && $error_msg=='';$i++) + { + for ($j=0;$j<$lva[$i]->stundenblockung;$j++) + if (!$lva[$i]->save_stpl($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table,$uid)) + $error_msg.='Error: '.$lva[$i]->errormsg; + } } - for ($i=0;$i<$z && $error_msg=='';$i++) + else { - for ($j=0;$j<$lva[$i]->stundenblockung;$j++) - if (!$lva[$i]->save_stpl($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table,$uid)) - $error_msg.='Error: '.$lva[$i]->errormsg; + $error_msg.="Sie haben keine Berechtigung fuer diese Aktion"; } } //******************* Multi Verplanung *************** elseif ($aktion=='lva_multi_set') { - // Ferien holen - $ferien=new ferien(); - if ($type=='verband') - $ferien->getAll($stg_kz); - else - $ferien->getAll(0); - - // Ende holen - if (!$result_semester=$db->db_query("SELECT * FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='".addslashes($semester_aktuell)."';")) - die ($db->db_last_error()); - if ($db->db_num_rows()>0) + if($rechte->isBerechtigt('lehre/lvplan',null,'ui')) { - $row = $db->db_fetch_object(); - $ende = $row->ende; - } - else - $error_msg.="Fatal Error: Ende Datum ist nicht gesetzt ($semester_aktuell)!"; + // Ferien holen + $ferien=new ferien(); + if ($type=='verband') + $ferien->getAll($stg_kz); + else + $ferien->getAll(0); - $ende=mktime(0,0,1,substr($ende,5,2),substr($ende,8,2),substr($ende,0,4)); - $anz_lvas=count($lva_id); - // Arrays intitialisieren - $wochenrythmus=array(); - $verplant=array(); - $block=array(); - $wochenrythmus=array(); - $semesterstunden=array(); - $planstunden=array(); - $offenestunden=array(); - // LVAs holen - $sql_query='SELECT * FROM lehre.'.$lva_stpl_view.' WHERE'; - $lvas=''; - foreach ($lva_id as $id) - $lvas.=' OR lehreinheit_id='.$id; - $lvas=substr($lvas,3); - $sql_query.=$lvas; - - if(!$result_lva = $db->db_query($sql_query)) - $error_msg.=$db->db_last_error(); - $num_rows_lva=$db->db_num_rows($result_lva); - // Daten aufbereiten - for ($i=0;$i<$num_rows_lva;$i++) - { - $row=$db->db_fetch_object($result_lva,$i); - $verplant[]=$row->verplant; - $block[]=$row->stundenblockung; - $wochenrythmus[]=$row->wochenrythmus; - $semesterstunden[]=$row->semesterstunden; - $planstunden[]=$row->planstunden; - $offenestunden[]=$row->planstunden-$row->verplant; - } - // Variablen eindeutig? - // Offene Stunden - $os=$offenestunden[0]; - $offenestunden=array_unique($offenestunden); - if (count($offenestunden)==1) - $offenestunden=$os; - else - $error_msg.='Offene Stunden sind nicht eindeutig!'; - - //Blockung - $blk=$block[0]; - $block=array_unique($block); - if (count($block)==1) - $block=$blk; - else - $error_msg.='Blockung ist nicht eindeutig!'; - //Wochenrythmus - $wr=$wochenrythmus[0]; - $wochenrythmus=array_unique($wochenrythmus); - if (count($wochenrythmus)==1) - $wochenrythmus=$wr; - else - $error_msg.='Wochenrythmus ist nicht eindeutig!'; - $count=0; - $rest=$offenestunden; - if ($rest<=0) - $error_msg.='Es sind bereits alle Stunden verplant!'.$rest; - if ($error_msg=='') - { - $d=mktime(0,0,1,substr($new_datum,5,2),substr($new_datum,8),substr($new_datum,0,4)); - while ($rest>0 && $d<$ende) + // Ende holen + if (!$result_semester=$db->db_query("SELECT * FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='".addslashes($semester_aktuell)."';")) + die ($db->db_last_error()); + if ($db->db_num_rows()>0) { - if ($rest<$block && $rest>0) - $block=$rest; - //LVAs holen und pruefen ob moeglich - for ($i=0;$i<$anz_lvas;$i++) - { - $lva[$i]=new lehreinheit(); - $lva[$i]->loadLE($lva_id[$i]); - for ($j=0;$j<$block;$j++) - if (!$lva[$i]->check_lva($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table) && !$ignore_kollision) - $kollision_msg.=$lva[$i]->errormsg; - } - // LVAs setzen - for ($i=0;$i<$anz_lvas && $error_msg=='';$i++) - for ($j=0;$j<$block;$j++) - if (!$lva[$i]->save_stpl($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table,$uid)) - $error_msg.=$lva[$i]->errormsg; - $d=jump_week($d,$wochenrythmus); - while ($ferien->isferien($d)) - $d=jump_week($d,$wochenrythmus); - // Es kann sein, dass die Zeitumstellung (1 Stunde) Probleme macht - // Falls 23 Uhr eine Stunde nach vor - $new_datum=date('Y-m-d',$d); - $rest-=$block; + $row = $db->db_fetch_object(); + $ende = $row->ende; } + else + $error_msg.="Fatal Error: Ende Datum ist nicht gesetzt ($semester_aktuell)!"; + + $ende=mktime(0,0,1,substr($ende,5,2),substr($ende,8,2),substr($ende,0,4)); + $anz_lvas=count($lva_id); + // Arrays intitialisieren + $wochenrythmus=array(); + $verplant=array(); + $block=array(); + $wochenrythmus=array(); + $semesterstunden=array(); + $planstunden=array(); + $offenestunden=array(); + // LVAs holen + $sql_query='SELECT * FROM lehre.'.$lva_stpl_view.' WHERE'; + $lvas=''; + foreach ($lva_id as $id) + $lvas.=' OR lehreinheit_id='.$id; + $lvas=substr($lvas,3); + $sql_query.=$lvas; + + if(!$result_lva = $db->db_query($sql_query)) + $error_msg.=$db->db_last_error(); + $num_rows_lva=$db->db_num_rows($result_lva); + // Daten aufbereiten + for ($i=0;$i<$num_rows_lva;$i++) + { + $row=$db->db_fetch_object($result_lva,$i); + $verplant[]=$row->verplant; + $block[]=$row->stundenblockung; + $wochenrythmus[]=$row->wochenrythmus; + $semesterstunden[]=$row->semesterstunden; + $planstunden[]=$row->planstunden; + $offenestunden[]=$row->planstunden-$row->verplant; + } + // Variablen eindeutig? + // Offene Stunden + $os=$offenestunden[0]; + $offenestunden=array_unique($offenestunden); + if (count($offenestunden)==1) + $offenestunden=$os; + else + $error_msg.='Offene Stunden sind nicht eindeutig!'; + + //Blockung + $blk=$block[0]; + $block=array_unique($block); + if (count($block)==1) + $block=$blk; + else + $error_msg.='Blockung ist nicht eindeutig!'; + //Wochenrythmus + $wr=$wochenrythmus[0]; + $wochenrythmus=array_unique($wochenrythmus); + if (count($wochenrythmus)==1) + $wochenrythmus=$wr; + else + $error_msg.='Wochenrythmus ist nicht eindeutig!'; + $count=0; + $rest=$offenestunden; + if ($rest<=0) + $error_msg.='Es sind bereits alle Stunden verplant!'.$rest; + if ($error_msg=='') + { + $d=mktime(0,0,1,substr($new_datum,5,2),substr($new_datum,8),substr($new_datum,0,4)); + while ($rest>0 && $d<$ende) + { + if ($rest<$block && $rest>0) + $block=$rest; + //LVAs holen und pruefen ob moeglich + for ($i=0;$i<$anz_lvas;$i++) + { + $lva[$i]=new lehreinheit(); + $lva[$i]->loadLE($lva_id[$i]); + for ($j=0;$j<$block;$j++) + if (!$lva[$i]->check_lva($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table) && !$ignore_kollision) + $kollision_msg.=$lva[$i]->errormsg; + } + // LVAs setzen + for ($i=0;$i<$anz_lvas && $error_msg=='';$i++) + for ($j=0;$j<$block;$j++) + if (!$lva[$i]->save_stpl($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table,$uid)) + $error_msg.=$lva[$i]->errormsg; + $d=jump_week($d,$wochenrythmus); + while ($ferien->isferien($d)) + $d=jump_week($d,$wochenrythmus); + // Es kann sein, dass die Zeitumstellung (1 Stunde) Probleme macht + // Falls 23 Uhr eine Stunde nach vor + $new_datum=date('Y-m-d',$d); + $rest-=$block; + } + } + } + else + { + $error_msg.="Sie haben keine Berechtigung fuer diese Aktion"; } } // Lehrveranstaltungen aus dem Stundenplan loeschen elseif ($aktion=='lva_stpl_del_multi' || $aktion=='lva_stpl_del_single') { - $result_semester = $db->db_query("SELECT start,ende FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='".addslashes($semester_aktuell)."';"); - if ($db->db_num_rows()>0) + if($rechte->isBerechtigt('lehre/lvplan',null,'uid')) { - $start=date('Y-m-d',$datum); - if ($aktion=='lva_stpl_del_multi') + $result_semester = $db->db_query("SELECT start,ende FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='".addslashes($semester_aktuell)."';"); + if ($db->db_num_rows()>0) { - $row = $db->db_fetch_object($result_semester); - $ende = $row->ende; + $start=date('Y-m-d',$datum); + if ($aktion=='lva_stpl_del_multi') + { + $row = $db->db_fetch_object($result_semester); + $ende = $row->ende; + } + else + $ende=date('Y-m-d',jump_week($datum,1)); + $anz_lvas=count($lva_id); + $sql_query_lvaid=''; + $sql_query='DELETE FROM lehre.'.TABLE_BEGIN.$db_stpl_table.' WHERE ('; + for ($i=0;$i<$anz_lvas;$i++) + $sql_query_lvaid.=' OR lehreinheit_id='.$lva_id[$i]; + $sql_query_lvaid=substr($sql_query_lvaid,3); + $sql_query.=$sql_query_lvaid; + $sql_query.=") AND datum>='$start' AND datum<'$ende'"; + if(!$result_lva_del=$db->db_query($sql_query)) + $error_msg.=$db->db_last_error(); } else - $ende=date('Y-m-d',jump_week($datum,1)); - $anz_lvas=count($lva_id); - $sql_query_lvaid=''; - $sql_query='DELETE FROM lehre.'.TABLE_BEGIN.$db_stpl_table.' WHERE ('; - for ($i=0;$i<$anz_lvas;$i++) - $sql_query_lvaid.=' OR lehreinheit_id='.$lva_id[$i]; - $sql_query_lvaid=substr($sql_query_lvaid,3); - $sql_query.=$sql_query_lvaid; - $sql_query.=") AND datum>='$start' AND datum<'$ende'"; - if(!$result_lva_del=$db->db_query($sql_query)) - $error_msg.=$db->db_last_error(); + $error_msg.='Studiensemester '.$semester_aktuell.' konnte nicht gefunden werden!'; } else - $error_msg.='Studiensemester '.$semester_aktuell.' konnte nicht gefunden werden!'; + $error_msg.="Sie haben keine Berechtigung fuer diese Aktion"; } if ($error_msg=='' && ($kollision_msg=='' || $kollisionsanzahl>0)) diff --git a/include/wochenplan.class.php b/include/wochenplan.class.php index faa9011a6..e02871c1e 100644 --- a/include/wochenplan.class.php +++ b/include/wochenplan.class.php @@ -202,9 +202,9 @@ class wochenplan extends basis_db { $this->link.='&pers_uid='.$this->pers_uid; //Link erweitern if ($this->type=='student') - $sql_query="SELECT uid, titelpre, titelpost, nachname, vorname, vornamen, studiengang_kz, semester, verband, gruppe FROM campus.vw_student WHERE uid='".addslashes($this->pers_uid)."'"; + $sql_query="SELECT uid, titelpre, titelpost, nachname, vorname, vornamen, studiengang_kz, semester, verband, gruppe FROM campus.vw_student WHERE uid=".$this->db_add_param($this->pers_uid); else - $sql_query="SELECT uid, titelpre, titelpost, nachname, vorname, vornamen FROM campus.vw_mitarbeiter WHERE uid='".addslashes($this->pers_uid)."'"; + $sql_query="SELECT uid, titelpre, titelpost, nachname, vorname, vornamen FROM campus.vw_mitarbeiter WHERE uid=".$this->db_add_param($this->pers_uid); //echo $sql_query; if (!$this->db_query($sql_query)) { @@ -238,7 +238,7 @@ class wochenplan extends basis_db //ortdaten ermitteln if ($this->type=='ort') { - $sql_query="SELECT bezeichnung, ort_kurzbz, planbezeichnung, ausstattung, max_person FROM public.tbl_ort WHERE ort_kurzbz='".addslashes($this->ort_kurzbz)."'"; + $sql_query="SELECT bezeichnung, ort_kurzbz, planbezeichnung, ausstattung, max_person FROM public.tbl_ort WHERE ort_kurzbz=".$this->db_add_param($this->ort_kurzbz); //echo $sql_query; if (!$this->db_query($sql_query)) { @@ -265,7 +265,7 @@ class wochenplan extends basis_db // Studiengangsdaten ermitteln if ($this->type=='student' || $this->type=='verband') { - $sql_query="SELECT bezeichnung, kurzbz, kurzbzlang, typ FROM public.tbl_studiengang WHERE studiengang_kz='".addslashes($this->stg_kz)."'"; + $sql_query="SELECT bezeichnung, kurzbz, kurzbzlang, typ FROM public.tbl_studiengang WHERE studiengang_kz=".$this->db_add_param($this->stg_kz); //echo $sql_query; if(!($this->db_query($sql_query))) die($this->db_last_error()); @@ -843,7 +843,7 @@ class wochenplan extends basis_db $in=''; foreach($stgs as $stg) { - $in .= "'".addslashes($stg)."',"; + $in .= $this->db_add_param($stg).","; } $in = substr($in, 0, -1); $qry = "SELECT * FROM public.tbl_gruppe WHERE studiengang_kz in($in) AND lehre=true AND sichtbar=true ORDER BY gruppe_kurzbz"; @@ -1041,18 +1041,18 @@ class wochenplan extends basis_db FROM ( SELECT stpl.unr, stpl.datum, stpl.stunde, tbl_benutzergruppe.uid AS student_uid FROM lehre.tbl_stundenplandev stpl JOIN public.tbl_benutzergruppe USING (gruppe_kurzbz) - WHERE tbl_benutzergruppe.studiensemester_kurzbz::text = '".$studiensemester."' + WHERE tbl_benutzergruppe.studiensemester_kurzbz::text = ".$this->db_add_param($studiensemester)." GROUP BY stpl.unr, stpl.datum, stpl.stunde, tbl_benutzergruppe.uid UNION SELECT stpl.unr, stpl.datum, stpl.stunde, tbl_studentlehrverband.student_uid FROM lehre.tbl_stundenplandev stpl JOIN public.tbl_studentlehrverband ON stpl.gruppe_kurzbz IS NULL AND stpl.studiengang_kz = tbl_studentlehrverband.studiengang_kz AND stpl.semester = tbl_studentlehrverband.semester AND (stpl.verband = tbl_studentlehrverband.verband OR stpl.verband = ' '::bpchar AND stpl.verband <> tbl_studentlehrverband.verband) AND (stpl.gruppe = tbl_studentlehrverband.gruppe OR stpl.gruppe = ' '::bpchar AND stpl.gruppe <> tbl_studentlehrverband.gruppe) - WHERE tbl_studentlehrverband.studiensemester_kurzbz::text = '".$studiensemester."' + WHERE tbl_studentlehrverband.studiensemester_kurzbz::text = ".$this->db_add_param($studiensemester)." GROUP BY stpl.unr, stpl.datum, stpl.stunde, tbl_studentlehrverband.student_uid) sub_stpl_uid GROUP BY sub_stpl_uid.unr, sub_stpl_uid.datum, sub_stpl_uid.stunde, sub_stpl_uid.student_uid ) as a - WHERE datum='".date('Y-m-d',$datum)."' AND stunde='$j' + WHERE datum='".date('Y-m-d',$datum)."' AND stunde=".$this->db_add_param($j)." GROUP BY datum, stunde, student_uid HAVING count(student_uid)>1 ORDER BY datum, stunde, student_uid LIMIT 1; @@ -1401,32 +1401,32 @@ class wochenplan extends basis_db $raumtyp=array_unique($raumtyp); $rtype=''; foreach ($raumtyp as $r) - $rtype.=" OR raumtyp_kurzbz='".addslashes($r)."'"; + $rtype.=" OR raumtyp_kurzbz=".$this->db_add_param($r); $rtype=mb_substr($rtype,3); //Lektor $lektor=array_unique($lektor); $lkt=''; foreach ($lektor as $l) - $lkt.=" OR uid='".addslashes($l)."'"; + $lkt.=" OR uid=".$this->db_add_param($l); $lkt=mb_substr($lkt,3); // Einheiten $gruppe=array_unique($gruppe); $gruppen=''; foreach ($gruppe as $g) if ($g!='') - $gruppen.=" OR gruppe_kurzbz='".addslashes($g)."'"; + $gruppen.=" OR gruppe_kurzbz=".$this->db_add_param($g); //$gruppen=mb_substr($gruppen,3); //Lehrverband //$lehrverband=array_unique($lehrverband); $lvb=''; foreach ($lehrverband as $l) { - $lvb.=" OR (studiengang_kz='".addslashes($l->stg_kz)."' AND semester='".addslashes($l->sem)."'"; + $lvb.=" OR (studiengang_kz=".$this->db_add_param($l->stg_kz)." AND semester=".$this->db_add_param($l->sem); if ($l->ver!='' && $l->ver!=' ' && $l->ver!=null) { - $lvb.=" AND (verband='".addslashes($l->ver)."' OR verband IS NULL OR verband='')"; + $lvb.=" AND (verband=".$this->db_add_param($l->ver)." OR verband IS NULL OR verband='')"; if ($l->grp!='' && $l->grp!=' ' && $l->grp!=null) - $lvb.=" AND (gruppe='".addslashes($l->grp)."' OR gruppe IS NULL OR gruppe='')"; + $lvb.=" AND (gruppe=".$this->db_add_param($l->grp)." OR gruppe IS NULL OR gruppe='')"; } //if ($gruppen!='') // $lvb.=' AND gruppe_kurzbz IS NULL'; @@ -1455,8 +1455,8 @@ class wochenplan extends basis_db } // Stundenplanabfrage bauen (Wo ist Kollision?) $sql_query="SELECT DISTINCT datum, stunde FROM $stpl_view - WHERE datum>='".addslashes($this->datum_begin)."' AND datum<'".addslashes($this->datum_end)."' AND - ($lkt $gruppen OR ($lvb) ) AND unr!='".addslashes($unr)."'"; + WHERE datum>=".$this->db_add_param($this->datum_begin)." AND datum<".$this->db_add_param($this->datum_end)." AND + ($lkt $gruppen OR ($lvb) ) AND unr!=".$this->db_add_param($unr); //echo $sql_query; if(!$this->db_query($sql_query)) die($this->db_last_error()); @@ -1471,12 +1471,12 @@ class wochenplan extends basis_db // Stundenplanabfrage bauen (Wo ist besetzt?) $sql_query="SELECT DISTINCT datum, stunde, ort_kurzbz FROM $stpl_view - WHERE datum>='".addslashes($this->datum_begin)."' AND datum<'".addslashes($this->datum_end)."' AND unr!='".addslashes($unr)."'"; + WHERE datum>=".$this->db_add_param($this->datum_begin)." AND datum<".$this->db_add_param($this->datum_end)." AND unr!=".$this->db_add_param($unr); //echo $sql_query; NATURAL JOIN tbl_ortraumtyp AND ($rtype) " // Reservierungen beruecksichtigen $sql_query.=" UNION SELECT DISTINCT datum, stunde, ort_kurzbz FROM campus.tbl_reservierung - WHERE datum>='".addslashes($this->datum_begin)."' AND datum<'".addslashes($this->datum_end)."' "; + WHERE datum>=".$this->db_add_param($this->datum_begin)." AND datum<".$this->db_add_param($this->datum_end)." "; if(!$this->db_query($sql_query)) die($this->db_last_error()); @@ -1586,7 +1586,7 @@ class wochenplan extends basis_db $sql_query='SELECT *, (planstunden-verplant::smallint) AS offenestunden FROM '.$lva_stpl_view.' WHERE'; $lvas=''; foreach ($lva_id as $id) - $lvas.=" OR lehreinheit_id='".addslashes($id)."'"; + $lvas.=" OR lehreinheit_id=".$this->db_add_param($id); $lvas=mb_substr($lvas,3); $sql_query.=$lvas; //$this->errormsg.=$sql_query; @@ -1684,16 +1684,16 @@ class wochenplan extends basis_db $raumtyp=array_unique($raumtyp); $rtype=''; foreach ($raumtyp as $r) - $rtype.=" OR raumtyp_kurzbz='".addslashes($r)."'"; + $rtype.=" OR raumtyp_kurzbz=".$this->db_add_param($r); $raumtypalt=array_unique($raumtypalt); foreach ($raumtypalt as $r) - $rtype.=" OR raumtyp_kurzbz='".addslashes($r)."'"; + $rtype.=" OR raumtyp_kurzbz=".$this->db_add_param($r); $rtype=mb_substr($rtype,3); //Lektor $lektor=array_unique($lektor); $lkt=''; foreach ($lektor as $l) - $lkt.=" OR mitarbeiter_uid='".addslashes($l)."'"; + $lkt.=" OR mitarbeiter_uid=".$this->db_add_param($l); $lkt=mb_substr($lkt,3); //Dummy Lektor kollidiert nicht $lkt='(('.$lkt.") AND mitarbeiter_uid!='_DummyLektor')"; @@ -1703,7 +1703,7 @@ class wochenplan extends basis_db { $gruppe=array_unique($gruppe); foreach ($gruppe as $g) - $gruppen.=" OR gruppe_kurzbz='".addslashes($g)."'"; + $gruppen.=" OR gruppe_kurzbz=".$this->db_add_param($g); //$gruppen=mb_substr($gruppen,3); } //Lehrverband @@ -1711,12 +1711,12 @@ class wochenplan extends basis_db $lvb=''; foreach ($lehrverband as $l) { - $lvb.=" OR (studiengang_kz='".addslashes($l->stg_kz)."' AND semester='".addslashes($l->sem)."'"; + $lvb.=" OR (studiengang_kz=".$this->db_add_param($l->stg_kz)." AND semester=".$this->db_add_param($l->sem); if ($l->ver!='' && $l->ver!=' ' && $l->ver!=null) { - $lvb.=" AND (verband='".addslashes($l->ver)."' OR verband IS NULL OR verband='' OR verband=' ')"; + $lvb.=" AND (verband=".$this->db_add_param($l->ver)." OR verband IS NULL OR verband='' OR verband=' ')"; if ($l->grp!='' && $l->grp!=' ' && $l->grp!=null) - $lvb.=" AND (gruppe='".addslashes($l->grp)."' OR gruppe IS NULL OR gruppe='' OR gruppe=' ')"; + $lvb.=" AND (gruppe=".$this->db_add_param($l->grp)." OR gruppe IS NULL OR gruppe='' OR gruppe=' ')"; } $lvb.=')'; @@ -1773,10 +1773,10 @@ class wochenplan extends basis_db // Stundenplanabfrage bauen (Wo ist Kollision?) $sql_query="SELECT DISTINCT datum, stunde FROM $stpl_table - WHERE datum>='".addslashes($datum_begin)."' AND datum<'".addslashes($datum_end)."' AND + WHERE datum>=".$this->db_add_param($datum_begin)." AND datum<".$this->db_add_param($datum_end)." AND ($lkt $gruppen OR ($lvb) )"; if (is_numeric($unr)) - $sql_query.=" AND unr!='".addslashes($unr)."'"; + $sql_query.=" AND unr!=".$this->db_add_param($unr); if(!$this->db_query($sql_query)) { @@ -1797,14 +1797,14 @@ class wochenplan extends basis_db // Stundenplanabfrage bauen (Wo ist besetzt?) $sql_query="SELECT DISTINCT datum, stunde, ort_kurzbz FROM $stpl_view JOIN public.tbl_ortraumtyp USING (ort_kurzbz) - WHERE datum>='".addslashes($datum_begin)."' AND datum<'".addslashes($datum_end)."' AND + WHERE datum>=".$this->db_add_param($datum_begin)." AND datum<".$this->db_add_param($datum_end)." AND ($rtype)"; if (is_numeric($unr)) - $sql_query.=" AND unr!='".addslashes($unr)."'"; + $sql_query.=" AND unr!=".$this->db_add_param($unr); // Reservierungen beruecksichtigen $sql_query.=" UNION SELECT distinct datum, stunde, ort_kurzbz FROM campus.tbl_reservierung - WHERE datum>='".addslashes($datum_begin)."' AND datum<'".addslashes($datum_end)."'"; + WHERE datum>=".$this->db_add_param($datum_begin)." AND datum<".$this->db_add_param($datum_end); if(!$this->db_query($sql_query)) {