From ca09e22c09d953b95e38f9b1f991d19400785fcd Mon Sep 17 00:00:00 2001 From: kindlm Date: Wed, 23 Nov 2016 17:05:25 +0100 Subject: [PATCH] Dokumentenakt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Neue Vorlage für Bewerberakt - Abfrage, ob Mimetype von Akte und DMS ident - Diverse neue Attribute für DataArray (Adresse, Kontakt, ...) --- content/dokumentenakt.pdf.php | 207 ++++++- include/notiz.class.php | 17 +- include/pdf.class.php | 29 +- system/xsl/Bewerberakt.xsl | 982 ++++++++++++++++++++++++++++++++-- 4 files changed, 1162 insertions(+), 73 deletions(-) diff --git a/content/dokumentenakt.pdf.php b/content/dokumentenakt.pdf.php index 177b31c7d..f0a7f9917 100755 --- a/content/dokumentenakt.pdf.php +++ b/content/dokumentenakt.pdf.php @@ -1,4 +1,6 @@ load($row->dms_id); + if ($dms->mimetype != $row->mimetype) + { + $preErrors[] = "Mimetype von Akte und DMS der DMS-ID ".$row->dms_id." stimmen nicht ueberein. Bitte kontaktieren Sie einen Administrator"; + } + $filename = DMS_PATH . $dms->filename; if(!file_exists($filename)) @@ -186,7 +209,7 @@ foreach($prestudent_ids as $pid) if(!$docExp->convert($filename, $fullFilename, "pdf")) { $convertSuccess = false; - $preErrors[] ="'$row->titel': Konvertierung fehlgeschlagen(".$row->mimetype.")"; + $preErrors[] = ($row->titel != ''? $row->titel:$row->bezeichnung)." (Akte_ID ".$row->akte_id."): Konvertierung fehlgeschlagen(".$row->mimetype.")"; } } else if( @@ -204,9 +227,35 @@ foreach($prestudent_ids as $pid) { $preDocs[] = $fullFilename; if(isset($row->bezeichnung) && $row->bezeichnung && $row->bezeichnung != "") - $dokumente[] = array("name" => $row->bezeichnung); + { + if ($row->titel != '') + $dokumente[]['dokument'] = array( + "name" => $row->bezeichnung, + "filename" => $row->titel, + "nachgereicht" => ($row->nachgereicht == 't'?'true':'false'), + "anmerkung" => $row->anmerkung); + else + $dokumente[]['dokument'] = array( + "name" => $row->bezeichnung, + "filename" => $row->aktbezeichnung, + "nachgereicht" => ($row->nachgereicht == 't'?'true':'false'), + "anmerkung" => $row->anmerkung); + } else - $dokumente[] = array("name" => $row->dokument_kurzbz); + { + if ($row->titel != '') + $dokumente[]['dokument'] = array( + "name" => $row->dokument_kurzbz, + "filename" => $row->titel, + "nachgereicht" => ($row->nachgereicht == 't'?'true':'false'), + "anmerkung" => $row->anmerkung); + else + $dokumente[]['dokument'] = array( + "name" => $row->dokument_kurzbz, + "filename" => $row->aktbezeichnung, + "nachgereicht" => ($row->nachgereicht == 't'?'true':'false'), + "anmerkung" => $row->anmerkung); + } } else { @@ -227,10 +276,152 @@ foreach($prestudent_ids as $pid) /* * Deckblatt */ + $adresse = new adresse(); + $adresse->load_pers($prestudent->person_id); + $strasse = ''; + $plz = ''; + $bundesland = ''; + + $nation = new nation($prestudent->geburtsnation); + $geburtsnation = $nation->kurztext; + $nation->load($prestudent->staatsbuergerschaft); + $staatsbuergerschaft = $nation->kurztext; + $nation->load($prestudent->zgvnation); + $zgvnation = $nation->kurztext; + + $svnr = ($prestudent->svnr == '')?($prestudent->ersatzkennzeichen != ''?'Ersatzkennzeichen: '.$prestudent->ersatzkennzeichen:''):$prestudent->svnr; + + foreach($adresse->result as $row_adresse) + { + if($row_adresse->heimatadresse) + { + $heimatStrasse = $row_adresse->strasse; + $heimatPlz = $row_adresse->plz; + $heimatOrt = $row_adresse->ort; + // Bundesland ermitteln + $qry= ' + SELECT + tbl_bundesland.bezeichnung AS bundesland + FROM + bis.tbl_gemeinde + JOIN + bis.tbl_bundesland ON (tbl_gemeinde.bulacode = tbl_bundesland.bundesland_code) + WHERE + tbl_gemeinde.name='.$db->db_add_param($row_adresse->gemeinde).' + LIMIT 1; + '; + if(!$res = $db->db_query($qry)) + die("Es ist ein Fehler bei der Ermittlung des Bundeslandes aufgetreten"); + + if(!$row = $db->db_fetch_object($res)) + die("Es ist ein Fehler bei der Ermittlung des Bundeslandes aufgetreten"); + + $heimatBundesland = $row->bundesland; + } + if($row_adresse->zustelladresse) + { + $zustellStrasse = $row_adresse->strasse; + $zustellPlz = $row_adresse->plz; + $zustellOrt = $row_adresse->ort; + // Bundesland ermitteln + $qry= ' + SELECT + tbl_bundesland.bezeichnung AS bundesland + FROM + bis.tbl_gemeinde + JOIN + bis.tbl_bundesland ON (tbl_gemeinde.bulacode = tbl_bundesland.bundesland_code) + WHERE + tbl_gemeinde.name='.$db->db_add_param($row_adresse->gemeinde).' + LIMIT 1; + '; + if(!$res = $db->db_query($qry)) + die("Es ist ein Fehler bei der Ermittlung des Bundeslandes aufgetreten"); + + if(!$row = $db->db_fetch_object($res)) + die("Es ist ein Fehler bei der Ermittlung des Bundeslandes aufgetreten"); + + $zustellBundesland = $row->bundesland; + //break; + } + } + $kontakt = new kontakt(); + $kontakt->load_pers($prestudent->person_id); + $telefonnummer = ''; + foreach($kontakt->result as $row) + { + if ($row->zustellung) + { + if ($row->kontakttyp == 'mobil') + { + $telefonnummer = $row->kontakt; + } + elseif ($row->kontakttyp == 'telefon' && $telefonnummer == '') + { + $telefonnummer = $row->kontakt; + } + + if ($row->kontakttyp == 'email') + { + $mailadresse = $row->kontakt; + } + } + + } + // Studiengang der Bewerbung + $studiengang = new studiengang(); + $studiengang->load($prestudent->studiengang_kz); + + // Datum Bewerbungabgschickt + $prestudentstatus = new prestudent(); + $prestudentstatus->getLastStatus($pid, '', 'Interessent'); + + // Spezielle Notizen auslesen und aufbereiten + $notiz = new notiz(); + $notiz->getNotiz('','','','','','',$pid,'','','','','','aufnahme/spezialisierung'); + + $notiz_text_array = array(); + foreach ($notiz->result as $notiz_row) + { + // Entfernt alle HTML und PHP-Tags aus der Notiz und splittet sie als array auf + $array_help = explode(';', strip_tags($notiz_row->text)); + foreach ($array_help as $key => $value) + $notiz_text_array[]['aufnahme_notiz'] = $value; + } + $filename = $tmpDir . "/".uniqid(); $doc = new dokument_export($vorlage_kurzbz, $oe_kurzbz); - $doc->addDataArray(array('vorname' => $prestudent->vorname, 'nachname' => $prestudent->nachname, array('dokumente'=> $dokumente)),"dokumentenakt"); - + $doc->addDataArray(array( + 'studiengang_kuerzel' => strtoupper($studiengang->typ.$studiengang->kurzbz), + 'orgform_kurzbz' => $prestudent->orgform_kurzbz, + 'bewerbung_abgeschicktamum' => date('d.m.Y H:i',strtotime($prestudentstatus->bewerbung_abgeschicktamum)), + 'vorname' => $prestudent->vorname, + 'nachname' => $prestudent->nachname, + 'geb_datum' => date('d.m.Y',strtotime($prestudent->gebdatum)), + 'gebort' => $prestudent->gebort, + 'heimat_strasse' => $heimatStrasse, + 'heimat_plz' => $heimatPlz, + 'heimat_ort' => $heimatOrt, + 'heimat_bundesland' => $heimatBundesland, + 'zustell_strasse' => $zustellStrasse, + 'zustell_plz' => $zustellPlz, + 'zustell_ort' => $zustellOrt, + 'zustell_bundesland' => $zustellBundesland, + 'geburtsnation' => $geburtsnation, + 'svnr' => $svnr, + 'staatsbuergerschaft' => $staatsbuergerschaft, + 'geschlecht' => $prestudent->geschlecht, + 'telefonnummer' => $telefonnummer, + 'email' => $mailadresse, + 'zgvort' => $prestudent->zgvort, + 'zgvdatum' => $prestudent->zgvdatum, + 'zgvnation' => $zgvnation, + array('dokumente'=> $dokumente), + array('aufnahme_notizen'=> $notiz_text_array) + + ),"dokumentenakt" + ); + //echo $doc->getXML();exit; if(!$doc->create('pdf')) die($doc->errormsg); @@ -255,6 +446,7 @@ foreach($prestudent_ids as $pid) if(count($errors) == 0 || $force) { $finishedPdf = $tmpDir . "/Dokumentenakt.pdf"; + //$finishedPdf = "/Dokumentenakt.pdf"; if(!$pdf->merge($allDocs, $finishedPdf)) cleanUpAndDie($pdf->errormsg, $tmpDir); $fsize = filesize($finishedPdf); @@ -263,7 +455,7 @@ if(count($errors) == 0 || $force) die('load failed'); header('Content-type: application/pdf'); - header('Content-Disposition: attachment; filename="'.$finishedPdf); + header('Content-Disposition: attachment; filename="Dokumentenakt.pdf"'); header('Content-Length: '.$fsize); while (!feof($handle)) @@ -271,6 +463,7 @@ if(count($errors) == 0 || $force) echo fread($handle, 8192); } fclose($handle); + } else { diff --git a/include/notiz.class.php b/include/notiz.class.php index 925842ab5..d68e3f254 100644 --- a/include/notiz.class.php +++ b/include/notiz.class.php @@ -305,7 +305,20 @@ class notiz extends basis_db * @param $anrechnung_id * @return boolean */ - public function getNotiz($erledigt=null, $projekt_kurzbz=null, $projektphase_id=null, $projekttask_id=null, $uid=null, $person_id=null, $prestudent_id=null, $bestellung_id=null, $user=null, $lehreinheit_id=null, $stundenplandev_id=null, $anrechnung_id=null) + public function getNotiz( + $erledigt=null, + $projekt_kurzbz=null, + $projektphase_id=null, + $projekttask_id=null, + $uid=null, + $person_id=null, + $prestudent_id=null, + $bestellung_id=null, + $user=null, + $lehreinheit_id=null, + $stundenplandev_id=null, + $anrechnung_id=null, + $titel=null) { $qry = "SELECT * @@ -341,6 +354,8 @@ class notiz extends basis_db $qry.=" AND lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER); if($anrechnung_id!='') $qry.=" AND anrechnung_id=".$this->db_add_param($anrechnung_id, FHC_INTEGER); + if($titel!='') + $qry.=" AND titel=".$this->db_add_param($titel); $qry.=' ORDER BY start, ende, titel'; diff --git a/include/pdf.class.php b/include/pdf.class.php index 6d0cc7fc7..a41b50fd2 100644 --- a/include/pdf.class.php +++ b/include/pdf.class.php @@ -76,24 +76,39 @@ class Pdf } $s = getimagesize($image); + + $margin_left_right = 18; + $margin_bottom = 18; /* * längere Seite ermitteln - * Hochformat wenn die Seiten gleich lang sind. + * Hochformat wenn die Seiten gleich lang sind oder das Bild schmäler ist als die Seitenbreite */ - if($s[0] > $s[1]) + if($s[0] > $s[1] && $s[0] > 595) { - $height = 595; - $width = 842; + $page_height = 595; + $page_width = 842; + //Wenn Bild kleiner oder gleich Seitenbreite, dann margin erhoehen + if ($s[0] <= $page_width) + { + $margin_left_right = ($page_width - $s[0]) / 2; + $margin_bottom = ($page_height - $s[1]); + } } else { - $height = 842; - $width = 595; + $page_height = 842; + $page_width = 595; + //Wenn Bild kleiner oder gleich Seitenbreite, dann margin erhoehen + if ($s[0] <= $page_width) + { + $margin_left_right = ($page_width - $s[0]) / 2; + $margin_bottom = ($page_height - $s[1]); + } } // -r300 = 300 ppi - $cmd = 'gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -r100 -o '.$outFile.' viewjpeg.ps -c "('.$image.') << /PageSize [' . $width . ' ' . $height .'] /.HWMargins [18 18 18 13.5] /countspaces { [ exch { dup 32 ne { pop } if } forall ] length } bind def >> setpagedevice viewJPEG"'; + $cmd = 'gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -r100 -o '.$outFile.' viewjpeg.ps -c "('.$image.') << /PageSize [' . $page_width . ' ' . $page_height .'] /.HWMargins ['.$margin_left_right.' '.$margin_bottom.' '.$margin_left_right.' 18] /countspaces { [ exch { dup 32 ne { pop } if } forall ] length } bind def >> setpagedevice viewJPEG"'; exec($cmd, $out, $ret); if($ret!=0) diff --git a/system/xsl/Bewerberakt.xsl b/system/xsl/Bewerberakt.xsl index a765c757a..43e0dbf88 100644 --- a/system/xsl/Bewerberakt.xsl +++ b/system/xsl/Bewerberakt.xsl @@ -1,62 +1,928 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Bewerberakt - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Neue Bewerbung für Studiengang + (Abgeschickt am ) + + + + + + Angaben zur Person + + + + + + Angaben zur Person + + + + + + Nachname + + + + + + + + Vorname + + + + + + + + Geburtsdatum + + + + + + + + Geburtsort + + + + + + + + Geburtsnation + + + + + + + + Soz.-Vers. Nr. + + + + + + + + Staatsbürgerschaft + + + + + + + + Geschlecht + + + + + + Männlich + + + Weiblich + + - + + + + + + + + + + + + + + + + + Priorität Masterklassen: + + + + + + + - - - + + + + + + + + + + + Heimatadresse + + + + + + Heimatadresse für BewerberInnen aus dem Inland + + + + + + Straße, Nr. + + + + + + + + PLZ/Ort + + + + + + + + Bundesland + + + + + + + + + + + + + + + + Heimatadresse für BewerberInnen aus dem Ausland + + + + + + + + + Heimatadresse=Zustelladresse + + + + + Hinweis: Wenn „Heimatadresse=Zustelladresse“ zutrifft, gilt dies für BewerberInnen aus dem In- und Ausland + + + + + + + + + + + + + + Zustelladresse + + + + + + Zustelladresse für BewerberInnen aus dem Inland + + + + + + Straße, Nr. + + + + + + + + PLZ/Ort + + + + + + + + Bundesland + + + + + + + + + + + + + + + + Zustelladresse für BewerberInnen aus dem Ausland + + + + + + + + + + + + + + Kontakt + + + + + + Kontakt + + + + + + Mobiltelefon + + + + + + + + E-Mail + + + + + + + + + + + + + + + + Ausbildung + + + + + + Ausbildung + + + + + + Reifeprüfung (AHS, BHS, Berufsreifeprüfung) + + + + + + Name der Schule und Ort + + + ZGV-Ort ? + + + + + Abgelegt am + + + ZGV-Datum ? + + + + + Studienberechtigungsprüfung + + + + + + Abgelegt am + + + Daten woher ? + + + + + Facheinschlägige berufliche Qualifikation + + + + + + + + + + + + + + + Vorbereitungskurs + + + + + + + + + + + + + + + + + + + + + + In welchem Staat wurden die Zugangsvoraussetzungen abgelegt + + + + + + Staat + + + + + + + + + + + + + + + + Bewerbungsunterlagen + + + + + + Bewerbungsunterlagen / Anlagen + + + + + + Bitte achten Sie darauf, dass jedes Dokument: + + + + + + - kleiner als 4MB ist + + + + + + - der Dateiname keine Umlaute, Sonderzeichen, Leerzeichen enthält + + + + + + + + + + + + + + oder wenn Abschluss-/Reifeprüfungszeugnis noch nicht vorhanden: + + + + + + + + + + + + + + Motivationsschreiben in deutscher Sprache! + + + + + + Achtung: ist Teil des Aufnahmeverfahrens und wird bewertet! + + + + + + + + + + + + + + + + + - - - - - + + + + - + + + + + + + + + + + + + Das Dokument wird nachgereicht + + + + + + + + + + + + + + + + + + ) + + + + + + \ No newline at end of file