SOAP Schnittstelle LVPlan

This commit is contained in:
Andreas Österreicher
2012-08-07 09:28:12 +00:00
parent 4548b77f79
commit 18ffe5971e
6 changed files with 1215 additions and 0 deletions
+60
View File
@@ -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;
}
}
}
?>
+71
View File
@@ -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;
}
}
?>