- Neue Booleans fuer archiv, signiert, stud_selfservice zu tbl_akte

hinzugefügt
- Archiv zeigt nun alle Dokumente an die auf archiv gesetzt sind anstatt
nur Zugnisse
- Bei Vorlagen kann definiert werden ob das dokument signiert, archiviert
oder heruntergeladen werden kann.
- Vorlagen koennen mit Dokumentarten verknüpft werden
This commit is contained in:
Andreas Österreicher
2018-02-20 17:10:37 +01:00
parent 949fcdd28c
commit f1b32cd00d
8 changed files with 441 additions and 142 deletions
+38 -66
View File
@@ -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;
+27 -15
View File
@@ -1273,7 +1273,7 @@ function StudentAuswahl()
{
// *** Zeugnis ***
zeugnistree = document.getElementById('student-zeugnis-tree');
url='<?php echo APP_ROOT;?>rdf/akte.rdf.php?person_id='+person_id+"&dokument_kurzbz=Zeugnis&"+gettimestamp();
url='<?php echo APP_ROOT;?>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 = '<?php echo APP_ROOT; ?>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
// ****
+22 -33
View File
@@ -77,7 +77,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/akte/rdf#erstelltam" />
<splitter class="tree-splitter"/>
<treecol id="student-zeugnis-tree-gedruckt" label="Gedruckt" flex="2" hidden="false"
<treecol id="student-zeugnis-tree-gedruckt" label="Gedruckt" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/akte/rdf#gedruckt" />
<splitter class="tree-splitter"/>
@@ -85,6 +85,14 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/akte/rdf#akte_id" />
<splitter class="tree-splitter"/>
<treecol id="student-zeugnis-tree-signiert" label="Signiert" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/akte/rdf#signiert" />
<splitter class="tree-splitter"/>
<treecol id="student-zeugnis-tree-stud_selfservice" label="Selfservice" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/akte/rdf#stud_selfservice" />
<splitter class="tree-splitter"/>
</treecols>
<template>
@@ -96,6 +104,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<treecell label="rdf:http://www.technikum-wien.at/akte/rdf#erstelltam"/>
<treecell label="rdf:http://www.technikum-wien.at/akte/rdf#gedruckt"/>
<treecell label="rdf:http://www.technikum-wien.at/akte/rdf#akte_id"/>
<treecell label="rdf:http://www.technikum-wien.at/akte/rdf#signiert"/>
<treecell label="rdf:http://www.technikum-wien.at/akte/rdf#stud_selfservice"/>
</treerow>
</treeitem>
</treechildren>
@@ -126,16 +136,18 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<rows>
<row>
<label value="Dokument" control="student-zeugnis-menulist-dokument"/>
<menulist id="student-zeugnis-menulist-dokument" disabled="false">
<menupopup>
<menuitem id="student-zeugnis-menulist-dokument-zeugnis" value="Zeugnis" label="Zeugnis"/>
<menuitem id="student-zeugnis-menulist-dokument-zeugniseng" value="ZeugnisEng" label="Zeugnis Englisch"/>
<menuitem id="student-zeugnis-menulist-dokument-diplsupplement" value="DiplSupplement" label="Diplomasupplement"/>
<menuitem id="student-zeugnis-menulist-dokument-bescheid" value="Bescheid" label="Bescheid"/>
<menuitem id="student-zeugnis-menulist-dokument-bescheideng" value="BescheidEng" label="Bescheid Englisch"/>
</menupopup>
<menulist id="student-zeugnis-menulist-dokument"
datasources="../rdf/vorlage.rdf.php" flex="1"
ref="http://www.technikum-wien.at/vorlage" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/vorlage/rdf#vorlage_kurzbz"
label="rdf:http://www.technikum-wien.at/vorlage/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
<button id="student-zeugnis-button-archive" label="Archivieren" disabled="false" oncommand="StudentZeugnisDokumentArchivieren()"/>
<button id="student-zeugnis-button-archive" label="Archivieren" disabled="false" oncommand="StudentZeugnisDokumentArchivieren()"/>
</row>
</rows>
</grid>
@@ -143,29 +155,6 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<spacer flex="1" />
</hbox>
<vbox>
<hbox>
<image width="12px" height="12px" src="../skin/images/plus.png" onclick="StudentAkteToggleDetails()"/>
<label value="Erweiterte Einstellungen" onclick="StudentAkteToggleDetails()"/>
</hbox>
<hbox>
<grid id="student-zeugnis-archivieren-erweitert" style="margin:4px;" hidden="true">
<columns >
<column flex="1"/>
<column flex="1"/>
</columns>
<rows>
<row>
<label value="Dokument elektronisch signieren"/>
<checkbox id="student-zeugnis-checkbox-sign" checked="true" />
</row>
<row>
<label value="Dokument herunterladbar"/>
<checkbox id="student-zeugnis-checkbox-selfservice" checked="true" />
</row>
</rows>
</grid>
<spacer flex="1"/>
</hbox>
</vbox>
<spacer flex="8" />
</vbox>
+105 -7
View File
@@ -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;
}
+38 -1
View File
@@ -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;
+17 -18
View File
@@ -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 '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
// 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#"
>
<RDF:Seq about="'.$rdf_url.'/liste">
<RDF:Seq about="'.$rdf_url.'/liste">
';
foreach ($akten->result as $row)
@@ -79,15 +76,15 @@ foreach ($akten->result as $row)
$dokument = new dokument();
$dokument->loadDokumenttyp($row->dokument_kurzbz);
echo '
<RDF:li>
<RDF:Description id="'.$row->akte_id.'" about="'.$rdf_url.'/'.$row->akte_id.'" >
<AKTE:akte_id><![CDATA['.$row->akte_id.']]></AKTE:akte_id>
<AKTE:person_id><![CDATA['.$row->person_id.']]></AKTE:person_id>
<AKTE:dokument_kurzbz><![CDATA['.$row->dokument_kurzbz.']]></AKTE:dokument_kurzbz>
<AKTE:dokument_bezeichnung><![CDATA['.$dokument->bezeichnung.']]></AKTE:dokument_bezeichnung>
<AKTE:mimetype><![CDATA['.$row->mimetype.']]></AKTE:mimetype>
<AKTE:erstelltam><![CDATA['.$datum->convertISODate($row->erstelltam).']]></AKTE:erstelltam>
<AKTE:erstelltam_iso><![CDATA['.$row->erstelltam.']]></AKTE:erstelltam_iso>
<RDF:li>
<RDF:Description id="'.$row->akte_id.'" about="'.$rdf_url.'/'.$row->akte_id.'" >
<AKTE:akte_id><![CDATA['.$row->akte_id.']]></AKTE:akte_id>
<AKTE:person_id><![CDATA['.$row->person_id.']]></AKTE:person_id>
<AKTE:dokument_kurzbz><![CDATA['.$row->dokument_kurzbz.']]></AKTE:dokument_kurzbz>
<AKTE:dokument_bezeichnung><![CDATA['.$dokument->bezeichnung.']]></AKTE:dokument_bezeichnung>
<AKTE:mimetype><![CDATA['.$row->mimetype.']]></AKTE:mimetype>
<AKTE:erstelltam><![CDATA['.$datum->convertISODate($row->erstelltam).']]></AKTE:erstelltam>
<AKTE:erstelltam_iso><![CDATA['.$row->erstelltam.']]></AKTE:erstelltam_iso>
<AKTE:gedruckt><![CDATA['.($row->gedruckt?'Ja':'Nein').']]></AKTE:gedruckt>
<AKTE:titel><![CDATA['.$row->titel.']]></AKTE:titel>
<AKTE:bezeichnung><![CDATA['.$row->bezeichnung.']]></AKTE:bezeichnung>
@@ -100,10 +97,12 @@ foreach ($akten->result as $row)
<AKTE:titel_intern><![CDATA['.$row->titel_intern.']]></AKTE:titel_intern>
<AKTE:anmerkung><![CDATA['.$row->anmerkung.']]></AKTE:anmerkung>
<AKTE:nachgereicht><![CDATA['.($row->nachgereicht?'Ja':'Nein').']]></AKTE:nachgereicht>
</RDF:Description>
</RDF:li>
';
<AKTE:signiert><![CDATA['.($row->signiert?'Ja':'Nein').']]></AKTE:signiert>
<AKTE:stud_selfservice><![CDATA['.($row->stud_selfservice?'Ja':'Nein').']]></AKTE:stud_selfservice>
</RDF:Description>
</RDF:li>
';
}
?>
</RDF:Seq>
</RDF:Seq>
</RDF:RDF>
+44
View File
@@ -0,0 +1,44 @@
<?php
/* Copyright (C) 2018 fhcomplete.org
*
* 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 <oesi@technikum-wien.at>
*/
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();
?>
+150 -2
View File
@@ -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 '<strong>tbl_akte.archiv: '.$db->db_last_error().'</strong><br>';
else
echo '<br>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 '<strong>App: '.$db->db_last_error().'</strong><br>';
else
echo '<br>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 '<strong>App: '.$db->db_last_error().'</strong><br>';
else
echo '<br>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 '<strong>Vorlage Berechtigung: '.$db->db_last_error().'</strong><br>';
else
echo '<br>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 '<strong>App: '.$db->db_last_error().'</strong><br>';
else
echo '<br>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 '<strong>App: '.$db->db_last_error().'</strong><br>';
else
echo '<br>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 '<strong>App: '.$db->db_last_error().'</strong><br>';
else
echo '<br>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 '<strong>App: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Neue Spalte dokument_kurzbz in public.tbl_vorlage hinzugefügt';
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -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"),