Merge branch 'master' into udf

This commit is contained in:
Paolo
2017-07-21 15:08:50 +02:00
82 changed files with 1558 additions and 1271 deletions
+22 -22
View File
@@ -11,7 +11,7 @@ class Prestudent_model extends DB_Model
$this->dbTable = 'public.tbl_prestudent';
$this->pk = 'prestudent_id';
}
/**
* @return void
*/
@@ -24,7 +24,7 @@ class Prestudent_model extends DB_Model
return $isEntitled;
if (($isEntitled = $this->isEntitled('public.tbl_status', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
return $isEntitled;
$query = 'SELECT *
FROM public.tbl_prestudent p
JOIN (
@@ -37,33 +37,33 @@ class Prestudent_model extends DB_Model
WHERE ps.ausbildungssemester = 1';
$parametersArray = array($person_id);
if ($studiensemester_kurzbz != '')
{
array_push($parametersArray, $studiensemester_kurzbz);
$query .= ' AND ps.studiensemester_kurzbz = ?';
}
if (isset($studiengang_kz))
{
array_push($parametersArray, $studiengang_kz);
$query .= ' AND p.studiengang_kz = ?';
}
if ($status_kurzbz != '')
{
array_push($parametersArray, $status_kurzbz);
$query .= ' AND ps.status_kurzbz = ?';
}
return $this->execQuery($query, $parametersArray);
}
/**
*
*
*/
public function updateAufnahmegruppe($prestudentIdArray, $aufnahmegruppe)
{
{
return $this->execQuery(
'UPDATE public.tbl_prestudent
SET aufnahmegruppe_kurzbz = ?
@@ -74,7 +74,7 @@ class Prestudent_model extends DB_Model
)
);
}
/**
* Returns a list of prestudent with additional information:
* - person_id
@@ -104,7 +104,7 @@ class Prestudent_model extends DB_Model
aufnahmegruppe_kurzbz,
SUM(rtp.punkte) AS punkte'
);
$this->addJoin('public.tbl_person p', 'person_id', 'LEFT');
$this->addJoin(
'(
@@ -123,39 +123,39 @@ class Prestudent_model extends DB_Model
$this->addJoin('lehre.tbl_studienordnung so', 'studienordnung_id');
$this->addJoin('public.tbl_studiengang sg', 'sg.studiengang_kz = so.studiengang_kz');
$this->addJoin('public.tbl_studiengangstyp sgt', 'typ');
$this->addJoin('public.tbl_rt_person rtp', 'rtp.person_id = p.person_id AND rtp.studienplan_id = s.studienplan_id', 'LEFT');
$this->addOrder('p.person_id', 'ASC');
$this->addOrder('prestudent_id', 'ASC');
$parametersArray = array('p.aktiv' => true, 'ps.status_kurzbz' => 'Interessent');
if ($studiengang != null)
{
$parametersArray['public.tbl_prestudent.studiengang_kz'] = $studiengang;
}
if ($studiensemester != null)
{
$parametersArray['ps.studiensemester_kurzbz'] = $studiensemester;
}
if ($gruppe != null)
{
$parametersArray['aufnahmegruppe_kurzbz'] = $gruppe;
}
if ($reihungstest != null)
{
$parametersArray['rtp.rt_id'] = $reihungstest;
}
if ($stufe != null)
{
$parametersArray['ps.rt_stufe'] = $stufe;
}
$this->addGroupBy(
array(
'p.person_id',
@@ -174,7 +174,7 @@ class Prestudent_model extends DB_Model
'aufnahmegruppe_kurzbz'
)
);
return $this->loadWhere($parametersArray);
}
}
}
@@ -12,7 +12,7 @@ class Prestudentstatus_model extends DB_Model
$this->pk = array('ausbildungssemester', 'studiensemester_kurzbz', 'status_kurzbz', 'prestudent_id');
$this->hasSequence = false;
}
/**
* @return void
*/
@@ -25,7 +25,7 @@ class Prestudentstatus_model extends DB_Model
return $isEntitled;
if (($isEntitled = $this->isEntitled('public.tbl_status', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
return $isEntitled;
$query = 'SELECT tbl_prestudentstatus.*,
bezeichnung AS studienplan_bezeichnung,
tbl_status.bezeichnung_mehrsprachig
@@ -35,7 +35,7 @@ class Prestudentstatus_model extends DB_Model
AND prestudent_id = ?';
$parametersArray = array($prestudent_id);
if ($studiensemester_kurzbz != '')
{
array_push($parametersArray, $studiensemester_kurzbz);
@@ -46,17 +46,17 @@ class Prestudentstatus_model extends DB_Model
array_push($parametersArray, $status_kurzbz);
$query .= ' AND status_kurzbz = ?';
}
$query .= ' ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1';
return $this->execQuery($query, $parametersArray);
}
/**
*
*
*/
public function updateStufe($prestudentIdArray, $stufe)
{
{
return $this->execQuery(
'UPDATE public.tbl_prestudentstatus
SET rt_stufe = ?
@@ -68,4 +68,51 @@ class Prestudentstatus_model extends DB_Model
)
);
}
}
/**
* Get all Prestudent status entries according to the given filter
*
* @param prestudent_id ID of the Prestudent.
* @param $status_kurzbz kurzbz of the status.
* @param $ausbildungssemester ausbildungssemester of the status.
* @param $studiensemester_kurzbz studiensemster of the status.
*
* @return result object with all the status entries
*/
public function getStatusByFilter($prestudent_id, $status_kurzbz = '', $ausbildungssemester = '', $studiensemester_kurzbz = '')
{
// Checks if the operation is permitted by the API caller
if (($isEntitled = $this->isEntitled('public.tbl_prestudentstatus', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
return $isEntitled;
$query = '
SELECT
tbl_prestudentstatus.*
FROM
public.tbl_prestudentstatus
WHERE
prestudent_id = ?';
$parametersArray = array($prestudent_id);
if ($studiensemester_kurzbz != '')
{
array_push($parametersArray, $studiensemester_kurzbz);
$query .= ' AND studiensemester_kurzbz = ?';
}
if ($status_kurzbz != '')
{
array_push($parametersArray, $status_kurzbz);
$query .= ' AND status_kurzbz = ?';
}
if ($ausbildungssemester != '')
{
array_push($parametersArray, $ausbildungssemester);
$query .= ' AND ausbildungssemester = ?';
}
$query .= ' ORDER BY datum DESC, insertamum DESC, ext_id DESC';
return $this->execQuery($query, $parametersArray);
}
}
+50 -11
View File
@@ -3,7 +3,7 @@
class Person_model extends DB_Model
{
/**
*
*
*/
public function __construct()
{
@@ -11,16 +11,16 @@ class Person_model extends DB_Model
$this->dbTable = 'public.tbl_person';
$this->pk = 'person_id';
}
public function getPersonKontaktByZugangscode($zugangscode, $email)
{
$this->addJoin('public.tbl_kontakt', 'person_id');
return $this->loadWhere(array('zugangscode' => $zugangscode, 'kontakt' => $email));
}
/**
*
*
*/
public function checkBewerbung($email, $studiensemester_kurzbz = null)
{
@@ -34,10 +34,10 @@ class Person_model extends DB_Model
return $isEntitled;
if (($isEntitled = $this->isEntitled('public.tbl_prestudentstatus', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
return $isEntitled;
$checkBewerbungQuery = '';
$parametersArray = array($email, $email, $email);
if (is_null($studiensemester_kurzbz))
{
$checkBewerbungQuery = 'SELECT DISTINCT p.person_id, p.zugangscode, p.insertamum
@@ -60,13 +60,13 @@ class Person_model extends DB_Model
AND studiensemester_kurzbz = ?
ORDER BY p.insertamum DESC
LIMIT 1';
array_push($parametersArray, $studiensemester_kurzbz);
}
return $this->execQuery($checkBewerbungQuery, $parametersArray);
}
public function updatePerson($person)
{
if (isset($person['svnr']) && $person['svnr'] != '')
@@ -88,7 +88,46 @@ class Person_model extends DB_Model
}
}
}
return $this->PersonModel->update($person['person_id'], $person);
}
}
/**
* @return void
*/
public function getPersonFromStatus($status_kurzbz, $von, $bis)
{
// Checks if the operation is permitted by the API caller
if (($isEntitled = $this->isEntitled('public.tbl_prestudent', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
return $isEntitled;
if (($isEntitled = $this->isEntitled('public.tbl_prestudentstatus', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
return $isEntitled;
$this->addJoin('public.tbl_prestudent', 'person_id');
$result = $this->loadTree(
'public.tbl_person',
array(
'public.tbl_prestudent'
),
'EXISTS (
SELECT
1
FROM
public.tbl_prestudentstatus
JOIN public.tbl_prestudent USING(prestudent_id)
WHERE
person_id=tbl_person.person_id
AND status_kurzbz='.$this->escape($status_kurzbz).'
AND datum >= '.$this->escape($von).'
AND datum <= '.$this->escape($bis).'
)',
array(
'prestudenten'
)
);
return $result;
}
}