- Added optional parameter oe_kurzbz to method getStudiengangBewerbung of controller organisation/Studiengang2

- Added optional parameter oe_kurzbz to method getStudiengangBewerbung of model organisation/Studiengang_model
This commit is contained in:
Paolo
2017-09-20 10:41:20 +02:00
parent 7c25d6474c
commit 6fca6e45eb
2 changed files with 61 additions and 25 deletions
@@ -11,23 +11,27 @@
* @filesource
*/
// ------------------------------------------------------------------------
if (!defined("BASEPATH")) exit("No direct script access allowed");
if (!defined('BASEPATH')) exit('No direct script access allowed');
class Studiengang2 extends APIv1_Controller
{
/**
* Course API constructor.
*
*/
public function __construct()
{
parent::__construct();
// Load model PersonModel
$this->load->model("organisation/studiengang_model", "StudiengangModel");
$this->load->model('organisation/studiengang_model', 'StudiengangModel');
}
/**
* getStudiengang
*/
public function getStudiengang()
{
$studiengang_kz = $this->get("studiengang_kz");
$studiengang_kz = $this->get('studiengang_kz');
if (isset($studiengang_kz))
{
@@ -41,28 +45,31 @@ class Studiengang2 extends APIv1_Controller
}
}
/**
* getAllForBewerbung
*/
public function getAllForBewerbung()
{
$this->response($this->StudiengangModel->getAllForBewerbung(), REST_Controller::HTTP_OK);
}
/**
* Method getStudiengangStudienplan
* getStudiengangStudienplan
*/
public function getStudiengangStudienplan()
{
// Getting HTTP GET parameters
$studiensemester_kurzbz = $this->get("studiensemester_kurzbz");
$ausbildungssemester = $this->get("ausbildungssemester");
$aktiv = $this->get("aktiv");
$onlinebewerbung = $this->get("onlinebewerbung");
$studiensemester_kurzbz = $this->get('studiensemester_kurzbz');
$ausbildungssemester = $this->get('ausbildungssemester');
$aktiv = $this->get('aktiv');
$onlinebewerbung = $this->get('onlinebewerbung');
// If $studiensemester_kurzbz and $ausbildungssemester are present
if (isset($studiensemester_kurzbz) && isset($ausbildungssemester))
{
// Check & set
if (!isset($aktiv)) $aktiv = "TRUE";
if (!isset($onlinebewerbung)) $onlinebewerbung = "TRUE";
if (!isset($aktiv)) $aktiv = 'TRUE';
if (!isset($onlinebewerbung)) $onlinebewerbung = 'TRUE';
$result = $this->StudiengangModel->getStudienplan($studiensemester_kurzbz, $ausbildungssemester, $aktiv, $onlinebewerbung);
@@ -74,15 +81,20 @@ class Studiengang2 extends APIv1_Controller
}
}
/**
* getStudiengangBewerbung
*/
public function getStudiengangBewerbung()
{
$result = $this->StudiengangModel->getStudiengangBewerbung();
$oe_kurzbz = $this->get('oe_kurzbz');
$result = $this->StudiengangModel->getStudiengangBewerbung($oe_kurzbz);
$this->response($result, REST_Controller::HTTP_OK);
}
/**
* @return void
* getAppliedStudiengang
*/
public function getAppliedStudiengang()
{
@@ -109,7 +121,7 @@ class Studiengang2 extends APIv1_Controller
}
/**
* @return void
* getAppliedStudiengangFromNow
*/
public function getAppliedStudiengangFromNow()
{
@@ -134,7 +146,7 @@ class Studiengang2 extends APIv1_Controller
}
/**
* @return void
* getAppliedStudiengangFromNowOE
*/
public function getAppliedStudiengangFromNowOE()
{
@@ -138,7 +138,7 @@ class Studiengang_model extends DB_Model
/**
* getStudiengangBewerbung
*/
public function getStudiengangBewerbung()
public function getStudiengangBewerbung($oe_kurzbz = null)
{
if (isError($ent = $this->isEntitled($this->dbTable, PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent;
@@ -161,21 +161,45 @@ class Studiengang_model extends DB_Model
$this->addOrder('public.tbl_studiengang.bezeichnung');
$this->addOrder('lehre.tbl_studienplan.studienplan_id');
$where = 'public.tbl_studiengang.aktiv = TRUE
AND public.tbl_studiengang.onlinebewerbung = TRUE
AND (
(tbl_bewerbungstermine.beginn <= NOW() AND tbl_bewerbungstermine.ende >= NOW())
OR tbl_bewerbungstermine.beginn IS NULL
)
AND ss.studiensemester_kurzbz IN (
SELECT DISTINCT studiensemester_kurzbz
FROM public.tbl_bewerbungstermine
WHERE beginn <= NOW() AND ende >= NOW()
)
AND ss.semester = 1
AND lehre.tbl_studienplan.aktiv = TRUE';
if ($oe_kurzbz != null)
{
$where .= ' AND public.tbl_studiengang.oe_kurzbz IN (
WITH RECURSIVE organizations(_pk, _ppk) AS
(
SELECT o.oe_kurzbz, o.oe_parent_kurzbz
FROM public.tbl_organisationseinheit o
WHERE o.oe_parent_kurzbz IS NULL
AND o.oe_kurzbz = '.$this->escape($oe_kurzbz).'
UNION ALL
SELECT o.oe_kurzbz, o.oe_parent_kurzbz
FROM public.tbl_organisationseinheit o INNER JOIN organizations orgs ON (o.oe_parent_kurzbz = orgs._pk)
)
SELECT orgs._pk
FROM organizations orgs
)';
}
$result = $this->loadTree(
'public.tbl_studiengang',
array(
'lehre.tbl_studienplan',
'lehre.tbl_akadgrad'
),
'public.tbl_studiengang.aktiv = TRUE
AND public.tbl_studiengang.onlinebewerbung = TRUE
AND ((tbl_bewerbungstermine.beginn <= NOW() AND tbl_bewerbungstermine.ende >= NOW()) OR tbl_bewerbungstermine.beginn IS NULL)
AND ss.studiensemester_kurzbz IN (
SELECT DISTINCT studiensemester_kurzbz FROM public.tbl_bewerbungstermine WHERE beginn <= NOW() AND ende >= NOW()
)
AND ss.semester = 1
AND lehre.tbl_studienplan.aktiv = TRUE'
,
$where,
array(
'studienplaene',
'akadgrad'