mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-21 00:42:15 +00:00
Anwesenheiten im FAS bei Studenten und Lehrveranstaltungen sichtbar
This commit is contained in:
@@ -305,6 +305,54 @@ class anwesenheit extends basis_db
|
||||
return $row->einheiten;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert die Anwesenheiten/Abwesenheiten eines Studenten bei einer LV
|
||||
*
|
||||
* @param string $student_uid
|
||||
* @param int $lehrveranstaltung_id
|
||||
* @param string $studiensemester_kurzbz
|
||||
* @param boolean $anwesend
|
||||
* @return boolean
|
||||
*/
|
||||
public function getAnwesenheitLehrveranstaltung($student_uid, $lehrveranstaltung_id, $studiensemester_kurzbz, $anwesend=false)
|
||||
{
|
||||
$qry = 'SELECT
|
||||
distinct tbl_anwesenheit.*
|
||||
FROM
|
||||
campus.tbl_anwesenheit
|
||||
JOIN campus.vw_student_lehrveranstaltung USING(uid)
|
||||
WHERE
|
||||
uid='.$this->db_add_param($student_uid).'
|
||||
AND lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER).'
|
||||
AND studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).'
|
||||
AND anwesend=' . $this->db_add_param($anwesend, FHC_BOOLEAN).'
|
||||
ORDER BY datum';
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new anwesenheit();
|
||||
|
||||
$obj->anwesenheit_id = $row->anwesenheit_id;
|
||||
$obj->uid = $row->uid;
|
||||
$obj->einheiten = $row->einheiten;
|
||||
$obj->datum = $row->datum;
|
||||
$obj->anwesend = $this->db_parse_bool($row->anwesend);
|
||||
$obj->lehreinheit_id = $row->lehreinheit_id;
|
||||
$obj->anmerkung = $row->anmerkung;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert die Termine an denen eine Abwesenheit eingetragen ist.
|
||||
*
|
||||
@@ -384,4 +432,93 @@ class anwesenheit extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Anwesenheiten in Prozent von Studierenden bei Lehrveranstaltungen
|
||||
* Wenn die StudentUID uebergeben wird, werden alle Lehrveranstaltungen zu denen der Studierenden zugeteilt ist inkl Prozent der Anwesenheit
|
||||
* Wenn die LehrveranstaltungID uebergeben wird, werden alle Studierenden geholt die zugeteilt sind inkl Prozent der Anwesenheit
|
||||
* Es werden pro Student die Anwesenheiten berechnet aufgrund der Lehreinheit zu der sie zugeordnet sind
|
||||
* @param $studiensemester_kurzbz
|
||||
* @param $student_uid
|
||||
* @param $lehrveranstaltung_id
|
||||
* @return boolean true wenn ok, false im fehlerfall
|
||||
*/
|
||||
public function loadAnwesenheitStudiensemester($studiensemester_kurzbz, $student_uid=null, $lehrveranstaltung_id=null)
|
||||
{
|
||||
$qry = "SELECT lehrveranstaltung_id, bezeichnung, vorname, nachname, uid, sum(anwesend) as anwesend, sum(nichtanwesend) as nichtanwesend, sum(gesamtstunden) as gesamtstunden FROM (
|
||||
SELECT
|
||||
lehrveranstaltung_id, bezeichnung, vorname, nachname, uid,
|
||||
(
|
||||
SELECT
|
||||
sum(einheiten)
|
||||
FROM
|
||||
campus.tbl_anwesenheit
|
||||
WHERE
|
||||
lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id
|
||||
AND uid=vw_student_lehrveranstaltung.uid
|
||||
AND anwesend
|
||||
) as anwesend,
|
||||
(
|
||||
SELECT
|
||||
sum(einheiten)
|
||||
FROM
|
||||
campus.tbl_anwesenheit
|
||||
WHERE
|
||||
lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id
|
||||
AND uid=vw_student_lehrveranstaltung.uid
|
||||
AND NOT anwesend
|
||||
) as nichtanwesend,
|
||||
(
|
||||
SELECT count(*) anzahl FROM
|
||||
(SELECT datum, stunde FROM campus.vw_stundenplan
|
||||
WHERE lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id GROUP BY datum, stunde) as a
|
||||
) as gesamtstunden
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung
|
||||
JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
WHERE
|
||||
studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
|
||||
|
||||
if(!is_null($lehrveranstaltung_id))
|
||||
$qry.=" AND lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id);
|
||||
if(!is_null($student_uid))
|
||||
$qry.=" AND uid=".$this->db_add_param($student_uid);
|
||||
|
||||
$qry.=") as b GROUP BY lehrveranstaltung_id, bezeichnung, vorname, nachname, uid";
|
||||
|
||||
if($lehrveranstaltung_id!='')
|
||||
$qry.=" order by nachname, vorname ";
|
||||
elseif($student_uid!='')
|
||||
$qry.=" order by bezeichnung";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new stdClass();
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->anwesend = $row->anwesend;
|
||||
$obj->nichtanwesend = $row->nichtanwesend;
|
||||
$obj->gesamtstunden = $row->gesamtstunden;
|
||||
|
||||
$obj->erfassteanwesenheit = $row->anwesend+$row->nichtanwesend;
|
||||
if($row->gesamtstunden=='' || $obj->erfassteanwesenheit=='')
|
||||
$obj->prozent=100;
|
||||
else
|
||||
$obj->prozent = number_format(100-(100/$obj->gesamtstunden*$row->nichtanwesend),2);
|
||||
$obj->vorname = $row->vorname;
|
||||
$obj->nachname = $row->nachname;
|
||||
$obj->uid = $row->uid;
|
||||
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+11
-3
@@ -104,13 +104,15 @@ class rdf
|
||||
* @param $value
|
||||
* @param $cdata
|
||||
*/
|
||||
public function setAttribut($name,$value,$cdata=true)
|
||||
public function setAttribut($name,$value,$cdata=true, $parsetype=null)
|
||||
{
|
||||
if(!isset($this->attr[$this->counter]))
|
||||
$this->attr[$this->counter] = new stdClass();
|
||||
$this->attr[$this->counter]->name=$name;
|
||||
$this->attr[$this->counter]->value=$value;
|
||||
$this->attr[$this->counter]->cdata=$cdata;
|
||||
if(!is_null($parsetype))
|
||||
$this->attr[$this->counter]->parseType=$parsetype;
|
||||
$this->counter++;
|
||||
//var_dump($this->attr);
|
||||
return true;
|
||||
@@ -122,7 +124,7 @@ class rdf
|
||||
public function createRdfHeader()
|
||||
{
|
||||
$this->rdf_text="\n".'<RDF:RDF'."\n\t"
|
||||
.'xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"'."\n\t".'xmlns:'.$this->xml_ns.'="'.$this->rdf_url.'/rdf#"'."\n".'>'."\n\t";
|
||||
.'xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"'."\n\t".'xmlns:nc="http://home.netscape.com/NC-rdf#"'."\n\t".'xmlns:'.$this->xml_ns.'="'.$this->rdf_url.'/rdf#"'."\n".'>'."\n\t";
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -134,7 +136,13 @@ class rdf
|
||||
{
|
||||
$this->rdf_text.="\n\t\t".'<RDF:Description id="'.$obj->obj_id.'" about="'.$this->rdf_url.'/'.$obj->obj_id.'" >';
|
||||
foreach ($obj->attr as $attr)
|
||||
$this->rdf_text.="\n\t\t\t<".$this->xml_ns.':'.$attr->name.'><![CDATA['.$attr->value.']]></'.$this->xml_ns.':'.$attr->name.'>';
|
||||
{
|
||||
if(isset($attr->parseType))
|
||||
$parsetype = 'nc:parseType="'.$attr->parseType.'"';
|
||||
else
|
||||
$parsetype='';
|
||||
$this->rdf_text.="\n\t\t\t<".$this->xml_ns.':'.$attr->name.' '.$parsetype.'><![CDATA['.$attr->value.']]></'.$this->xml_ns.':'.$attr->name.'>';
|
||||
}
|
||||
$this->rdf_text.="\n\t\t".'</RDF:Description>';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user