- Modified FHC_Model contructor to get UID from vilesci authentication

- Copied functionalities from old libraries to controllers
- Ported old libraries to CI
- Modified codeception
This commit is contained in:
paolo
2016-06-03 16:19:06 +02:00
parent efe7355a4d
commit dabcf8188b
16 changed files with 697 additions and 202 deletions
+2
View File
@@ -1,5 +1,7 @@
<?php
// TO BE UPDATED
/*
* This class requires only DB functionalities from CI
* CI_Hack couldn't be included here because this class is called every time an addon
+30 -7
View File
@@ -70,17 +70,19 @@ class nation extends Nation_model
public function load($code)
{
//Lesen der Daten aus der Datenbank
$qry = "SELECT * FROM bis.tbl_nation WHERE nation_code=".$this->db_add_param($code).';';
$result = parent::loadWhere(array('nation_code' => $code));
if(!$this->db_query($qry))
if (!is_object($result) || (is_object($result) && $result->error != EXIT_SUCCESS))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
if($row = $this->db_fetch_object())
if(is_array($result->retval) && count($result->retval) == 1)
{
$this->code = $code;
$row = $result->retval[0];
$this->sperre = $this->db_parse_bool($row->sperre);
$this->kontinent = $row->kontinent;
@@ -104,19 +106,40 @@ class nation extends Nation_model
* @param ohnesperre wenn dieser Parameter auf true gesetzt ist werden
* nur die nationen geliefert dessen Buerger bei uns studieren duerfen
*/
public function getAll($ohnesperre=false, $orderEnglish=false)
public function getAll($ohnesperre = false, $orderEnglish = false)
{
//Lesen der Daten aus der Datenbank
$qry = $this->_getNationQuery($ohnesperre, $orderEnglish);
if (!$orderEnglish)
{
$result = parent::addOrder('kurztext');
}
else
{
$result = parent::addOrder('engltext');
}
if ($result->error == EXIT_SUCCESS)
{
if ($ohnesperre)
{
$result = parent::loadWhere('sperre IS NULL');
}
else
{
$result = parent::loadWhole();
}
}
if(!$this->db_query($qry))
if (!is_object($result) || (is_object($result) && ($result->error != EXIT_SUCCESS || !is_array($result->retval))))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = $this->db_fetch_object())
for ($i = 0; $i < count($result->retval); $i++)
{
$row = $result->retval[$i];
$nation = new nation();
$nation->code = $row->nation_code;
+14 -11
View File
@@ -139,19 +139,22 @@ class organisationsform extends Orgform_model
*/
public function getOrgformLV()
{
$qry = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz NOT IN ('VBB', 'ZGS') ORDER BY orgform_kurzbz";
if($result = $this->db_query($qry))
$result = parent::getOrgformLV();
if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval))
{
while($row = $this->db_fetch_object($result))
for ($i = 0; $i < count($result->retval); $i++)
{
$orgform = new organisationsform();
$row = $result->retval[$i];
$orgform->orgform_kurzbz = $row->orgform_kurzbz;
$orgform->code = $row->code;
$orgform->bezeichnung = $row->bezeichnung;
$orgform->rolle = $row->rolle;
$orgform = new organisationsform();
$this->result[] = $orgform;
$orgform->orgform_kurzbz = $row->orgform_kurzbz;
$orgform->code = $row->code;
$orgform->bezeichnung = $row->bezeichnung;
$orgform->rolle = $row->rolle;
$this->result[] = $orgform;
}
return true;
}
@@ -159,6 +162,6 @@ class organisationsform extends Orgform_model
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
}
}
+5 -5
View File
@@ -92,18 +92,18 @@ class person extends Person_model
//person_id auf gueltigkeit pruefen
if (is_numeric($personId) && $personId != '')
{
$result = $this->getPerson($personId);
$result = parent::load($personId);
if (!is_object($result))
if (!is_object($result) || (is_object($result) && $result->error != EXIT_SUCCESS))
{
$this->errormsg = "Fehler beim Lesen der Personendaten\n";
return false;
}
$row = $result->row();
if (isset($row))
if(is_array($result->retval) && count($result->retval) == 1)
{
$row = $result->retval[0];
$this->person_id = $row->person_id;
$this->sprache = $row->sprache;
$this->anrede = $row->anrede;
+190 -137
View File
@@ -59,30 +59,34 @@ class studiensemester extends Studiensemester_model
*/
public function load($studiensemester_kurzbz)
{
$qry = "SELECT * FROM public.tbl_studiensemester WHERE studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
$result = parent::load($studiensemester_kurzbz);
if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval))
{
if (count($result->retval) > 0)
{
$row = $result->retval[0];
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
$this->ende = $row->ende;
$this->bezeichnung = $row->bezeichnung;
$this->studienjahr_kurzbz = $row->studienjahr_kurzbz;
$this->beschreibung = $row->beschreibung;
if(!$this->db_query($qry))
return true;
}
else
{
$this->errormsg = "Es ist kein Studiensemester mit dieser Kurzbezeichung vorhanden";
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Lesen des Studiensemesters';
return false;
}
if($row = $this->db_fetch_object())
{
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
$this->ende = $row->ende;
$this->bezeichnung = $row->bezeichnung;
$this->studienjahr_kurzbz = $row->studienjahr_kurzbz;
$this->beschreibung = $row->beschreibung;
}
else
{
$this->errormsg = "Es ist kein Studiensemester mit dieser Kurzbezeichung vorhanden";
return false;
}
return true;
}
/**
@@ -158,22 +162,23 @@ class studiensemester extends Studiensemester_model
*/
public function getakt()
{
$qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE start <= now() AND ende >= now()";
$result = parent::loadWhere(array('start <=' => 'NOW()', 'ende >=' => 'NOW()'));
if(!$this->db_query($qry))
if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval))
{
$this->errormsg = $this->db_last_error();
return false;
}
if($this->db_num_rows()>0)
{
$erg = $this->db_fetch_object();
return $erg->studiensemester_kurzbz;
if (count($result->retval) > 0)
{
return $result->retval[0]->studiensemester_kurzbz;
}
else
{
$this->errormsg = "Kein aktuelles Studiensemester vorhanden";
return false;
}
}
else
{
$this->errormsg = "Kein aktuelles Studiensemester vorhanden";
$this->errormsg = $result->msg;
return false;
}
}
@@ -210,38 +215,50 @@ class studiensemester extends Studiensemester_model
* geliefert die in dieses semester fallen (Bei geradem semester nur SS sonst WS)
* @return Studiensemester oder false wenn es keines gibt
*/
public function getaktorNext($semester='')
public function getaktorNext($semester = '')
{
if(($stsem=$this->getakt()) && $semester=='')
return $stsem;
if (($result = $this->getakt()) && !is_numeric($semester))
{
return $result;
}
else
{
$qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE true";
if($semester!='')
parent::addOrder('ende');
parent::addLimit(1);
$whereArray = array('ende >=' => 'NOW()');
if (is_numeric($semester))
{
if($semester%2==0)
$ss='SS';
if ($semester %2 == 0)
{
$ss = 'SS';
}
else
$ss='WS';
{
$ss = 'WS';
}
$qry.= " AND substring(studiensemester_kurzbz from 1 for 2)='$ss' ";
$whereArray['SUBSTRING(studiensemester_kurzbz FROM 1 FOR 2) ='] = $ss;
}
$qry.= " AND ende >= now() ORDER BY ende LIMIT 1";
if(!$this->db_query($qry))
$result = parent::loadWhere($whereArray);
if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval))
{
$this->errormsg = $this->db_last_error();
return false;
}
if($erg = $this->db_fetch_object())
{
return $erg->studiensemester_kurzbz;
if (count($result->retval) > 0)
{
return $result->retval[0]->studiensemester_kurzbz;
}
else
{
$this->errormsg = "Kein aktuelles Studiensemester vorhanden";
return false;
}
}
else
{
$this->errormsg = "Kein aktuelles Studiensemester vorhanden";
$this->errormsg = $result->msg;
return false;
}
}
@@ -254,36 +271,31 @@ class studiensemester extends Studiensemester_model
* geliefert die in dieses semester fallen (Bei geradem semester nur SS sonst WS)
* @return Studiensemester oder false wenn es keines gibt
*/
public function getNearest($semester='')
public function getNearest($semester = '')
{
$qry = "SELECT studiensemester_kurzbz, start, ende FROM public.vw_studiensemester ";
if($semester!='')
$result = parent::getNearest($semester);
if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval))
{
if($semester%2==0)
$ss='SS';
if(count($result->retval) > 0)
{
$row = $result->retval[0];
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
$this->ende = $row->ende;
return $row->studiensemester_kurzbz;
}
else
$ss='WS';
$qry.= " WHERE substring(studiensemester_kurzbz from 1 for 2)='$ss' ";
}
$qry.=' ORDER BY delta LIMIT 1';
if(!$this->db_query($qry))
{
$this->errormsg = $this->db_last_error();
return false;
}
if($erg = $this->db_fetch_object())
{
$this->studiensemester_kurzbz=$erg->studiensemester_kurzbz;
$this->start=$erg->start;
$this->ende=$erg->ende;
return $erg->studiensemester_kurzbz;
{
$this->errormsg = "Kein aktuelles Studiensemester vorhanden";
return false;
}
}
else
{
$this->errormsg = "Kein aktuelles Studiensemester vorhanden";
$this->errormsg = $this->db_last_error();
return false;
}
}
@@ -295,17 +307,25 @@ class studiensemester extends Studiensemester_model
*/
public function getAll($order = null)
{
$qry = "SELECT * FROM public.tbl_studiensemester ORDER BY ende";
if($order == "desc")
$qry .= " DESC";
if($this->db_query($qry))
if (strcasecmp($order, 'DESC') == 0)
{
while($row = $this->db_fetch_object())
{
$stsem_obj = new studiensemester();
parent::addOrder('ende', 'DESC');
}
else
{
parent::addOrder('ende', 'ASC');
}
$result = parent::loadWhole();
if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval))
{
for ($i = 0; $i < count($result->retval); $i++)
{
$row = $result->retval[$i];
$stsem_obj = new studiensemester();
$stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$stsem_obj->start = $row->start;
$stsem_obj->ende = $row->ende;
@@ -331,34 +351,47 @@ class studiensemester extends Studiensemester_model
* Wenn art=SS dann wird das naechste Sommersemester geliefert
* @return true wenn ok, false wenn kein entsprechendes vorhanden ist
*/
public function getNextStudiensemester($art='')
public function getNextStudiensemester($art = '')
{
$qry = "SELECT * FROM public.tbl_studiensemester WHERE start>now() ";
parent::addOrder('start');
parent::addLimit(1);
if (isset($art))
{
$result = parent::loadWhere(
array('start >' => 'NOW()',
'SUBSTRING(studiensemester_kurzbz FROM 1 FOR 2) = ' => $art
)
);
}
else
{
$result = parent::loadWhere(array('start >' => 'NOW()'));
}
if($art!='')
$qry.= " AND substring(studiensemester_kurzbz from 1 for 2)=".$this->db_add_param($art);
$qry.=" ORDER BY start LIMIT 1";
if(!$this->db_query($qry))
if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval))
{
if (count($result->retval) > 0)
{
$row = $result->retval[0];
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
$this->ende = $row->ende;
return true;
}
else
{
$this->errormsg = "Es wurde kein entsprechendes Studiensemester gefunden";
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Lesen des Studiensemesters';
return false;
}
if($row = $this->db_fetch_object())
{
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
$this->ende = $row->ende;
}
else
{
$this->errormsg = "Es wurde kein entsprechendes Studiensemester gefunden";
return false;
}
return true;
}
/**
@@ -413,13 +446,16 @@ class studiensemester extends Studiensemester_model
*/
public function getPrevious()
{
$qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE ende<now() ORDER BY ende DESC LIMIT 1";
parent::addOrder('ende', 'DESC');
parent::addLimit(1);
$result = parent::loadWhere(array('ende <' => 'NOW()'));
if($this->db_query($qry))
if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval))
{
if($row = $this->db_fetch_object())
if (count($result->retval) > 0)
{
return $row->studiensemester_kurzbz;
return $result->retval[0]->studiensemester_kurzbz;
}
else
{
@@ -510,18 +546,18 @@ class studiensemester extends Studiensemester_model
*/
public function getNextFrom($studiensemester_kurzbz)
{
$qry = "SELECT studiensemester_kurzbz, start, ende FROM public.tbl_studiensemester
WHERE start>(SELECT ende FROM public.tbl_studiensemester
WHERE studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).")
ORDER BY start LIMIT 1";
$result = parent::getNextFrom($studiensemester_kurzbz);
if($this->db_query($qry))
if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval))
{
if($row = $this->db_fetch_object())
if (count($result->retval) > 0)
{
$row = $result->retval[0];
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
$this->ende = $row->ende;
return $row->studiensemester_kurzbz;
}
else
@@ -633,24 +669,28 @@ class studiensemester extends Studiensemester_model
* @param limit maximale Anzahl
* @return true wenn ok, sonst false
*/
public function getFinished($limit=null)
public function getFinished($limit = null)
{
$qry = "SELECT * FROM public.tbl_studiensemester where start<=now() ORDER BY ende DESC";
if(!is_null($limit) && is_numeric($limit))
$qry.=' LIMIT '.$limit;
parent::addOrder('ende', 'DESC');
parent::addLimit($limit);
$result = parent::loadWhere(array('start <=' => 'NOW()'));
if($this->db_query($qry))
if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval))
{
while($row = $this->db_fetch_object())
for ($i = 0; $i < count($result->retval); $i++)
{
$stsem_obj = new studiensemester();
$row = $result->retval[$i];
$stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$stsem_obj->start = $row->start;
$stsem_obj->ende = $row->ende;
$this->studiensemester[] = $stsem_obj;
}
return true;
}
else
@@ -667,15 +707,15 @@ class studiensemester extends Studiensemester_model
*
* @return studiensemester_kurzbz oder false wenn keines vorhanden
*/
public function getLastOrAktSemester($days=60)
public function getLastOrAktSemester($days = 60)
{
$qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE start<now()-'".$days." days'::interval ORDER BY start desc limit 1";
$result = parent::getLastOrAktSemester($days);
if($this->db_query($qry))
if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval))
{
if($row = $this->db_fetch_object())
if (count($result->retval) > 0)
{
return $row->studiensemester_kurzbz;
return $result->retval[0]->studiensemester_kurzbz;
}
else
{
@@ -727,19 +767,32 @@ class studiensemester extends Studiensemester_model
*/
public function getTimestamp($studiensemester_kurzbz)
{
$qry = "SELECT start,ende,studiensemester_kurzbz FROM public.tbl_studiensemester
WHERE studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."";
$result = parent::load($studiensemester_kurzbz);
if($this->db_query($qry))
if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval))
{
if($row = $this->db_fetch_object())
if (count($result->retval))
{
if(!isset($this->begin))
$this->begin=new stdclass();
$this->begin->start=mktime(0,0,0,mb_substr($row->start,5,2),mb_substr($row->start,8,2),mb_substr($row->start,0,4));
if(!isset($this->end))
$this->ende=new stdclass();
$this->ende->ende=mktime(0,0,0,mb_substr($row->ende,5,2),mb_substr($row->ende,8,2),mb_substr($row->ende,0,4));
$row = $result->retval[0];
if (!isset($this->begin))
$this->begin = new stdclass();
$this->begin->start = mktime(0, 0, 0,
mb_substr($row->start, 5, 2),
mb_substr($row->start, 8, 2),
mb_substr($row->start, 0, 4)
);
if (!isset($this->end))
$this->ende = new stdclass();
$this->ende->ende = mktime(0, 0, 0,
mb_substr($row->ende, 5, 2),
mb_substr($row->ende, 8, 2),
mb_substr($row->ende, 0, 4)
);
return true;
}
else