mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Merge branch 'master' into feature-5920/Personalmeldung_Berechnung_VZAE_JVZAE
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;
|
||||
}
|
||||
|
||||
+1096
-889
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user