diff --git a/content/pdfExport.php b/content/pdfExport.php
index 80a62948a..7104ed3cc 100644
--- a/content/pdfExport.php
+++ b/content/pdfExport.php
@@ -177,21 +177,9 @@ if (isset($_GET['output']) && $_GET['output'] != 'pdf')
else
$output = 'pdf';
-/** TODO *******************/
- //XSL aus der DB holen
- $vorlage = new vorlage();
- if ($xsl_oe_kurzbz != '')
- {
- $vorlage->getAktuelleVorlage($xsl_oe_kurzbz, $xsl, $version);
- }
- else
- {
- if ($xsl_stg_kz == '')
- $xsl_stg_kz = '0';
-
- $vorlage->getAktuelleVorlage($xsl_stg_kz, $xsl, $version);
- }
-/** TODO ENDE ****************/
+$vorlage = new vorlage();
+if(!$vorlage->loadVorlage($xsl))
+ die('Vorlage wurde nicht gefunden');
//Berechtigung pruefen
if ($xsl == 'AccountInfo')
@@ -233,61 +221,25 @@ if ($xsl == 'AccountInfo')
exit;
}
}
-elseif (in_array($xsl,array('Lehrveranstaltungszeugnis','Zertifikat','Diplomurkunde','Diplomzeugnis',
-'Bescheid', 'BescheidEng','Bakkurkunde','BakkurkundeEng','Bakkzeugnis',
-'PrProtokollBakk','PrProtokollDipl','Lehrauftrag','DiplomurkundeEng','Zeugnis','ZeugnisEng','StudienerfolgEng',
-'Sammelzeugnis','PrProtDiplEng','PrProtBakkEng','BakkzeugnisEng','DiplomzeugnisEng','statusbericht',
-'DiplSupplement','Zutrittskarte','Projektbeschr','Ausbildungsver','AusbildStatus','PrProtBA','PrProtMA',
-'PrProtBAEng','PrProtMAEng','Studienordnung','Erfolgsnachweis','ErfolgsnwHead','Studienblatt','LV_Informationen',
-'LVZeugnis','AnwListBarcode','Honorarvertrag','AusbVerEng','AusbVerEngHead','Zeugnis','ZeugnisNeu','ZeugnisEngNeu',
-'ErfolgsnachweisE','ErfolgsnwHeadE','Magisterurkunde','Masterurkunde','Defensiourkunde','Magisterzeugnis',
-'Laufzettel','StudienblattEng','Zahlung1','Terminliste','Studienbuchblatt','Veranstaltungen')))
-{
- if (!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz'))
- {
- echo 'Sie haben keine Berechtigung dieses Dokument zu erstellen';
- exit;
- }
-}
-elseif (in_array($xsl,array('Ressource')))
-{
- if (!$rechte->isBerechtigt('lehre/lvplan'))
- {
- echo 'Sie haben keine Berechtigung dieses Dokument zu erstellen';
- exit;
- }
-}
-elseif (in_array($xsl,array('Inskription','Studienerfolg','OutgoingLearning','OutgoingChangeL','LearningAgree','Zahlung','DichiaSost')))
-{
- if (!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz'))
- {
- echo 'Sie haben keine Berechtigung dieses Dokument zu erstellen';
- exit;
- }
-}
-elseif ($xsl=='Uebernahme')
-{
- if (!$rechte->isBerechtigt('wawi/inventar') && !$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('basis/betriebsmittel'))
- {
- echo 'Sie haben keine Berechtigung dieses Dokument zu erstellen';
- exit;
- }
-}
-elseif ($xsl=='Bestellung')
-{
- if (!$rechte->isBerechtigt('wawi/bestellung'))
- {
- echo 'Sie haben keine Berechtigung dieses Dokument zu erstellen';
- exit;
- }
-}
else
{
+ $vorlagestudiengang = new vorlage();
+ if ($xsl_oe_kurzbz != '')
+ {
+ $vorlagestudiengang->getAktuelleVorlage($xsl_oe_kurzbz, $xsl, $version);
+ }
+ else
+ {
+ if ($xsl_stg_kz == '')
+ $xsl_stg_kz = '0';
+
+ $vorlagestudiengang->getAktuelleVorlage($xsl_stg_kz, $xsl, $version);
+ }
// Wenn Berechtigung direkt beim der Vorlage angegeben ist
- if (count($vorlage->berechtigung)>0)
+ if (count($vorlagestudiengang->berechtigung)>0)
{
$allowed = false;
- foreach($vorlage->berechtigung as $berechtigung_kurzbz)
+ foreach($vorlagestudiengang->berechtigung as $berechtigung_kurzbz)
{
if ($rechte->isBerechtigt($berechtigung_kurzbz))
$allowed = true;
@@ -327,6 +279,11 @@ if ($xsl_oe_kurzbz == '')
$xsl_oe_kurzbz = $stg_obj->oe_kurzbz;
}
+if($sign === true && $vorlage->signierbar === false)
+{
+ die('Diese Vorlage darf nicht signiert werden');
+}
+
if (!isset($_REQUEST["archive"]))
{
if (mb_strstr($vorlage->mimetype, 'application/vnd.oasis.opendocument'))
@@ -383,6 +340,9 @@ if (!isset($_REQUEST["archive"]))
}
else
{
+ if(!$vorlage->archivierbar)
+ die('Dieses Dokument ist nicht archivierbar');
+
// Archivieren von Dokumenten
$uid = $_REQUEST["uid"];
$heute = date('Y-m-d');
@@ -446,6 +406,11 @@ else
die($dokument->errormsg);
$error = false;
+
+ // Beim Archivieren wird das Dokument immer signiert wenn moeglich
+ if($vorlage->signierbar)
+ $sign = true;
+
if ($sign === true)
{
if ($dokument->sign($user))
@@ -467,7 +432,10 @@ else
$hex = base64_encode($doc);
$akte = new akte();
$akte->person_id = $person_id;
- $akte->dokument_kurzbz = 'Zeugnis';
+ if($vorlage->dokument_kurzbz!='')
+ $akte->dokument_kurzbz = $vorlage->dokument_kurzbz;
+ else
+ $akte->dokument_kurzbz = 'Zeugnis';
$akte->inhalt = $hex;
$akte->mimetype = 'application/octet-stream';
$akte->erstelltam = $heute;
@@ -481,6 +449,10 @@ else
$akte->ext_id = '';
$akte->uid = $uid;
$akte->new = true;
+ $akte->archiv = true;
+ $akte->signiert = $sign;
+ $akte->stud_selfservice = $vorlage->stud_selfservice;
+
if (!$akte->save())
{
echo 'Erstellen Fehlgeschlagen: '.$akte->errormsg;
diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php
index 9fdfa4382..f2332eb3b 100644
--- a/content/student/studentoverlay.js.php
+++ b/content/student/studentoverlay.js.php
@@ -1273,7 +1273,7 @@ function StudentAuswahl()
{
// *** Zeugnis ***
zeugnistree = document.getElementById('student-zeugnis-tree');
- url='rdf/akte.rdf.php?person_id='+person_id+"&dokument_kurzbz=Zeugnis&"+gettimestamp();
+ url='rdf/akte.rdf.php?person_id='+person_id+"&"+gettimestamp();
try
{
@@ -2926,17 +2926,10 @@ function StudentAkteDel()
function StudentAkteDisableFields(val)
{
document.getElementById('student-zeugnis-button-archive').disabled=val;
+ // Zeugnis als Default markieren
+ document.getElementById('student-zeugnis-menulist-dokument').value='Zeugnis';
}
-function StudentAkteToggleDetails()
-{
- var studentarchivierendetails = document.getElementById('student-zeugnis-archivieren-erweitert');
-
- if(studentarchivierendetails.hidden)
- studentarchivierendetails.hidden = false;
- else
- studentarchivierendetails.hidden = true;
-}
// ****
// * Offent eine Seite zum Upload einer neuen Datei zu einer archivierten Akte
// ****
@@ -2986,19 +2979,39 @@ function StudentZeugnisDokumentArchivieren()
var vorlage = document.getElementById('student-zeugnis-menulist-dokument').value;
var url = 'content/pdfExport.php';
var xml = '';
+
switch(vorlage)
{
case 'Zeugnis':
case 'ZeugnisEng':
xml = 'zeugnis.rdf.php'
break;
+
+ case 'PrProtokollBakk':
+ case 'PrProtBakkEng':
+ case 'PrProtBA':
+ case 'PrProtBAEng':
+ case 'PrProtokollDipl':
+ case 'PrProtDiplEng':
+ case 'PrProtMA':
+ case 'PrProtMAEng':
case 'Bescheid':
case 'BescheidEng':
xml = 'abschlusspruefung.rdf.php';
break;
+
case 'DiplSupplement':
xml = 'diplomasupplement.xml.php';
break;
+
+ case 'Studienblatt':
+ case 'StudienblattEng':
+ xml = 'studienblatt.xml.php';
+ break;
+ default:
+ alert('Das archivieren fuer diesen Dokumenttyp wird derzeit nicht unterstuetzt');
+ return
+ break;
}
var labelalt = document.getElementById('student-zeugnis-button-archive').label;
@@ -3019,9 +3032,6 @@ function StudentZeugnisDokumentArchivieren()
req.add('archive', '1');
req.add('uid', uid);
- if(document.getElementById('student-zeugnis-checkbox-sign').checked)
- req.add('sign', '1');
-
var response = req.execute();
if(response!='')
errormsg = errormsg + response;
@@ -3038,6 +3048,7 @@ function StudentZeugnisDokumentArchivieren()
// * Startet das Script zum Archivieren des Zeugnisses und
// * Refresht dann den Tree
// ****
+/*
function StudentZeugnisArchivieren(lang)
{
lang = lang || 'ger';
@@ -3142,7 +3153,7 @@ function StudentBescheidArchivieren(lang)
StudentAkteTreeDatasource.Refresh(false);
}
-
+*/
// **************** Incomming/Outgoing ******************
// ****
@@ -5273,6 +5284,7 @@ function StudentCreateDiplSupplement(event)
// ****
// * Archiviert das Diplomasupplement einer Person
// ****
+/*
function StudentDiplomasupplementArchivieren()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
@@ -5309,7 +5321,7 @@ function StudentDiplomasupplementArchivieren()
document.getElementById('student-zeugnis-button-archivieren-diplomasupplement').label=labelalt;
StudentAkteTreeDatasource.Refresh(false);
}
-
+*/
// ****
// * Erstellt den Ausbildungsvertrag fuer einen oder mehrere Studenten
// ****
diff --git a/content/student/studentzeugnisoverlay.xul.php b/content/student/studentzeugnisoverlay.xul.php
index c17c95887..c47ee85b7 100644
--- a/content/student/studentzeugnisoverlay.xul.php
+++ b/content/student/studentzeugnisoverlay.xul.php
@@ -77,7 +77,7 @@ echo '';
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/akte/rdf#erstelltam" />
-
@@ -85,6 +85,14 @@ echo '';
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/akte/rdf#akte_id" />
+
+
+
+
@@ -96,6 +104,8 @@ echo '';
+
+
@@ -126,16 +136,18 @@ echo '';
-
@@ -143,29 +155,6 @@ echo '';
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/include/akte.class.php b/include/akte.class.php
index a369c3dda..9bc65eb2a 100644
--- a/include/akte.class.php
+++ b/include/akte.class.php
@@ -51,6 +51,9 @@ class akte extends basis_db
public $nachgereicht_am;
public $ausstellungsnation;
public $formal_geprueft_amum;
+ public $archiv = false;
+ public $signiert = false;
+ public $stud_selfservice = false;
/**
* Konstruktor
@@ -106,6 +109,10 @@ class akte extends basis_db
$this->nachgereicht_am = $row->nachgereicht_am;
$this->ausstellungsnation = $row->ausstellungsnation;
$this->formal_geprueft_amum = $row->formal_geprueft_amum;
+ $this->archiv = $this->db_parse_bool($row->archiv);
+ $this->signiert = $this->db_parse_bool($row->signiert);
+ $this->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
+
return true;
}
else
@@ -189,7 +196,8 @@ class akte extends basis_db
//Neuen Datensatz anlegen
$qry = "BEGIN;INSERT INTO public.tbl_akte (person_id, dokument_kurzbz, inhalt, mimetype, erstelltam, gedruckt, titel,
bezeichnung, updateamum, updatevon, insertamum, insertvon, uid, dms_id, nachgereicht, anmerkung,
- titel_intern, anmerkung_intern, nachgereicht_am, ausstellungsnation, formal_geprueft_amum) VALUES (".
+ titel_intern, anmerkung_intern, nachgereicht_am, ausstellungsnation, formal_geprueft_amum,
+ archiv, signiert, stud_selfservice) VALUES (".
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
$this->db_add_param($this->dokument_kurzbz).', '.
$this->db_add_param($this->inhalt).', '.
@@ -210,7 +218,10 @@ class akte extends basis_db
$this->db_add_param($this->anmerkung_intern).','.
$this->db_add_param($this->nachgereicht_am).','.
$this->db_add_param($this->ausstellungsnation).','.
- $this->db_add_param($this->formal_geprueft_amum).');';
+ $this->db_add_param($this->formal_geprueft_amum).','.
+ $this->db_add_param($this->archiv, FHC_BOOLEAN).','.
+ $this->db_add_param($this->signiert, FHC_BOOLEAN).','.
+ $this->db_add_param($this->stud_selfservice, FHC_BOOLEAN).');';
}
else
{
@@ -234,7 +245,10 @@ class akte extends basis_db
" anmerkung_intern=".$this->db_add_param($this->anmerkung_intern).",".
" nachgereicht_am=".$this->db_add_param($this->nachgereicht_am).",".
" ausstellungsnation=".$this->db_add_param($this->ausstellungsnation).",".
- " formal_geprueft_amum=".$this->db_add_param($this->formal_geprueft_amum).
+ " formal_geprueft_amum=".$this->db_add_param($this->formal_geprueft_amum).",".
+ " archiv=".$this->db_add_param($this->archiv, FHC_BOOLEAN).",".
+ " signiert=".$this->db_add_param($this->signiert, FHC_BOOLEAN).",".
+ " stud_selfservice=".$this->db_add_param($this->stud_selfservice, FHC_BOOLEAN).
" WHERE akte_id=".$this->db_add_param($this->akte_id, FHC_INTEGER);
}
@@ -285,13 +299,13 @@ class akte extends basis_db
* nicht mehr angezeigt werden
* @return true wenn ok, sonst false
*/
- public function getAkten($person_id, $dokument_kurzbz=null, $stg_kz = null, $prestudent_id= null)
+ public function getAkten($person_id, $dokument_kurzbz=null, $stg_kz = null, $prestudent_id = null)
{
$qry = "SELECT
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt, titel_intern, anmerkung_intern,
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid, dms_id, anmerkung, nachgereicht,
CASE WHEN inhalt is not null THEN true ELSE false END as inhalt_vorhanden,
- nachgereicht_am, ausstellungsnation, formal_geprueft_amum
+ nachgereicht_am, ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice
FROM public.tbl_akte WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
if($dokument_kurzbz!=null)
$qry.=" AND dokument_kurzbz=".$this->db_add_param($dokument_kurzbz);
@@ -334,6 +348,9 @@ class akte extends basis_db
$akten->nachgereicht_am = $row->nachgereicht_am;
$akten->ausstellungsnation = $row->ausstellungsnation;
$akten->formal_geprueft_amum = $row->formal_geprueft_amum;
+ $akten->archiv = $this->db_parse_bool($row->archiv);
+ $akten->signiert = $this->db_parse_bool($row->signiert);
+ $akten->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
$this->result[] = $akten;
}
@@ -359,7 +376,7 @@ class akte extends basis_db
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt,
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid,
dms_id,nachgereicht,anmerkung,titel_intern,anmerkung_intern, nachgereicht_am,
- ausstellungsnation, formal_geprueft_amum
+ ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice
FROM public.tbl_akte WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
$qry.=" AND dokument_kurzbz IN ('Lebenslf','Motivat','LearnAgr')";
@@ -393,6 +410,9 @@ class akte extends basis_db
$akten->nachgereicht_am = $row->nachgereicht_am;
$akten->ausstellungsnation = $row->ausstellungsnation;
$akten->formal_geprueft_amum = $row->formal_geprueft_amum;
+ $akten->archiv = $this->db_parse_bool($row->archiv);
+ $akten->signiert = $this->db_parse_bool($row->signiert);
+ $akten->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
$this->result[] = $akten;
}
@@ -417,7 +437,7 @@ class akte extends basis_db
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt,
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid,
dms_id,nachgereicht,anmerkung,titel_intern,anmerkung_intern, nachgereicht_am,
- ausstellungsnation, formal_geprueft_amum
+ ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice
FROM public.tbl_akte WHERE dms_id=".$this->db_add_param($dms_id, FHC_INTEGER)."
ORDER BY erstelltam";
@@ -449,6 +469,84 @@ class akte extends basis_db
$akten->nachgereicht_am = $row->nachgereicht_am;
$akten->ausstellungsnation = $row->ausstellungsnation;
$akten->formal_geprueft_amum = $row->formal_geprueft_amum;
+ $akten->archiv = $this->db_parse_bool($row->archiv);
+ $akten->signiert = $this->db_parse_bool($row->signiert);
+ $akten->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
+
+ $this->result[] = $akten;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Liefert die Archivdokumente einer Person
+ *
+ * @param $person_id ID der Person.
+ * @param $signiert Boolean Wenn true werden nur Dokumente geliefert die digital signiert wurden.
+ * @param $stud_selfservice Boolean Wenn true werden nur Dokumente geliefert die Studierende selbst herunterladen duerfen.
+ * @return true wenn ok, sonst false
+ */
+ public function getArchiv($person_id, $signiert = null, $stud_selfservice = null)
+ {
+ $qry = "
+ SELECT
+ akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt, titel_intern, anmerkung_intern,
+ titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid, dms_id, anmerkung, nachgereicht,
+ CASE WHEN inhalt is not null THEN true ELSE false END as inhalt_vorhanden,
+ nachgereicht_am, ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice
+ FROM
+ public.tbl_akte
+ WHERE
+ person_id=".$this->db_add_param($person_id, FHC_INTEGER)."
+ AND archiv = true";
+
+ if(!is_null($signiert))
+ $qry.=" AND signiert=".($signiert?'true':'false');
+ if(!is_null($stud_selfservice))
+ $qry.=" AND stud_selfservice=".($stud_selfservice?'true':'false');
+
+ $qry.=" ORDER BY erstelltam";
+
+ $this->errormsg = $qry;
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $akten = new akte();
+
+ $akten->akte_id = $row->akte_id;
+ $akten->person_id = $row->person_id;
+ $akten->dokument_kurzbz = $row->dokument_kurzbz;
+ //$akte->inhalt = $row->inhalt;
+ $akten->inhalt_vorhanden = $this->db_parse_bool($row->inhalt_vorhanden);
+ $akten->mimetype = $row->mimetype;
+ $akten->erstelltam = $row->erstelltam;
+ $akten->gedruckt = $this->db_parse_bool($row->gedruckt);
+ $akten->titel = $row->titel;
+ $akten->bezeichnung = $row->bezeichnung;
+ $akten->updateamum = $row->updateamum;
+ $akten->updatevon = $row->updatevon;
+ $akten->insertamum = $row->insertamum;
+ $akten->insertvon = $row->insertvon;
+ $akten->uid = $row->uid;
+ $akten->dms_id = $row->dms_id;
+ $akten->nachgereicht = $this->db_parse_bool($row->nachgereicht);
+ $akten->anmerkung = $row->anmerkung;
+ $akten->titel_intern = $row->titel_intern;
+ $akten->anmerkung_intern = $row->anmerkung_intern;
+ $akten->nachgereicht_am = $row->nachgereicht_am;
+ $akten->ausstellungsnation = $row->ausstellungsnation;
+ $akten->formal_geprueft_amum = $row->formal_geprueft_amum;
+ $akten->archiv = $this->db_parse_bool($row->archiv);
+ $akten->signiert = $this->db_parse_bool($row->signiert);
+ $akten->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
$this->result[] = $akten;
}
diff --git a/include/vorlage.class.php b/include/vorlage.class.php
index 88327d53c..97aa0e041 100644
--- a/include/vorlage.class.php
+++ b/include/vorlage.class.php
@@ -48,6 +48,11 @@ class vorlage extends basis_db
public $anmerkung_vorlagestudiengang; // text
public $aktiv; // boolean
+ public $archiverbar = false;
+ public $signierbar = false;
+ public $stud_selfservice = false;
+ public $dokument_kurzbz;
+
/**
* Konstruktor
*/
@@ -72,6 +77,10 @@ class vorlage extends basis_db
$this->bezeichnung = $row->bezeichnung;
$this->anmerkung = $row->anmerkung;
$this->mimetype = $row->mimetype;
+ $this->signierbar = $this->db_parse_bool($row->signierbar);
+ $this->archivierbar = $this->db_parse_bool($row->archivierbar);
+ $this->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
+ $this->dokument_kurzbz = $row->dokument_kurzbz;
return true;
}
else
@@ -151,6 +160,34 @@ class vorlage extends basis_db
return false;
}
+ /**
+ * Liefert alle Vorlagen die archiviert werden koennen
+ */
+ public function getVorlagenArchiv()
+ {
+ $qry ="SELECT * FROM public.tbl_vorlage WHERE archivierbar=true ORDER BY bezeichnung";
+
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ $obj = new vorlage();
+ $obj->vorlage_kurzbz = $row->vorlage_kurzbz;
+ $obj->bezeichnung = $row->bezeichnung;
+ $obj->anmerkung = $row->anmerkung;
+ $obj->mimetype = $row->mimetype;
+ $obj->archivierbar = $this->db_parse_bool($row->archivierbar);
+ $obj->signierbar = $this->db_parse_bool($row->signierbar);
+ $obj->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
+ $obj->dokument_kurzbz = $row->dokument_kurzbz;
+
+ $this->result[]= $obj;
+ }
+ }
+ else
+ return false;
+ }
+
/**
* Laedt die Vorlage zu einer OE
* @param $vorlage_kurzbz
@@ -311,7 +348,7 @@ class vorlage extends basis_db
anmerkung_vorlagestudiengang='.$this->db_add_param($this->anmerkung_vorlagestudiengang).'
WHERE vorlagestudiengang_id='.$this->db_add_param($this->vorlagestudiengang_id).';';
}
-
+
if($this->db_query($qry))
{
return true;
diff --git a/rdf/akte.rdf.php b/rdf/akte.rdf.php
index b957a9971..ba78cb44f 100644
--- a/rdf/akte.rdf.php
+++ b/rdf/akte.rdf.php
@@ -24,11 +24,8 @@ header("Cache-Control: no-cache");
header("Cache-Control: post-check=0, pre-check=0",false);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache");
-// content type setzen
header("Content-type: application/xhtml+xml");
-// xml
echo '';
-// DAO
require_once('../config/vilesci.config.inc.php');
require_once('../include/akte.class.php');
require_once('../include/dokument.class.php');
@@ -54,7 +51,7 @@ $datum = new datum();
$akten = new akte();
if(!isset($akte_id))
{
- if(!$akten->getAkten($person_id, $dokument_kurzbz))
+ if(!$akten->getArchiv($person_id))
die($akten->errormsg);
}
else
@@ -71,7 +68,7 @@ echo '
xmlns:AKTE="'.$rdf_url.'/rdf#"
>
-
+
';
foreach ($akten->result as $row)
@@ -79,15 +76,15 @@ foreach ($akten->result as $row)
$dokument = new dokument();
$dokument->loadDokumenttyp($row->dokument_kurzbz);
echo '
-
-
- akte_id.']]>
- person_id.']]>
- dokument_kurzbz.']]>
- bezeichnung.']]>
- mimetype.']]>
- convertISODate($row->erstelltam).']]>
- erstelltam.']]>
+
+
+ akte_id.']]>
+ person_id.']]>
+ dokument_kurzbz.']]>
+ bezeichnung.']]>
+ mimetype.']]>
+ convertISODate($row->erstelltam).']]>
+ erstelltam.']]>
gedruckt?'Ja':'Nein').']]>
titel.']]>
bezeichnung.']]>
@@ -100,10 +97,12 @@ foreach ($akten->result as $row)
titel_intern.']]>
anmerkung.']]>
nachgereicht?'Ja':'Nein').']]>
-
-
- ';
+ signiert?'Ja':'Nein').']]>
+ stud_selfservice?'Ja':'Nein').']]>
+
+
+ ';
}
?>
-
+
diff --git a/rdf/vorlage.rdf.php b/rdf/vorlage.rdf.php
new file mode 100644
index 000000000..46a401218
--- /dev/null
+++ b/rdf/vorlage.rdf.php
@@ -0,0 +1,44 @@
+
+ */
+require_once('../config/vilesci.config.inc.php');
+require_once('../include/rdf.class.php');
+require_once('../include/basis_db.class.php');
+require_once('../include/vorlage.class.php');
+require_once('../include/functions.inc.php');
+
+$uid = get_uid();
+
+$oRdf = new rdf('VORLAGE','http://www.technikum-wien.at/vorlage');
+$oRdf->sendHeader();
+
+$vorlage = new vorlage();
+$vorlage->getVorlagenArchiv();
+
+foreach($vorlage->result as $row)
+{
+ $i=$oRdf->newObjekt($row->vorlage_kurzbz);
+ $oRdf->obj[$i]->setAttribut('vorlage_kurzbz', $row->vorlage_kurzbz, true);
+ $oRdf->obj[$i]->setAttribut('bezeichnung',$row->bezeichnung,true);
+
+ $oRdf->addSequence($row->vorlage_kurzbz);
+}
+
+$oRdf->sendRdfText();
+?>
diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php
index 96c65c276..154da85b9 100644
--- a/system/dbupdate_3.3.php
+++ b/system/dbupdate_3.3.php
@@ -1265,6 +1265,154 @@ if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='bewerbung'")
}
}
+// Archiv boolean fuer public.tbl_akte
+if(!@$db->db_query("SELECT archiv FROM public.tbl_akte LIMIT 1"))
+{
+ // Defaultwerte und Update werden hier nacheinander durchgefuehrt da dies
+ // schneller ist als ein ALTER TABLE mit inkludiertem Defaultwert
+ $qry = "ALTER TABLE public.tbl_akte ADD COLUMN archiv boolean;
+ UPDATE public.tbl_akte SET archiv=true WHERE dokument_kurzbz='Zeugnis';
+ UPDATE public.tbl_akte SET archiv=false WHERE dokument_kurzbz<>'Zeugnis';
+ ALTER TABLE public.tbl_akte ALTER COLUMN archiv SET DEFAULT false;
+ ALTER TABLE public.tbl_akte ALTER COLUMN archiv SET NOT NULL;
+ COMMENT ON COLUMN public.tbl_akte.archiv IS 'Is the document part of the archive';";
+ if(!$db->db_query($qry))
+ echo 'tbl_akte.archiv: '.$db->db_last_error().'
';
+ else
+ echo '
Neue Spalte archiv in public.tbl_akte hinzugefügt';
+}
+
+// signiert boolean fuer public.tbl_akte
+if(!@$db->db_query("SELECT signiert FROM public.tbl_akte LIMIT 1"))
+{
+ // Defaultwerte und Update werden hier nacheinander durchgefuehrt da dies
+ // schneller ist als ein ALTER TABLE mit inkludiertem Defaultwert
+ $qry = "ALTER TABLE public.tbl_akte ADD COLUMN signiert boolean;
+ UPDATE public.tbl_akte SET signiert = false;
+ ALTER TABLE public.tbl_akte ALTER COLUMN signiert SET DEFAULT false;
+ ALTER TABLE public.tbl_akte ALTER COLUMN signiert SET NOT NULL;
+ COMMENT ON COLUMN public.tbl_akte.signiert IS 'Is the document digitally signed'";
+
+ if(!$db->db_query($qry))
+ echo 'App: '.$db->db_last_error().'
';
+ else
+ echo '
Neue Spalte signiert in public.tbl_akte hinzugefügt';
+}
+
+// stud_selfservice boolean fuer public.tbl_akte
+if(!@$db->db_query("SELECT stud_selfservice FROM public.tbl_akte LIMIT 1"))
+{
+ // Defaultwerte und Update werden hier nacheinander durchgefuehrt da dies
+ // schneller ist als ein ALTER TABLE mit inkludiertem Defaultwert
+ $qry = "ALTER TABLE public.tbl_akte ADD COLUMN stud_selfservice boolean;
+ UPDATE public.tbl_akte SET stud_selfservice = false;
+ ALTER TABLE public.tbl_akte ALTER COLUMN stud_selfservice SET DEFAULT false;
+ ALTER TABLE public.tbl_akte ALTER COLUMN stud_selfservice SET NOT NULL;
+ COMMENT ON COLUMN public.tbl_akte.stud_selfservice IS 'Is the document downloadable for students'";
+
+ if(!$db->db_query($qry))
+ echo 'App: '.$db->db_last_error().'
';
+ else
+ echo '
Neue Spalte stud_selfservice in public.tbl_akte hinzugefügt';
+}
+
+// Berechtigung fuer Vorlagen setzen die vormals direkt in PDFExport.php geprueft wurden
+function AddBerechtigungVorlage($berechtigung_arr, $vorlage_arr)
+{
+ global $db;
+
+ $berechtigung = '{';
+ foreach($berechtigung_arr as $item)
+ {
+ $berechtigung .= '"'.$db->db_escape($item).'",';
+ }
+ $berechtigung = mb_substr($berechtigung, 0, -1).'}';
+
+ foreach($vorlage_arr as $vorlage)
+ {
+ $qry = "SELECT 1 FROM public.tbl_vorlagestudiengang
+ WHERE berechtigung is null AND vorlage_kurzbz=".$db->db_add_param($vorlage);
+
+ $result = $db->db_query($qry);
+ if($db->db_num_rows($result)>0)
+ {
+ $qry = "UPDATE public.tbl_vorlagestudiengang SET berechtigung='".$berechtigung."'
+ WHERE berechtigung is null AND vorlage_kurzbz=".$db->db_add_param($vorlage);
+
+ if(!$db->db_query($qry))
+ echo 'Vorlage Berechtigung: '.$db->db_last_error().'
';
+ else
+ echo '
Berechtigung '.$berechtigung.' fuer Vorlage '.$vorlage.' gesetzt';
+ }
+ }
+}
+
+AddBerechtigungVorlage(array('admin','assistenz'),array('Lehrveranstaltungszeugnis','Zertifikat','Diplomurkunde',
+ 'Diplomzeugnis','Bescheid', 'BescheidEng','Bakkurkunde','BakkurkundeEng','Bakkzeugnis',
+ 'PrProtokollBakk','PrProtokollDipl','Lehrauftrag','DiplomurkundeEng','Zeugnis','ZeugnisEng','StudienerfolgEng',
+ 'Sammelzeugnis','PrProtDiplEng','PrProtBakkEng','BakkzeugnisEng','DiplomzeugnisEng','statusbericht',
+ 'DiplSupplement','Zutrittskarte','Projektbeschr','Ausbildungsver','AusbildStatus','PrProtBA','PrProtMA',
+ 'PrProtBAEng','PrProtMAEng','Studienordnung','Erfolgsnachweis','ErfolgsnwHead','Studienblatt','LV_Informationen',
+ 'LVZeugnis','AnwListBarcode','Honorarvertrag','AusbVerEng','AusbVerEngHead','Zeugnis','ZeugnisNeu','ZeugnisEngNeu',
+ 'ErfolgsnachweisE','ErfolgsnwHeadE','Magisterurkunde','Masterurkunde','Defensiourkunde','Magisterzeugnis',
+ 'Laufzettel','StudienblattEng','Zahlung1','Terminliste','Studienbuchblatt','Veranstaltungen',
+ 'Inskription','Studienerfolg','OutgoingLearning','OutgoingChangeL','LearningAgree','Zahlung','DichiaSost'
+ ));
+AddBerechtigungVorlage(array('lehre/lvplan'), array('Ressource'));
+AddBerechtigungVorlage(array('wawi/inventar','assistenz','basis/betriebsmittel'), array('Uebernahme'));
+AddBerechtigungVorlage(array('wawi/bestellung'), array('Bestellung'));
+AddBerechtigungVorlage(array('admin','mitarbeiter','assistenz'), array('AccountInfo'));
+
+// archivierbar boolean fuer public.tbl_vorlage
+if(!@$db->db_query("SELECT archivierbar FROM public.tbl_vorlage LIMIT 1"))
+{
+ $qry = "ALTER TABLE public.tbl_vorlage ADD COLUMN archivierbar boolean DEFAULT false;
+ UPDATE public.tbl_vorlage SET archivierbar=true
+ WHERE vorlage_kurzbz in('DiplSupplement','Zeugnis','ZeugnisEng', 'Bescheid',' BescheidEng');
+ COMMENT ON COLUMN public.tbl_vorlage.archivierbar IS 'Can this document be archived'";
+
+ if(!$db->db_query($qry))
+ echo 'App: '.$db->db_last_error().'
';
+ else
+ echo '
Neue Spalte archivierbar in public.tbl_vorlage hinzugefügt';
+}
+
+// signierbar boolean fuer public.tbl_vorlage
+if(!@$db->db_query("SELECT signierbar FROM public.tbl_vorlage LIMIT 1"))
+{
+ $qry = "ALTER TABLE public.tbl_vorlage ADD COLUMN signierbar boolean DEFAULT false;
+ COMMENT ON COLUMN public.tbl_vorlage.signierbar IS 'Can this document be digitally signed'";
+
+ if(!$db->db_query($qry))
+ echo 'App: '.$db->db_last_error().'
';
+ else
+ echo '
Neue Spalte signierbar in public.tbl_vorlage hinzugefügt';
+}
+
+// stud_selfservice boolean fuer public.tbl_vorlage
+if(!@$db->db_query("SELECT stud_selfservice FROM public.tbl_vorlage LIMIT 1"))
+{
+ $qry = "ALTER TABLE public.tbl_vorlage ADD COLUMN stud_selfservice boolean DEFAULT false;
+ COMMENT ON COLUMN public.tbl_vorlage.stud_selfservice IS 'Can this documents be downloaded if archived'";
+
+ if(!$db->db_query($qry))
+ echo 'App: '.$db->db_last_error().'
';
+ else
+ echo '
Neue Spalte stud_selfserice in public.tbl_vorlage hinzugefügt';
+}
+
+// dokument_kurzbz fuer public.tbl_vorlage
+if(!@$db->db_query("SELECT dokument_kurzbz FROM public.tbl_vorlage LIMIT 1"))
+{
+ $qry = "ALTER TABLE public.tbl_vorlage ADD COLUMN dokument_kurzbz varchar(8);
+ ALTER TABLE public.tbl_vorlage ADD CONSTRAINT fk_vorlage_dokument FOREIGN KEY (dokument_kurzbz) REFERENCES public.tbl_dokument (dokument_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
+ COMMENT ON COLUMN public.tbl_vorlage.dokument_kurzbz IS 'Connects a Template with the corresponding Dokument'";
+
+ if(!$db->db_query($qry))
+ echo 'App: '.$db->db_last_error().'
';
+ else
+ echo '
Neue Spalte dokument_kurzbz in public.tbl_vorlage hinzugefügt';
+}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo 'Pruefe Tabellen und Attribute!
';
@@ -1413,7 +1561,7 @@ $tabellen=array(
"lehre.tbl_zeugnisnote" => array("lehrveranstaltung_id","student_uid","studiensemester_kurzbz","note","uebernahmedatum","benotungsdatum","bemerkung","updateamum","updatevon","insertamum","insertvon","ext_id","punkte"),
"public.ci_apikey" => array("apikey_id","key","level","ignore_limits","date_created"),
"public.tbl_adresse" => array("adresse_id","person_id","name","strasse","plz","ort","gemeinde","nation","typ","heimatadresse","zustelladresse","firma_id","updateamum","updatevon","insertamum","insertvon","ext_id","rechnungsadresse","anmerkung"),
- "public.tbl_akte" => array("akte_id","person_id","dokument_kurzbz","uid","inhalt","mimetype","erstelltam","gedruckt","titel","bezeichnung","updateamum","updatevon","insertamum","insertvon","ext_id","dms_id","nachgereicht","anmerkung","titel_intern","anmerkung_intern","nachgereicht_am","ausstellungsnation","formal_geprueft_amum"),
+ "public.tbl_akte" => array("akte_id","person_id","dokument_kurzbz","uid","inhalt","mimetype","erstelltam","gedruckt","titel","bezeichnung","updateamum","updatevon","insertamum","insertvon","ext_id","dms_id","nachgereicht","anmerkung","titel_intern","anmerkung_intern","nachgereicht_am","ausstellungsnation","formal_geprueft_amum","archiv","signiert","stud_selfservice"),
"public.tbl_ampel" => array("ampel_id","kurzbz","beschreibung","benutzer_select","deadline","vorlaufzeit","verfallszeit","insertamum","insertvon","updateamum","updatevon","email","verpflichtend","buttontext"),
"public.tbl_ampel_benutzer_bestaetigt" => array("ampel_benutzer_bestaetigt_id","ampel_id","uid","insertamum","insertvon"),
"public.tbl_aufmerksamdurch" => array("aufmerksamdurch_kurzbz","beschreibung","ext_id","bezeichnung", "aktiv"),
@@ -1493,7 +1641,7 @@ $tabellen=array(
"public.tbl_studiensemester" => array("studiensemester_kurzbz","bezeichnung","start","ende","studienjahr_kurzbz","ext_id","beschreibung","onlinebewerbung"),
"public.tbl_tag" => array("tag"),
"public.tbl_variable" => array("name","uid","wert"),
- "public.tbl_vorlage" => array("vorlage_kurzbz","bezeichnung","anmerkung","mimetype","attribute"),
+ "public.tbl_vorlage" => array("vorlage_kurzbz","bezeichnung","anmerkung","mimetype","attribute","archivierbar","signierbar","stud_selfservice","dokument_kurzbz"),
"public.tbl_vorlagedokument" => array("vorlagedokument_id","sort","vorlagestudiengang_id","dokument_kurzbz"),
"public.tbl_vorlagestudiengang" => array("vorlagestudiengang_id","vorlage_kurzbz","studiengang_kz","version","text","oe_kurzbz","style","berechtigung","anmerkung_vorlagestudiengang","aktiv","sprache","subject","orgform_kurzbz"),
"testtool.tbl_ablauf" => array("ablauf_id","gebiet_id","studiengang_kz","reihung","gewicht","semester", "insertamum","insertvon","updateamum", "updatevon","ablauf_vorgaben_id","studienplan_id"),