mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-22 09:22:22 +00:00
Merge branch 'master' into feature-6050/Stundensatz_vorschlag
This commit is contained in:
@@ -16,8 +16,8 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
/**
|
||||
* Klasse bankverbindung
|
||||
@@ -47,6 +47,7 @@ class bankverbindung extends basis_db
|
||||
public $updateamum; // timestamp
|
||||
public $updatevon; // bigint
|
||||
public $oe_kurzbz; // string
|
||||
public $orgform_kurzbz; // string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
@@ -95,6 +96,7 @@ class bankverbindung extends basis_db
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->ext_id = $row->ext_id;
|
||||
$this->oe_kurzbz = $row->oe_kurzbz;
|
||||
$this->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -176,19 +178,20 @@ class bankverbindung extends basis_db
|
||||
//Neuen Datensatz einfuegen
|
||||
|
||||
$qry = 'BEGIN;INSERT INTO public.tbl_bankverbindung (person_id, name, anschrift, blz, bic,
|
||||
kontonr, iban, typ, oe_kurzbz, verrechnung, insertamum, insertvon, updateamum, updatevon) VALUES('.
|
||||
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->name).', '.
|
||||
$this->db_add_param($this->anschrift).', '.
|
||||
$this->db_add_param($this->blz).', '.
|
||||
$this->db_add_param($this->bic).', '.
|
||||
$this->db_add_param($this->kontonr).', '.
|
||||
$this->db_add_param($this->iban).', '.
|
||||
$this->db_add_param($this->typ).', '.
|
||||
$this->db_add_param($this->oe_kurzbz).', '.
|
||||
$this->db_add_param($this->verrechnung, FHC_BOOLEAN).', now(), '.
|
||||
$this->db_add_param($this->insertvon).', now(), '.
|
||||
$this->db_add_param($this->updatevon).');';
|
||||
kontonr, iban, typ, oe_kurzbz, orgform_kurzbz, verrechnung, insertamum, insertvon, updateamum, updatevon) VALUES('.
|
||||
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->name).', '.
|
||||
$this->db_add_param($this->anschrift).', '.
|
||||
$this->db_add_param($this->blz).', '.
|
||||
$this->db_add_param($this->bic).', '.
|
||||
$this->db_add_param($this->kontonr).', '.
|
||||
$this->db_add_param($this->iban).', '.
|
||||
$this->db_add_param($this->typ).', '.
|
||||
$this->db_add_param($this->oe_kurzbz).', '.
|
||||
$this->db_add_param($this->orgform_kurzbz).', '.
|
||||
$this->db_add_param($this->verrechnung, FHC_BOOLEAN).', now(), '.
|
||||
$this->db_add_param($this->insertvon).', now(), '.
|
||||
$this->db_add_param($this->updatevon).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -212,6 +215,7 @@ class bankverbindung extends basis_db
|
||||
'typ='.$this->db_add_param($this->typ).', '.
|
||||
'verrechnung='.$this->db_add_param($this->verrechnung,FHC_BOOLEAN).', '.
|
||||
'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', '.
|
||||
'orgform_kurzbz='.$this->db_add_param($this->orgform_kurzbz).', '.
|
||||
'updateamum='.$this->db_add_param($this->updateamum).','.
|
||||
'updatevon='.$this->db_add_param($this->updatevon).' '.
|
||||
'WHERE bankverbindung_id='.$this->db_add_param($this->bankverbindung_id).';';
|
||||
@@ -315,6 +319,7 @@ class bankverbindung extends basis_db
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -328,11 +333,12 @@ class bankverbindung extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Bankverbindung einer Organisationseinheit
|
||||
* @param $person_id
|
||||
* Laedt die Bankverbindung einer Organisationseinheit und optional einer OrgForm
|
||||
* @param string $oe_kurzbz
|
||||
* @param string $orgform_kurzbz
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function load_oe($oe_kurzbz)
|
||||
public function load_oe($oe_kurzbz, $orgform_kurzbz = null)
|
||||
{
|
||||
if($oe_kurzbz==null || $oe_kurzbz=='')
|
||||
{
|
||||
@@ -342,6 +348,11 @@ class bankverbindung extends basis_db
|
||||
|
||||
$qry = "SELECT * FROM public.tbl_bankverbindung WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz);
|
||||
|
||||
if($orgform_kurzbz != '')
|
||||
{
|
||||
$qry .= " AND orgform_kurzbz=".$this->db_add_param($orgform_kurzbz);
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
@@ -364,6 +375,7 @@ class bankverbindung extends basis_db
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -412,6 +424,7 @@ class bankverbindung extends basis_db
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->ext_id = $row->ext_id;
|
||||
$this->oe_kurzbz = $row->oe_kurzbz;
|
||||
$this->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -618,6 +618,7 @@ class bisverwendung extends basis_db
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
|
||||
$obj = new bisverwendung();
|
||||
|
||||
$obj->bisverwendung_id = $row->bisverwendung_id;
|
||||
@@ -650,5 +651,95 @@ class bisverwendung extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Prueft, ob Mitarbeiter habilitiert ist
|
||||
* @param $uid UID des Mitarbeiters
|
||||
* @return bool
|
||||
*/
|
||||
public function isHabilitiert($uid)
|
||||
{
|
||||
$qry = '
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
bis.tbl_bisverwendung
|
||||
WHERE
|
||||
mitarbeiter_uid = '. $this->db_add_param($uid). '
|
||||
AND
|
||||
habilitation = true;
|
||||
';
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
return $this->db_num_rows() > 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt alle Verwendungen eines Mitarbeiters innerhalb des BIS Meldungszeitraums
|
||||
* @param $uid UID des Mitarbeiters
|
||||
* @param $stichtag
|
||||
* @return bool
|
||||
*/
|
||||
public function getVerwendungenBISMeldung($uid, $stichtag)
|
||||
{
|
||||
$datetime = new DateTime($stichtag);
|
||||
$stichtag = $datetime->format('Y-m-d');
|
||||
$bismeldung_jahr = $datetime->format('Y');
|
||||
|
||||
$qry = '
|
||||
SELECT
|
||||
*,
|
||||
CASE
|
||||
WHEN (beginn is null OR beginn < make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1))
|
||||
THEN make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1)
|
||||
ELSE beginn
|
||||
END as beginn_imBISMeldungsJahr,
|
||||
CASE
|
||||
WHEN (ende is null OR ende > make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 12, 31))
|
||||
THEN make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 12, 31)
|
||||
ELSE ende
|
||||
END as ende_imBISMeldungsJahr
|
||||
FROM
|
||||
bis.tbl_bisverwendung
|
||||
JOIN bis.tbl_beschaeftigungsart1 USING (ba1code)
|
||||
WHERE
|
||||
mitarbeiter_uid = '. $this->db_add_param($uid).'
|
||||
AND (beginn <= '. $this->db_add_param($stichtag).' OR beginn is null)
|
||||
AND (ende >= make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1) OR ende is null)
|
||||
ORDER BY ende
|
||||
';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new StdClass();
|
||||
|
||||
$obj->bisverwendung_id = $row->bisverwendung_id;
|
||||
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$obj->vertragsstunden = $row->vertragsstunden;
|
||||
$obj->ba1code = $row->ba1code_bis;
|
||||
$obj->ba2code = $row->ba2code;
|
||||
$obj->verwendung_code = $row->verwendung_code;
|
||||
$obj->beschausmasscode = $row->beschausmasscode;
|
||||
$obj->hauptberufcode = $row->hauptberufcode;
|
||||
$obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
|
||||
$obj->beginn = $row->beginn;
|
||||
$obj->ende = $row->ende;
|
||||
$obj->beginn_imBISMeldungsJahr = $row->beginn_imbismeldungsjahr;
|
||||
$obj->ende_imBISMeldungsJahr = $row->ende_imbismeldungsjahr;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
+1096
-889
File diff suppressed because it is too large
Load Diff
@@ -257,6 +257,60 @@ class lehreinheit extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle vorhandenen Lehreinheiten zu einer Lehrveranstaltung
|
||||
*
|
||||
* @param $lehrveranstaltung_id
|
||||
* @return bool
|
||||
*/
|
||||
public function load_all_lehreinheiten($lehrveranstaltung_id)
|
||||
{
|
||||
$this->lehreinheiten = array();
|
||||
$this->errormsg ='';
|
||||
|
||||
$qry = "SELECT * FROM lehre.tbl_lehreinheit WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
ORDER BY lehreinheit_id;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$le_obj = new lehreinheit();
|
||||
|
||||
$le_obj->lehreinheit_id = $row->lehreinheit_id;
|
||||
$le_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$le_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$le_obj->lehrfach_id = $row->lehrfach_id;
|
||||
$le_obj->lehrform_kurzbz = $row->lehrform_kurzbz;
|
||||
$le_obj->stundenblockung = $row->stundenblockung;
|
||||
$le_obj->wochenrythmus = $row->wochenrythmus;
|
||||
$le_obj->start_kw = $row->start_kw;
|
||||
$le_obj->raumtyp = $row->raumtyp;
|
||||
$le_obj->raumtypalternativ = $row->raumtypalternativ;
|
||||
$le_obj->lehre = $this->db_parse_bool($row->lehre);
|
||||
$le_obj->anmerkung = $row->anmerkung;
|
||||
$le_obj->unr = $row->unr;
|
||||
$le_obj->lvnr = $row->lvnr;
|
||||
$le_obj->sprache = $row->sprache;
|
||||
$le_obj->insertamum = $row->insertamum;
|
||||
$le_obj->insertvon = $row->insertvon;
|
||||
$le_obj->updateamum = $row->updateamum;
|
||||
$le_obj->updatevon = $row->updatevon;
|
||||
$le_obj->ext_id = $row->ext_id;
|
||||
$le_obj->gewicht = $row->gewicht;
|
||||
|
||||
$this->lehreinheiten[] = $le_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Lehreinheiten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Variablen vor dem Speichern
|
||||
* auf Gueltigkeit.
|
||||
|
||||
@@ -44,6 +44,8 @@ class lehreinheitmitarbeiter extends basis_db
|
||||
public $ext_id; // bigint
|
||||
public $vertrag_id;
|
||||
|
||||
public $result = array();
|
||||
|
||||
/**
|
||||
* Konstruktor - Laedt optional einee LEMitarbeiterzuordnung
|
||||
* @param $lehreinheit_id
|
||||
@@ -495,6 +497,116 @@ class lehreinheitmitarbeiter extends basis_db
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ladet Semesterwochenstunden-Summe eines Mitarbeiters eines Semesters.
|
||||
* Nur bisrelevante SWS.
|
||||
* @param String $uid
|
||||
* @param String $studiensemester
|
||||
* @return bool
|
||||
*/
|
||||
public function getLehreinheiten_SWS_BISMeldung($uid, $studiensemester)
|
||||
{
|
||||
$qry = '
|
||||
SELECT
|
||||
round(sum(semesterstunden) / 15) AS sws
|
||||
FROM (
|
||||
SELECT DISTINCT lehreinheit_id, studiensemester_kurzbz, mitarbeiter_uid, semesterstunden
|
||||
FROM lehre.tbl_lehreinheitmitarbeiter lema
|
||||
JOIN public.tbl_mitarbeiter ma USING (mitarbeiter_uid)
|
||||
JOIN public.tbl_benutzer ON (mitarbeiter_uid = uid)
|
||||
JOIN public.tbl_person USING (person_id)
|
||||
JOIN bis.tbl_bisverwendung USING (mitarbeiter_uid)
|
||||
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
|
||||
JOIN public.tbl_studiensemester ss USING (studiensemester_kurzbz)
|
||||
WHERE mitarbeiter_uid = '. $this->db_add_param($uid).'
|
||||
AND lema.bismelden
|
||||
AND studiensemester_kurzbz = '. $this->db_add_param($studiensemester).'
|
||||
) tbl_semesterstunden
|
||||
';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->result[] = $row->sws;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ladet Semesterwochenstunden-Summe gruppiert nach Studiengang und Studiensemester.
|
||||
* Es werden die Studiensemester herangezogen, die im Zeitraum zwischen beginn und ende beginnen.
|
||||
* @param String $uid
|
||||
* @param String $beginn
|
||||
* @param String $ende
|
||||
* @return bool
|
||||
*/
|
||||
public function get_SWS_groupByStg($uid, $beginn, $ende)
|
||||
{
|
||||
$beginn = new DateTime($beginn);
|
||||
$ende = new DateTime($ende);
|
||||
|
||||
$qry = '
|
||||
WITH semester_sws_tbl AS (
|
||||
SELECT DISTINCT lehreinheit_id, studiensemester_kurzbz, lema.semesterstunden, stg.studiengang_kz
|
||||
FROM lehre.tbl_lehreinheitmitarbeiter lema
|
||||
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_studienplan_lehrveranstaltung USING (lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_studienplan USING (studienplan_id)
|
||||
JOIN lehre.tbl_studienordnung sto USING (studienordnung_id)
|
||||
JOIN public.tbl_studiengang stg ON stg.studiengang_kz = sto.studiengang_kz
|
||||
JOIN public.tbl_studiensemester ss USING (studiensemester_kurzbz)
|
||||
WHERE mitarbeiter_uid = '. $this->db_add_param($uid). '
|
||||
AND (
|
||||
ss.start BETWEEN
|
||||
'. $this->db_add_param($beginn->format('Y-m-d')). ' AND
|
||||
'. $this->db_add_param($ende->format('Y-m-d')). ')
|
||||
-- nur lehre, die bisgemeldet wird
|
||||
AND lema.bismelden
|
||||
-- keine lehreinheiten ohne semesterstunden
|
||||
AND lema.semesterstunden != 0
|
||||
)
|
||||
|
||||
SELECT
|
||||
studiengang_kz,
|
||||
studiensemester_kurzbz,
|
||||
sum(semesterstunden) AS summe,
|
||||
round(sum(semesterstunden) / 15, 2) AS sws
|
||||
FROM
|
||||
semester_sws_tbl
|
||||
GROUP BY
|
||||
studiengang_kz,
|
||||
studiensemester_kurzbz
|
||||
ORDER BY
|
||||
studiengang_kz;
|
||||
';
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new StdClass();
|
||||
$obj->studiengang_kz = $row->studiengang_kz;
|
||||
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$obj->sws = $row->sws;
|
||||
$this->result []= $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Lektoren einer Lehrveranstaltung in einem Studiensemester
|
||||
* @param lehrveranstaltung_id
|
||||
|
||||
@@ -1539,5 +1539,56 @@ class mitarbeiter extends benutzer
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt alle Mitarbeiter zurück, die im BIS Meldungszeitraum bisgemeldet sind
|
||||
* @param String $stichtag BIS Meldung Stichtag
|
||||
* @return boolean
|
||||
*/
|
||||
public function getMitarbeiterBISMeldung($stichtag)
|
||||
{
|
||||
$datetime = new DateTime($stichtag);
|
||||
$bismeldung_jahr = $datetime->format('Y');
|
||||
|
||||
$qry = '
|
||||
SELECT DISTINCT ON (UID) *,
|
||||
transform_geschlecht(tbl_person.geschlecht, tbl_person.gebdatum) as geschlecht_imputiert
|
||||
FROM
|
||||
public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN bis.tbl_bisverwendung USING(mitarbeiter_uid)
|
||||
JOIN bis.tbl_beschaeftigungsausmass USING(beschausmasscode)
|
||||
WHERE
|
||||
bismelden
|
||||
AND personalnummer > 0
|
||||
AND (beginn <= make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 12, 31) OR beginn is null)
|
||||
AND (tbl_bisverwendung.ende is NULL OR tbl_bisverwendung.ende >= make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1))
|
||||
ORDER BY uid, nachname, vorname
|
||||
';
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new StdClass();
|
||||
|
||||
$obj->uid = $row->uid;
|
||||
$obj->vorname = $row->vorname;
|
||||
$obj->vornamen = $row->vornamen;
|
||||
$obj->nachname = $row->nachname;
|
||||
$obj->gebdatum = $row->gebdatum;
|
||||
$obj->geschlecht = $row->geschlecht;
|
||||
$obj->geschlechtX = $row->geschlecht_imputiert;
|
||||
$obj->staatsbuergerschaft = $row->staatsbuergerschaft;
|
||||
$obj->personalnummer = $row->personalnummer;
|
||||
$obj->ausbildungcode = $row->ausbildungcode;
|
||||
|
||||
$this->result []= $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -420,6 +420,69 @@ class prestudent extends person
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laden aller Prestudenten, die an $datum zum Reihungstest geladen sind.
|
||||
* Wenn es mehrere Bewerbungen für ein Person gibt, wird nur die höchste Prestudent_id zurückgeliefert
|
||||
* @param string $datum Datum in der Form YYYY-MM-DD an dem der Reihungstest stattfindet
|
||||
* @return true wenn erfolgreich, false im Fehlerfall
|
||||
*/
|
||||
public function getFirstPrioPrestudentRT($datum)
|
||||
{
|
||||
$sql_query='SELECT DISTINCT
|
||||
ps.prestudent_id,
|
||||
pers.vorname, pers.nachname, pers.person_id, pers.titelpre,
|
||||
pers.titelpost, pers.gebdatum,
|
||||
tbl_reihungstest.*,
|
||||
ps.studiengang_kz as studiengang_kz,
|
||||
tbl_studiengang.typ
|
||||
FROM
|
||||
public.tbl_prestudent ps
|
||||
JOIN public.tbl_person pers USING (person_id)
|
||||
JOIN public.tbl_rt_person USING (person_id)
|
||||
JOIN public.tbl_reihungstest ON (tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id)
|
||||
JOIN public.tbl_studiengang ON (ps.studiengang_kz=tbl_studiengang.studiengang_kz)
|
||||
JOIN public.tbl_prestudentstatus ON (tbl_prestudentstatus.prestudent_id=ps.prestudent_id
|
||||
AND status_kurzbz=\'Interessent\'
|
||||
AND tbl_prestudentstatus.studiensemester_kurzbz=tbl_reihungstest.studiensemester_kurzbz)
|
||||
WHERE
|
||||
tbl_reihungstest.datum='.$this->db_add_param($datum).'
|
||||
/*AND tbl_rt_person.studienplan_id IN (SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=ps.prestudent_id)*/
|
||||
AND tbl_prestudentstatus.studienplan_id IN (SELECT studienplan_id FROM public.tbl_rt_studienplan WHERE reihungstest_id=tbl_rt_person.rt_id)
|
||||
AND EXISTS(SELECT * FROM public.tbl_prestudentstatus JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE prestudent_id=ps.prestudent_id AND tbl_studiensemester.ende > '.$this->db_add_param($datum).')
|
||||
AND priorisierung = (SELECT priorisierung FROM public.tbl_prestudent
|
||||
WHERE person_id = pers.person_id
|
||||
AND get_rolle_prestudent (ps.prestudent_id,NULL) IN (\'Interessent\',\'Bewerber\',\'Wartender\',\'Aufgenommener\')
|
||||
--AND tbl_prestudent.studiengang_kz=ps.studiengang_kz
|
||||
ORDER BY priorisierung ASC LIMIT 1)
|
||||
ORDER BY nachname,vorname';
|
||||
|
||||
if(!$this->db_query($sql_query))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->num_rows=0;
|
||||
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$ps=new prestudent();
|
||||
$ps->prestudent_id = $row->prestudent_id;
|
||||
$ps->person_id = $row->person_id;
|
||||
$ps->reihungstest_id = $row->reihungstest_id;
|
||||
$ps->titelpost = $row->titelpost;
|
||||
$ps->titelpre = $row->titelpre;
|
||||
$ps->nachname = $row->nachname;
|
||||
$ps->vorname = $row->vorname;
|
||||
$ps->gebdatum = $row->gebdatum;
|
||||
$ps->studiengang_kz = $row->studiengang_kz;
|
||||
$this->result[]=$ps;
|
||||
$this->num_rows++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt über einen Prestudenten alle anderen Prestudenten einer Person, die aktuell an STG interessiert sind.
|
||||
* @integer $prestudent_id Prestudent ID, über die alle weiteren Prestudenten ermittelt werden sollen.
|
||||
@@ -436,11 +499,12 @@ class prestudent extends person
|
||||
SELECT DISTINCT ON (priorisierung, prestudent_id)
|
||||
priorisierung,
|
||||
prestudent_id,
|
||||
studienplan_id,
|
||||
tbl_prestudentstatus.studienplan_id,
|
||||
studiengang_kz,
|
||||
typ,
|
||||
tbl_studiengangstyp.bezeichnung AS typ_bz,
|
||||
ausbildungssemester
|
||||
ausbildungssemester,
|
||||
tbl_orgform.bezeichnung_mehrsprachig
|
||||
FROM
|
||||
public.tbl_prestudentstatus
|
||||
JOIN
|
||||
@@ -449,6 +513,10 @@ class prestudent extends person
|
||||
public.tbl_studiengang USING (studiengang_kz)
|
||||
JOIN
|
||||
public.tbl_studiengangstyp USING (typ)
|
||||
JOIN
|
||||
lehre.tbl_studienplan ON (tbl_prestudentstatus.studienplan_id = tbl_studienplan.studienplan_id)
|
||||
JOIN
|
||||
bis.tbl_orgform ON (tbl_studienplan.orgform_kurzbz = tbl_orgform.orgform_kurzbz)
|
||||
WHERE
|
||||
tbl_prestudent.person_id = (
|
||||
SELECT
|
||||
@@ -516,6 +584,7 @@ class prestudent extends person
|
||||
$obj->typ = $row->typ;
|
||||
$obj->typ_bz = $row->typ_bz;
|
||||
$obj->ausbildungssemester = $row->ausbildungssemester;
|
||||
$obj->orgform_bezeichnung = $this->db_parse_lang_array($row->bezeichnung_mehrsprachig);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
|
||||
+53
-31
@@ -350,9 +350,10 @@ class pruefling extends basis_db
|
||||
* definiert sind, bei der Berechnung der Endpunkte nicht berücksichtigt.
|
||||
* @param $studiengang_kz Wenn eine Studiengangskennzahl übergeben wird, dann werden nur die Punkte der
|
||||
* Basis-Fragengebiete (ohne Quereinsteiger) bei der Berechnung der Endpunkte berücksichtigt.
|
||||
* @param $gewichtung_studiengang_kz Wenn diese studiengang_kz übergeben wird, wird das Ergebnis entsprechend des Gewichtungsschemas des Studienganges gewichtet
|
||||
* @return Endpunkte des Reihungstests oder False wenn keine Punkte vorhanden
|
||||
*/
|
||||
public function getReihungstestErgebnisPerson($person_id, $punkte=false, $reihungstest_id, $has_excluded_gebiete = false, $studiengang_kz = null)
|
||||
public function getReihungstestErgebnisPerson($person_id, $punkte=false, $reihungstest_id, $has_excluded_gebiete = false, $studiengang_kz = null, $gewichtung_studiengang_kz = null)
|
||||
{
|
||||
if(is_numeric($reihungstest_id))
|
||||
{
|
||||
@@ -415,39 +416,57 @@ class pruefling extends basis_db
|
||||
* Ergebniss der beiden Tests summiert bekommen
|
||||
* Im Zweifelsfall wird der neuere Reihungstest genommen */
|
||||
$qry .= "
|
||||
AND prestudent_id = (
|
||||
SELECT
|
||||
prestudent_id
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
JOIN
|
||||
public.tbl_prestudent USING(person_id)
|
||||
JOIN
|
||||
public.tbl_prestudentstatus USING (prestudent_id, studienplan_id)
|
||||
JOIN
|
||||
tbl_reihungstest ON (
|
||||
tbl_rt_person.rt_id = tbl_reihungstest.reihungstest_id
|
||||
)
|
||||
WHERE
|
||||
tbl_rt_person.person_id = ".$this->db_add_param($person_id, FHC_INTEGER)."
|
||||
AND
|
||||
tbl_rt_person.rt_id = ".$this->db_add_param($reihungstest_id, FHC_INTEGER)."
|
||||
AND
|
||||
tbl_prestudentstatus.status_kurzbz='Interessent'
|
||||
AND
|
||||
tbl_prestudentstatus.studiensemester_kurzbz = tbl_reihungstest.studiensemester_kurzbz
|
||||
ORDER BY
|
||||
tbl_reihungstest.datum DESC, tbl_prestudent.priorisierung ASC LIMIT 1
|
||||
)
|
||||
";
|
||||
AND prestudent_id = (
|
||||
SELECT
|
||||
prestudent_id
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
JOIN
|
||||
public.tbl_prestudent USING(person_id)
|
||||
JOIN
|
||||
public.tbl_prestudentstatus USING (prestudent_id, studienplan_id)
|
||||
JOIN
|
||||
tbl_reihungstest ON (
|
||||
tbl_rt_person.rt_id = tbl_reihungstest.reihungstest_id
|
||||
)
|
||||
WHERE
|
||||
tbl_rt_person.person_id = ".$this->db_add_param($person_id, FHC_INTEGER)."
|
||||
AND
|
||||
tbl_rt_person.rt_id = ".$this->db_add_param($reihungstest_id, FHC_INTEGER)."
|
||||
AND
|
||||
tbl_prestudentstatus.status_kurzbz='Interessent'
|
||||
AND
|
||||
tbl_prestudentstatus.studiensemester_kurzbz = tbl_reihungstest.studiensemester_kurzbz
|
||||
ORDER BY tbl_reihungstest.datum DESC, tbl_prestudent.priorisierung ASC LIMIT 1
|
||||
)
|
||||
";
|
||||
|
||||
//calculate Gewichte for Studiengang if set
|
||||
$gewichte = array();
|
||||
if (isset($gewichtung_studiengang_kz))
|
||||
{
|
||||
$ablauf = new ablauf();
|
||||
$ablauf->getAblaufGebiete($gewichtung_studiengang_kz);
|
||||
|
||||
foreach ($ablauf->result as $abl)
|
||||
{
|
||||
$gewichte[$abl->gebiet_id] = $abl->gewicht;
|
||||
}
|
||||
}
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
// Wenn keine Eintraege vorhanden dann false
|
||||
if($this->db_num_rows($result)==0)
|
||||
return false;
|
||||
|
||||
$summeGewicht = 0;
|
||||
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
if (!isset($row->punkte))
|
||||
continue;
|
||||
|
||||
//wenn maxpunkte ueberschritten wurde -> 100%
|
||||
if($row->punkte>=$row->maxpunkte)
|
||||
{
|
||||
@@ -455,17 +474,20 @@ class pruefling extends basis_db
|
||||
$row->punkte = $row->maxpunkte;
|
||||
}
|
||||
else
|
||||
$prozent = ($row->punkte/$row->maxpunkte)*100;
|
||||
$prozent = (($row->punkte + $row->offsetpunkte)/($row->maxpunkte + $row->offsetpunkte))*100;
|
||||
|
||||
if($punkte)
|
||||
{
|
||||
$ergebnis +=$row->punkte;
|
||||
$ergebnis += $row->punkte;
|
||||
}
|
||||
|
||||
else
|
||||
$ergebnis+=$prozent*$row->gewicht;
|
||||
{
|
||||
$gew = isset($gewichte[$row->gebiet_id]) ? $gewichte[$row->gebiet_id] : 1;
|
||||
$ergebnis += $prozent * $gew;
|
||||
$summeGewicht += $gew;
|
||||
}
|
||||
}
|
||||
return $ergebnis;
|
||||
return $summeGewicht > 0 ? $ergebnis/$summeGewicht : $ergebnis;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1168,5 +1168,82 @@ class vertrag extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob ein Mitarbeiter einen erteilten Vertrag zu einer Lehrveranstaltung besitzt.
|
||||
* @param $lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
* @param $studiensemester_kurzbz Studiensemester das geprueft wird
|
||||
* @param $mitarbeiter_uid UID des Mitarbeiters
|
||||
*/
|
||||
public function isVertragErteiltLV($lehrveranstaltung_id, $studiensemester_kurzbz, $mitarbeiter_uid)
|
||||
{
|
||||
if (defined('CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON')
|
||||
&& CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON != '')
|
||||
{
|
||||
// Liegt das Studiensemester vor dem Pruefdatum, wird die LV immer als Erteilt angezeigt
|
||||
$qry = "
|
||||
SELECT
|
||||
tbl_studiensemester.start
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
AND tbl_studiensemester.start < (SELECT start
|
||||
FROM public.tbl_studiensemester stsem WHERE
|
||||
stsem.studiensemester_kurzbz=".$this->db_add_param(CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON)."
|
||||
)";
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result)>0)
|
||||
{
|
||||
// Wenn das Studiensemester vor dem Pruefdatum liegt, gilt der Vertrag immer als erteilt.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Studiensemesters';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_vertrag USING(vertrag_id)
|
||||
JOIN lehre.tbl_vertrag_vertragsstatus USING(vertrag_id)
|
||||
WHERE
|
||||
tbl_lehreinheitmitarbeiter.mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)."
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
AND tbl_lehreinheit.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)."
|
||||
AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz='erteilt'
|
||||
AND NOT EXISTS(
|
||||
SELECT 1 FROM lehre.tbl_vertrag_vertragsstatus vstatus
|
||||
WHERE vstatus.vertrag_id = tbl_vertrag.vertrag_id
|
||||
AND vstatus.vertragsstatus_kurzbz='storno'
|
||||
)
|
||||
";
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result) > 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user