diff --git a/include/prestudent.class.php b/include/prestudent.class.php index a88b8b1f4..f60bf9262 100755 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -16,11 +16,13 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ require_once(dirname(__FILE__).'/person.class.php'); require_once(dirname(__FILE__).'/log.class.php'); +require_once(dirname(__FILE__).'/studiensemester.class.php'); class prestudent extends person { @@ -1801,4 +1803,25 @@ class prestudent extends person return false; } } + + /** + * Liefert den studentlehrverband des Prestudenten im aktuellen oder nächsten Semester + * @return Objekt mit gruppe, verband und semester + */ + public function getStudentLehrverband() + { + $studiensemester = new studiensemester(); + $studiensemester_kurzbz = $studiensemester->getaktorNext(); + + $qry_sem = "SELECT gruppe, verband, semester from tbl_studentlehrverband WHERE studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." AND prestudent_id=".$this->db_add_param($this->prestudent_id, FHC_INTEGER); + if(!$res_sem = $this->db_query($qry_sem)) + $this->errormsg = 'Fehler beim Laden der Daten'; + + if($this->db_num_rows($res_sem) == 1) + { + $row_sem = $this->db_fetch_object($res_sem); + return $row_sem; + } + return false; + } } diff --git a/vilesci/personen/import/interessentenimport.php b/vilesci/personen/import/interessentenimport.php index e6897f8f3..03782e2af 100644 --- a/vilesci/personen/import/interessentenimport.php +++ b/vilesci/personen/import/interessentenimport.php @@ -526,13 +526,13 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz) $matrikelnummer = sprintf("%02d",$jahr).$art.sprintf("%04d",$studiengang_kz); - $qry = "SELECT matrikelnr FROM public.tbl_student WHERE matrikelnr LIKE '$matrikelnummer%' ORDER BY matrikelnr DESC LIMIT 1"; + $qry = "SELECT perskz FROM public.tbl_prestudent WHERE perskz LIKE '$matrikelnummer%' ORDER BY perskz DESC LIMIT 1"; if($db->db_query($qry)) { if($row = $db->db_fetch_object()) { - $max = mb_substr($row->matrikelnr,7); + $max = mb_substr($row->perskz,7); } else $max = 0; diff --git a/vilesci/personen/incoming_detail.php b/vilesci/personen/incoming_detail.php index fb872e042..17112c12c 100644 --- a/vilesci/personen/incoming_detail.php +++ b/vilesci/personen/incoming_detail.php @@ -293,7 +293,7 @@ if($method!='') $error=true; $errormsg = $prestudent->errormsg; } - + if(!$error) { //Prestudent Rolle Anlegen @@ -322,15 +322,15 @@ if($method!='') if(!$error) { //Matrikelnummer und UID generieren - $matrikelnr = generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz); + $perskz = generatePerskz($studiengang_kz, $studiensemester_kurzbz); - $jahr = mb_substr($matrikelnr,0, 2); - $stg = mb_substr($matrikelnr, 3, 4); + $jahr = mb_substr($perskz,0, 2); + $stg = mb_substr($perskz, 3, 4); $stg_obj = new studiengang(); $stg_obj->load(ltrim($stg,'0')); - $uid = generateUID($stg_obj->kurzbz,$jahr, $stg_obj->typ, $matrikelnr); + $uid = generateUID($stg_obj->kurzbz,$jahr, $stg_obj->typ, $perskz); //Benutzerdatensatz anlegen $benutzer = new benutzer(); @@ -364,7 +364,7 @@ if($method!='') //Studentendatensatz anlegen $student = new student(); $student->uid = $uid; - $student->matrikelnr = $matrikelnr; + $student->perskz = $perskz; $student->prestudent_id = $prestudent->prestudent_id; $student->studiengang_kz = $studiengang_kz; $student->semester = '0'; @@ -1113,15 +1113,15 @@ function print_lehrveranstaltungen() // **** -// * Generiert die Matrikelnummer +// * Generiert die Personenkennzeichen // * FORMAT: 0710254001 // * 07 = Jahr // * 1/2/0 = WS/SS/incoming // * 0254 = Studiengangskennzahl vierstellig // * 001 = Laufende Nummer // **** -function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz) -{ +function generatePerskz($studiengang_kz, $studiensemester_kurzbz) +{ $db = new basis_db(); $jahr = mb_substr($studiensemester_kurzbz, 4); @@ -1130,21 +1130,21 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz) $jahr = $jahr-1; $art =0; - $matrikelnummer = sprintf("%02d",$jahr).$art.sprintf("%04d",$studiengang_kz); + $perskz = sprintf("%02d",$jahr).$art.sprintf("%04d",$studiengang_kz); - $qry = "SELECT matrikelnr FROM public.tbl_student WHERE matrikelnr LIKE '".$db->db_escape($matrikelnummer)."%' ORDER BY matrikelnr DESC LIMIT 1"; + $qry = "SELECT perskz FROM public.tbl_prestudent WHERE perskz LIKE '".$db->db_escape($perskz)."%' ORDER BY perskz DESC LIMIT 1"; if($db->db_query($qry)) { if($row = $db->db_fetch_object()) { - $max = mb_substr($row->matrikelnr,7); + $max = mb_substr($row->perskz,7); } else $max = 0; $max += 1; - return $matrikelnummer.sprintf("%03d",$max); + return $perskz.sprintf("%03d",$max); } else { diff --git a/vilesci/personen/incoming_lehrveranstaltungen.php b/vilesci/personen/incoming_lehrveranstaltungen.php index 70523a9b3..a39b1cd6e 100644 --- a/vilesci/personen/incoming_lehrveranstaltungen.php +++ b/vilesci/personen/incoming_lehrveranstaltungen.php @@ -302,4 +302,4 @@ if($method=="lehrveranstaltungen") } ?> - \ No newline at end of file + diff --git a/vilesci/personen/personendetails.php b/vilesci/personen/personendetails.php index 172bf7051..35badd944 100644 --- a/vilesci/personen/personendetails.php +++ b/vilesci/personen/personendetails.php @@ -15,10 +15,11 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * Authors: Christian Paminger < christian.paminger@technikum-wien.at > - * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Authors: Christian Paminger < christian.paminger@technikum-wien.at >, + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >, + * Rudolf Hangl < rudolf.hangl@technikum-wien.at >, + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > and + * Andreas moik < moik@technikum-wien.at >. */ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); @@ -33,6 +34,7 @@ require_once('../../include/adresse.class.php'); require_once('../../include/nation.class.php'); require_once('../../include/firma.class.php'); require_once('../../include/preincoming.class.php'); +require_once('../../include/studiensemester.class.php'); $user = get_uid(); @@ -270,32 +272,26 @@ if(count($prestudent->result)>0) '; foreach ($prestudent->result as $row) { + $uid=''; + $gruppe=''; + + $pst = new prestudent($row->prestudent_id); + + $uid = $pst->uid; + if($vrb = $pst->getStudentLehrverband()) + $gruppe = $vrb->semester.$vrb->verband.$vrb->gruppe; + echo ''; echo "$row->prestudent_id"; echo "".$studiengang->kuerzel_arr[$row->studiengang_kz].""; echo "".($row->reihungstestangetreten?'Ja':'Nein').""; - $uid=''; - $gruppe=''; - $qry ="SELECT * FROM public.tbl_student WHERE prestudent_id='$row->prestudent_id'"; - if($result = $db->db_query($qry)) - { - if($db->db_num_rows($result)>1) - { - $uid='ACHTUNG: Es gibt mehrere Studenteneinträge die auf diesen Prestudenten zeigen!'; - } - else - { - if($row_std = $db->db_fetch_object($result)) - { - $uid = $row_std->student_uid; - $gruppe = $row_std->semester.$row_std->verband.$row_std->gruppe; - } - } - } + + + echo "$uid"; echo "$gruppe"; $prestudent1 = new prestudent(); - $prestudent1->getLastStatus($row->prestudent_id); + $prestudent1->getLastStatus($row->prestudent_id); echo "$prestudent1->status_kurzbz ".($prestudent1->ausbildungssemester!=''?"($prestudent1->ausbildungssemester. Semester)":'').""; echo ''; } @@ -307,7 +303,7 @@ if($result = $db->db_query($qry)) { if($db->db_num_rows($result)>0) { - echo '

Mitarbeiter

'; + echo '

Mitarbeiter

'; echo ' @@ -333,4 +329,4 @@ if($result = $db->db_query($qry)) } echo ''; echo ''; -?> \ No newline at end of file +?> diff --git a/vilesci/personen/suche.php b/vilesci/personen/suche.php index 6c1ad5b35..9c6c72d12 100644 --- a/vilesci/personen/suche.php +++ b/vilesci/personen/suche.php @@ -18,7 +18,8 @@ * Authors: Christian Paminger < christian.paminger@technikum-wien.at > * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > and + * Andreas Moik . */ require_once('../../config/vilesci.config.inc.php'); @@ -32,6 +33,7 @@ require_once('../../include/prestudent.class.php'); require_once('../../include/datum.class.php'); require_once('../../include/authentication.class.php'); require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/studiensemester.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -188,9 +190,9 @@ if($searchstr!='') } $qry = "SELECT *, tbl_benutzer.updateamum as bnupdateamum, tbl_benutzer.updatevon as bnupdatevon, - tbl_student.updateamum as supdateamum, tbl_student.updatevon as supdatevon - FROM public.tbl_student JOIN public.tbl_benutzer ON(student_uid=uid) - WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER); + tbl_prestudent.updateamum as supdateamum, tbl_prestudent.updatevon as supdatevon + FROM public.tbl_prestudent JOIN public.tbl_benutzer USING(uid) + WHERE tbl_benutzer.person_id=".$db->db_add_param($row->person_id, FHC_INTEGER); if($result_student = $db->db_query($qry)) { if($db->db_num_rows($result_student)) @@ -198,9 +200,20 @@ if($searchstr!='') while($row_student = $db->db_fetch_object($result_student)) { - $student = new prestudent(); + $stsem = new studiensemester(); + $stsem_kurzbz = $stsem->getaktorNext(); + $qry_sem = "SELECT gruppe, verband, semester from tbl_studentlehrverband WHERE studiensemester_kurzbz=".$db->db_add_param($stsem_kurzbz); + if(!$res_sem = $db->db_query($qry_sem)) + die("Fehler beim holen des Lehrverbandes"); + + + $gruppe=''; + $student = new prestudent();var_dump($row_student->prestudent_id); $student->getLastStatus($row_student->prestudent_id); + if($vrb = $student->getStudentLehrverband()) + $gruppe = $vrb->semester.$vrb->verband.$vrb->gruppe; + $content.= ''; $content.= ''; $content.= ''; @@ -225,7 +238,7 @@ if($searchstr!='') $content.= ""; $content.= ""; $content.= ""; - $content.= ""; + $content.= ""; $content.= ""; $content.= ""; $content.= ''; diff --git a/vilesci/stammdaten/imexport/zutrittskarten/export.php b/vilesci/stammdaten/imexport/zutrittskarten/export.php index d1cc7a202..7bd064803 100644 --- a/vilesci/stammdaten/imexport/zutrittskarten/export.php +++ b/vilesci/stammdaten/imexport/zutrittskarten/export.php @@ -50,26 +50,26 @@ else // Neue Zutrittskarten /*$sql_query="SELECT svnr,vorname,nachname,nummerintern,nummer, - max(tbl_benutzer.uid) AS uid, max(matrikelnr) AS matrikelnr, max(kurzbzlang) AS stg_kurzbzlang, + max(tbl_benutzer.uid) AS uid, max(perskz) AS perskz, max(kurzbzlang) AS stg_kurzbzlang, upper(max(typ) || max(kurzbz)) AS stg_kurzbz, EXTRACT(DAY FROM vw_betriebsmittelperson.insertamum) AS tag, EXTRACT(MONTH FROM vw_betriebsmittelperson.insertamum) AS monat, EXTRACT(YEAR FROM vw_betriebsmittelperson.insertamum) AS jahr FROM public.vw_betriebsmittelperson - LEFT OUTER JOIN (public.tbl_benutzer JOIN public.tbl_student ON (uid=student_uid) + LEFT OUTER JOIN (public.tbl_benutzer JOIN public.tbl_prestudent USING(uid) JOIN public.tbl_studiengang USING (studiengang_kz)) USING (person_id) WHERE betriebsmitteltyp='Zutrittskarte' AND nummer NOT IN (SELECT physaswnumber FROM sync.tbl_zutrittskarte) GROUP BY svnr,vorname,nachname,nummerintern,nummer, vw_betriebsmittelperson.insertamum;"; */ -$sql_query="SELECT svnr,vorname,nachname,nummerintern,nummer, uid, matrikelnr, kurzbzlang AS stg_kurzbzlang, +$sql_query="SELECT svnr,vorname,nachname,nummerintern,nummer, uid, perskz, kurzbzlang AS stg_kurzbzlang, upper(typ)||upper(kurzbz) AS stg_kurzbz, EXTRACT(DAY FROM vw_betriebsmittelperson.insertamum) AS tag, EXTRACT(MONTH FROM vw_betriebsmittelperson.insertamum) AS monat, EXTRACT(YEAR FROM vw_betriebsmittelperson.insertamum) AS jahr FROM public.vw_betriebsmittelperson - LEFT OUTER JOIN (public.tbl_student JOIN public.tbl_studiengang USING (studiengang_kz)) ON (uid=student_uid) + LEFT OUTER JOIN (public.tbl_prestudent JOIN public.tbl_studiengang USING (studiengang_kz)) USING(uid) WHERE betriebsmitteltyp='Zutrittskarte' AND benutzer_aktiv AND retouram IS NULL AND nummer NOT IN (SELECT physaswnumber FROM sync.tbl_zutrittskarte);"; //echo $sql_query; @@ -77,13 +77,13 @@ if(!$result_neu=$db->db_query($sql_query)) die($db->db_last_error().'
'.$sql_query); // Updates von Zutrittskarten -$sql_query="SELECT svnr,vorname,nachname,nummerintern,nummer,firstname,name,key, uid, matrikelnr, +$sql_query="SELECT svnr,vorname,nachname,nummerintern,nummer,firstname,name,key, uid, perskz, kurzbzlang AS stg_kurzbzlang, upper(typ)||upper(kurzbz) AS stg_kurzbz, text1,pin, EXTRACT(DAY FROM vw_betriebsmittelperson.insertamum) AS tag, EXTRACT(MONTH FROM vw_betriebsmittelperson.insertamum) AS monat, EXTRACT(YEAR FROM vw_betriebsmittelperson.insertamum) AS jahr FROM public.vw_betriebsmittelperson - LEFT OUTER JOIN (public.tbl_student JOIN public.tbl_studiengang USING (studiengang_kz)) ON (uid=student_uid) + LEFT OUTER JOIN (public.tbl_prestudent JOIN public.tbl_studiengang USING (studiengang_kz)) USING(uid) JOIN sync.tbl_zutrittskarte ON (physaswnumber=nummer) WHERE benutzer_aktiv AND retouram IS NULL AND (trim(vw_betriebsmittelperson.nachname)!=trim(tbl_zutrittskarte.name) @@ -168,7 +168,7 @@ while ($row=$db->db_fetch_object($result_neu)) $worksheet->write($z,7, $row->tag.'.'.$row->monat.'.'.$row->jahr); $worksheet->write($z,8, $row->tag.'.'.$row->monat.'.'.($row->jahr+5)); $worksheet->write($z,9, $row->uid); - $worksheet->write($z,10,$row->matrikelnr); + $worksheet->write($z,10,$row->perskz); $worksheet->write($z,11,''); $worksheet->write($z,12,''); $worksheet->write($z,13,''); @@ -195,7 +195,7 @@ while ($row=$db->db_fetch_object($result_upd)) $worksheet->write($z,7, $row->tag.'.'.$row->monat.'.'.$row->jahr); $worksheet->write($z,8, $row->tag.'.'.$row->monat.'.'.($row->jahr+5)); $worksheet->write($z,9, $row->uid); - $worksheet->write($z,10,$row->matrikelnr); + $worksheet->write($z,10,$row->perskz); $worksheet->write($z,11,''); $worksheet->write($z,12,$row->text1); $worksheet->write($z,13,$row->name); @@ -230,4 +230,4 @@ while ($row=$db->db_fetch_object($result_del)) } $workbook->close(); -?> \ No newline at end of file +?>
".$stg_arr[$row_student->studiengang_kz]."$row_student->semester$row_student->verband$row_student->gruppe$gruppe".($row_student->supdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_student->supdateamum)):'')."$row_student->supdatevon