- added hasSequence in models to avoid sequenceerrors

- added getByDate, generateMatrikelnummer methods
This commit is contained in:
alex
2019-01-11 18:39:48 +01:00
parent fa9976ec66
commit 89849d30fb
4 changed files with 60 additions and 2 deletions
+35 -1
View File
@@ -9,6 +9,40 @@ class Student_model extends DB_Model
{
parent::__construct();
$this->dbTable = 'public.tbl_student';
$this->pk = 'student_uid';
$this->pk = array('student_uid');
$this->hasSequence = false;
}
// ****
// * Generiert die Matrikelnummer
// * FORMAT: 0710254001
// * 07 = Jahr
// * 1/2/0 = WS/SS/incoming
// * 0254 = Studiengangskennzahl vierstellig
// * 001 = Laufende Nummer
// ****
public function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz)
{
$jahr = mb_substr($studiensemester_kurzbz, 4);
$sem = mb_substr($studiensemester_kurzbz, 0, 2);
if ($sem == 'SS')
$jahr = $jahr - 1;
$art = 0;
$matrikelnummer = sprintf("%02d", $jahr).$art.sprintf("%04d", $studiengang_kz);
$qry = "SELECT matrikelnr FROM public.tbl_student WHERE matrikelnr LIKE ? ORDER BY matrikelnr DESC LIMIT 1";
$matrikelnrres = $this->execQuery($qry, array($matrikelnummer.'%'));
if (hasData($matrikelnrres))
{
$max = mb_substr($matrikelnrres->retval[0]->matrikelnr, 7);
}
else
$max = 0;
$max += 1;
return $matrikelnummer.sprintf("%03d", $max);
}
}
@@ -10,5 +10,6 @@ class Studentlehrverband_model extends DB_Model
parent::__construct();
$this->dbTable = 'public.tbl_studentlehrverband';
$this->pk = array('studiensemester_kurzbz', 'student_uid');
$this->hasSequence = false;
}
}
@@ -119,4 +119,26 @@ class Studiensemester_model extends DB_Model
return $this->execQuery($query, array($studiensemester_kurzbz, $studiengang_kz));
}
/**
* Gets all Studiensemester between two dates
* @param $from
* @param $to
* @return array|null
*/
public function getByDate($from, $to)
{
if (date_format(date_create($from), 'Y-m-d') > (date_format(date_create($to), 'Y-m-d')))
return success(array());
$query = "SELECT *
FROM public.tbl_studiensemester
WHERE
(ende > ?::date AND start < ?::date)
OR start = ?::date
OR ende = ?::date
ORDER BY start DESC";
return $this->execQuery($query, array($from, $to, $from, $to));
}
}
+2 -1
View File
@@ -9,7 +9,8 @@ class Benutzer_model extends DB_Model
{
parent::__construct();
$this->dbTable = 'public.tbl_benutzer';
$this->pk = 'uid';
$this->pk = array('uid');
$this->hasSequence = false;
}
public function getFromPersonId($person_id)