From 3b04c1063a8bd85404c543d0e10f593adcb4314d Mon Sep 17 00:00:00 2001 From: Christian Paminger Date: Fri, 30 Nov 2007 14:10:58 +0000 Subject: [PATCH] --- include/functions.inc.php | 4 +- include/lehrstunde.class.php | 47 +++++++++++++++++-- .../sync/stp/sync_stp_vilesci_prestudent.php | 2 +- 3 files changed, 46 insertions(+), 7 deletions(-) diff --git a/include/functions.inc.php b/include/functions.inc.php index a60ab794f..fa6d344c3 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -31,9 +31,9 @@ function db_query($conn, $sql_query) // Auth: Benutzer des Webportals function get_uid() { - return strtolower(trim($_SERVER['REMOTE_USER'])); + //return strtolower(trim($_SERVER['REMOTE_USER'])); // fuer Testzwecke - //return 'pam'; + return 'pam'; } function crlf() diff --git a/include/lehrstunde.class.php b/include/lehrstunde.class.php index 9e7406d97..6c3905426 100644 --- a/include/lehrstunde.class.php +++ b/include/lehrstunde.class.php @@ -457,7 +457,8 @@ class lehrstunde * @return boolean true=ok, false=fehler *************************************************************************/ function kollision($stpl_table='stundenplandev') - { + { + $ignore_reservation=false; // Parameter Checken // Bezeichnung der Stundenplan-Tabelle und des Keys $stpl_id=$stpl_table.TABLE_ID; @@ -485,8 +486,46 @@ class lehrstunde } $anz=pg_numrows($erg_stpl); //Check - if ($anz==0) - return false; + if ($anz==0) + { + // Reservierungen pruefen? + if (!$ignore_reservation) + { + // Datenbank abfragen ( studiengang_kz, titel, beschreibung ) + $sql_query="SELECT reservierung_id AS id, uid AS lektor, stg_kurzbz, ort_kurzbz, semester, verband, gruppe, gruppe_kurzbz, datum, stunde + FROM lehre.vw_reservierung + WHERE datum='$this->datum' AND stunde=$this->stunde AND (ort_kurzbz='$this->ort_kurzbz' OR "; + if ($this->lektor_uid!='_DummyLektor') + $sql_query.="(uid='$this->lektor_uid') AND uid!='_DummyLektor' OR "; + $sql_query.="(studiengang_kz=$this->studiengang_kz AND semester=$this->sem"; + if ($this->ver!=null && $this->ver!='' && $this->ver!=' ') + $sql_query.=" AND (verband='$this->ver' OR verband IS NULL OR verband='' OR verband=' ')"; + if ($this->grp!=null && $this->grp!='' && $this->grp!=' ') + $sql_query.=" AND (gruppe='$this->grp' OR gruppe IS NULL OR gruppe='' OR gruppe=' ')"; + if ($this->gruppe_kurzbz!=null && $this->gruppe_kurzbz!='' && $this->gruppe_kurzbz!=' ') + $sql_query.=" AND (gruppe_kurzbz='$this->gruppe_kurzbz')"; + $sql_query.="))"; + //echo $sql_query.'
'; + if (! $erg_res=pg_query($this->conn, $sql_query)) + { + $this->errormsg=$sql_query.pg_last_error($this->conn); + return true; + } + $anz_res=pg_numrows($erg_res); + //Check + if ($anz_res==0) + { + return false; + } + else + { + $row=pg_fetch_object($erg_res); + $this->errormsg="Kollision (Reservierung): $row->id|$row->lektor|$row->ort_kurzbz|$row->stg_kurzbz-$row->semester$row->verband$row->gruppe$row->gruppe_kurzbz - $row->datum/$row->stunde"; + return true; + } + } + return false; + } else { $row=pg_fetch_object($erg_stpl); @@ -496,4 +535,4 @@ class lehrstunde } } -?> \ No newline at end of file +?> diff --git a/system/sync/stp/sync_stp_vilesci_prestudent.php b/system/sync/stp/sync_stp_vilesci_prestudent.php index 485bb747d..f9948930c 100644 --- a/system/sync/stp/sync_stp_vilesci_prestudent.php +++ b/system/sync/stp/sync_stp_vilesci_prestudent.php @@ -357,7 +357,7 @@ mail($adress, 'SYNC-Fehler StP-Prestudent von '.$_SERVER['HTTP_HOST'], $error_lo mail($adress, 'SYNC StP-Prestudent von '.$_SERVER['HTTP_HOST'], "Sync Student\n------------\n\n" ."Personen: Gesamt: ".$anzahl_person_gesamt." / Eingefügt: ".$eingefuegt." / Fehler: ".$fehler." / Doppelt: ".$dublette -."\n\n".$dateiausgabe."Beginn: ".$start."\nEnde: ".date("d.m.Y H:i:s")."\n\n".$ausgabe, "From: vilesci@technikum-wien.at"); +."\n\nBeginn: ".$start."\nEnde: ".date("d.m.Y H:i:s")."\n\n".$ausgabe, "From: vilesci@technikum-wien.at"); ?>