diff --git a/cis/private/pdfExport.php b/cis/private/pdfExport.php index e6f69d82d..cf1c62a3f 100644 --- a/cis/private/pdfExport.php +++ b/cis/private/pdfExport.php @@ -25,21 +25,20 @@ * Hilfe der XSL-FO Vorlage aus der DB und generiert * daraus ein PDF (xslfo2pdf) */ - require_once('../../config/cis.config.inc.php'); - require_once('../../include/basis_db.class.php'); - if (!$db = new basis_db()) - die('Fehler beim Oeffnen der Datenbankverbindung'); - +require_once('../../config/cis.config.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/xslfo2pdf/xslfo2pdf.php'); require_once('../../include/akte.class.php'); require_once('../../include/konto.class.php'); +require_once('../../include/benutzer.class.php'); +if (!$db = new basis_db()) + die('Fehler beim Oeffnen der Datenbankverbindung'); + $user = get_uid(); loadVariables($user); - $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); @@ -84,10 +83,27 @@ if(isset($_GET['typ'])) $konto = new konto(); if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin')) { - if($xsl=='Inskription' && (!$konto->checkStudienbeitrag($user, $_GET["ss"]))) die('Der Studienbeitrag wurde noch nicht bezahlt'); + if(isset($_GET['buchungsnummern'])) + { + //Beim Drucken von Buchungsbestaetigungen pruefen ob diese Buchungen auch zu diesem Benutzer gehoeren + $buchungsnr = explode(';',$_GET['buchungsnummern']); + $user_obj = new benutzer(); + $user_obj->load($user); + foreach($buchungsnr as $bnr) + { + if($bnr!='') + { + $konto->load($bnr); + if($konto->person_id!=$user_obj->person_id) + die('Sie haben keine Berechtigung fuer diese Buchung'); + if($konto->getDifferenz($bnr)!=0) + die('Diese Zahlung wurde noch nicht beglichen'); + } + } + } $xml_url=XML_ROOT.$xml.$params; //echo $xml_url; // Load the XML source @@ -107,7 +123,7 @@ if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin')) // Load the XSL source $xsl_doc = new DOMDocument; - //if(!$xsl_doc->load('../../../../xsl/collection.xsl')) + if(!$xsl_doc->loadXML($row->text)) die('unable to load xsl'); @@ -118,8 +134,6 @@ if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin')) $buffer = $proc->transformToXml($xml_doc); //in $buffer steht nun das xsl-fo file mit den daten $buffer = ''.substr($buffer, strpos($buffer,"\n"),strlen($buffer)); - //$buffer = html_entity_decode($buffer); - //echo "buffer: $buffer"; //Pdf erstellen $fo2pdf = new XslFo2Pdf(); @@ -143,72 +157,9 @@ if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin')) } $filename=$xsl.$nachname; - if (!isset($_REQUEST["archive"])) + if (!$fo2pdf->generatePdf($buffer, $filename, "D")) { - if (!$fo2pdf->generatePdf($buffer, $filename, "D")) - { - echo('Failed to generate PDF'); - } - } - else - { - - $filename = $user; - if (!$fo2pdf->generatePdf($buffer, $filename, 'F')) - { - echo('Failed to generate PDF'); - } - $file = "/tmp/".$filename.".pdf"; - $handle = fopen($file, "rb"); - $string = fread($handle, filesize($file)); - fclose($handle); - unlink($file); - - $hex=""; - for ($i=0;$idb_query($query)) - { - if($row = $db->db_fetch_object($result)) - { - $person_id = $row->person_id; - $titel = "Zeugnis_".strtoupper($row->typ).strtoupper($row->kurzbz)."_".$row->semester; - $bezeichnung = "Zeugnis ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$row->semester.". Semester"; - } - else - { - $echo = 'Datensatz wurde nicht gefunden'; - - } - } - - $akte = new akte(); - $akte->person_id = $person_id; - $akte->dokument_kurzbz = "Zeugnis"; - $akte->inhalt = $hex; - $akte->mimetype = "application/octet-stream"; - $akte->erstelltam = $heute; - $akte->gedruckt = true; - $akte->titel = $titel.".pdf"; - $akte->bezeichnung = $bezeichnung; - $akte->updateamum = ""; - $akte->updatevon = ""; - $akte->insertamum = date('Y-m-d h:m:s'); - $akte->insertvon = $user; - $akte->ext_id = ""; - $akte->uid = $_REQUEST["uid"]; - $akte->new = true; - if (!$akte->save('new')) - return true; - else - return false; + echo('Failed to generate PDF'); } } else