mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-21 17:02:19 +00:00
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
/* Copyright (C) 2008 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* 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> and
|
||||
*/
|
||||
/*
|
||||
Finden aller aktiven Studenten, die das Studium noch nicht beendet aber trotzdem keinen aktuellen Status haben
|
||||
*/
|
||||
require_once('../config.inc.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
|
||||
if(!$conn=pg_pconnect(CONN_STRING))
|
||||
die("Konnte Verbindung zur Datenbank nicht herstellen");
|
||||
|
||||
function myaddslashes($var)
|
||||
{
|
||||
return ($var!=''?"'".addslashes($var)."'":'null');
|
||||
}
|
||||
|
||||
$studiensemester=new studiensemester($conn);
|
||||
$ssem=$studiensemester->getaktorNext();
|
||||
$alle=0;
|
||||
$abab=0;
|
||||
$now=0;
|
||||
$hit=0;
|
||||
|
||||
echo "Semester: ".$ssem."<br>";
|
||||
$qry="SELECT DISTINCT tbl_prestudent.prestudent_id, tbl_prestudent.studiengang_kz FROM public.tbl_person
|
||||
JOIN public.tbl_prestudent USING(person_id)
|
||||
JOIN public.tbl_student ON(tbl_prestudent.prestudent_id=tbl_student.prestudent_id)
|
||||
JOIN public.tbl_prestudentrolle ON(tbl_prestudent.prestudent_id=tbl_prestudentrolle.prestudent_id)
|
||||
WHERE tbl_person.aktiv AND rolle_kurzbz!='Incoming' ORDER by tbl_prestudent.studiengang_kz;";
|
||||
|
||||
if ($result=pg_query($conn, $qry))
|
||||
{
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$alle=pg_num_rows($result);
|
||||
$qry_chk="SELECT prestudent_id FROM public.tbl_prestudentrolle WHERE (rolle_kurzbz='Abgewiesener' OR rolle_kurzbz='Abbrecher' OR rolle_kurzbz='Absolvent') AND prestudent_id='".$row->prestudent_id."';";
|
||||
if ($result_chk=pg_query($conn, $qry_chk))
|
||||
{
|
||||
if(pg_num_rows($result_chk)==0)
|
||||
{
|
||||
$qry_chk2="SELECT prestudent_id FROM public.tbl_prestudentrolle WHERE studiensemester_kurzbz='".$ssem."' AND prestudent_id='".$row->prestudent_id."';";
|
||||
if ($result_chk2=pg_query($conn, $qry_chk2))
|
||||
{
|
||||
if(pg_num_rows($result_chk2)==0)
|
||||
{
|
||||
$qry_erg="SELECT nachname,vorname, tbl_prestudent.studiengang_kz, matrikelnr FROM public.tbl_person JOIN public.tbl_prestudent USING(person_id) JOIN public.tbl_student ON(tbl_prestudent.prestudent_id=tbl_student.prestudent_id) WHERE tbl_prestudent.prestudent_id='".$row->prestudent_id."';";
|
||||
if ($result_erg=pg_query($conn, $qry_erg))
|
||||
{
|
||||
if($row_erg=pg_fetch_object($result_erg))
|
||||
{
|
||||
echo "<br>".sprintf("[%04s]\n", $row_erg->studiengang_kz).", ".$row_erg->matrikelnr.", ".$row_erg->nachname.", ".$row_erg->vorname;
|
||||
$hit++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$now++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$abab++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "<br><b>Ergebnis: </b><br>Lost Souls: ".$hit."<br>in akt. Sem.: ".$now."<br>fertig: ".$abab."<br>gesamt: ".$alle;
|
||||
@@ -18,6 +18,8 @@ $sipass=array(array());
|
||||
$i=0;
|
||||
$key_nummer=0;
|
||||
$update=false;
|
||||
$custom=array(array());
|
||||
$error=false;
|
||||
|
||||
if (!$conn=pg_pconnect(CONN_STRING))
|
||||
die(pg_last_error($conn));
|
||||
@@ -45,32 +47,82 @@ else
|
||||
die('Letzte Nummer konnte nicht eruiert werden!');
|
||||
|
||||
//einlesen der daten von sipass
|
||||
|
||||
$qry="SELECT * FROM asco.cardholder
|
||||
JOIN asco.card_physical ON(asco.card_physical.cardholder_id=asco.cardholder.cardholder_id)
|
||||
JOIN asco.card_logical ON(asco.card_physical.card_physical_id=asco.card_logical.card_physical_id);";
|
||||
$qry="SELECT * FROM asco.employee_custom_data";
|
||||
if($result = mssql_query($qry,$conn_ext))
|
||||
{
|
||||
while($row=mssql_fetch_object($result))
|
||||
{
|
||||
$custom[$row->emp_id][$row->field_id]=$row->char_value;
|
||||
}
|
||||
}
|
||||
$qry="SELECT * FROM asco.employee";
|
||||
if($result_ext = mssql_query($qry,$conn_ext))
|
||||
{
|
||||
while($row=mssql_fetch_object($result_ext))
|
||||
{
|
||||
$sipass[$i][0]='';
|
||||
$sipass[$i][1]=$row->cardholder_id;
|
||||
$sipass[$i][1]=$row->emp_no;
|
||||
$sipass[$i][2]=$row->last_name;
|
||||
$sipass[$i][3]=$row->first_name;
|
||||
$sipass[$i][4]=$row->number;
|
||||
$sipass[$i][4]=$row->card_no;
|
||||
$sipass[$i][5]=date('d.m.Y',strtotime($row->start_date));
|
||||
$sipass[$i][6]=date('d.m.Y',strtotime($row->end_date));
|
||||
if(isset($custom[$row->emp_id][7]))
|
||||
{
|
||||
$sipass[$i][7]=$custom[$row->emp_id][7]; //UID
|
||||
}
|
||||
else
|
||||
{
|
||||
$sipass[$i][7]="";
|
||||
}
|
||||
if(isset($custom[$row->emp_id][8]))
|
||||
{
|
||||
$sipass[$i][8]=$custom[$row->emp_id][8]; //Matrikelnr.
|
||||
}
|
||||
else
|
||||
{
|
||||
$sipass[$i][8]="";
|
||||
}
|
||||
if(isset($custom[$row->emp_id][9]))
|
||||
{
|
||||
$sipass[$i][9]=$custom[$row->emp_id][9]; //Stg./Verwaltung
|
||||
}
|
||||
else
|
||||
{
|
||||
$sipass[$i][9]="";
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
$qry="SELECT DISTINCT nachname as LastName, vorname as FirstName,nummer as CardNumber,
|
||||
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)
|
||||
WHERE betriebsmitteltyp='Zutrittskarte' AND benutzer_aktiv AND retouram IS NULL;";
|
||||
//
|
||||
$qry="SELECT bmp.person_id as person2, bmp.nachname as nachname2,bmp.nummer as nummer2, bmp.vorname as vorname2,
|
||||
public.vw_betriebsmittelperson.person_id AS person1, public.vw_betriebsmittelperson.nachname as nachname1, public.vw_betriebsmittelperson.nummer as nummer1,
|
||||
public.vw_betriebsmittelperson.vorname as vorname1, public.vw_betriebsmittelperson.gebdatum as gebdatum1, public.vw_betriebsmittelperson.* FROM public.vw_betriebsmittelperson bmp
|
||||
JOIN public.vw_betriebsmittelperson ON (bmp.nummer=public.vw_betriebsmittelperson.nummer)
|
||||
WHERE (trim(bmp.nachname)!=trim(public.vw_betriebsmittelperson.nachname) OR (trim(bmp.vorname)!=trim(public.vw_betriebsmittelperson.vorname)))
|
||||
AND public.vw_betriebsmittelperson.betriebsmitteltyp='Zutrittskarte' AND bmp.betriebsmitteltyp='Zutrittskarte'
|
||||
AND public.vw_betriebsmittelperson.benutzer_aktiv AND public.vw_betriebsmittelperson.retouram IS NULL AND bmp.benutzer_aktiv AND bmp.retouram IS NULL
|
||||
AND bmp.person_id<public.vw_betriebsmittelperson.person_id
|
||||
ORDER BY bmp.nachname;";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
echo "<br>".$row->person2.", ".$row->nachname2.", ".$row->vorname2.", ".$row->nummer2.", ".$row->person1.", ".$row->nachname1.", ".$row->vorname1.", ".$row->nummer1;
|
||||
$error=true;
|
||||
}
|
||||
}
|
||||
if($error) die("");
|
||||
|
||||
$qry="SELECT DISTINCT ON (person_id, nummer) nachname as LastName, vorname as FirstName,nummer as CardNumber, matrikelnr, uid, kurzbzlang, personalnummer, lektor,
|
||||
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_mitarbeiter ON (uid=mitarbeiter_uid)
|
||||
WHERE betriebsmitteltyp='Zutrittskarte' AND benutzer_aktiv AND retouram IS NULL;";
|
||||
//abhanden gekommene karten???
|
||||
|
||||
if($result = pg_query($conn, $qry))
|
||||
@@ -83,11 +135,61 @@ if($result = pg_query($conn, $qry))
|
||||
//überprüfen, ob bereits vorhanden
|
||||
if($sipass[$j][4]==$row->cardnumber)
|
||||
{
|
||||
$sipass[$j][0]="U";
|
||||
$sipass[$j][2]=trim($row->lastname);
|
||||
$sipass[$j][3]=trim($row->firstname);
|
||||
$sipass[$j][5]=date('d.m.Y',strtotime($row->tag.'.'.$row->monat.'.'.$row->jahr));
|
||||
$sipass[$j][6]=date('d.m.Y',strtotime($row->tag.'.'.$row->monat.'.'.($row->jahr+5)));
|
||||
$upd=FALSE;
|
||||
if($sipass[$j][2]!=trim($row->lastname))
|
||||
{
|
||||
$sipass[$j][2]=trim($row->lastname);
|
||||
$upd=TRUE;
|
||||
}
|
||||
if($sipass[$j][3]!=trim($row->firstname))
|
||||
{
|
||||
$sipass[$j][3]=trim($row->firstname);
|
||||
$upd=TRUE;
|
||||
}
|
||||
if($sipass[$j][5]!=date('d.m.Y',strtotime($row->tag.'.'.$row->monat.'.'.$row->jahr)))
|
||||
{
|
||||
$sipass[$j][5]=date('d.m.Y',strtotime($row->tag.'.'.$row->monat.'.'.$row->jahr));
|
||||
$upd=TRUE;
|
||||
}
|
||||
if($sipass[$j][6]!=date('d.m.Y',strtotime($row->tag.'.'.$row->monat.'.'.($row->jahr+5))))
|
||||
{
|
||||
$sipass[$j][6]=date('d.m.Y',strtotime($row->tag.'.'.$row->monat.'.'.($row->jahr+5)));
|
||||
$upd=TRUE;
|
||||
}
|
||||
if($sipass[$j][7]!=trim($row->uid))
|
||||
{
|
||||
$sipass[$j][7]=trim($row->uid);
|
||||
$upd=TRUE;
|
||||
}
|
||||
if($sipass[$j][8]!=trim($row->matrikelnr))
|
||||
{
|
||||
$sipass[$j][8]=trim($row->matrikelnr);
|
||||
$upd=TRUE;
|
||||
}
|
||||
if($row->personalnummer!='' && $row->personalnummer!= NULL)
|
||||
{
|
||||
if($sipass[$j][9]!="Verwaltung")
|
||||
{
|
||||
$sipass[$j][9]="Verwaltung";
|
||||
$upd=TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($sipass[$j][9]!=trim($row->kurzbzlang))
|
||||
{
|
||||
$sipass[$j][9]=trim($row->kurzbzlang);
|
||||
$upd=TRUE;
|
||||
}
|
||||
}
|
||||
if($upd)
|
||||
{
|
||||
$sipass[$j][0]="U";
|
||||
}
|
||||
else
|
||||
{
|
||||
$sipass[$j][0]="V"; //kein update, wird auch nicht gelöscht
|
||||
}
|
||||
$update=true;
|
||||
break;
|
||||
}
|
||||
@@ -104,6 +206,17 @@ if($result = pg_query($conn, $qry))
|
||||
$sipass[$i][4]=str_replace(" ","",$row->cardnumber);
|
||||
$sipass[$i][5]=$row->tag.'.'.$row->monat.'.'.$row->jahr;
|
||||
$sipass[$i][6]=$row->tag.'.'.$row->monat.'.'.($row->jahr+5);
|
||||
$sipass[$j][7]=trim($row->uid);
|
||||
$sipass[$j][8]=trim($row->matrikelnr);
|
||||
if($row->personalnummer!='' && $row->personalnummer!= NULL)
|
||||
{
|
||||
$sipass[$j][9]="Verwaltung";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$sipass[$j][9]=trim($row->kurzbzlang);
|
||||
}
|
||||
$i++;
|
||||
$key_nummer++;
|
||||
}
|
||||
@@ -121,14 +234,19 @@ for($j=0;$j<$i;$j++)
|
||||
}
|
||||
else
|
||||
{
|
||||
$ausdruck.=$sipass[$j][0]."\t";
|
||||
$ausdruck.=$sipass[$j][1]."\t";
|
||||
$ausdruck.=$sipass[$j][2]."\t";
|
||||
$ausdruck.=$sipass[$j][3]."\t";
|
||||
$ausdruck.=$sipass[$j][4]."\t";
|
||||
$ausdruck.=$sipass[$j][5]."\t";
|
||||
$ausdruck.=$sipass[$j][6]."\t";
|
||||
$ausdruck.="<Keine>\n";
|
||||
if(trim($sipass[$j][0]!='V'))
|
||||
{
|
||||
$ausdruck.=$sipass[$j][0]."\t";
|
||||
$ausdruck.=$sipass[$j][1]."\t";
|
||||
$ausdruck.=$sipass[$j][2]."\t";
|
||||
$ausdruck.=$sipass[$j][3]."\t";
|
||||
$ausdruck.=$sipass[$j][4]."\t";
|
||||
$ausdruck.=$sipass[$j][5]."\t";
|
||||
$ausdruck.=$sipass[$j][6]."\t";
|
||||
$ausdruck.=$sipass[$j][7]."\t";
|
||||
$ausdruck.=$sipass[$j][8]."\t";
|
||||
$ausdruck.=$sipass[$j][9]."\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
header("Content-Type: text/plain");
|
||||
|
||||
Reference in New Issue
Block a user