mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Raumvorschlag bei bereits verplanten Stunden angepasst damit direkte
Gruppen nicht kollidieren
This commit is contained in:
@@ -1725,17 +1725,32 @@ class wochenplan extends basis_db
|
||||
$leids='';
|
||||
for ($i=0;$i<$num_rows_stpl;$i++)
|
||||
{
|
||||
$direktinskription = false;
|
||||
$row=$this->db_fetch_object(null,$i);
|
||||
if ($row->gruppe_kurzbz!=null)
|
||||
{
|
||||
$gruppe[]=$row->gruppe_kurzbz;
|
||||
|
||||
// Bei direkten Gruppen wird kein Lehrverband hinzugefuegt da diese nicht kollidieren
|
||||
$grp_obj = new gruppe();
|
||||
$grp_obj->load($row->gruppe_kurzbz);
|
||||
if($grp_obj->direktinskription)
|
||||
$direktinskription = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$gruppe[]='';
|
||||
if (!isset($lehrverband[$i]))
|
||||
$lehrverband[$i]= new stdClass();
|
||||
$lehrverband[$i]->stg_kz=$row->studiengang_kz;
|
||||
$lehrverband[$i]->sem=$row->semester;
|
||||
$lehrverband[$i]->ver=$row->verband;
|
||||
$lehrverband[$i]->grp=$row->gruppe;
|
||||
}
|
||||
|
||||
if (!$direktinskription)
|
||||
{
|
||||
if (!isset($lehrverband[$i]))
|
||||
$lehrverband[$i]= new stdClass();
|
||||
$lehrverband[$i]->stg_kz=$row->studiengang_kz;
|
||||
$lehrverband[$i]->sem=$row->semester;
|
||||
$lehrverband[$i]->ver=$row->verband;
|
||||
$lehrverband[$i]->grp=$row->gruppe;
|
||||
}
|
||||
$leids.="$row->lehreinheit_id,";
|
||||
$lektor[$i]=$row->uid;
|
||||
$unr=$row->unr;
|
||||
@@ -1764,6 +1779,10 @@ class wochenplan extends basis_db
|
||||
foreach ($lektor as $l)
|
||||
$lkt.=" OR uid=".$this->db_add_param($l);
|
||||
$lkt=mb_substr($lkt,3);
|
||||
|
||||
// Kollisionsfreie User ausnehmen
|
||||
$lkt="(($lkt) AND uid not in (".$this->db_implode4SQL(unserialize(KOLLISIONSFREIE_USER))."))";
|
||||
|
||||
// Einheiten
|
||||
$gruppe=array_unique($gruppe);
|
||||
$gruppen='';
|
||||
@@ -1801,10 +1820,17 @@ class wochenplan extends basis_db
|
||||
$raster[$t][$s]->kollision=false;
|
||||
}
|
||||
}
|
||||
|
||||
if($lvb!='')
|
||||
$lvbor = "OR ($lvb)";
|
||||
else
|
||||
$lvbor = '';
|
||||
// Stundenplanabfrage bauen (Wo ist Kollision?)
|
||||
$sql_query="SELECT DISTINCT datum, stunde FROM $stpl_view
|
||||
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);
|
||||
($lkt $gruppen $lvbor ) AND unr!=".$this->db_add_param($unr);
|
||||
|
||||
$sql_query.=" AND NOT EXISTS(SELECT 1 FROM public.tbl_gruppe g WHERE g.gruppe_kurzbz=$stpl_view.gruppe_kurzbz AND direktinskription=true)";
|
||||
|
||||
if (!$this->db_query($sql_query))
|
||||
die($this->db_last_error());
|
||||
|
||||
Reference in New Issue
Block a user