Merge branch 'master' into feature-15391/Positive_Zeitsperre

This commit is contained in:
Cris
2022-02-10 10:51:08 +01:00
28 changed files with 393 additions and 247 deletions
+16 -1
View File
@@ -1186,7 +1186,22 @@ class betriebsmittel extends basis_db
//Kartennummern die im Hex-Format sind werden umgewandelt
if (!is_numeric($kartennummer))
{
$kartennummer=substr($kartennummer,strlen($kartennummer)-2,2).substr($kartennummer,strlen($kartennummer)-4,2). substr($kartennummer,strlen($kartennummer)-6,2).substr($kartennummer,0,2);
$tmp_kn_str = null;
for ($i=0; strlen($kartennummer) > $i; $i+=2) {
#wenn die strlen($kartennummer) gerade ist (TW hat 8 Stellen, FHB 14 Stellen)
$tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+2),2);
//#wenn ich ungerade und der letzte Durchgang ist dann nur mehr die eine Nummer nach vorne
//if ((strlen($kartennummer)%2 != 0) && ($i+2 > strlen($kartennummer))) {
// $tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+1),1);
//#sonst normal immer 2 stellen nach vorne ruecken
//} else {
// $tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+2),2);
//}
}
$kartennummer = $tmp_kn_str;
$kartennummer=hexdec( $kartennummer);
}
+36 -28
View File
@@ -455,42 +455,50 @@ function intersect($str1, $str2)
* Konvertiert Problematische Sonderzeichen in Strings fuer
* Accountnamen und EMail-Aliase
*
* @param $str
* @return bereinigter String
* @param string $str Inputparameter.
* @return string bereinigter String.
*/
function convertProblemChars($str)
{
$enc = 'UTF-8';
$acentos = array(
'A' => '/À|Á|Â|Ã|Å/',
'Ae' => '/Ä/',
'a' => '/à|á|â|ã|å/',
'ae'=> '/ä/',
'C' => '/Ç/',
'c' => '/ç/',
'E' => '/È|É|Ê|Ë/',
'e' => '/è|é|ê|ë/',
'I' => '/Ì|Í|Î|Ï/',
'i' => '/ì|í|î|ï/',
'N' => '/Ñ/',
'n' => '/ñ/',
'O' => '/Ò|Ó|Ô|Õ/',
'Oe' => '/Ö/',
'o' => '/ò|ó|ô|õ/',
'oe' => '/ö/',
'U' => '/Ù|Ú|Û/',
'Ue' => '/Ü/',
'u' => '/ù|ú|û/',
'ue' => '/ü/',
'Y' => '/Ý/',
'y' => '/ý|ÿ/',
'a.' => '/ª/',
'o.' => '/º/',
'ss' => '/ß/'
'A' => '/À|Á|Â|Ã|Å|Ă|Ǎ/',
'Ae' => '/Ä/',
'a' => '/à|á|â|ã|å|ă|ǎ/',
'ae' => '/ä/',
'C' => '/Ç|Č/',
'c' => '/ç|č/',
'E' => '/È|É|Ê|Ë/',
'e' => '/è|é|ê|ë/',
'I' => '/Ì|Í|Î|Ï/',
'i' => '/ì|í|î|ï/',
'N' => '/Ñ|Ň|ň/',
'n' => '/ñ/',
'O' => '/Ò|Ó|Ô|Õ/',
'Oe' => '/Ö/',
'o' => '/ò|ó|ô|õ/',
'oe' => '/ö/',
'R' => '/Ř/',
'r' => '/ř/',
'S' => '/Š/',
's' => '/š/',
'T' => '/Ť/',
't' => '/ť/',
'U' => '/Ù|Ú|Û|Ŭ|Ǔ/',
'Ue' => '/Ü/',
'u' => '/ù|ú|û|ŭ|ǔ/',
'ue' => '/ü/',
'Y' => '/Ý/',
'y' => '/ý|ÿ/',
'Z' => '/Ž/',
'z' => '/ž/',
'a.' => '/ª/',
'o.' => '/º/',
'ss' => '/ß/'
);
return preg_replace($acentos, array_keys($acentos), htmlentities($str,ENT_NOQUOTES, $enc));
return preg_replace($acentos, array_keys($acentos), htmlentities($str, ENT_NOQUOTES | ENT_HTML5, $enc));
}
//Ersetzt alle Problemzeichen in einem String bevor dieser als xml oder rdf ausgegeben wird
+30 -31
View File
@@ -41,16 +41,16 @@ class LehreListHelper
protected $lv;
protected $lehreinheit;
protected $stg;
protected $arr_lehrende;
protected $studentuids;
protected $data;
protected $gruppen_string;
protected $lehrende_string;
protected $raum_string;
public function __construct(basis_db $db, $studiensemester, $lvid,
public function __construct(basis_db $db, $studiensemester, $lvid,
lehrveranstaltung $lv, studiengang $stg, $lehreinheit='')
{
$this->db = $db;
@@ -63,39 +63,39 @@ class LehreListHelper
$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()
public function getData()
{
return $this->data;
}
public function getStudentUids()
public function getStudentUids()
{
return $this->studentuids;
}
public function getArr_Lehrende()
public function getArr_Lehrende()
{
return $this->arr_lehrende;
}
public function getLehrende_String()
{
return $this->lehrende_string;
}
protected function loadMemberGroups()
protected function loadMemberGroups()
{
// Teilnehmende Gruppen laden
$qry = "SELECT DISTINCT ON(kuerzel, semester, verband, gruppe, gruppe_kurzbz)
@@ -124,7 +124,7 @@ class LehreListHelper
}
}
}
protected function loadPlannedRooms()
{
// Verplante Räume laden
@@ -153,7 +153,7 @@ class LehreListHelper
}
}
}
protected function initData()
{
$studiengang_bezeichnung=$this->stg->bezeichnung;
@@ -175,8 +175,8 @@ class LehreListHelper
'raum'=>$this->raum_string,
);
}
protected function loadLehrende()
protected function loadLehrende()
{
//Lehrende der LV laden und in ein Array schreiben
$lehrende = new lehreinheitmitarbeiter();
@@ -187,24 +187,25 @@ class LehreListHelper
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
$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()
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,
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
tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz,
(CASE WHEN bis.tbl_mobilitaet.studiensemester_kurzbz = vw_student_lehrveranstaltung.studiensemester_kurzbz THEN 1 ELSE 0 END) as doubledegree
FROM
campus.vw_student_lehrveranstaltung
JOIN public.tbl_benutzer USING(uid)
@@ -224,7 +225,7 @@ class LehreListHelper
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';
$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis, doubledegree DESC';
$stsem_obj = new studiensemester();
$stsem_obj->load($this->studiensemester);
@@ -265,14 +266,12 @@ class LehreListHelper
if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende
$zusatz.='(a.o.)';
if($row->mobilitaetstyp_kurzbz !='') //Double Degree Student
$zusatz.='(d.d.)';
if(($row->mobilitaetstyp_kurzbz != '') && ($row->doubledegree == 1)) //Double Degree Student
$zusatz .= '(d.d.)';
//$zusatz.='test';
$this->studentuids[] = $row->student_uid;
$this->data[]=array('student'=>array(
'uid' => $row->student_uid,
'uid' => $row->student_uid,
'vorname'=>$row->vorname,
'nachname'=>$row->nachname,
'personenkennzeichen'=>trim($row->matrikelnr),
+1 -1
View File
@@ -482,7 +482,7 @@ class zeitsperre extends basis_db
$qry = "select datum::date, freigabevon, zeitsperretyp_kurzbz
from (SELECT generate_series(vondatum::timestamp, bisdatum::timestamp, '1 day') as datum, freigabevon, mitarbeiter_uid, zeitsperretyp_kurzbz FROM campus.tbl_zeitsperre where vonstunde is null and bisstunde is null) a
where a.mitarbeiter_uid = ".$this->db_add_param($uid)." and datum>(now() - interval '".$anz_tage." Days') and zeitsperretyp_kurzbz in ('Krank','Urlaub', 'ZA', 'DienstV','PflegeU', 'DienstF')";
where a.mitarbeiter_uid = ".$this->db_add_param($uid)." and datum>(now() - interval '".$anz_tage." Days') and zeitsperretyp_kurzbz in ('Krank','Urlaub', 'ZA', 'DienstV','PflegeU', 'DienstF','CovidSB','CovidKS')";