This commit is contained in:
Christian Paminger
2007-09-17 13:37:57 +00:00
parent dbb2fc5394
commit f3b4584d16
6 changed files with 121 additions and 50 deletions
+28 -19
View File
@@ -475,7 +475,7 @@ class lehreinheit
* @param integer stunde gewuenschte Stunde
* @param string ort gewuenschter Ort
* @param string db_stpl_table Tabllenname des Stundenplans im DBMS
* @return boolean true=ok, false=fehler
* @return boolean true=ok, false=error
*************************************************************************/
function check_lva($datum,$stunde,$ort,$stpl_table)
{
@@ -499,11 +499,12 @@ class lehreinheit
// Datenbank abfragen
$sql_query="SELECT $stpl_id FROM $stpl_table
WHERE datum='$datum' AND stunde=$stunde
AND ((ort_kurzbz='$ort' OR $sql_lkt)
AND unr!=$this->unr)"; //AND lehrveranstaltung_id!=$this->lehrveranstaltung_id
AND (ort_kurzbz='$ort' OR $sql_lkt)";
if (is_numeric($this->unr))
$sql_query.=" AND unr!=$this->unr";
if (! $erg_stpl=pg_query($this->conn, $sql_query))
{
die($sql_query.pg_last_error($this->conn));
//die($sql_query.pg_last_error($this->conn));
$this->errormsg=pg_last_error($this->conn);
return false;
}
@@ -527,7 +528,7 @@ class lehreinheit
* @param string ort gewuenschter Ort
* @param string db_stpl_table Tabllenname des Stundenplans im DBMS
* @param string user UID des aktuellen Bentzers
* @return boolean true=ok, false=fehler
* @return boolean true=ok, false=error
*************************************************************************/
function save_stpl($datum,$stunde,$ort,$stpl_table,$user)
{
@@ -536,6 +537,14 @@ class lehreinheit
$stpl_id=$stpl_table.TABLE_ID;
$stpl_table='lehre.'.TABLE_BEGIN.$stpl_table;
// Variablen pruefen
if (!is_numeric($this->unr))
{
$this->errormsg='Error: UNR ist nicht vorhanden!';
return false;
}
for ($i=0;$i<$this->anz;$i++)
{
// Datenbank INSERT
@@ -552,7 +561,7 @@ class lehreinheit
$sql_query.=",'".$this->titel[$i]."','$this->anmerkung','$user')";
if (! $erg_stpl=pg_query($this->conn, $sql_query))
{
die(pg_last_error($this->conn).$sql_query);
//die(pg_last_error($this->conn).$sql_query);
$this->errormsg=pg_last_error($this->conn);
return false;
}
@@ -683,68 +692,68 @@ class lehreinheit
else
{
pg_query($this->conn, 'BEGIN');
//UNDO Befehl zusammenbauen
$undosql='';
//LehreinheitMitarbeiter
$qry = "SELECT * FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id='$lehreinheit_id'";
if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))
{
$undosql.=" INSERT INTO lehre.tbl_lehreinheitmitarbeiter(lehreinheit_id, mitarbeiter_uid, lehrfunktion_kurzbz, planstunden, stundensatz, faktor, anmerkung, bismelden, updateamum, updatevon, insertamum, insertvon, semesterstunden)
$undosql.=" INSERT INTO lehre.tbl_lehreinheitmitarbeiter(lehreinheit_id, mitarbeiter_uid, lehrfunktion_kurzbz, planstunden, stundensatz, faktor, anmerkung, bismelden, updateamum, updatevon, insertamum, insertvon, semesterstunden)
VALUES(".$this->addslashes($row->lehreinheit_id).",".$this->addslashes($row->mitarbeiter_uid).",".$this->addslashes($row->lehrfunktion_kurzbz).",".$this->addslashes($row->planstunden).",".$this->addslashes($row->stundensatz).",".$this->addslashes($row->faktor).",".
$this->addslashes($row->anmerkung).",".($row->bismelden=='t'?'true':'false').",".$this->addslashes($row->updateamum).",".$this->addslashes($row->updatevon).",".$this->addslashes($row->insertamum).",".$this->addslashes($row->insertvon).",".$this->addslashes($row->semesterstunden).");";
}
}
//LehreinheitGruppe
//LehreinheitGruppe
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id='$lehreinheit_id'";
if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))
{
$undosql.=" INSERT INTO lehre.tbl_lehreinheitgruppe(lehreinheitgruppe_id, lehreinheit_id, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, updateamum, updatevon, insertamum, insertvon)
$undosql.=" INSERT INTO lehre.tbl_lehreinheitgruppe(lehreinheitgruppe_id, lehreinheit_id, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, updateamum, updatevon, insertamum, insertvon)
VALUES(".$this->addslashes($row->lehreinheitgruppe_id).",".$this->addslashes($row->lehreinheit_id).",".$this->addslashes($row->studiengang_kz).",'".addslashes($row->semester)."','".addslashes($row->verband)."','".addslashes($row->gruppe)."',".
$this->addslashes($row->gruppe_kurzbz).",".$this->addslashes($row->updateamum).",".$this->addslashes($row->updatevon).",".$this->addslashes($row->insertamum).",".$this->addslashes($row->insertvon).");";
}
}
//Lehreinheit
$qry = "SELECT * FROM lehre.tbl_lehreinheit WHERE lehreinheit_id='$lehreinheit_id'";
if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))
{
$undosql.=" INSERT INTO lehre.tbl_lehreinheit(lehreinheit_id, lehrveranstaltung_id, studiensemester_kurzbz, lehrfach_id, lehrform_kurzbz, stundenblockung, wochenrythmus, start_kw, raumtyp, raumtypalternativ, sprache, lehre, anmerkung, unr, lvnr, updateamum, updatevon, insertamum, insertvon)
$undosql.=" INSERT INTO lehre.tbl_lehreinheit(lehreinheit_id, lehrveranstaltung_id, studiensemester_kurzbz, lehrfach_id, lehrform_kurzbz, stundenblockung, wochenrythmus, start_kw, raumtyp, raumtypalternativ, sprache, lehre, anmerkung, unr, lvnr, updateamum, updatevon, insertamum, insertvon)
VALUES(".$this->addslashes($row->lehreinheit_id).",".$this->addslashes($row->lehrveranstaltung_id).",".$this->addslashes($row->studiensemester_kurzbz).",".$this->addslashes($row->lehrfach_id).",".$this->addslashes($row->lehrform_kurzbz).",".$this->addslashes($row->stundenblockung).",".
$this->addslashes($row->wochenrythmus).",".$this->addslashes($row->startkw).",".$this->addslashes($row->raumtyp).",".$this->addslashes($row->raumtypalternativ).",".$this->addslashes($row->sprache).",".($row->wochenrythmus=='t'?'true':'false').",".
$this->addslashes($row->anmerkung).",".$this->addslashes($row->unr).",".$this->addslashes($row->lvnr).",".$this->addslashes($row->updateamum).",".$this->addslashes($row->updatevon).",".$this->addslashes($row->insertamum).",".$this->addslashes($row->insertvon).");";
}
}
$log = new log($this->conn);
//Gruppenzuteilung, Mitarbeiterzuteilung und Lehreinheit loeschen
$qry = "DELETE FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id='$lehreinheit_id';
DELETE FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id='$lehreinheit_id';
DELETE FROM lehre.tbl_lehreinheit WHERE lehreinheit_id='$lehreinheit_id';";
$log->new = true;
$log->sql = $qry;
$log->sqlundo = $undosql;
$log->executetime = date('Y-m-d H:i:s');
$log->mitarbeiter_uid = get_uid();
$log->beschreibung = "Lehreinheit loeschen - $lehreinheit_id";
if(!$log->save())
{
$this->errormsg = 'Fehler beim Schreiben des Log-Eintrages';
pg_query($this->conn, 'ROLLBACK');
return false;
}
else
else
{
if(pg_query($this->conn, $qry))
{
+8 -4
View File
@@ -1370,13 +1370,15 @@ class wochenplan
// Stundenplanabfrage bauen (Wo ist Kollision?)
$sql_query="SELECT DISTINCT datum, stunde FROM $stpl_table
WHERE datum>='$datum_begin' AND datum<'$datum_end' AND
($lkt $gruppen OR ($lvb) ) AND unr!=$unr";
($lkt $gruppen OR ($lvb) )";
if (is_numeric($unr))
$sql_query.=" AND unr!=$unr";
//$this->errormsg.=htmlspecialchars($sql_query);
//return false;
if(!$result_kollision=pg_query($this->conn, $sql_query))
{
//die(pg_last_error($this->conn));
$this->errormsg=pg_last_error($this->conn);
$this->errormsg=pg_last_error($this->conn).$sql_query;
return false;
}
$num_k=pg_numrows($result_kollision);
@@ -1395,11 +1397,13 @@ class wochenplan
$sql_query="SELECT DISTINCT datum, stunde, ort_kurzbz FROM $stpl_view
JOIN public.tbl_ortraumtyp USING (ort_kurzbz)
WHERE datum>='$datum_begin' AND datum<'$datum_end' AND
($rtype) AND unr!=$unr"; //
($rtype)";
if (is_numeric($unr))
$sql_query.=" AND unr!=$unr";
//echo $sql_query;
if(!$result_besetzt=pg_query($this->conn, $sql_query))
{
$this->errormsg=pg_last_error($this->conn);
$this->errormsg=pg_last_error($this->conn).$sql_query;
return false;
}
$num_b=pg_numrows($result_besetzt);