Merge branch 'master' into feature-6237/Phrases_system_MkIII

This commit is contained in:
Paolo
2022-04-13 14:26:21 +02:00
337 changed files with 2032 additions and 11388 deletions
+14
View File
@@ -1182,4 +1182,18 @@ function generateUniqueToken($length = 64)
return $token;
}
/**
* Berechnet die Anzahl von ganzen Tagen zwischen zwei Daten
* @param string $date1 Datum im Format '2022-02-22'.
* @param string $date2 Datum im Format '2022-04-22'.
* @return Anzahl der Tage
*/
function anzahlTage($date1, $date2)
{
$date1_ts = strtotime($date1);
$date2_ts = strtotime($date2);
$diff = $date2_ts - $date1_ts;
return round($diff / 86400);
}
?>
+40 -9
View File
@@ -553,31 +553,38 @@ class konto extends basis_db
/**
* Überprüft, ob das Konto einer Person ausgeglichen ist, oder ob noch Zahlungen offen sind
* @param $person_id ID der Person, die geprüft werden soll
* @return true wenn ausgeglichen, false wenn Zahlungen offen, false mit errormsg wenn ein Fehler aufgetreten ist
* @param int $person_id ID der Person, die geprüft werden soll.
* @param bool $aktuelleBuchungenOnly True, wenn nur Zahlungen mit Buchungsdatum <= aktuelles Datum berücksichtigt werden sollen.
* @return boolean true wenn ausgeglichen, false wenn Zahlungen offen, false mit errormsg wenn ein Fehler aufgetreten ist
*/
public function checkKontostand($person_id)
public function checkKontostand($person_id, $aktuelleBuchungenOnly = false)
{
$qry="SELECT sum(betrag) as summe FROM public.tbl_konto WHERE person_id=".$this->db_add_param($person_id);
if($result=$this->db_query($qry))
$qry = "SELECT sum(betrag) as summe
FROM public.tbl_konto
WHERE person_id=".$this->db_add_param($person_id);
if($aktuelleBuchungenOnly)
$qry .= " AND buchungsdatum <= now()";
if ($result = $this->db_query($qry))
{
if($row=$this->db_fetch_object())
if ($row = $this->db_fetch_object())
{
if($row->summe>=0)
if ($row->summe >= 0)
return true;
else
return false;
}
else
{
$this->errormsg = "Fehler beim Holen der Daten";
return false;
$this->errormsg="Fehler beim Holen der Daten";
}
}
else
{
$this->errormsg = "Fehler bei der Datenbankabfrage";
return false;
$this->errormsg="Fehler bei der Datenbankabfrage";
}
}
@@ -957,6 +964,30 @@ class konto extends basis_db
return false;
}
}
public function checkDoppelteBuchung($person_ids, $stsem, $typ)
{
$qry = "SELECT betrag
FROM public.tbl_konto
JOIN public.tbl_benutzer benutzer USING(person_id)
WHERE person_id IN (".$this->implode4SQL(array_filter($person_ids)).")
AND studiensemester_kurzbz = ".$this->db_add_param($stsem)."
AND buchungstyp_kurzbz = ".$this->db_add_param($typ)."
GROUP BY buchungsnr";
if ($result = $this->db_query($qry))
{
if ($this->db_num_rows($result) > 0)
return true;
else
return false;
}
else
{
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
return false;
}
}
}
?>
+14 -6
View File
@@ -202,9 +202,12 @@ class LehreListHelper
$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,
(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, tbl_zeugnisnote.note,
(CASE WHEN bis.tbl_mobilitaet.studiensemester_kurzbz = vw_student_lehrveranstaltung.studiensemester_kurzbz THEN 1 ELSE 0 END) as doubledegree
FROM
campus.vw_student_lehrveranstaltung
@@ -212,7 +215,9 @@ class LehreListHelper
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_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)
@@ -254,8 +259,10 @@ class LehreListHelper
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').')';
//Outgoing
if($row->bisio_id != '' && $row->status != 'Incoming' && ($row->bis > $stsemdatumvon || $row->bis == '')
&& $row->von < $stsemdatumbis && (anzahlTage($row->von, $row->bis) >= 30))
$zusatz .= '(o)(ab '.$datum->formatDatum($row->von, 'd.m.Y').')';
if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen
$zusatz.= '('. $row->anmerkung. ')';
@@ -281,7 +288,8 @@ class LehreListHelper
'gruppe'=>trim($row->gruppe),
'zusatz'=>$zusatz,
'studiengang_kurzbz'=>$row->kurzbzlang,
'mobilitaetstyp_kurzbz'=>$row->mobilitaetstyp_kurzbz
'mobilitaetstyp_kurzbz'=>$row->mobilitaetstyp_kurzbz,
'note'=>$row->note
));
}
}
+18 -3
View File
@@ -834,11 +834,26 @@ class prestudent extends person
$stg_obj = new studiengang();
$stg_obj->load($studiengang_kz);
if($stg_obj->typ=='m')
$qry.=" AND a.rolle='Interessent' AND a.zgvmas_code is not null AND a.zgvmas_erfuellt = 't'";
{
$qry.=" AND a.rolle='Interessent' AND a.zgvmas_code is not null";
if (defined('ZGV_ERFUELLT_ANZEIGEN') && ZGV_ERFUELLT_ANZEIGEN)
$qry .= " AND a.zgvmas_erfuellt = 't'";
}
elseif($stg_obj->typ=='p')
$qry.=" AND a.rolle='Interessent' AND a.zgvdoktor_code is not null AND a.zgvdoktor_erfuellt = 't'";
{
$qry.=" AND a.rolle='Interessent' AND a.zgvdoktor_code is not null";
if (defined('ZGV_DOKTOR_ANZEIGEN') && ZGV_DOKTOR_ANZEIGEN)
$qry .= " AND a.zgvdoktor_erfuellt = 't'";
}
else
$qry.=" AND a.rolle='Interessent' AND a.zgv_code is not null AND a.zgv_erfuellt = 't'";
{
$qry.=" AND a.rolle='Interessent' AND a.zgv_code is not null";
if (defined('ZGV_ERFUELLT_ANZEIGEN') && ZGV_ERFUELLT_ANZEIGEN)
$qry .= " AND a.zgv_erfuellt = 't'";
}
break;
case "reihungstestangemeldet":
$qry.="
+5 -1
View File
@@ -256,7 +256,7 @@ class zeugnisnote extends basis_db
* $studiensemester_kurzbz
* @return true wenn ok, false wenn Fehler
*/
public function getZeugnisnoten($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz)
public function getZeugnisnoten($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz, $nichtAnzeigen = null)
{
$where='';
if($lehrveranstaltung_id!=null)
@@ -265,6 +265,8 @@ class zeugnisnote extends basis_db
$where.=" AND uid=".$this->db_add_param($student_uid);
if($studiensemester_kurzbz!=null)
$where.=" AND vw_student_lehrveranstaltung.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
if ($nichtAnzeigen != null)
$where.=" AND tbl_note.anmerkung NOT IN (".$this->db_implode4SQL($nichtAnzeigen).")";
$where2='';
if($lehrveranstaltung_id!=null)
$where2.=" AND lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
@@ -272,6 +274,8 @@ class zeugnisnote extends basis_db
$where2.=" AND student_uid=".$this->db_add_param($student_uid);
if($studiensemester_kurzbz!=null)
$where2.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
if ($nichtAnzeigen != null)
$where2.=" AND tbl_note.anmerkung NOT IN (".$this->db_implode4SQL($nichtAnzeigen).")";
$qry = "SELECT vw_student_lehrveranstaltung.lehrveranstaltung_id, uid,
vw_student_lehrveranstaltung.studiensemester_kurzbz, note, punkte, uebernahmedatum, benotungsdatum,