mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 16:32:20 +00:00
- Added method addGroupBy to DB_Model
- Changed the query present in method getPrestudentMultiAssign of Prestudent_model
This commit is contained in:
@@ -468,6 +468,26 @@ class DB_Model extends FHC_Model
|
||||
return success(true);
|
||||
}
|
||||
|
||||
/** ---------------------------------------------------------------
|
||||
* Add one or more fields in the group by clause
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function addGroupBy($fields)
|
||||
{
|
||||
if (!isset($fields)
|
||||
|| (!is_array($fields) && !is_string($fields))
|
||||
|| (is_array($fields) && count($fields) == 0)
|
||||
|| (is_string($fields) && $fields == ''))
|
||||
{
|
||||
return error(FHC_MODEL_ERROR, FHC_MODEL_ERROR);
|
||||
}
|
||||
|
||||
$this->db->group_by($fields);
|
||||
|
||||
return success(true);
|
||||
}
|
||||
|
||||
/** ---------------------------------------------------------------
|
||||
* Reset the query builder state
|
||||
*
|
||||
|
||||
@@ -88,7 +88,7 @@ class Prestudent_model extends DB_Model
|
||||
public function getPrestudentMultiAssign($studiengang = null, $studiensemester = null, $gruppe = null, $reihungstest = null, $stufe = null)
|
||||
{
|
||||
$this->addSelect(
|
||||
'DISTINCT ON(p.person_id, prestudent_id) p.person_id,
|
||||
'p.person_id,
|
||||
prestudent_id,
|
||||
p.nachname,
|
||||
p.vorname,
|
||||
@@ -102,19 +102,18 @@ class Prestudent_model extends DB_Model
|
||||
s.bezeichnung AS studienplan,
|
||||
ps.rt_stufe,
|
||||
aufnahmegruppe_kurzbz,
|
||||
rtp.punkte'
|
||||
SUM(rtp.punkte) AS punkte'
|
||||
);
|
||||
|
||||
$this->addJoin('public.tbl_rt_person rtp', 'person_id');
|
||||
$this->addJoin('public.tbl_person p', 'person_id', 'LEFT');
|
||||
$this->addJoin(
|
||||
'(
|
||||
SELECT person_id,
|
||||
SELECT DISTINCT ON(person_id) person_id,
|
||||
kontakt
|
||||
FROM public.tbl_kontakt
|
||||
WHERE zustellung = TRUE
|
||||
AND kontakttyp = \'email\'
|
||||
ORDER BY kontakt_id DESC
|
||||
ORDER BY person_id, kontakt_id DESC
|
||||
) k',
|
||||
'person_id',
|
||||
'LEFT'
|
||||
@@ -125,6 +124,8 @@ class Prestudent_model extends DB_Model
|
||||
$this->addJoin('public.tbl_studiengang sg', 'sg.studiengang_kz = so.studiengang_kz');
|
||||
$this->addJoin('public.tbl_studiengangstyp sgt', 'typ');
|
||||
|
||||
$this->addJoin('public.tbl_rt_person rtp', 'rtp.person_id = p.person_id AND rtp.studienplan_id = s.studienplan_id', 'LEFT');
|
||||
|
||||
$this->addOrder('p.person_id', 'ASC');
|
||||
$this->addOrder('prestudent_id', 'ASC');
|
||||
|
||||
@@ -132,7 +133,7 @@ class Prestudent_model extends DB_Model
|
||||
|
||||
if ($studiengang != null)
|
||||
{
|
||||
$parametersArray['sg.studiengang_kz'] = $studiengang;
|
||||
$parametersArray['public.tbl_prestudent.studiengang_kz'] = $studiengang;
|
||||
}
|
||||
|
||||
if ($studiensemester != null)
|
||||
@@ -155,6 +156,25 @@ class Prestudent_model extends DB_Model
|
||||
$parametersArray['ps.rt_stufe'] = $stufe;
|
||||
}
|
||||
|
||||
$this->addGroupBy(
|
||||
array(
|
||||
'p.person_id',
|
||||
'prestudent_id',
|
||||
'p.nachname',
|
||||
'p.vorname',
|
||||
'p.geschlecht',
|
||||
'p.gebdatum',
|
||||
'k.kontakt',
|
||||
'sg.kurzbzlang',
|
||||
'sg.bezeichnung',
|
||||
'sg.orgform_kurzbz',
|
||||
'sgt.bezeichnung',
|
||||
's.bezeichnung',
|
||||
'ps.rt_stufe',
|
||||
'aufnahmegruppe_kurzbz'
|
||||
)
|
||||
);
|
||||
|
||||
return $this->loadWhere($parametersArray);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user