mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-17 12:09:28 +00:00
Zutrittskarten werden ueber dokument_export.class.php erstellt
This commit is contained in:
+292
-358
@@ -1,358 +1,292 @@
|
||||
<?php
|
||||
/* Copyright (C) 2012 FH 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: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/* Erstellt ein Dokument zum Drucken der Zutrittskarten
|
||||
*
|
||||
* Parameter:
|
||||
* data ... Liste der UIDs mit Strichpunkt getrennt
|
||||
* type ... normal | datum - wenn datum übergeben wird, wird nur das Gueltigkeitsdatum erstellt,
|
||||
* sonst alle Kartendaten
|
||||
*
|
||||
*/
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
require_once('../include/akte.class.php');
|
||||
require_once('../include/benutzer.class.php');
|
||||
require_once('../include/vorlage.class.php');
|
||||
require_once('../include/datum.class.php');
|
||||
require_once('../include/mitarbeiter.class.php');
|
||||
require_once('../include/konto.class.php');
|
||||
require_once('../include/studiensemester.class.php');
|
||||
require_once('../include/student.class.php');
|
||||
require_once('../include/studiengang.class.php');
|
||||
require_once('../include/benutzerfunktion.class.php');
|
||||
require_once('../include/organisationseinheit.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$db = new basis_db();
|
||||
|
||||
$datum_obj = new datum();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if(!$rechte->isBerechtigt('mitarbeiter/stammdaten') && !$rechte->isBerechtigt('student/stammdaten'))
|
||||
{
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
}
|
||||
|
||||
//UIDs werden entweder als data Parameter mit ";" getrennt übergeben
|
||||
$uid = isset($_REQUEST['data'])?$_REQUEST['data']:'';
|
||||
//ODER als POST Array über den Parameter users
|
||||
$users = isset($_REQUEST['users'])?$_REQUEST['users']:'';
|
||||
$type = isset($_REQUEST['type'])?$_REQUEST['type']:'normal';
|
||||
$output = isset($_REQUEST['output'])?$_REQUEST['output']:'pdf';
|
||||
if($uid=='' && $users=='')
|
||||
die('Parameter data is missing');
|
||||
|
||||
$uid_arr = array();
|
||||
if($users!='')
|
||||
$uid_arr = $users;
|
||||
else
|
||||
$uid_arr = explode(';',$uid);
|
||||
|
||||
// Wenn Array mehrere Elemente hat und erstes Element im Array leer ist -> entfernen
|
||||
if (isset($uid_arr[1]) && $uid_arr[0] == '')
|
||||
array_shift($uid_arr);
|
||||
|
||||
// Tempordner fuer das erstellen des ODT anlegen
|
||||
$tempfolder = '/tmp/'.uniqid();
|
||||
mkdir($tempfolder);
|
||||
chdir($tempfolder);
|
||||
|
||||
// Unterordner fuer die Bilder erstellen
|
||||
mkdir('Pictures');
|
||||
|
||||
// Studiengang ermitteln dessen Vorlage verwendet werden soll
|
||||
$xsl_stg_kz=0;
|
||||
// Direkte uebergabe des Studienganges dessen Vorlage verwendet werden soll
|
||||
if(isset($_GET['xsl_stg_kz']))
|
||||
$xsl_stg_kz=$_GET['xsl_stg_kz'];
|
||||
else
|
||||
{
|
||||
// Wenn eine Studiengangskennzahl uebergeben wird, wird die Vorlage dieses Studiengangs verwendet
|
||||
if(isset($_GET['stg_kz']))
|
||||
$xsl_stg_kz=$_GET['stg_kz'];
|
||||
else
|
||||
{
|
||||
// Vorlage des Studiengangs aus $uid_arr ermitteln (1. Studierender im Array)
|
||||
if($uid_arr[0] != '')
|
||||
{
|
||||
$student_obj = new student();
|
||||
if($student_obj->load($uid_arr[0]))
|
||||
{
|
||||
$xsl_stg_kz = $student_obj->studiengang_kz;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Vorlage der Zutrittskarte laden
|
||||
|
||||
if($xsl_stg_kz=='')
|
||||
$xsl_stg_kz='0';
|
||||
|
||||
$vorlage = new vorlage();
|
||||
if(!$vorlage->getAktuelleVorlage($xsl_stg_kz, 'Zutrittskarte'))
|
||||
die($vorlage->errormsg);
|
||||
$xsl_content = $vorlage->text;
|
||||
|
||||
// Vorlage ODT in den Temp Ordner kopieren
|
||||
$zipfile = DOC_ROOT.'system/vorlage_zip/'.$vorlage->vorlage_kurzbz.'.odt';
|
||||
$tempname_zip = 'out.zip';
|
||||
if(copy($zipfile, $tempname_zip))
|
||||
{
|
||||
// XML mit den Personendaten erstellen
|
||||
$xml ="<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
|
||||
<zutrittskarte>";
|
||||
|
||||
foreach($uid_arr as $uid)
|
||||
{
|
||||
$bn = new benutzer();
|
||||
if($bn->load($uid))
|
||||
{
|
||||
$gueltigbis = '';
|
||||
|
||||
// Bild der Person holen
|
||||
$bild = $qry = "SELECT inhalt as foto FROM public.tbl_akte WHERE dokument_kurzbz='Lichtbil' AND person_id=".$db->db_add_param($bn->person_id, FHC_INTEGER);
|
||||
|
||||
$cTmpHEX='/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q==';
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
//Wenn kein Lichtbild in den Akten vorhanden ist, Foto aus tbl_person holen
|
||||
if ($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry_person = "SELECT foto FROM public.tbl_person WHERE person_id=".$db->db_add_param($bn->person_id, FHC_INTEGER);
|
||||
|
||||
if($result_person = $db->db_query($qry_person))
|
||||
{
|
||||
if($row_person = $db->db_fetch_object($result_person))
|
||||
{
|
||||
//Wenn auch kein Foto in tbl_person gespeichert ist, mit der naechsten UID fortfahren
|
||||
if($row_person->foto == '')
|
||||
continue;
|
||||
else
|
||||
$cTmpHEX = $row_person->foto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($row = $db->db_fetch_object($result))
|
||||
{
|
||||
//Wenn der Inhalt des Lichtbilds leer ist, Foto aus tbl_person holen
|
||||
if ($row->foto =='')
|
||||
{
|
||||
$qry_person = "SELECT foto FROM public.tbl_person WHERE person_id=".$db->db_add_param($bn->person_id, FHC_INTEGER);
|
||||
|
||||
if($result_person = $db->db_query($qry_person))
|
||||
{
|
||||
if($row_person = $db->db_fetch_object($result_person))
|
||||
{
|
||||
//Wenn auch kein Foto in tbl_person gespeichert ist, mit der naechsten UID fortfahren
|
||||
if($row_person->foto == '')
|
||||
continue;
|
||||
else
|
||||
$cTmpHEX = $row_person->foto;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
$cTmpHEX = $row->foto;
|
||||
}
|
||||
}
|
||||
|
||||
// Bild in den Temp Ordner zwischenspeichern
|
||||
file_put_contents($tempfolder.'/Pictures/'.$bn->uid.'.jpg',base64_decode($cTmpHEX));
|
||||
|
||||
// Bild zum Manifest-File des ODTs hinzufuegen
|
||||
addImageToManifest($tempname_zip, 'Pictures/'.$bn->uid.'.jpg', $contenttype='image/jpeg');
|
||||
|
||||
if(check_lektor($uid))
|
||||
{
|
||||
$ma = new mitarbeiter();
|
||||
$ma->load($uid);
|
||||
$benutzerfunktion = new benutzerfunktion();
|
||||
$benutzerfunktion->getBenutzerFunktionByUid($uid, NULL, date("Y-m-d"), date("Y-m-d"));
|
||||
if(!empty($benutzerfunktion->result[0]))
|
||||
{
|
||||
$oe = new organisationseinheit($benutzerfunktion->result[0]->oe_kurzbz);
|
||||
}
|
||||
else
|
||||
{
|
||||
$oe = new organisationseinheit();
|
||||
}
|
||||
$xml.="
|
||||
<mitarbeiter>
|
||||
<uid><![CDATA[".$bn->uid."]]></uid>
|
||||
<vorname><![CDATA[".$bn->vorname."]]></vorname>
|
||||
<nachname><![CDATA[".$bn->nachname."]]></nachname>
|
||||
<titelpre><![CDATA[".$bn->titelpre."]]></titelpre>
|
||||
<titelpost><![CDATA[".$bn->titelpost."]]></titelpost>
|
||||
<personalnummer><![CDATA[".$ma->personalnummer."]]></personalnummer>
|
||||
<ausstellungsdatum><![CDATA[".date('d.m.Y')."]]></ausstellungsdatum>
|
||||
<gebdatum><![CDATA[".$datum_obj->formatDatum($ma->gebdatum,'d.m.Y')."]]></gebdatum>
|
||||
<organisationseinheit><![CDATA[".$oe->bezeichnung."]]></organisationseinheit>
|
||||
</mitarbeiter>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$student = new student();
|
||||
$student->load($bn->uid);
|
||||
$konto = new konto();
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($student->studiengang_kz);
|
||||
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem = $stsem_obj->getaktorNext();
|
||||
$stsem_obj->load($stsem);
|
||||
|
||||
if($konto->checkStudienbeitrag($bn->uid, $stsem_obj->studiensemester_kurzbz))
|
||||
{
|
||||
$gueltigbis=$stsem_obj->ende;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Studiengebuehr noch nicht bezahlt
|
||||
$gueltigbis=$stsem_obj->ende;
|
||||
}
|
||||
|
||||
if($type=='datum')
|
||||
{
|
||||
//Nur der Datumsstempel wird erstellt
|
||||
$xml.="
|
||||
<datum>
|
||||
<gueltigbis><![CDATA[".$datum_obj->formatDatum($gueltigbis,'d/m/Y')."]]></gueltigbis>
|
||||
</datum>";
|
||||
}
|
||||
else
|
||||
{
|
||||
//Student
|
||||
$xml.="
|
||||
<student>
|
||||
<uid><![CDATA[".$bn->uid."]]></uid>
|
||||
<vorname><![CDATA[".$bn->vorname."]]></vorname>
|
||||
<nachname><![CDATA[".$bn->nachname."]]></nachname>
|
||||
<titelpre><![CDATA[".$bn->titelpre."]]></titelpre>
|
||||
<titelpost><![CDATA[".$bn->titelpost."]]></titelpost>
|
||||
<studiengang><![CDATA[".$studiengang->kurzbzlang."]]></studiengang>
|
||||
<gebdatum><![CDATA[".$datum_obj->formatDatum($bn->gebdatum,'d.m.Y')."]]></gebdatum>
|
||||
<matrikelnummer><![CDATA[".$student->matrikelnr."]]></matrikelnummer>
|
||||
<ausstellungsdatum><![CDATA[".date('M.Y')."]]></ausstellungsdatum>
|
||||
<gueltigbis><![CDATA[".$datum_obj->formatDatum($gueltigbis,'d.m.Y')."]]></gueltigbis>
|
||||
</student>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$xml.="</zutrittskarte>";
|
||||
|
||||
// XSL-Vorlage von content.xml laden
|
||||
$xsl_doc = new DOMDocument;
|
||||
if(!$xsl_doc->loadXML($xsl_content))
|
||||
die('Fehler beim Laden der XSL Vorlage von content.xml.');
|
||||
|
||||
// XML Dokument in ein DOM Objekt laden
|
||||
$xml_doc = new DOMDocument;
|
||||
if(!$xml_doc->loadXML($xml))
|
||||
die('Fehler beim Laden des XML');
|
||||
|
||||
// XSL File in den Processor laden
|
||||
$proc = new XSLTProcessor;
|
||||
$proc->importStyleSheet($xsl_doc);
|
||||
|
||||
// XSL-Transformation starten
|
||||
$buffer = $proc->transformToXml($xml_doc);
|
||||
|
||||
// Konvertierte content.xml ins Filesystem schreiben
|
||||
file_put_contents('content.xml', $buffer);
|
||||
|
||||
//Debugging XML
|
||||
//file_put_contents('Pictures/out.xml', $xml);
|
||||
|
||||
// Bilder zum ZIP-File hinzufuegen
|
||||
exec("zip $tempname_zip Pictures/*");
|
||||
|
||||
// content.xml ins ZIP-File hinzufuegen
|
||||
exec("zip $tempname_zip content.xml");
|
||||
|
||||
if($output=='pdf')
|
||||
{
|
||||
exec("unoconv --stdout -f pdf $tempname_zip > out.pdf");
|
||||
$tempname_zip='out.pdf';
|
||||
}
|
||||
|
||||
//Ausgeben des Dokuments
|
||||
clearstatcache();
|
||||
$fsize = filesize($tempname_zip);
|
||||
$handle = fopen($tempname_zip,'r');
|
||||
if($output=='pdf')
|
||||
{
|
||||
header('Content-type: application/pdf');
|
||||
header('Content-Disposition: attachment; filename="'.$vorlage->vorlage_kurzbz.'.pdf"');
|
||||
}
|
||||
else
|
||||
{
|
||||
header('Content-type: '.$vorlage->mimetype);
|
||||
header('Content-Disposition: attachment; filename="'.$vorlage->vorlage_kurzbz.'.odt"');
|
||||
}
|
||||
header('Content-Length: '.$fsize);
|
||||
while (!feof($handle))
|
||||
{
|
||||
echo fread($handle, 8192);
|
||||
}
|
||||
fclose($handle);
|
||||
|
||||
//Loeschen der Temporaeren Dateien
|
||||
//unlink('content.xml');
|
||||
//Unlinking Pictures ?
|
||||
//unlink($tempname_zip);
|
||||
//rmdir($tempfolder);
|
||||
exec('rm -r '.$tempfolder);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fuegt ein Bild zur Manifest-Datei eines ODT Files hinzu
|
||||
*
|
||||
* @param $zip Zip Pfad
|
||||
* @param $image Bild Pfad
|
||||
* @param $contenttype Content-Type des Bildes
|
||||
*/
|
||||
function addImageToManifest($zip, $image, $contenttype='image/png')
|
||||
{
|
||||
// Manifest Datei holen
|
||||
exec('unzip '.$zip.' META-INF/manifest.xml');
|
||||
// Bild zur Manifest Datei hinzufuegen
|
||||
$manifest = file_get_contents('META-INF/manifest.xml');
|
||||
$xml_doc = new DOMDocument;
|
||||
if(!$xml_doc->loadXML($manifest))
|
||||
die('Manifest File ungueltig');
|
||||
//root-node holen
|
||||
$root = $xml_doc->getElementsByTagName('manifest')->item(0);
|
||||
|
||||
//Neues Element unterhalb des Root Nodes anlegen
|
||||
$node = $xml_doc->createElement("manifest:file-entry");
|
||||
$node->setAttribute("manifest:media-type",$contenttype);
|
||||
$node->setAttribute("manifest:full-path",$image);
|
||||
$root->appendChild($node);
|
||||
$out = $xml_doc->saveXML();
|
||||
|
||||
//geaenderte Manifest Datei speichern und wieder ins Zip packen
|
||||
file_put_contents('META-INF/manifest.xml', $out);
|
||||
exec('zip '.$zip.' META-INF/*');
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/* Copyright (C) 2012 FH 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: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/* Erstellt ein Dokument zum Drucken der Zutrittskarten
|
||||
*
|
||||
* Parameter:
|
||||
* data ... Liste der UIDs mit Strichpunkt getrennt
|
||||
* type ... normal | datum - wenn datum übergeben wird, wird nur das Gueltigkeitsdatum erstellt,
|
||||
* sonst alle Kartendaten
|
||||
*
|
||||
*/
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
require_once('../include/akte.class.php');
|
||||
require_once('../include/benutzer.class.php');
|
||||
require_once('../include/vorlage.class.php');
|
||||
require_once('../include/datum.class.php');
|
||||
require_once('../include/mitarbeiter.class.php');
|
||||
require_once('../include/konto.class.php');
|
||||
require_once('../include/studiensemester.class.php');
|
||||
require_once('../include/student.class.php');
|
||||
require_once('../include/studiengang.class.php');
|
||||
require_once('../include/benutzerfunktion.class.php');
|
||||
require_once('../include/organisationseinheit.class.php');
|
||||
require_once('../include/dokument_export.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$db = new basis_db();
|
||||
|
||||
$datum_obj = new datum();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if (!$rechte->isBerechtigt('mitarbeiter/stammdaten') && !$rechte->isBerechtigt('student/stammdaten'))
|
||||
{
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
}
|
||||
|
||||
//UIDs werden entweder als data Parameter mit ";" getrennt übergeben
|
||||
$uid = isset($_REQUEST['data'])?$_REQUEST['data']:'';
|
||||
//ODER als POST Array über den Parameter users
|
||||
$users = isset($_REQUEST['users'])?$_REQUEST['users']:'';
|
||||
$type = isset($_REQUEST['type'])?$_REQUEST['type']:'normal';
|
||||
$output = isset($_REQUEST['output'])?$_REQUEST['output']:'pdf';
|
||||
if ($uid == '' && $users == '')
|
||||
die('Parameter data is missing');
|
||||
|
||||
$images = array();
|
||||
$uid_arr = array();
|
||||
if ($users != '')
|
||||
$uid_arr = $users;
|
||||
else
|
||||
$uid_arr = explode(';', $uid);
|
||||
|
||||
// Wenn Array mehrere Elemente hat und erstes Element im Array leer ist -> entfernen
|
||||
if (isset($uid_arr[1]) && $uid_arr[0] == '')
|
||||
array_shift($uid_arr);
|
||||
|
||||
// Tempordner fuer das erstellen des ODT anlegen
|
||||
$tempfolder = '/tmp/fhc-'.uniqid();
|
||||
mkdir($tempfolder);
|
||||
chdir($tempfolder);
|
||||
|
||||
// Unterordner fuer die Bilder erstellen
|
||||
mkdir('Pictures');
|
||||
|
||||
// Studiengang ermitteln dessen Vorlage verwendet werden soll
|
||||
$xsl_stg_kz = 0;
|
||||
// Direkte uebergabe des Studienganges dessen Vorlage verwendet werden soll
|
||||
if (isset($_GET['xsl_stg_kz']))
|
||||
{
|
||||
$xsl_stg_kz = $_GET['xsl_stg_kz'];
|
||||
}
|
||||
else
|
||||
{
|
||||
// Wenn eine Studiengangskennzahl uebergeben wird, wird die Vorlage dieses Studiengangs verwendet
|
||||
if (isset($_GET['stg_kz']))
|
||||
$xsl_stg_kz = $_GET['stg_kz'];
|
||||
else
|
||||
{
|
||||
// Vorlage des Studiengangs aus $uid_arr ermitteln (1. Studierender im Array)
|
||||
if ($uid_arr[0] != '')
|
||||
{
|
||||
$student_obj = new student();
|
||||
if ($student_obj->load($uid_arr[0]))
|
||||
{
|
||||
$xsl_stg_kz = $student_obj->studiengang_kz;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Vorlage der Zutrittskarte laden
|
||||
|
||||
if ($xsl_stg_kz == '')
|
||||
$xsl_stg_kz = '0';
|
||||
|
||||
$xsl_oe_kurzbz = '';
|
||||
$stg = new studiengang();
|
||||
if ($stg->load($xsl_stg_kz))
|
||||
{
|
||||
$xsl_oe_kurzbz = $stg->oe_kurzbz;
|
||||
}
|
||||
else
|
||||
die('Unknown Studiengang');
|
||||
|
||||
$dokument = new dokument_export('Zutrittskarte', $xsl_oe_kurzbz);
|
||||
$filename = 'Zutrittskarte';
|
||||
|
||||
foreach ($uid_arr as $uid)
|
||||
{
|
||||
$bn = new benutzer();
|
||||
if ($bn->load($uid))
|
||||
{
|
||||
$gueltigbis = '';
|
||||
|
||||
// Bild der Person holen
|
||||
$qry = "SELECT
|
||||
inhalt as foto
|
||||
FROM
|
||||
public.tbl_akte
|
||||
WHERE
|
||||
dokument_kurzbz = 'Lichtbil'
|
||||
AND person_id = ".$db->db_add_param($bn->person_id, FHC_INTEGER);
|
||||
|
||||
$b64bild = '/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/';
|
||||
$b64bild .= '9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/';
|
||||
$b64bild .= '9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/';
|
||||
$b64bild .= '8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/';
|
||||
$b64bild .= 'EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q==';
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
//Wenn kein Lichtbild in den Akten vorhanden ist, Foto aus tbl_person holen
|
||||
if ($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry_person = "SELECT foto FROM public.tbl_person
|
||||
WHERE person_id=".$db->db_add_param($bn->person_id, FHC_INTEGER);
|
||||
|
||||
if ($result_person = $db->db_query($qry_person))
|
||||
{
|
||||
if ($row_person = $db->db_fetch_object($result_person))
|
||||
{
|
||||
//Wenn auch kein Foto in tbl_person gespeichert ist, mit der naechsten UID fortfahren
|
||||
if ($row_person->foto == '')
|
||||
continue;
|
||||
else
|
||||
$b64bild = $row_person->foto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
//Wenn der Inhalt des Lichtbilds leer ist, Foto aus tbl_person holen
|
||||
if ($row->foto == '')
|
||||
{
|
||||
$qry_person = "SELECT foto FROM public.tbl_person
|
||||
WHERE person_id=".$db->db_add_param($bn->person_id, FHC_INTEGER);
|
||||
|
||||
if ($result_person = $db->db_query($qry_person))
|
||||
{
|
||||
if ($row_person = $db->db_fetch_object($result_person))
|
||||
{
|
||||
//Wenn auch kein Foto in tbl_person gespeichert ist, mit der naechsten UID fortfahren
|
||||
if ($row_person->foto == '')
|
||||
continue;
|
||||
else
|
||||
$b64bild = $row_person->foto;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
$b64bild = $row->foto;
|
||||
}
|
||||
}
|
||||
|
||||
$imagefilename = $tempfolder.'/Pictures/'.$bn->uid.'.jpg';
|
||||
// Bild in den Temp Ordner zwischenspeichern
|
||||
file_put_contents($imagefilename, base64_decode($b64bild));
|
||||
|
||||
$images[] = $imagefilename;
|
||||
// Bild zum Manifest-File des ODTs hinzufuegen
|
||||
$dokument->addImage($imagefilename, $bn->uid.'.jpg', 'image/jpg');
|
||||
|
||||
if (check_lektor($uid))
|
||||
{
|
||||
$ma = new mitarbeiter();
|
||||
$ma->load($uid);
|
||||
$benutzerfunktion = new benutzerfunktion();
|
||||
$benutzerfunktion->getBenutzerFunktionByUid($uid, null, date("Y-m-d"), date("Y-m-d"));
|
||||
if (!empty($benutzerfunktion->result[0]))
|
||||
{
|
||||
$oe = new organisationseinheit($benutzerfunktion->result[0]->oe_kurzbz);
|
||||
}
|
||||
else
|
||||
{
|
||||
$oe = new organisationseinheit();
|
||||
}
|
||||
$data[]['mitarbeiter'] = array(
|
||||
'uid' => $bn->uid,
|
||||
'vorname' => $bn->vorname,
|
||||
'nachname' => $bn->nachname,
|
||||
'titelpre' => $bn->titelpre,
|
||||
'titepost' => $bn->titelpost,
|
||||
'personalnummer' => $ma->personalnummer,
|
||||
'ausstellungsdatum' => date('d.m.Y'),
|
||||
'gebdatum' => $datum_obj->formatDatum($ma->gebdatum, 'd.m.Y'),
|
||||
'organisationseinheit' => $oe->bezeichnung
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$student = new student();
|
||||
$student->load($bn->uid);
|
||||
$konto = new konto();
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($student->studiengang_kz);
|
||||
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem = $stsem_obj->getaktorNext();
|
||||
$stsem_obj->load($stsem);
|
||||
|
||||
if ($konto->checkStudienbeitrag($bn->uid, $stsem_obj->studiensemester_kurzbz))
|
||||
{
|
||||
$gueltigbis = $stsem_obj->ende;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Studiengebuehr noch nicht bezahlt
|
||||
$gueltigbis = $stsem_obj->ende;
|
||||
}
|
||||
|
||||
if ($type == 'datum')
|
||||
{
|
||||
//Nur der Datumsstempel wird erstellt
|
||||
$data[]['datum'] = array(
|
||||
'gueltigbis' => $datum_obj->formatDatum($gueltigbis, 'd/m/Y')
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$data[]['student'] = array(
|
||||
'uid' => $bn->uid,
|
||||
'vorname' => $bn->vorname,
|
||||
'nachname' => $bn->nachname,
|
||||
'titelpre' => $bn->titelpre,
|
||||
'titepost' => $bn->titelpost,
|
||||
'studiengang' => $studiengang->kurzbzlang,
|
||||
'gebdatum' => $datum_obj->formatDatum($bn->gebdatum, 'd.m.Y'),
|
||||
'matrikelnummer' => $student->matrikelnr,
|
||||
'ausstellungsdatum' => date('M.Y'),
|
||||
'gueltigbis' => $datum_obj->formatDatum($gueltigbis, 'd.m.Y')
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$dokument->addDataArray($data, 'zutrittskarte');
|
||||
$dokument->setFilename($filename);
|
||||
|
||||
if (!$dokument->create($output))
|
||||
die($dokument->errormsg);
|
||||
|
||||
$dokument->output();
|
||||
$dokument->close();
|
||||
|
||||
// Cleanup Temp Images
|
||||
foreach($images as $image)
|
||||
{
|
||||
if(file_exists($image))
|
||||
unlink($image);
|
||||
}
|
||||
rmdir($tempfolder.'/Pictures');
|
||||
rmdir($tempfolder);
|
||||
|
||||
Reference in New Issue
Block a user