mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Added function to retrieve actual Interessenten (optionally only for prio)
The query retrieves all actual prestudenten with the status 'Interessent' of the users person_id. (+ prio, stg, stpl and ausbildungssemester) Optionally the function limits the result to the one stg with the highest priority.
This commit is contained in:
@@ -420,6 +420,96 @@ class prestudent extends person
|
||||
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.
|
||||
* @boolean $prio Wenn true, dann wird nur der Prestudent mit dem am höchsten priorisierten Studiengang zurückgegeben.
|
||||
* return Objekt-Array mit allen Prestudenten einer Person, die aktuell an STG interessiert sind.
|
||||
*/
|
||||
public function getActualInteressenten($prestudent_id, $prio = false)
|
||||
{
|
||||
if (is_numeric($prestudent_id))
|
||||
{
|
||||
$qry = "
|
||||
SELECT DISTINCT ON (priorisierung, prestudent_id)
|
||||
priorisierung,
|
||||
prestudent_id,
|
||||
studienplan_id,
|
||||
studiengang_kz,
|
||||
ausbildungssemester
|
||||
FROM
|
||||
public.tbl_prestudentstatus
|
||||
JOIN
|
||||
public.tbl_prestudent USING (prestudent_id)
|
||||
WHERE
|
||||
tbl_prestudent.person_id = (
|
||||
SELECT
|
||||
person_id
|
||||
FROM
|
||||
public.tbl_prestudent
|
||||
WHERE
|
||||
prestudent_id = ". $this->db_add_param($prestudent_id). "
|
||||
)
|
||||
|
||||
-- Filter only future studiensemester (incl. actual one)
|
||||
AND
|
||||
studiensemester_kurzbz IN (
|
||||
SELECT
|
||||
studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
ende > now()
|
||||
)
|
||||
|
||||
AND
|
||||
status_kurzbz = 'Interessent'
|
||||
|
||||
-- Order to get the very last status and highest prio on top
|
||||
ORDER BY
|
||||
priorisierung NULLS LAST,
|
||||
prestudent_id,
|
||||
datum DESC,
|
||||
tbl_prestudentstatus.insertamum DESC,
|
||||
tbl_prestudentstatus.ext_id DESC
|
||||
" ;
|
||||
|
||||
if ($prio)
|
||||
{
|
||||
$qry .= "
|
||||
LIMIT 1
|
||||
";
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new stdClass();
|
||||
|
||||
$obj->prestudent_id = $row->prestudent_id;
|
||||
$obj->studienplan_id = $row->studienplan_id;
|
||||
$obj->studiengang_kz = $row->studiengang_kz;
|
||||
$obj->ausbildungssemester = $row->ausbildungssemester;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'prestudent_id muss numerisch sein.';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt die Rolle(n) eines Prestudenten
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user