From 98ffe525b33f1d612b9c7a0079848dc2ea684a30 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Mon, 1 Nov 2021 13:12:55 +0100 Subject: [PATCH 1/4] first working version to add covid status to lvlists --- cis/private/lehre/anwesenheitsliste.php | 23 +- cis/private/lehre/covidstatusliste.php | 337 ++++++++++++++++++++++++ include/covid/covidhelper.class.php | 189 +++++++++++++ 3 files changed, 545 insertions(+), 4 deletions(-) create mode 100644 cis/private/lehre/covidstatusliste.php create mode 100644 include/covid/covidhelper.class.php diff --git a/cis/private/lehre/anwesenheitsliste.php b/cis/private/lehre/anwesenheitsliste.php index bc7d96083..6859c1a2e 100644 --- a/cis/private/lehre/anwesenheitsliste.php +++ b/cis/private/lehre/anwesenheitsliste.php @@ -34,6 +34,7 @@ require_once('../../../include/lehrveranstaltung.class.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/vertrag.class.php'); + require_once '../../../include/covid/covidhelper.class.php'; $sprache = getSprache(); $p=new phrasen($sprache); @@ -61,7 +62,8 @@ $stsem = $_GET['stsem']; else die($p->t('anwesenheitsliste/studiensemesterIstUngueltig')); - + +$covidhelper = new CovidHelper(); ?> @@ -69,6 +71,16 @@ + + @@ -98,7 +110,8 @@ $lv = new lehrveranstaltung($lvid); - $aw_content .= "".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung"; + $covid_content = ($covidhelper->isUdfDefined()) ? 'Covid-Status' : ''; + $aw_content .= "".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung" . $covid_content . ""; $awbild_content .= "".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung"; $nt_content .= "".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung"; @@ -151,7 +164,8 @@ } } - $aw_content .= "   $kurzbz - $lehrform - $gruppen ($lektoren)"; + $covid_content = ($covidhelper->isUdfDefined()) ? 'Covid-Status' : ''; + $aw_content .= "   $kurzbz - $lehrform - $gruppen ($lektoren)" . $covid_content . ""; $awbild_content .= "   $kurzbz - $lehrform - $gruppen ($lektoren)"; $nt_content .= "   $kurzbz - $lehrform - $gruppen ($lektoren)"; @@ -186,7 +200,8 @@ } } - $aw_content .= "   $kurzbz - $lehrform - $gruppen ($lektoren)"; + $covid_content = ($covidhelper->isUdfDefined()) ? 'Covid-Status' : ''; + $aw_content .= "   $kurzbz - $lehrform - $gruppen ($lektoren)" . $covid_content . ""; $awbild_content .= "   $kurzbz - $lehrform - $gruppen ($lektoren)"; $nt_content .= "   $kurzbz - $lehrform - $gruppen ($lektoren)"; } diff --git a/cis/private/lehre/covidstatusliste.php b/cis/private/lehre/covidstatusliste.php new file mode 100644 index 000000000..a29ab570d --- /dev/null +++ b/cis/private/lehre/covidstatusliste.php @@ -0,0 +1,337 @@ + + */ +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/dokument_export.class.php'); +require_once('../../../include/lehrveranstaltung.class.php'); +require_once('../../../include/lehreinheitgruppe.class.php'); +require_once('../../../include/lehreinheit.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/lehreinheitmitarbeiter.class.php'); +require_once('../../../include/studiensemester.class.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/erhalter.class.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/covid/covidhelper.class.php'); + +$debug = false; + +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + +$user=get_uid(); + +$berechtigung = new benutzerberechtigung(); +$berechtigung->getBerechtigungen($user); + +if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) + $lvid = $_GET['lvid']; +else + die('Eine gueltige LvID muss uebergeben werden'); + +$lv = new lehrveranstaltung(); +$lv->load($lvid); + +if(isset($_GET['stsem'])) + $studiensemester = $_GET['stsem']; +else + die('Eine Studiensemester muss uebergeben werden'); + +if( !$berechtigung->isBerechtigt('admin') + && !$berechtigung->isBerechtigt('assistenz') + && !$berechtigung->isBerechtigt('lehre', $lv->oe_kurzbz, 's') + && !check_lektor_lehrveranstaltung($user,$lvid,$studiensemester)) + die('Sie muessen LektorIn der LV sein oder das Recht "ADMIN", "ASSISTENZ" oder "LEHRE" haben, um diese Seite aufrufen zu koennen'); + +$output='pdf'; + +if(isset($_GET['output']) && ($output='odt' || $output='doc')) + $output=$_GET['output']; + +isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; +isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL; + +// Teilnehmende Gruppen laden +$qry = "SELECT DISTINCT ON(kuerzel, semester, verband, gruppe, gruppe_kurzbz) + UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel, + semester, + verband, + gruppe, + gruppe_kurzbz + FROM campus.vw_lehreinheit + WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." + AND studiensemester_kurzbz=".$db->db_add_param($studiensemester); +if($lehreinheit!='') + $qry.=" AND lehreinheit_id=".$db->db_add_param($lehreinheit, FHC_INTEGER); + +$gruppen_string = ''; +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + if($gruppen_string!='') + $gruppen_string.=', '; + if($row->gruppe_kurzbz=='') + $gruppen_string.=trim($row->kuerzel.'-'.$row->semester.$row->verband.$row->gruppe); + else + $gruppen_string.=$row->gruppe_kurzbz; + } +} + + +// Verplante Räume laden +$qry = "SELECT distinct(ort_kurzbz) + FROM lehre.tbl_stundenplan + WHERE lehreinheit_id in + ( + SELECT lehreinheit_id + FROM campus.vw_lehreinheit + WHERE lehrveranstaltung_id = ".$db->db_add_param($lvid, FHC_INTEGER)." + AND studiensemester_kurzbz = ".$db->db_add_param($studiensemester)." + )"; +if($lehreinheit!='') + $qry.= " AND tbl_stundenplan.lehreinheit_id = ".$db->db_add_param($lehreinheit, FHC_INTEGER); + + +$raum_string = ''; +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + if($raum_string!='') + $raum_string.=', '; + if($row->ort_kurzbz!='') + $raum_string.=$row->ort_kurzbz; + } +} + + +$stg = new studiengang(); +$stg->load($lv->studiengang_kz); + +$studiengang_bezeichnung=$stg->bezeichnung; + +$stg->getAllTypes(); + +$data = array( + 'gruppen'=>$gruppen_string, + 'bezeichnung'=>$lv->bezeichnung, + 'lehrveranstaltung_id'=>$lv->lehrveranstaltung_id, + 'studiengang'=>$studiengang_bezeichnung, + 'studiengang_kz'=>$lv->studiengang_kz, + 'typ'=>$stg->studiengang_typ_arr[$stg->typ], + 'ects'=>$lv->ects, + 'sprache'=>$lv->sprache, + 'studiensemester'=>$studiensemester, + 'semester'=>$lv->semester, + 'orgform'=>$lv->orgform_kurzbz, + 'raum'=>$raum_string, +); + +//Lehrende der LV laden und in ein Array schreiben +$lehrende = new lehreinheitmitarbeiter(); +$lehrende->getMitarbeiterLV($lvid, $studiensemester, $lehreinheit); +$arr_lehrende = array(); +if (isset($lehrende->result)) +{ + foreach($lehrende->result AS $row) + { + $data[]=array('lehrende'=>array('uid'=>$row->uid,'name'=>$row->vorname.' '.$row->nachname)); + $arr_lehrende[]=mb_strtoupper($row->uid); + } +} + + +//Studierende der LV laden und in ein Array schreiben + +$qry = 'SELECT + distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, public.tbl_student.student_uid, + tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, + (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, + tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student, + tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz + FROM + campus.vw_student_lehrveranstaltung + JOIN public.tbl_benutzer USING(uid) + JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid) + LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) + LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) + LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) + LEFT JOIN lehre.tbl_note USING (note) + LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) + LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz) + LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id) + WHERE + vw_student_lehrveranstaltung.lehrveranstaltung_id='.$db->db_add_param($lvid, FHC_INTEGER).' AND + vw_student_lehrveranstaltung.studiensemester_kurzbz='.$db->db_add_param($studiensemester);';'; + + +if($lehreinheit!='') + $qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$db->db_add_param($lehreinheit, FHC_INTEGER); + +$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC'; + +$stsem_obj = new studiensemester(); +$stsem_obj->load($studiensemester); +$stsemdatumvon = $stsem_obj->start; +$stsemdatumbis = $stsem_obj->ende; + +$erhalter = new erhalter(); +$erhalter->getAll(); + +$a_o_kz = '9'.sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW) +$anzahl_studierende = 0; +$datum = new datum(); +$zusatz = ''; + +$studentuids = array(); +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + if($row->status!='Abbrecher' && $row->status!='Unterbrecher') + { + $anzahl_studierende++; + + if($row->status=='Incoming') //Incoming + $zusatz='(i)'; + else + $zusatz=''; + + if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing + $zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')'; + + if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen + $zusatz.= '('. $row->anmerkung. ')'; + + if($row->mitarbeiter_uid!='') //mitarbeiter + $zusatz.='(ma)'; + + if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende + $zusatz.='(a.o.)'; + + if($row->mobilitaetstyp_kurzbz !='') //Double Degree Student + $zusatz.='(d.d.)'; + + //$zusatz.='test'; + + $studentuids[] = $row->student_uid; + $data[]=array('student'=>array( + 'uid' => $row->student_uid, + 'vorname'=>$row->vorname, + 'nachname'=>$row->nachname, + 'personenkennzeichen'=>trim($row->matrikelnr), + 'matr_nr'=>$row->matr_nr, + 'semester'=>$row->semester, + 'verband'=>trim($row->verband), + 'gruppe'=>trim($row->gruppe), + 'zusatz'=>$zusatz, + 'studiengang_kurzbz'=>$row->kurzbzlang, + 'mobilitaetstyp_kurzbz'=>$row->mobilitaetstyp_kurzbz + )); + } + } + //Anzahl Studierende in Array $data (an erster Stelle) einfuegen + $data = array_reverse($data, true); + $data['anzahl_studierende'] = $anzahl_studierende; + $data = array_reverse($data, true); +} + +$covidhelper = new CovidHelper(); +$covidhelper->fetchCovidStatus($studentuids); +$covidstatus = $covidhelper->getCovidStatus(); + +$now = new DateTime('now', new DateTimeZone('Europe/Vienna')); +header('Content-Type: text/html; charset=utf-8'); +?> + + + + FHC - Covidliste + + + + + +
+
+
+ +

Covid-Status-Liste

+

Gruppen: Studiensemester:

+

Lehrende:

+

generiert: format('d.m.Y H:i'); ?>

+ + + + + + + + + + + + + + + + + + + + +
StudentKennzeichenGruppeCovid-Status
getIconHtml($tmpstudent['uid']); ?>
+ +
+
+ + +
+
+ +
+
+
+				
+
+ +
+
+ + +
+ + + \ No newline at end of file diff --git a/include/covid/covidhelper.class.php b/include/covid/covidhelper.class.php new file mode 100644 index 000000000..3c9ef12da --- /dev/null +++ b/include/covid/covidhelper.class.php @@ -0,0 +1,189 @@ + + */ +require_once(dirname(__DIR__) . '/basis_db.class.php'); +/** + * Description of covidhelper + * + * @author bambi + */ +class CovidHelper extends basis_db +{ + const STATUS_OK = 1; + const STATUS_NOTOK = 0; + const STATUS_UNKNOWN = -1; + const STATUS_NOTSET = -2; + + const TITLE_OK = 'Covid Status gültig'; + const TITLE_NOTOK = 'Covid Status ungültig'; + const TITLE_UNKNOWN = 'Covid Status unbekannt'; + + const DB_SCHEMA = 'public'; + const DB_TABLE = 'tbl_person'; + const DB_UDFNAME = 'udf_3gvalid'; + + protected $isUdfDefined; + + protected $uids; + protected $covidstatus; + + public function __construct() + { + parent::__construct(); + $this->uids = array(); + $this->covidstatus = array(); + $this->isUdfDefined = false; + $this->checkIfUdfValuesAreDefined(); + } + + public function isUdfDefined() { + return $this->isUdfDefined; + } + + public function fetchCovidStatus(array $uids) { + $this->uids = $uids; + $this->covidstatus = array(); + $this->fetchCovidValidStatus(); + } + + public function getIconHtml($uid) + { + $html = ''; + $status = isset($this->covidstatus[$uid]) ? $this->covidstatus[$uid] : self::STATUS_NOTSET; + switch ($status) + { + case self::STATUS_OK: + $html = ''; + break; + case self::STATUS_NOTOK: + $html = ''; + break; + case self::STATUS_UNKNOWN: + $html = ''; + break; + default: + $html = ''; + break; + } + return $html; + } + + public function getBootstrapClass($uid) + { + $class = ''; + $status = isset($this->covidstatus[$uid]) ? $this->covidstatus[$uid] : self::STATUS_NOTSET; + switch ($status) + { + case self::STATUS_OK: + $class = 'success'; + break; + case self::STATUS_NOTOK: + $class = 'danger'; + break; + case self::STATUS_UNKNOWN: + $class = 'warning'; + break; + default: + $class = ''; + break; + } + return $class; + } + + public function getTitle($uid) + { + $title = ''; + $status = isset($this->covidstatus[$uid]) ? $this->covidstatus[$uid] : self::STATUS_NOTSET; + switch ($status) + { + case self::STATUS_OK: + $title = self::TITLE_OK; + break; + case self::STATUS_NOTOK: + $title = self::TITLE_NOTOK; + break; + case self::STATUS_UNKNOWN: + $title = self::TITLE_UNKNOWN; + break; + default: + $title = ''; + break; + } + return $title; + } + + public function getCovidStatus() + { + return $this->covidstatus; + } + + protected function fetchCovidValidStatus() + { + if( !($this->isUdfDefined && is_array($this->uids)) ) + { + return; + } + $sql = << 'udf_3gvalid')::text::date >= CURRENT_DATE::text::date THEN 1 + WHEN (p."udf_values" -> 'udf_3gvalid')::text::date < CURRENT_DATE::text::date THEN 0 + ELSE -1 + END AS covidvalid + FROM tbl_person p + JOIN tbl_benutzer b ON b.person_id = p.person_id AND b.uid IN ({$this->implode4SQL($this->uids)}) +EOSQL; + + $this->covidstatus = array(); + if( $this->db_query($sql) ) + { + while( false !== ($row = $this->db_fetch_object()) ) + { + $this->covidstatus[$row->uid] = $row->covidvalid; + } + } else { + $this->errormsg = "Fehler in der Abfrage des Covidstatus."; + } + } + + public function checkIfUdfValuesAreDefined() + { + $sql = 'SELECT count(name) AS "udfdefined" ' + . 'FROM "system"."tbl_udf", jsonb_to_recordset("jsons") AS items(name text) ' + . 'WHERE "schema" = \'' . self::DB_SCHEMA . '\' ' + . 'AND "table" = \'' . self::DB_TABLE . '\' ' + . 'AND "name" = \'' . self::DB_UDFNAME . '\''; + if ( $this->db_query($sql) ) + { + if ($row = $this->db_fetch_object()) + { + $this->isUdfDefined = ($row->udfdefined > 0) ? true : false; + } + else + { + $this->errormsg = "Fehler in der Abfrage beim Pruefen der UDFs. Kein Datensatz gefunden."; + $this->isUdfDefined = false; + } + } + else + { + $this->errormsg = "Fehler in der Abfrage beim Pruefen der UDFs."; + $this->isUdfDefined = false; + } + } +} From 8c100ba99313f87700cdb4972a42c335d875ebc1 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Mon, 1 Nov 2021 15:25:24 +0100 Subject: [PATCH 2/4] moved db logic to lehrelisthelper class --- cis/private/lehre/anwesenheitsliste.pdf.php | 187 +------------ cis/private/lehre/covidstatusliste.php | 215 ++------------ include/lehrelisthelper.class.php | 293 ++++++++++++++++++++ 3 files changed, 317 insertions(+), 378 deletions(-) create mode 100644 include/lehrelisthelper.class.php diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index 16ba8972b..6d33c351a 100644 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -28,6 +28,7 @@ require_once('../../../include/studiensemester.class.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/erhalter.class.php'); require_once('../../../include/datum.class.php'); +require_once('../../../include/lehrelisthelper.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -68,188 +69,10 @@ isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehre $doc = new dokument_export('Anwesenheitslist'); -// Teilnehmende Gruppen laden -$qry = "SELECT DISTINCT ON(kuerzel, semester, verband, gruppe, gruppe_kurzbz) - UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel, - semester, - verband, - gruppe, - gruppe_kurzbz - FROM campus.vw_lehreinheit - WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." - AND studiensemester_kurzbz=".$db->db_add_param($studiensemester); -if($lehreinheit!='') - $qry.=" AND lehreinheit_id=".$db->db_add_param($lehreinheit, FHC_INTEGER); - -$gruppen_string = ''; -if($result = $db->db_query($qry)) -{ - while($row = $db->db_fetch_object($result)) - { - if($gruppen_string!='') - $gruppen_string.=', '; - if($row->gruppe_kurzbz=='') - $gruppen_string.=trim($row->kuerzel.'-'.$row->semester.$row->verband.$row->gruppe); - else - $gruppen_string.=$row->gruppe_kurzbz; - } -} - - -// Verplante Räume laden -$qry = "SELECT distinct(ort_kurzbz) - FROM lehre.tbl_stundenplan - WHERE lehreinheit_id in - ( - SELECT lehreinheit_id - FROM campus.vw_lehreinheit - WHERE lehrveranstaltung_id = ".$db->db_add_param($lvid, FHC_INTEGER)." - AND studiensemester_kurzbz = ".$db->db_add_param($studiensemester)." - )"; -if($lehreinheit!='') - $qry.= " AND tbl_stundenplan.lehreinheit_id = ".$db->db_add_param($lehreinheit, FHC_INTEGER); - - -$raum_string = ''; -if($result = $db->db_query($qry)) -{ - while($row = $db->db_fetch_object($result)) - { - if($raum_string!='') - $raum_string.=', '; - if($row->ort_kurzbz!='') - $raum_string.=$row->ort_kurzbz; - } -} - - -$stg = new studiengang(); -$stg->load($lv->studiengang_kz); - -$studiengang_bezeichnung=$stg->bezeichnung; - -$stg->getAllTypes(); - -$data = array( - 'gruppen'=>$gruppen_string, - 'bezeichnung'=>$lv->bezeichnung, - 'lehrveranstaltung_id'=>$lv->lehrveranstaltung_id, - 'studiengang'=>$studiengang_bezeichnung, - 'studiengang_kz'=>$lv->studiengang_kz, - 'typ'=>$stg->studiengang_typ_arr[$stg->typ], - 'ects'=>$lv->ects, - 'sprache'=>$lv->sprache, - 'studiensemester'=>$studiensemester, - 'semester'=>$lv->semester, - 'orgform'=>$lv->orgform_kurzbz, - 'raum'=>$raum_string, -); - -//Lehrende der LV laden und in ein Array schreiben -$lehrende = new lehreinheitmitarbeiter(); -$lehrende->getMitarbeiterLV($lvid, $studiensemester, $lehreinheit); -$arr_lehrende = array(); -if (isset($lehrende->result)) -{ - foreach($lehrende->result AS $row) - { - $data[]=array('lehrende'=>array('uid'=>$row->uid,'name'=>$row->vorname.' '.$row->nachname)); - $arr_lehrende[]=mb_strtoupper($row->uid); - } -} - - -//Studierende der LV laden und in ein Array schreiben - -$qry = 'SELECT - distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, - tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, - (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, - tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student, - tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz - FROM - campus.vw_student_lehrveranstaltung - JOIN public.tbl_benutzer USING(uid) - JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid) - LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) - LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) - LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) - LEFT JOIN lehre.tbl_note USING (note) - LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) - LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz) - LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id) - WHERE - vw_student_lehrveranstaltung.lehrveranstaltung_id='.$db->db_add_param($lvid, FHC_INTEGER).' AND - vw_student_lehrveranstaltung.studiensemester_kurzbz='.$db->db_add_param($studiensemester);';'; - - -if($lehreinheit!='') - $qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$db->db_add_param($lehreinheit, FHC_INTEGER); - -$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC'; - -$stsem_obj = new studiensemester(); -$stsem_obj->load($studiensemester); -$stsemdatumvon = $stsem_obj->start; -$stsemdatumbis = $stsem_obj->ende; - -$erhalter = new erhalter(); -$erhalter->getAll(); - -$a_o_kz = '9'.sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW) -$anzahl_studierende = 0; -$datum = new datum(); -$zusatz = ''; - -if($result = $db->db_query($qry)) -{ - while($row = $db->db_fetch_object($result)) - { - if($row->status!='Abbrecher' && $row->status!='Unterbrecher') - { - $anzahl_studierende++; - - if($row->status=='Incoming') //Incoming - $zusatz='(i)'; - else - $zusatz=''; - - if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing - $zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')'; - - if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen - $zusatz.= '('. $row->anmerkung. ')'; - - if($row->mitarbeiter_uid!='') //mitarbeiter - $zusatz.='(ma)'; - - if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende - $zusatz.='(a.o.)'; - - if($row->mobilitaetstyp_kurzbz !='') //Double Degree Student - $zusatz.='(d.d.)'; - - //$zusatz.='test'; - - $data[]=array('student'=>array( - 'vorname'=>$row->vorname, - 'nachname'=>$row->nachname, - 'personenkennzeichen'=>trim($row->matrikelnr), - 'matr_nr'=>$row->matr_nr, - 'semester'=>$row->semester, - 'verband'=>trim($row->verband), - 'gruppe'=>trim($row->gruppe), - 'zusatz'=>$zusatz, - 'studiengang_kurzbz'=>$row->kurzbzlang, - 'mobilitaetstyp_kurzbz'=>$row->mobilitaetstyp_kurzbz - )); - } - } - //Anzahl Studierende in Array $data (an erster Stelle) einfuegen - $data = array_reverse($data, true); - $data['anzahl_studierende'] = $anzahl_studierende; - $data = array_reverse($data, true); -} +$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $lehreinheit); +$arr_lehrende = $lehrelisthelper->getArr_Lehrende(); +$data = $lehrelisthelper->getData(); +$studentuids = $lehrelisthelper->getStudentUids(); $doc->addDataArray($data,'anwesenheitsliste'); if($lehreinheit!='') diff --git a/cis/private/lehre/covidstatusliste.php b/cis/private/lehre/covidstatusliste.php index a29ab570d..a3e3898d7 100644 --- a/cis/private/lehre/covidstatusliste.php +++ b/cis/private/lehre/covidstatusliste.php @@ -18,7 +18,6 @@ * Authors: Manfred Kindl */ require_once('../../../config/cis.config.inc.php'); -require_once('../../../include/dokument_export.class.php'); require_once('../../../include/lehrveranstaltung.class.php'); require_once('../../../include/lehreinheitgruppe.class.php'); require_once('../../../include/lehreinheit.class.php'); @@ -28,6 +27,7 @@ require_once('../../../include/studiensemester.class.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/erhalter.class.php'); require_once('../../../include/datum.class.php'); +require_once('../../../include/lehrelisthelper.class.php'); require_once('../../../include/covid/covidhelper.class.php'); $debug = false; @@ -59,199 +59,13 @@ if( !$berechtigung->isBerechtigt('admin') && !check_lektor_lehrveranstaltung($user,$lvid,$studiensemester)) die('Sie muessen LektorIn der LV sein oder das Recht "ADMIN", "ASSISTENZ" oder "LEHRE" haben, um diese Seite aufrufen zu koennen'); -$output='pdf'; - -if(isset($_GET['output']) && ($output='odt' || $output='doc')) - $output=$_GET['output']; - isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL; -// Teilnehmende Gruppen laden -$qry = "SELECT DISTINCT ON(kuerzel, semester, verband, gruppe, gruppe_kurzbz) - UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel, - semester, - verband, - gruppe, - gruppe_kurzbz - FROM campus.vw_lehreinheit - WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." - AND studiensemester_kurzbz=".$db->db_add_param($studiensemester); -if($lehreinheit!='') - $qry.=" AND lehreinheit_id=".$db->db_add_param($lehreinheit, FHC_INTEGER); - -$gruppen_string = ''; -if($result = $db->db_query($qry)) -{ - while($row = $db->db_fetch_object($result)) - { - if($gruppen_string!='') - $gruppen_string.=', '; - if($row->gruppe_kurzbz=='') - $gruppen_string.=trim($row->kuerzel.'-'.$row->semester.$row->verband.$row->gruppe); - else - $gruppen_string.=$row->gruppe_kurzbz; - } -} - - -// Verplante Räume laden -$qry = "SELECT distinct(ort_kurzbz) - FROM lehre.tbl_stundenplan - WHERE lehreinheit_id in - ( - SELECT lehreinheit_id - FROM campus.vw_lehreinheit - WHERE lehrveranstaltung_id = ".$db->db_add_param($lvid, FHC_INTEGER)." - AND studiensemester_kurzbz = ".$db->db_add_param($studiensemester)." - )"; -if($lehreinheit!='') - $qry.= " AND tbl_stundenplan.lehreinheit_id = ".$db->db_add_param($lehreinheit, FHC_INTEGER); - - -$raum_string = ''; -if($result = $db->db_query($qry)) -{ - while($row = $db->db_fetch_object($result)) - { - if($raum_string!='') - $raum_string.=', '; - if($row->ort_kurzbz!='') - $raum_string.=$row->ort_kurzbz; - } -} - - -$stg = new studiengang(); -$stg->load($lv->studiengang_kz); - -$studiengang_bezeichnung=$stg->bezeichnung; - -$stg->getAllTypes(); - -$data = array( - 'gruppen'=>$gruppen_string, - 'bezeichnung'=>$lv->bezeichnung, - 'lehrveranstaltung_id'=>$lv->lehrveranstaltung_id, - 'studiengang'=>$studiengang_bezeichnung, - 'studiengang_kz'=>$lv->studiengang_kz, - 'typ'=>$stg->studiengang_typ_arr[$stg->typ], - 'ects'=>$lv->ects, - 'sprache'=>$lv->sprache, - 'studiensemester'=>$studiensemester, - 'semester'=>$lv->semester, - 'orgform'=>$lv->orgform_kurzbz, - 'raum'=>$raum_string, -); - -//Lehrende der LV laden und in ein Array schreiben -$lehrende = new lehreinheitmitarbeiter(); -$lehrende->getMitarbeiterLV($lvid, $studiensemester, $lehreinheit); -$arr_lehrende = array(); -if (isset($lehrende->result)) -{ - foreach($lehrende->result AS $row) - { - $data[]=array('lehrende'=>array('uid'=>$row->uid,'name'=>$row->vorname.' '.$row->nachname)); - $arr_lehrende[]=mb_strtoupper($row->uid); - } -} - - -//Studierende der LV laden und in ein Array schreiben - -$qry = 'SELECT - distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, public.tbl_student.student_uid, - tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, - (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, - tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student, - tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz - FROM - campus.vw_student_lehrveranstaltung - JOIN public.tbl_benutzer USING(uid) - JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid) - LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) - LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) - LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) - LEFT JOIN lehre.tbl_note USING (note) - LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) - LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz) - LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id) - WHERE - vw_student_lehrveranstaltung.lehrveranstaltung_id='.$db->db_add_param($lvid, FHC_INTEGER).' AND - vw_student_lehrveranstaltung.studiensemester_kurzbz='.$db->db_add_param($studiensemester);';'; - - -if($lehreinheit!='') - $qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$db->db_add_param($lehreinheit, FHC_INTEGER); - -$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC'; - -$stsem_obj = new studiensemester(); -$stsem_obj->load($studiensemester); -$stsemdatumvon = $stsem_obj->start; -$stsemdatumbis = $stsem_obj->ende; - -$erhalter = new erhalter(); -$erhalter->getAll(); - -$a_o_kz = '9'.sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW) -$anzahl_studierende = 0; -$datum = new datum(); -$zusatz = ''; - -$studentuids = array(); -if($result = $db->db_query($qry)) -{ - while($row = $db->db_fetch_object($result)) - { - if($row->status!='Abbrecher' && $row->status!='Unterbrecher') - { - $anzahl_studierende++; - - if($row->status=='Incoming') //Incoming - $zusatz='(i)'; - else - $zusatz=''; - - if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing - $zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')'; - - if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen - $zusatz.= '('. $row->anmerkung. ')'; - - if($row->mitarbeiter_uid!='') //mitarbeiter - $zusatz.='(ma)'; - - if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende - $zusatz.='(a.o.)'; - - if($row->mobilitaetstyp_kurzbz !='') //Double Degree Student - $zusatz.='(d.d.)'; - - //$zusatz.='test'; - - $studentuids[] = $row->student_uid; - $data[]=array('student'=>array( - 'uid' => $row->student_uid, - 'vorname'=>$row->vorname, - 'nachname'=>$row->nachname, - 'personenkennzeichen'=>trim($row->matrikelnr), - 'matr_nr'=>$row->matr_nr, - 'semester'=>$row->semester, - 'verband'=>trim($row->verband), - 'gruppe'=>trim($row->gruppe), - 'zusatz'=>$zusatz, - 'studiengang_kurzbz'=>$row->kurzbzlang, - 'mobilitaetstyp_kurzbz'=>$row->mobilitaetstyp_kurzbz - )); - } - } - //Anzahl Studierende in Array $data (an erster Stelle) einfuegen - $data = array_reverse($data, true); - $data['anzahl_studierende'] = $anzahl_studierende; - $data = array_reverse($data, true); -} +$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $lehreinheit); +$arr_lehrende = $lehrelisthelper->getArr_Lehrende(); +$data = $lehrelisthelper->getData(); +$studentuids = $lehrelisthelper->getStudentUids(); $covidhelper = new CovidHelper(); $covidhelper->fetchCovidStatus($studentuids); @@ -273,15 +87,20 @@ header('Content-Type: text/html; charset=utf-8');
-

Covid-Status-Liste

-

Gruppen: Studiensemester:

-

Lehrende:

-

generiert: format('d.m.Y H:i'); ?>

+

Covid-Status-Liste ""

+
    +
  • Gruppen:
  • +
  • Studiensemester:
  • +
  • Lehrende: getLehrende_String(); ?>
  • +
  • generiert: format('d.m.Y H:i'); ?>
  • +
  • Anzahl der Studierenden:
  • +
- + + @@ -289,6 +108,8 @@ header('Content-Type: text/html; charset=utf-8'); + diff --git a/include/lehrelisthelper.class.php b/include/lehrelisthelper.class.php new file mode 100644 index 000000000..610a11f7b --- /dev/null +++ b/include/lehrelisthelper.class.php @@ -0,0 +1,293 @@ + + * Manfred Kindl + */ +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/lehrveranstaltung.class.php'); +require_once('../../../include/lehreinheitgruppe.class.php'); +require_once('../../../include/lehreinheit.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/lehreinheitmitarbeiter.class.php'); +require_once('../../../include/studiensemester.class.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/erhalter.class.php'); +require_once('../../../include/datum.class.php'); +/** + * Description of lehrelisthelper + * + * @author bambi + */ +class LehreListHelper +{ + protected $db; + protected $studiensemester; + protected $lvid; + protected $lv; + protected $lehreinheit; + + protected $arr_lehrende; + protected $studentuids; + protected $data; + + protected $gruppen_string; + protected $lehrende_string; + protected $raum_string; + + public function __construct(basis_db $db, $studiensemester, $lvid, + lehrveranstaltung $lv, $lehreinheit='') + { + $this->db = $db; + $this->studiensemester = $studiensemester; + $this->lvid = $lvid; + $this->lv = $lv; + $this->lehreinheit = $lehreinheit; + + $this->arr_lehrende = array(); + $this->studentuids = array(); + $this->data = array(); + + $this->gruppen_string = ''; + $this->lehrende_string = ''; + $this->raum_string = ''; + + $this->loadMemberGroups(); + $this->loadPlannedRooms(); + $this->initData(); + $this->loadLehrende(); + $this->loadStudierende(); + } + + public function getData() + { + return $this->data; + } + + public function getStudentUids() + { + return $this->studentuids; + } + + public function getArr_Lehrende() { + return $this->arr_lehrende; + } + + public function getLehrende_String() + { + return $this->lehrende_string; + } + + protected function loadMemberGroups() + { + // Teilnehmende Gruppen laden + $qry = "SELECT DISTINCT ON(kuerzel, semester, verband, gruppe, gruppe_kurzbz) + UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel, + semester, + verband, + gruppe, + gruppe_kurzbz + FROM campus.vw_lehreinheit + WHERE lehrveranstaltung_id=".$this->db->db_add_param($this->lvid, FHC_INTEGER)." + AND studiensemester_kurzbz=".$this->db->db_add_param($this->studiensemester); + if($this->lehreinheit!='') + $qry.=" AND lehreinheit_id=".$this->db->db_add_param($this->lehreinheit, FHC_INTEGER); + + $this->gruppen_string = ''; + if($result = $this->db->db_query($qry)) + { + while($row = $this->db->db_fetch_object($result)) + { + if($this->gruppen_string!='') + $this->gruppen_string.=', '; + if($row->gruppe_kurzbz=='') + $this->gruppen_string.=trim($row->kuerzel.'-'.$row->semester.$row->verband.$row->gruppe); + else + $this->gruppen_string.=$row->gruppe_kurzbz; + } + } + } + + protected function loadPlannedRooms() + { + // Verplante Räume laden + $qry = "SELECT distinct(ort_kurzbz) + FROM lehre.tbl_stundenplan + WHERE lehreinheit_id in + ( + SELECT lehreinheit_id + FROM campus.vw_lehreinheit + WHERE lehrveranstaltung_id = ".$this->db->db_add_param($this->lvid, FHC_INTEGER)." + AND studiensemester_kurzbz = ".$this->db->db_add_param($this->studiensemester)." + )"; + if($this->lehreinheit!='') + $qry.= " AND tbl_stundenplan.lehreinheit_id = ".$this->db->db_add_param($this->lehreinheit, FHC_INTEGER); + + + $this->raum_string = ''; + if($result = $this->db->db_query($qry)) + { + while($row = $this->db->db_fetch_object($result)) + { + if($this->raum_string!='') + $this->raum_string.=', '; + if($row->ort_kurzbz!='') + $this->raum_string.=$row->ort_kurzbz; + } + } + } + + protected function initData() + { + $stg = new studiengang(); + $stg->load($this->lv->studiengang_kz); + + $studiengang_bezeichnung=$stg->bezeichnung; + + $stg->getAllTypes(); + + $this->data = array( + 'gruppen'=>$this->gruppen_string, + 'bezeichnung'=>$this->lv->bezeichnung, + 'lehrveranstaltung_id'=>$this->lv->lehrveranstaltung_id, + 'studiengang'=>$studiengang_bezeichnung, + 'studiengang_kz'=>$this->lv->studiengang_kz, + 'typ'=>$stg->studiengang_typ_arr[$stg->typ], + 'ects'=>$this->lv->ects, + 'sprache'=>$this->lv->sprache, + 'studiensemester'=>$this->studiensemester, + 'semester'=>$this->lv->semester, + 'orgform'=>$this->lv->orgform_kurzbz, + 'raum'=>$this->raum_string, + ); + } + + protected function loadLehrende() { + //Lehrende der LV laden und in ein Array schreiben + $lehrende = new lehreinheitmitarbeiter(); + $lehrende->getMitarbeiterLV($this->lvid, $this->studiensemester, $this->lehreinheit); + $this->arr_lehrende = array(); + if (isset($lehrende->result)) + { + foreach($lehrende->result AS $row) + { + $this->data[]=array('lehrende'=>array('uid'=>$row->uid,'name'=>$row->vorname.' '.$row->nachname)); + $this->arr_lehrende[]=mb_strtoupper($row->uid); + $this->lehrende_string .= (strlen($this->lehrende_string) > 0) + ? ', ' . $row->vorname . ' ' . $row->nachname + : $row->vorname . ' ' . $row->nachname; + } + } + } + + protected function loadStudierende() { + //Studierende der LV laden und in ein Array schreiben + + $qry = 'SELECT + distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, public.tbl_student.student_uid, + tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, + (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, + tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student, + tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz + FROM + campus.vw_student_lehrveranstaltung + JOIN public.tbl_benutzer USING(uid) + JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid) + LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) + LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) + LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) + LEFT JOIN lehre.tbl_note USING (note) + LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) + LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz) + LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id) + WHERE + vw_student_lehrveranstaltung.lehrveranstaltung_id='.$this->db->db_add_param($this->lvid, FHC_INTEGER).' AND + vw_student_lehrveranstaltung.studiensemester_kurzbz='.$this->db->db_add_param($this->studiensemester); + + + if($this->lehreinheit!='') + $qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$this->db->db_add_param($this->lehreinheit, FHC_INTEGER); + + $qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC'; + + $stsem_obj = new studiensemester(); + $stsem_obj->load($this->studiensemester); + $stsemdatumvon = $stsem_obj->start; + $stsemdatumbis = $stsem_obj->ende; + + $erhalter = new erhalter(); + $erhalter->getAll(); + + $a_o_kz = '9'.sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW) + $anzahl_studierende = 0; + $datum = new datum(); + $zusatz = ''; + + $this->studentuids = array(); + if($result = $this->db->db_query($qry)) + { + while($row = $this->db->db_fetch_object($result)) + { + if($row->status!='Abbrecher' && $row->status!='Unterbrecher') + { + $anzahl_studierende++; + + if($row->status=='Incoming') //Incoming + $zusatz='(i)'; + else + $zusatz=''; + + if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing + $zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')'; + + if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen + $zusatz.= '('. $row->anmerkung. ')'; + + if($row->mitarbeiter_uid!='') //mitarbeiter + $zusatz.='(ma)'; + + if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende + $zusatz.='(a.o.)'; + + if($row->mobilitaetstyp_kurzbz !='') //Double Degree Student + $zusatz.='(d.d.)'; + + //$zusatz.='test'; + + $this->studentuids[] = $row->student_uid; + $this->data[]=array('student'=>array( + 'uid' => $row->student_uid, + 'vorname'=>$row->vorname, + 'nachname'=>$row->nachname, + 'personenkennzeichen'=>trim($row->matrikelnr), + 'matr_nr'=>$row->matr_nr, + 'semester'=>$row->semester, + 'verband'=>trim($row->verband), + 'gruppe'=>trim($row->gruppe), + 'zusatz'=>$zusatz, + 'studiengang_kurzbz'=>$row->kurzbzlang, + 'mobilitaetstyp_kurzbz'=>$row->mobilitaetstyp_kurzbz + )); + } + } + //Anzahl Studierende in Array $data (an erster Stelle) einfuegen + $this->data = array_reverse($this->data, true); + $this->data['anzahl_studierende'] = $anzahl_studierende; + $this->data = array_reverse($this->data, true); + } + } +} From 487da82e330ee84a22c474e07b9d3fc608465f56 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Mon, 1 Nov 2021 15:51:20 +0100 Subject: [PATCH 3/4] pass studiengang to lehrelisthelper --- cis/private/lehre/anwesenheitsliste.pdf.php | 5 +++-- cis/private/lehre/covidstatusliste.php | 5 ++++- include/lehrelisthelper.class.php | 13 ++++++------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index 6d33c351a..6152b885d 100644 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -65,11 +65,12 @@ if(isset($_GET['output']) && ($output='odt' || $output='doc')) isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL; - +$stg = new studiengang(); +$stg->load($this->lv->studiengang_kz); $doc = new dokument_export('Anwesenheitslist'); -$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $lehreinheit); +$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $stg, $lehreinheit); $arr_lehrende = $lehrelisthelper->getArr_Lehrende(); $data = $lehrelisthelper->getData(); $studentuids = $lehrelisthelper->getStudentUids(); diff --git a/cis/private/lehre/covidstatusliste.php b/cis/private/lehre/covidstatusliste.php index a3e3898d7..ea8cfe7e8 100644 --- a/cis/private/lehre/covidstatusliste.php +++ b/cis/private/lehre/covidstatusliste.php @@ -62,7 +62,10 @@ if( !$berechtigung->isBerechtigt('admin') isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL; -$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $lehreinheit); +$stg = new studiengang(); +$stg->load($this->lv->studiengang_kz); + +$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $stg, $lehreinheit); $arr_lehrende = $lehrelisthelper->getArr_Lehrende(); $data = $lehrelisthelper->getData(); $studentuids = $lehrelisthelper->getStudentUids(); diff --git a/include/lehrelisthelper.class.php b/include/lehrelisthelper.class.php index 610a11f7b..619b112f1 100644 --- a/include/lehrelisthelper.class.php +++ b/include/lehrelisthelper.class.php @@ -40,6 +40,7 @@ class LehreListHelper protected $lvid; protected $lv; protected $lehreinheit; + protected $stg; protected $arr_lehrende; protected $studentuids; @@ -50,13 +51,14 @@ class LehreListHelper protected $raum_string; public function __construct(basis_db $db, $studiensemester, $lvid, - lehrveranstaltung $lv, $lehreinheit='') + lehrveranstaltung $lv, studiengang $stg, $lehreinheit='') { $this->db = $db; $this->studiensemester = $studiensemester; $this->lvid = $lvid; $this->lv = $lv; $this->lehreinheit = $lehreinheit; + $this->stg = $stg; $this->arr_lehrende = array(); $this->studentuids = array(); @@ -153,12 +155,9 @@ class LehreListHelper protected function initData() { - $stg = new studiengang(); - $stg->load($this->lv->studiengang_kz); + $studiengang_bezeichnung=$this->stg->bezeichnung; - $studiengang_bezeichnung=$stg->bezeichnung; - - $stg->getAllTypes(); + $this->stg->getAllTypes(); $this->data = array( 'gruppen'=>$this->gruppen_string, @@ -166,7 +165,7 @@ class LehreListHelper 'lehrveranstaltung_id'=>$this->lv->lehrveranstaltung_id, 'studiengang'=>$studiengang_bezeichnung, 'studiengang_kz'=>$this->lv->studiengang_kz, - 'typ'=>$stg->studiengang_typ_arr[$stg->typ], + 'typ'=>$this->stg->studiengang_typ_arr[$this->stg->typ], 'ects'=>$this->lv->ects, 'sprache'=>$this->lv->sprache, 'studiensemester'=>$this->studiensemester, From 12f7f43e65407e5d8492873eaf2010471b5e9e66 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Mon, 1 Nov 2021 15:52:52 +0100 Subject: [PATCH 4/4] fix copy paste error --- cis/private/lehre/anwesenheitsliste.pdf.php | 2 +- cis/private/lehre/covidstatusliste.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index 6152b885d..065820c91 100644 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -66,7 +66,7 @@ isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL; $stg = new studiengang(); -$stg->load($this->lv->studiengang_kz); +$stg->load($lv->studiengang_kz); $doc = new dokument_export('Anwesenheitslist'); diff --git a/cis/private/lehre/covidstatusliste.php b/cis/private/lehre/covidstatusliste.php index ea8cfe7e8..8e9b07fa1 100644 --- a/cis/private/lehre/covidstatusliste.php +++ b/cis/private/lehre/covidstatusliste.php @@ -63,7 +63,7 @@ isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL; $stg = new studiengang(); -$stg->load($this->lv->studiengang_kz); +$stg->load($lv->studiengang_kz); $lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $stg, $lehreinheit); $arr_lehrende = $lehrelisthelper->getArr_Lehrende();
Studentlfd.Nr.Name Kennzeichen Gruppe Covid-Status
getIconHtml($tmpstudent['uid']); ?>