mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-18 23:42:17 +00:00
This commit is contained in:
@@ -14,76 +14,88 @@ require_once('../../../../include/Excel/File.php');
|
||||
require_once('../../../../include/Excel/Writer.php');
|
||||
require_once('../../../../include/Excel/Validator.php');
|
||||
|
||||
$sipass=array(array());
|
||||
$i=0;
|
||||
$update=false;
|
||||
|
||||
if (!$conn=pg_pconnect(CONN_STRING))
|
||||
die(pg_last_error($conn));
|
||||
/*
|
||||
// zugriff auf mssql-datenbank ----------------------- DB-Zugriff ändern !!!!!!
|
||||
if (!$conn_ext=mssql_connect (STPDB_SERVER, STPDB_USER, STPDB_PASSWD))
|
||||
die('Fehler beim Verbindungsaufbau!');
|
||||
mssql_select_db(STPDB_DB, $conn_ext);
|
||||
|
||||
// letzte Nummer
|
||||
$sql_query="SELECT max(key) AS last_keynr FROM sync.tbl_zutrittskarte;";
|
||||
/*
|
||||
//letzte Nummer
|
||||
$sql_query="SELECT max(key) AS last_keynr FROM ***************;";
|
||||
//echo $sql_query;
|
||||
if(!$result=pg_exec($conn, $sql_query))
|
||||
die(pg_errormessage().'<BR>'.$sql_query);
|
||||
if(!$result=mssql_query($qry,$conn_ext))
|
||||
die(mssql_get_last_message().'<BR>'.$sql_query);
|
||||
if ($row=pg_fetch_object($result))
|
||||
$key_nummer=$row->last_keynr+1;
|
||||
else
|
||||
die ('Letzte Nummer konnte nicht eroiert werden!');
|
||||
die('Letzte Nummer konnte nicht eruiert werden!');*/
|
||||
|
||||
//einlesen der daten von sipass
|
||||
/*
|
||||
$qry="SELECT ID, LastName, FirstName, CardNumber, StartDate, EndDate FROM **************;";
|
||||
if($result_ext = mssql_query($qry,$conn_ext))
|
||||
{
|
||||
while($row=mssql_fetch_object($result_ext))
|
||||
{
|
||||
$sipass[$i][1]=$result_ext->ID;
|
||||
$sipass[$i][2]=$result_ext->LastName;
|
||||
$sipass[$i][3]=$result_ext->FirstName;
|
||||
$sipass[$i][4]=$result_ext->CardNumber;
|
||||
$sipass[$i][5]=$result_ext->StartDate;
|
||||
$sipass[$i][6]=$result_ext->EndDate;
|
||||
$i++;
|
||||
}
|
||||
}*/
|
||||
|
||||
// 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,
|
||||
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)
|
||||
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,
|
||||
upper(typ)||upper(kurzbz) AS stg_kurzbz,
|
||||
$qry="SELECT DISTINCT vorname as FirstName,nachname as LastName, 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
|
||||
AND nummer NOT IN (SELECT physaswnumber FROM sync.tbl_zutrittskarte);";
|
||||
//echo $sql_query;
|
||||
if(!$result_neu=pg_exec($conn, $sql_query))
|
||||
die(pg_errormessage().'<BR>'.$sql_query);
|
||||
WHERE betriebsmitteltyp='Zutrittskarte' AND benutzer_aktiv AND retouram IS NULL;";
|
||||
|
||||
// Updates von Zutrittskarten
|
||||
$sql_query="SELECT svnr,vorname,nachname,nummerintern,nummer,firstname,name,key, uid, matrikelnr,
|
||||
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)
|
||||
JOIN sync.tbl_zutrittskarte ON (physaswnumber=nummer)
|
||||
WHERE benutzer_aktiv AND retouram IS NULL
|
||||
AND (trim(vw_betriebsmittelperson.nachname)!=trim(tbl_zutrittskarte.name)
|
||||
OR trim(vw_betriebsmittelperson.vorname)!=trim(tbl_zutrittskarte.firstname)
|
||||
OR trim(vw_betriebsmittelperson.uid)!=trim(tbl_zutrittskarte.text1));";
|
||||
//echo $sql_query;
|
||||
if(!$result_upd=pg_exec($conn, $sql_query))
|
||||
die(pg_errormessage().'<BR>'.$sql_query);
|
||||
|
||||
// Loeschen von Zutrittskarten
|
||||
$sql_query="SELECT *
|
||||
FROM sync.tbl_zutrittskarte
|
||||
WHERE physaswnumber NOT IN
|
||||
(SELECT nummer
|
||||
FROM public.vw_betriebsmittelperson
|
||||
WHERE betriebsmitteltyp='Zutrittskarte' AND retouram IS NULL
|
||||
);"; // AND benutzer_aktiv
|
||||
//echo $sql_query;
|
||||
if(!$result_del=pg_exec($conn, $sql_query))
|
||||
die(pg_errormessage().'<BR>'.$sql_query);
|
||||
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$update=false;
|
||||
for($j=0;$j<$i;$j++)
|
||||
{
|
||||
//überprüfen, ob bereits vorhanden
|
||||
if($sipass[$j][4]==$row->cardnumber)
|
||||
{
|
||||
$sipass[$j][0]="U";
|
||||
$sipass[$j][2]=$row->lastname;
|
||||
$sipass[$j][3]=$row->firstname;
|
||||
$sipass[$j][5]=$row->tag.'.'.$row->monat.'.'.$row->jahr;
|
||||
$sipass[$j][6]=$row->tag.'.'.$row->monat.'.'.($row->jahr+5);
|
||||
$update=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!$update)
|
||||
{
|
||||
//wenn nicht gefunden, dann append
|
||||
$sipass[$i][0]="A";
|
||||
$sipass[$i][1]='';
|
||||
$sipass[$i][2]=$row->lastname;
|
||||
$sipass[$i][3]=$row->firstname;
|
||||
$sipass[$i][4]=$row->cardnumber;
|
||||
$sipass[$i][5]=$row->tag.'.'.$row->monat.'.'.$row->jahr;
|
||||
$sipass[$i][6]=$row->tag.'.'.$row->monat.'.'.($row->jahr+5);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//------------ Excel init --------------------------
|
||||
@@ -91,120 +103,31 @@ if(!$result_del=pg_exec($conn, $sql_query))
|
||||
// Creating a workbook
|
||||
$workbook = new Spreadsheet_Excel_Writer();
|
||||
// sending HTTP headers
|
||||
$workbook->send("CerpassZutrittskartenUpdate". "_" . date("d_m_Y") . ".xls");
|
||||
$workbook->send("SiPassZutrittskartenUpdate". "_" . date("d_m_Y") . ".xls");
|
||||
// Creating a worksheet
|
||||
$worksheet =& $workbook->addWorksheet("CerpassZutrittskartenUpdate");
|
||||
|
||||
//$format_bold =& $workbook->addFormat();
|
||||
//$format_bold->setBold();
|
||||
//$format_title =& $workbook->addFormat();
|
||||
//$format_title->setBold();
|
||||
// $format_title->setColor('yellow');
|
||||
// $format_title->setPattern(1);
|
||||
// $format_title->setFgColor('blue');
|
||||
// let's merge
|
||||
//$format_title->setAlign('merge');
|
||||
|
||||
$worksheet->write(0,0,"(Command)"); // a:Add - u:Update - d:Delete
|
||||
$worksheet->write(0,1,"(Key)"); // Gleich wie LogAswNumber
|
||||
$worksheet->write(0,2,"(Name)");
|
||||
$worksheet->write(0,3,"(FirstName)");
|
||||
$worksheet->write(0,4,"(Group)"); // Muss auf Anlage vorhanden sein Studenten: StudiengangskennzahlLang Mitarbeiter: Verwaltung/General
|
||||
$worksheet->write(0,5,"(LogAswNumber)"); // Betriebsmittel: LogNummer
|
||||
$worksheet->write(0,6,"(PhysAswNumber)"); // Betriebsmittel: Nummer
|
||||
$worksheet->write(0,7,"(ValidStart)"); // aktuell
|
||||
$worksheet->write(0,8,"(ValidEnd)"); // +5 Jahre
|
||||
$worksheet->write(0,9,"(UID)"); //Text1:
|
||||
$worksheet->write(0,10,"(Matrikelnummer)"); //Text2: Wichtig bei Studenten
|
||||
$worksheet->write(0,11,"(Text3)"); //Text3: Nicht verwenden
|
||||
$worksheet->write(0,12,"(Text4)"); //Text4: Nicht verwenden
|
||||
$worksheet->write(0,13,"(Text5)"); //Text5:
|
||||
$worksheet->write(0,14,"(Text6)"); //Text6:
|
||||
$worksheet->write(0,15,"(PIN)"); // Nicht verwenden
|
||||
$worksheet->write(0,16,"(CardState)"); // Bei Neuen immer auf 0
|
||||
$worksheet =& $workbook->addWorksheet("SiPassZutrittskartenUpdate");
|
||||
|
||||
// set width of columns
|
||||
$worksheet->setColumn(0,0,2); // erste Spalte auf width=2
|
||||
$worksheet->setColumn(1,1,5); // zweite Spalten auf width=5
|
||||
//$worksheet->setColumn(0,0,22);
|
||||
$worksheet->setColumn(0,0,2); // erste Spalte auf width=2
|
||||
$worksheet->setColumn(0,1,8); // zweite Spalte auf width=8
|
||||
$worksheet->setColumn(0,2,20);
|
||||
$worksheet->setColumn(0,3,20);
|
||||
$worksheet->setColumn(0,4,12);
|
||||
$worksheet->setColumn(0,5,10);
|
||||
$worksheet->setColumn(0,6,10);
|
||||
|
||||
$z=1; // Start bei Zeile 1
|
||||
|
||||
// Neue Zutrittskarten
|
||||
while ($row=pg_fetch_object($result_neu))
|
||||
$z=0; // Start bei Zeile 0
|
||||
|
||||
for($j=0;$j<$i;$j++)
|
||||
{
|
||||
$command='a';
|
||||
$gruppe=$row->stg_kurzbz;
|
||||
if ($gruppe=='')
|
||||
$gruppe='Verwaltung';
|
||||
$worksheet->write($z,0, $command);
|
||||
$worksheet->write($z,1, $key_nummer); //$row->nummerintern);
|
||||
$worksheet->write($z,2, $row->nachname);
|
||||
$worksheet->write($z,3, $row->vorname);
|
||||
$worksheet->write($z,4, $gruppe);
|
||||
$worksheet->write($z,5, $key_nummer++); //$row->nummerintern);
|
||||
$worksheet->write($z,6, $row->nummer);
|
||||
$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,11,'');
|
||||
$worksheet->write($z,12,'');
|
||||
$worksheet->write($z,13,'');
|
||||
$worksheet->write($z,14,'');
|
||||
$worksheet->write($z,15,'');
|
||||
$worksheet->write($z,16,'0');
|
||||
$z++;
|
||||
}
|
||||
|
||||
// Updates von Zutrittskarten
|
||||
while ($row=pg_fetch_object($result_upd))
|
||||
{
|
||||
$command='u';
|
||||
$gruppe=$row->stg_kurzbz;
|
||||
if ($gruppe=='')
|
||||
$gruppe='Verwaltung';
|
||||
$worksheet->write($z,0, $command);
|
||||
$worksheet->write($z,1, $row->key);
|
||||
$worksheet->write($z,2, $row->nachname);
|
||||
$worksheet->write($z,3, $row->vorname);
|
||||
$worksheet->write($z,4, $gruppe);
|
||||
$worksheet->write($z,5, $row->key);
|
||||
$worksheet->write($z,6, $row->nummer);
|
||||
$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,11,'');
|
||||
$worksheet->write($z,12,$row->text1);
|
||||
$worksheet->write($z,13,$row->name);
|
||||
$worksheet->write($z,14,$row->firstname);
|
||||
$worksheet->write($z,15,$row->pin);
|
||||
$worksheet->write($z,16,'0');
|
||||
$z++;
|
||||
}
|
||||
|
||||
// Loeschen von Zutrittskarten
|
||||
while ($row=pg_fetch_object($result_del))
|
||||
{
|
||||
$command='d';
|
||||
$worksheet->write($z,0, $command);
|
||||
$worksheet->write($z,1, $row->key);
|
||||
$worksheet->write($z,2, $row->name);
|
||||
$worksheet->write($z,3, $row->firstname);
|
||||
$worksheet->write($z,4, $row->groupe);
|
||||
$worksheet->write($z,5, $row->logaswnumber);
|
||||
$worksheet->write($z,6, $row->physaswnumber);
|
||||
$worksheet->write($z,7, $row->validstart);
|
||||
$worksheet->write($z,8, $row->validend);
|
||||
$worksheet->write($z,9, $row->text1);
|
||||
$worksheet->write($z,10,$row->text2);
|
||||
$worksheet->write($z,11,$row->text3);
|
||||
$worksheet->write($z,12,$row->text4);
|
||||
$worksheet->write($z,13,$row->text5);
|
||||
$worksheet->write($z,14,$row->text6);
|
||||
$worksheet->write($z,15,$row->pin);
|
||||
$worksheet->write($z,16,'0');
|
||||
$worksheet->write($z,0, $sipass[$j][0]);
|
||||
$worksheet->write($z,1, $sipass[$j][1]);
|
||||
$worksheet->write($z,2, $sipass[$j][2]);
|
||||
$worksheet->write($z,3, $sipass[$j][3]);
|
||||
$worksheet->write($z,4, $sipass[$j][4]);
|
||||
$worksheet->write($z,5, $sipass[$j][5]);
|
||||
$worksheet->write($z,6, $sipass[$j][6]);
|
||||
$z++;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user