RTPunkte1, RTPunkte2 und Private EMail hinzugefügt.

Funktion aus Klasse entfernt
This commit is contained in:
oesi
2016-06-24 17:04:56 +02:00
parent 942dfb8633
commit ad335ad240
3 changed files with 146 additions and 101 deletions
-99
View File
@@ -1733,103 +1733,4 @@ class prestudent extends person
return false;
}
}
/**
* Laedt alle Studenten eines Studienplans und eines Studiensemesters
* @param $studienplan_id
* @param $studiensemester_kurzbz
* @param $studiengang_kz
* @return array mit allen Prestudenten, welche sich für den angegebenen Studienplan im angegebenen Semester beworben haben
*/
public function getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz)
{
if(!is_numeric($studienplan_id))
{
$this->errormsg = 'studienplan_id ist ungueltig';
return false;
}
if(!$studiensemester_kurzbz || $studiensemester_kurzbz == "")
{
$this->errormsg = 'studiensemester_kurzbz ist ungueltig';
return false;
}
$stg_obj = new studiengang();
$stg_obj->load($studiengang_kz);
if($stg_obj->typ=='m')
{
$qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus,
(Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber') as anmerkung
FROM
public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgvmas_code)
LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz)
WHERE
tbl_prestudent.studiengang_kz=". $this->db_add_param($studiengang_kz)."
AND EXISTS(
SELECT
1
FROM
public.tbl_prestudentstatus
WHERE
tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id
AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber'
AND (
studienplan_id=". $this->db_add_param($studienplan_id)."
OR
(anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $this->db_add_param($studienplan_id).") || '%')
)
);";
}
else
{
$qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus,
(Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber') as anmerkung
FROM
public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgv_code)
LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz)
WHERE
tbl_prestudent.studiengang_kz=". $this->db_add_param($studiengang_kz)."
AND EXISTS(
SELECT
1
FROM
public.tbl_prestudentstatus
WHERE
tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id
AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber'
AND (
studienplan_id=". $this->db_add_param($studienplan_id)."
OR
(anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $this->db_add_param($studienplan_id).") || '%')
)
);";
}
if($result = $this->db_query($qry))
{
$ret = array();
while($row = $this->db_fetch_object($result))
$ret[] = $row;
return $ret;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
+138 -2
View File
@@ -62,8 +62,7 @@ switch($action)
die("keine studiensemester_kurzbz erhalten");
$studiensemester_kurzbz = $_REQUEST["studiensemester_kurzbz"];
$prestudent = new prestudent();
$return = $prestudent->getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz);
$return = getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz);
$db = new basis_db();
foreach($return as $key=>$value)
@@ -170,10 +169,16 @@ switch($action)
$maxlength[$spalte]=10;
$worksheet->write($zeile,++$spalte,'Reihung',$format_bold);
$maxlength[$spalte]=8;
$worksheet->write($zeile,++$spalte,'RT Punkte 1',$format_bold);
$maxlength[$spalte]=8;
$worksheet->write($zeile,++$spalte,'RT Punkte 2',$format_bold);
$maxlength[$spalte]=8;
$worksheet->write($zeile,++$spalte,'RT Gesamt',$format_bold);
$maxlength[$spalte]=8;
$worksheet->write($zeile,++$spalte,'Interviewbogen',$format_bold);
$maxlength[$spalte]=14;
$worksheet->write($zeile,++$spalte,'EMail',$format_bold);
$maxlength[$spalte]=8;
$worksheet->write($zeile,++$spalte,'Status',$format_bold);
$maxlength[$spalte]=8;
$worksheet->write($zeile,++$spalte,'Auswahl',$format_bold);
@@ -215,6 +220,31 @@ switch($action)
if(mb_strlen((isset($s->seqPlace)?$s->seqPlace:''))>$maxlength[$spalte])
$maxlength[$spalte]=mb_strlen((isset($s->seqPlace)?$s->seqPlace:''));
if(isset($s->rt_punkte1) && $s->rt_punkte1)
{
$worksheet->writeNumber($zeile,++$spalte, $s->rt_punkte1, $format_float);
if(mb_strlen($s->rt_punkte1)>$maxlength[$spalte])
$maxlength[$spalte]=mb_strlen($s->rt_punkte1);
}
else
{
$worksheet->write($zeile,++$spalte, "");
if(mb_strlen("")>$maxlength[$spalte])
$maxlength[$spalte]=mb_strlen("");
}
if(isset($s->rt_punkte2) && $s->rt_punkte2)
{
$worksheet->writeNumber($zeile,++$spalte, $s->rt_punkte2, $format_float);
if(mb_strlen($s->rt_punkte2)>$maxlength[$spalte])
$maxlength[$spalte]=mb_strlen($s->rt_punkte2);
}
else
{
$worksheet->write($zeile,++$spalte, "");
if(mb_strlen("")>$maxlength[$spalte])
$maxlength[$spalte]=mb_strlen("");
}
if(isset($s->rt_gesamtpunkte) && $s->rt_gesamtpunkte)
{
$worksheet->writeNumber($zeile,++$spalte, $s->rt_gesamtpunkte, $format_float);
@@ -240,6 +270,11 @@ switch($action)
if(mb_strlen("")>$maxlength[$spalte])
$maxlength[$spalte]=mb_strlen("");
}
$worksheet->write($zeile,++$spalte, $s->email_privat);
if(mb_strlen($s->email_privat)>$maxlength[$spalte])
$maxlength[$spalte]=mb_strlen($s->email_privat);
$worksheet->write($zeile,++$spalte, $s->laststatus);
if(mb_strlen($s->laststatus)>$maxlength[$spalte])
$maxlength[$spalte]=mb_strlen($s->laststatus);
@@ -279,4 +314,105 @@ function studentsSort($a, $b)
}
/**
* Laedt die Studenten fuer die Reduktion
* @param $studienplan_id
* @param $studiensemester_kurzbz
* @param $studiengang_kz
* @return array mit allen Prestudenten, welche sich für den angegebenen Studienplan im angegebenen Semester beworben haben
*/
function getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz)
{
$db = new basis_db();
if(!is_numeric($studienplan_id))
{
$errormsg = 'studienplan_id ist ungueltig';
return false;
}
if(!$studiensemester_kurzbz || $studiensemester_kurzbz == "")
{
$errormsg = 'studiensemester_kurzbz ist ungueltig';
return false;
}
$stg_obj = new studiengang();
$stg_obj->load($studiengang_kz);
if($stg_obj->typ=='m')
{
$qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus,
(Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber') as anmerkung, rt_punkte1, rt_punkte2,
(SELECT kontakt FROM public.tbl_kontakt where kontakttyp='email' AND zustellung AND person_id=tbl_person.person_id limit 1) as email_privat
FROM
public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgvmas_code)
LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz)
WHERE
tbl_prestudent.studiengang_kz=". $db->db_add_param($studiengang_kz)."
AND EXISTS(
SELECT
1
FROM
public.tbl_prestudentstatus
WHERE
tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id
AND studiensemester_kurzbz=". $db->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber'
AND (
studienplan_id=". $db->db_add_param($studienplan_id)."
OR
(anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $this->db_add_param($studienplan_id).") || '%')
)
);";
}
else
{
$qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus,
(Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $db->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber') as anmerkung, rt_punkte1, rt_punkte2,
(SELECT kontakt FROM public.tbl_kontakt where kontakttyp='email' AND zustellung AND person_id=tbl_person.person_id limit 1) as email_privat
FROM
public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgv_code)
LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz)
WHERE
tbl_prestudent.studiengang_kz=". $db->db_add_param($studiengang_kz)."
AND EXISTS(
SELECT
1
FROM
public.tbl_prestudentstatus
WHERE
tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id
AND studiensemester_kurzbz=". $db->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber'
AND (
studienplan_id=". $db->db_add_param($studienplan_id)."
OR
(anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $db->db_add_param($studienplan_id).") || '%')
)
);";
}
if($result = $db->db_query($qry))
{
$ret = array();
while($row = $db->db_fetch_object($result))
$ret[] = $row;
return $ret;
}
else
{
$errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
?>
+8
View File
@@ -446,6 +446,8 @@
<th ts-criteria="vorname">Vorname</th>
<th ts-criteria="bezeichnung">ZGV Gruppe</th>
<th ts-criteria="seqPlace|parseInt" ts-default="ascending">Reihung</th>
<th ts-criteria="rt_punkte1|parseFloat">RT Punkte 1</th>
<th ts-criteria="rt_punkte2|parseFloat">RT Punkte 2</th>
<th ts-criteria="rt_gesamtpunkte|parseFloat" ts-default="ascending">RT Gesamt</th>
<th ts-criteria="interviewbogen">Interviewbogen</th>
<th ts-criteria="anmerkung">Anmerkung/Prio</th>
@@ -462,6 +464,8 @@
<td ng-if="stud.bezeichnung">{{stud.bezeichnung}}</td>
<td ng-if="!stud.bezeichnung" style="font-weight: bold;">Keine Angabe</td>
<td>{{stud.seqPlace}}</td>
<td>{{stud.rt_punkte1}}</td>
<td>{{stud.rt_punkte2}}</td>
<td>{{stud.rt_gesamtpunkte}}</td>
<td>{{stud.interviewbogen?'vorhanden':'nicht vorhanden'}}</td>
<td>{{stud.anmerkung}}</td>
@@ -514,6 +518,8 @@
<th ts-criteria="vorname">Vorname</th>
<th ts-criteria="bezeichnung">ZGV Gruppe</th>
<th ts-criteria="seqPlace|parseInt" ts-default="ascending">Reihung</th>
<th ts-criteria="rt_punkte1|parseFloat">RT Punkte 1</th>
<th ts-criteria="rt_punkte2|parseFloat">RT Punkte 2</th>
<th ts-criteria="rt_gesamtpunkte|parseFloat">RT Gesamt</th>
<th ts-criteria="interviewbogen">Interviewbogen</th>
<th ts-criteria="anmerkung">Anmerkung/Prio</th>
@@ -529,6 +535,8 @@
<td ng-if="stud.bezeichnung">{{stud.bezeichnung}}</td>
<td ng-if="!stud.bezeichnung" style="font-weight: bold;">Keine Angabe</td>
<td>{{stud.seqPlace}}</td>
<td>{{stud.rt_punkte1}}</td>
<td>{{stud.rt_punkte2}}</td>
<td>{{stud.rt_gesamtpunkte}}</td>
<td>{{stud.interviewbogen?'vorhanden':'nicht vorhanden'}}</td>
<td>{{stud.anmerkung}}</td>