Added additional API Function to get current Bewerbungstermine

This commit is contained in:
oesi
2016-09-08 17:48:20 +02:00
parent ba4bd99dda
commit 45c87db9b8
2 changed files with 68 additions and 34 deletions
@@ -24,8 +24,8 @@ class Bewerbungstermine extends APIv1_Controller
parent::__construct();
// Load model BewerbungstermineModel
$this->load->model('crm/bewerbungstermine_model', 'BewerbungstermineModel');
}
/**
@@ -34,11 +34,11 @@ class Bewerbungstermine extends APIv1_Controller
public function getBewerbungstermine()
{
$bewerbungstermineID = $this->get('bewerbungstermine_id');
if (isset($bewerbungstermineID))
{
$result = $this->BewerbungstermineModel->load($bewerbungstermineID);
$this->response($result, REST_Controller::HTTP_OK);
}
else
@@ -46,7 +46,7 @@ class Bewerbungstermine extends APIv1_Controller
$this->response();
}
}
/**
* @return void
*/
@@ -54,14 +54,14 @@ class Bewerbungstermine extends APIv1_Controller
{
$studiengang_kz = $this->get('studiengang_kz');
$studiensemester_kurzbz = $this->get('studiensemester_kurzbz');
if (isset($studiengang_kz) && isset($studiensemester_kurzbz))
{
$result = $this->BewerbungstermineModel->loadWhere(array(
'studiengang_kz' => $studiengang_kz,
'studiensemester_kurzbz' => $studiensemester_kurzbz,
));
$this->response($result, REST_Controller::HTTP_OK);
}
else
@@ -70,6 +70,40 @@ class Bewerbungstermine extends APIv1_Controller
}
}
/**
* @return void
*/
public function getByStudienplan()
{
$studienplan_id = $this->get('studienplan_id');
if (isset($studienplan_id) && isset($studienplan_id))
{
$result = $this->BewerbungstermineModel->loadWhere(array(
'studienplan_id' => $studienplan_id
));
$this->response($result, REST_Controller::HTTP_OK);
}
else
{
$this->response();
}
}
/**
* @return void
*/
public function getCurrent()
{
$result = $this->BewerbungstermineModel->loadWhere(array(
'beginn <=' => 'now()',
'ende >=' => 'now()',
));
$this->response($result, REST_Controller::HTTP_OK);
}
/**
* @return void
*/
@@ -85,7 +119,7 @@ class Bewerbungstermine extends APIv1_Controller
{
$result = $this->BewerbungstermineModel->insert($this->post());
}
$this->response($result, REST_Controller::HTTP_OK);
}
else
@@ -93,7 +127,7 @@ class Bewerbungstermine extends APIv1_Controller
$this->response();
}
}
private function _validate($bewerbungstermine = NULL)
{
return true;
@@ -2,7 +2,7 @@
class Studiengang_model extends DB_Model
{
/**
*
*
*/
public function __construct()
{
@@ -10,19 +10,19 @@ class Studiengang_model extends DB_Model
$this->dbTable = 'public.tbl_studiengang';
$this->pk = 'studiengang_kz';
}
/**
*
*
*/
public function getAllForBewerbung()
{
// Checks if the operation is permitted by the API caller
if (! $this->fhc_db_acl->isBerechtigt($this->getBerechtigungKurzbz('lehre.vw_studienplan'), 's'))
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->getBerechtigungKurzbz('lehre.vw_studienplan'), FHC_MODEL_ERROR);
if (! $this->fhc_db_acl->isBerechtigt($this->getBerechtigungKurzbz('bis.tbl_lgartcode'), 's'))
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->getBerechtigungKurzbz('bis.tbl_lgartcode'), FHC_MODEL_ERROR);
$allForBewerbungQuery = "SELECT DISTINCT studiengang_kz,
typ,
organisationseinheittyp_kurzbz,
@@ -95,14 +95,14 @@ class Studiengang_model extends DB_Model
WHERE t1.onlinebewerbung IS TRUE
AND t1.aktiv IS TRUE
ORDER BY typ, studiengangbezeichnung, tbl_lgartcode.bezeichnung ASC";
$result = $this->db->query($allForBewerbungQuery);
return $this->_success($result->result());
}
/**
*
*
*/
public function getStudienplan($studiensemester_kurzbz, $ausbildungssemester, $aktiv, $onlinebewerbung)
{
@@ -112,11 +112,11 @@ class Studiengang_model extends DB_Model
$this->addJoin("lehre.tbl_studienplan", "studienordnung_id");
// Then join with table lehre.tbl_studienplan_semester on column studienplan_id
$this->addJoin("lehre.tbl_studienplan_semester", "studienplan_id");
// Ordering by studiengang_kz and studienplan_id
$this->addOrder("public.tbl_studiengang.studiengang_kz");
$this->addOrder("lehre.tbl_studienplan.studienplan_id");
$result = $this->loadTree(
"tbl_studiengang",
array(
@@ -132,12 +132,12 @@ class Studiengang_model extends DB_Model
"studienplaene"
)
);
return $result;
}
/**
*
*
*/
public function getStudiengangBewerbung()
{
@@ -149,30 +149,30 @@ class Studiengang_model extends DB_Model
$this->addJoin("lehre.tbl_studienplan_semester ss", "studienplan_id");
// Then join with table lehre.tbl_bewerbungsfrist on column studiensemester_kurzbz
$this->addJoin(
"public.tbl_bewerbungstermine b",
"b.studiensemester_kurzbz = ss.studiensemester_kurzbz AND b.studienplan_id = ss.studienplan_id"
"public.tbl_bewerbungstermine",
"tbl_bewerbungstermine.studiensemester_kurzbz = ss.studiensemester_kurzbz AND tbl_bewerbungstermine.studienplan_id = ss.studienplan_id",
"LEFT"
);
// Ordering by studiengang_kz and studienplan_id
$this->addOrder("public.tbl_studiengang.studiengang_kz");
$this->addOrder("lehre.tbl_studienplan.studienplan_id");
$result = $this->loadTree(
"tbl_studiengang",
array(
"tbl_studienplan"
),
array(
"public.tbl_studiengang.aktiv" => "true",
"public.tbl_studiengang.onlinebewerbung" => "true",
"b.beginn <= " => "NOW()",
"b.ende >= " => "NOW()"
),
"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"
,
array(
"studienplaene"
)
);
return $result;
}
}