- 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>