From 18ffe5971e462f2b2fc04963371d8dc7bddbb2c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 7 Aug 2012 09:28:12 +0000 Subject: [PATCH] SOAP Schnittstelle LVPlan --- include/lehreinheit.class.php | 60 ++++ include/lehrstunde.class.php | 71 +++++ soap/index.html | 1 + soap/lvplan.soap.php | 375 ++++++++++++++++++++++++ soap/lvplan.wsdl.php | 184 ++++++++++++ soap/soap_test_lvplan.php | 524 ++++++++++++++++++++++++++++++++++ 6 files changed, 1215 insertions(+) create mode 100755 soap/lvplan.soap.php create mode 100755 soap/lvplan.wsdl.php create mode 100755 soap/soap_test_lvplan.php diff --git a/include/lehreinheit.class.php b/include/lehreinheit.class.php index 14825be70..17b03ace1 100644 --- a/include/lehreinheit.class.php +++ b/include/lehreinheit.class.php @@ -898,5 +898,65 @@ class lehreinheit extends basis_db return false; } } + + /** + * Laedt die Daten zu einer Lehreinheit inklusive Zusatzdaten der LV und des Lehrfachs + * @param $lehreinheit_id + * @return boolean + */ + public function getLehreinheitDetails($lehreinheit_id) + { + $qry = "SELECT + *, tbl_lehrveranstaltung.semester as lv_semester, tbl_lehrveranstaltung.studiengang_kz as lv_studiengang_kz + FROM + lehre.tbl_lehreinheit + JOIN lehre.tbl_lehrfach USING(lehrfach_id) + JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + WHERE + tbl_lehreinheit.lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER); + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->lehreinheit_id = $row->lehreinheit_id; + $this->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $this->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $this->lehrfach_id = $row->lehrfach_id; + $this->lehrform_kurzbz = $row->lehrform_kurzbz; + $this->stundenblockung = $row->stundenblockung; + $this->wochenrythmus = $row->wochenrythmus; + $this->start_kw = $row->start_kw; + $this->raumtyp = $row->raumtyp; + $this->raumtypalternativ = $row->raumtypalternativ; + $this->lehre = $this->db_parse_bool($row->lehre); + $this->anmerkung = $row->anmerkung; + $this->unr = $row->unr; + $this->lvnr = $row->lvnr; + $this->sprache = $row->sprache; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + $this->ext_id = $row->ext_id; + + $this->fachbereich_kurzbz = $row->fachbereich_kurzbz; + $this->farbe = $row->farbe; + $this->studiengang_kz = $row->lv_studiengang_kz; + $this->semester = $row->lv_semester; + return true; + } + else + { + $this->errormsg='Kein Eintrag gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler bei der Datenabfrage'; + return false; + } + } } ?> diff --git a/include/lehrstunde.class.php b/include/lehrstunde.class.php index 9cef694b3..45ea80356 100644 --- a/include/lehrstunde.class.php +++ b/include/lehrstunde.class.php @@ -256,6 +256,7 @@ class lehrstunde extends basis_db } else $datum_bis=$datum_von; + // Person if (($type=='student' || $type=='lektor') && $uid==NULL) { @@ -374,6 +375,7 @@ class lehrstunde extends basis_db $sql_query=mb_substr($sql_query,3); $sql_query_stdplan.=' WHERE'.$sql_query; } + //echo $sql_query_stdplan; //Datenbankabfrage if (!$this->db_query($sql_query_stdplan)) @@ -743,6 +745,75 @@ class lehrstunde extends basis_db return false; } } + + /** + * Gruppiert die einzelnen Lehrstunden zusammen + */ + public function getLehrstundenGruppiert() + { + $result = array(); + + foreach($this->lehrstunden as $row_lehrstunde) + { + $found=false; + //Pruefen ob bereits ein Eintrag vorhanden ist + //zu dem dazugruppiert werden kann + + /* + Kriterien fuer Gruppierung + - gleiches Datum + - gleiche Stunde + - gleiche UNR + */ + foreach($result as $key=>$row_result) + { + if($row_result->unr==$row_lehrstunde->unr + && $row_result->datum==$row_lehrstunde->datum + && $row_result->stunde==$row_lehrstunde->stunde) + { + $found=true; + //gleicher Eintrag gefunden + $grpidx = count($result[$key]->gruppen); + $result[$key]->gruppen[$grpidx]->studiengang_kz=$row_lehrstunde->studiengang_kz; + $result[$key]->gruppen[$grpidx]->sem=$row_lehrstunde->sem; + $result[$key]->gruppen[$grpidx]->ver=$row_lehrstunde->ver; + $result[$key]->gruppen[$grpidx]->grp=$row_lehrstunde->grp; + $result[$key]->gruppen[$grpidx]->gruppe_kurzbz=$row_lehrstunde->gruppe_kurzbz; + if(!in_array($row_lehrstunde->lektor_uid, $result[$key]->lektor_uid)) + $result[$key]->lektor_uid[]=$row_lehrstunde->lektor_uid; + if(!in_array($row_lehrstunde->ort_kurzbz, $result[$key]->ort_kurzbz)) + $result[$key]->ort_kurzbz[]=$row_lehrstunde->ort_kurzbz; + break; + } + } + + if(!$found) + { + // Wenn kein passender Eintrag vorhanden ist, + // wird ein neuer angelegt + $stunde=new lehrstunde(); + $stunde->stundenplan_id=$row_lehrstunde->stundenplan_id; + $stunde->lehreinheit_id=$row_lehrstunde->lehreinheit_id; + $stunde->farbe = (isset($row_lehrstunde->farbe)?$row_lehrstunde->farbe:'FFFFFF'); + $stunde->unr=$row_lehrstunde->unr; + $stunde->gruppen[0]->studiengang_kz=$row_lehrstunde->studiengang_kz; + $stunde->gruppen[0]->sem=$row_lehrstunde->sem; + $stunde->gruppen[0]->ver=$row_lehrstunde->ver; + $stunde->gruppen[0]->grp=$row_lehrstunde->grp; + $stunde->gruppen[0]->gruppe_kurzbz=$row_lehrstunde->gruppe_kurzbz; + $stunde->lektor_uid[]=$row_lehrstunde->lektor_uid; + $stunde->ort_kurzbz[]=$row_lehrstunde->ort_kurzbz; + $stunde->datum=$row_lehrstunde->datum; + $stunde->stunde=$row_lehrstunde->stunde; + $stunde->titel=$row_lehrstunde->titel; + $stunde->anmerkung=$row_lehrstunde->anmerkung; + $stunde->fix=$row_lehrstunde->fix; + $stunde->reservierung=$row_lehrstunde->reservierung; + $result[]=$stunde; + } + } + return $result; + } } ?> diff --git a/soap/index.html b/soap/index.html index b619fd5ad..3e666c038 100644 --- a/soap/index.html +++ b/soap/index.html @@ -7,6 +7,7 @@
  • Mitarbeiter
  • Ort / Raum
  • Studierendendaten
  • +
  • LV-Plan
  • Sonstiges