mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-18 07:22:17 +00:00
- Added method getStudiengangBewerbung to controller Studiengang2
- Renamed method loadList to loadTree - Improved method loadTree - Added method getStudiengangBewerbung to model Studiengang_model
This commit is contained in:
@@ -73,4 +73,11 @@ class Studiengang2 extends APIv1_Controller
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
public function getStudiengangBewerbung()
|
||||
{
|
||||
$result = $this->StudiengangModel->getStudiengangBewerbung();
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
}
|
||||
@@ -192,11 +192,11 @@ class DB_Model extends FHC_Model
|
||||
*
|
||||
* TODO:
|
||||
* - Adding support for composed primary key
|
||||
* - Adding support for cascading side tables
|
||||
* - Adding support for cascading side tables (?)
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function loadList($mainTable, $sideTables, $where = null, $sideTablesAliases = null)
|
||||
public function loadTree($mainTable, $sideTables, $where = null, $sideTablesAliases = null)
|
||||
{
|
||||
// Check Class-Attributes
|
||||
if (is_null($this->dbTable))
|
||||
@@ -247,7 +247,6 @@ class DB_Model extends FHC_Model
|
||||
// of a side table
|
||||
$returnArray = array();
|
||||
$returnArrayCounter = 0; // Array counter
|
||||
$prevPK = null; // Previous primary key
|
||||
|
||||
// Iterates the array that contains data from DB
|
||||
for ($i = 0; $i < count($resultArray); $i++)
|
||||
@@ -282,17 +281,18 @@ class DB_Model extends FHC_Model
|
||||
$sideTableProperty = $sideTablesAliases[$t -1];
|
||||
}
|
||||
|
||||
if ($prevPK == $mainTableObj->{$this->pk})
|
||||
{
|
||||
array_push($returnArray[$returnArrayCounter - 1]->{$sideTableProperty}, $sideTableObj);
|
||||
}
|
||||
else
|
||||
if (($k = $this->findMainTable($mainTableObj, $returnArray)) === false)
|
||||
{
|
||||
$mainTableObj->{$sideTableProperty} = array($sideTableObj);
|
||||
$returnArray[$returnArrayCounter++] = $mainTableObj;
|
||||
}
|
||||
|
||||
$prevPK = $mainTableObj->{$this->pk};
|
||||
else
|
||||
{
|
||||
if (array_search($sideTableObj, $returnArray[$k]->{$sideTableProperty}) === false)
|
||||
{
|
||||
array_push($returnArray[$k]->{$sideTableProperty}, $sideTableObj);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -306,6 +306,22 @@ class DB_Model extends FHC_Model
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Used in loadTree
|
||||
*/
|
||||
private function findMainTable($mainTableObj, $mainTableArray)
|
||||
{
|
||||
for ($i = 0; $i < count($mainTableArray); $i++)
|
||||
{
|
||||
if ($mainTableObj->{$this->pk} == $mainTableArray[$i]->{$this->pk})
|
||||
{
|
||||
return $i;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/** ---------------------------------------------------------------
|
||||
* Add a table to join with
|
||||
|
||||
@@ -117,7 +117,7 @@ class Studiengang_model extends DB_Model
|
||||
$this->addOrder("public.tbl_studiengang.studiengang_kz");
|
||||
$this->addOrder("lehre.tbl_studienplan.studienplan_id");
|
||||
|
||||
$result = $this->loadList(
|
||||
$result = $this->loadTree(
|
||||
"tbl_studiengang",
|
||||
array(
|
||||
"tbl_studienplan"
|
||||
@@ -135,4 +135,41 @@ class Studiengang_model extends DB_Model
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function getStudiengangBewerbung()
|
||||
{
|
||||
// Join table public.tbl_studiengang with table lehre.tbl_studienordnung on column studiengang_kz
|
||||
$this->addJoin("lehre.tbl_studienordnung", "studiengang_kz");
|
||||
// Then join with table lehre.tbl_studienplan on column studienordnung_id
|
||||
$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");
|
||||
// Then join with table lehre.tbl_bewerbungsfrist on column studiensemester_kurzbz
|
||||
$this->addJoin("public.tbl_bewerbungstermine", "studiensemester_kurzbz");
|
||||
|
||||
// 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",
|
||||
"public.tbl_bewerbungstermine.beginn <= " => "NOW()",
|
||||
"public.tbl_bewerbungstermine.ende >= " => "NOW()"
|
||||
),
|
||||
array(
|
||||
"studienplaene"
|
||||
)
|
||||
);
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user