Ausbildungsvertrag im Bewerbungstool herunterladen

- Akten archivieren auch für PreStudenten (Tab auch für PreStudenten sichtbar)
- Neues Attribut "akzeptiertamum" in tbl_akte
- Akzeptierte Ausbildungsverträge dürfen nur von Admins gelöscht werden
- Filter für akzeptierte Ausbildungsverträge
This commit is contained in:
Manfred Kindl
2020-05-19 17:17:48 +02:00
parent e459c9bf02
commit bfbde54fa8
8 changed files with 146 additions and 48 deletions
+32 -3
View File
@@ -477,13 +477,20 @@ else
if(!$vorlage->archivierbar)
die('Dieses Dokument ist nicht archivierbar');
$studiengang_kz = null;
// Archivieren von Dokumenten
// Wenn UID übergeben wurde ist es ein Student, sonst ein PreStudent (zB Ausbildungsvertrag)
if (isset($_REQUEST['uid']) && $_REQUEST['uid'] != '')
{
$uid = $_REQUEST["uid"];
$heute = date('Y-m-d');
$student = new student();
$student->load($uid);
$studiengang = new studiengang();
$studiengang->load($student->studiengang_kz);
if (isset($_REQUEST['ss']))
{
$ss = $_REQUEST["ss"];
@@ -509,7 +516,14 @@ else
{
$person_id = $row->person_id;
$titel = mb_substr($xsl."_".strtoupper($row->typ).strtoupper($row->kurzbz)."_".$semester.'_'.$ss, 0, 64);
if ($xsl == 'Ausbildungsver' || $xsl == 'AusbVerEng')
{
$bezeichnung = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64);
}
else
{
$bezeichnung = mb_substr($xsl." ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$semester.". Semester".' '.$ss, 0, 64);
}
$studiengang_kz = $row->studiengang_kz;
}
else
@@ -520,12 +534,27 @@ else
}
else
{
$studiengang = new studiengang();
$studiengang->load($student->studiengang_kz);
$studiengang_kz = $student->studiengang_kz;
$person_id = $student->person_id;
$titel = $vorlage->bezeichnung.'_'.$studiengang->kuerzel;
$bezeichnung = $vorlage->bezeichnung.'_'.$studiengang->kuerzel;
$bezeichnung = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64);
}
}
elseif (isset($_REQUEST['prestudent_id']) && $_REQUEST['prestudent_id'] != '')
{
$prestudent_id = $_REQUEST["prestudent_id"];
$heute = date('Y-m-d');
$uid = '';
$prestudent = new prestudent($prestudent_id);
$prestudent->getLastStatus($prestudent_id);
$studiengang_kz = $prestudent->studiengang_kz;
$studiengang = new studiengang();
$studiengang->load($studiengang_kz);
$person_id = $prestudent->person_id;
$titel = mb_substr($xsl."_".$studiengang->kuerzel, 0, 64);
$bezeichnung = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64);
}
if ($rechte->isBerechtigt('admin', $studiengang_kz, 'suid')
+13 -1
View File
@@ -1897,8 +1897,19 @@ if(!$error)
}
if(!$error)
{
$akte = new akte();
$akte = new akte($_POST['akte_id']);
//Akzeptierte Ausbildungsverträge dürfen nur von Admins gelöscht werden
if ($akte->dokument_kurzbz == 'Ausbvert' &&
$akte->akzeptiertamum != '' &&
!$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid'))
{
$error = true;
$return = false;
$errormsg = 'Akzeptierte Ausbildungsverträge dürfen nur von Administratoren gelöscht werden';
}
if(!$error)
{
if ($akte->delete($_POST['akte_id']))
{
$return = true;
@@ -1910,6 +1921,7 @@ if(!$error)
}
}
}
}
else
{
$return = false;
+19 -4
View File
@@ -1214,7 +1214,7 @@ function StudentAuswahl()
//Wenn keine UID gesetzt ist, dann ist er noch kein Student.
//Hierbei werden einige der Tabs nicht angezeigt und auch nicht geladen!
document.getElementById('student-tab-zeugnis').collapsed=true;
document.getElementById('student-tab-zeugnis').collapsed=false;
document.getElementById('student-tab-betriebsmittel').collapsed=true;
document.getElementById('student-tab-io').collapsed=true;
document.getElementById('student-tab-mobilitaet').hidden=true;
@@ -1363,7 +1363,7 @@ function StudentAuswahl()
StudentKontoTreeDatasource.addXMLSinkObserver(StudentKontoTreeSinkObserver);
kontotree.builder.addListener(StudentKontoTreeListener);
if(uid!='')
/*if(uid!='')*/
{
// *** Zeugnis ***
zeugnistree = document.getElementById('student-zeugnis-tree');
@@ -3170,8 +3170,14 @@ function StudentZeugnisDokumentArchivieren()
case 'StudienblattEng':
xml = 'studienblatt.xml.php';
break;
case 'Ausbildungsver':
case 'AusbVerEng':
xml = 'ausbildungsvertrag.xml.php';
break;
default:
alert('Das archivieren fuer diesen Dokumenttyp wird derzeit nicht unterstuetzt');
alert('Das Archivieren fuer diesen Dokumenttyp wird derzeit nicht unterstuetzt');
return
break;
}
@@ -3179,13 +3185,21 @@ function StudentZeugnisDokumentArchivieren()
var labelalt = document.getElementById('student-zeugnis-button-archive').label;
document.getElementById('student-zeugnis-button-archive').label='Loading...';
//Zeugnis fuer alle markierten Studenten archivieren
//Dokument fuer alle markierten Studenten archivieren
for (var t=0; t<numRanges; t++)
{
tree.view.selection.getRangeAt(t,start,end);
for (v=start.value; v<=end.value; v++)
{
uid = getTreeCellText(tree, 'student-treecol-uid', v);
prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', v);
//Wenn keine UID vorhanden, kann nur der Ausbildungsvertrag generiert werden
if(vorlage != 'Ausbildungsver' && vorlage != 'AusbVerEng' && uid == '')
{
alert('Dieses Dokument kann nur für Studierende erstellt werden. Mindestens eine ausgewählte Person hat keine UID');
continue;
}
var req = new phpRequest(url,'','');
req.add('xsl', vorlage);
@@ -3193,6 +3207,7 @@ function StudentZeugnisDokumentArchivieren()
req.add('ss', stsem);
req.add('archive', '1');
req.add('uid', uid);
req.add('prestudent_id', prestudent_id);
var response = req.execute();
if(response!='')
@@ -93,6 +93,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/akte/rdf#stud_selfservice" />
<splitter class="tree-splitter"/>
<treecol id="student-zeugnis-tree-akte_akzeptiertamum" label="AkzeptiertAmUm" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/akte/rdf#stud_akzeptiertamum" />
<splitter class="tree-splitter"/>
</treecols>
<template>
@@ -106,6 +110,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<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"/>
<treecell label="rdf:http://www.technikum-wien.at/akte/rdf#stud_akzeptiertamum"/>
</treerow>
</treeitem>
</treechildren>
+14 -6
View File
@@ -54,6 +54,7 @@ class akte extends basis_db
public $archiv = false;
public $signiert = false;
public $stud_selfservice = false;
public $akzeptiertamum;
/**
* Konstruktor
@@ -112,6 +113,7 @@ class akte extends basis_db
$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);
$this->akzeptiertamum = $row->akzeptiertamum;
return true;
}
@@ -197,7 +199,7 @@ class akte extends basis_db
$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,
archiv, signiert, stud_selfservice) VALUES (".
archiv, signiert, stud_selfservice, akzeptiertamum) VALUES (".
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
$this->db_add_param($this->dokument_kurzbz).', '.
$this->db_add_param($this->inhalt).', '.
@@ -221,7 +223,8 @@ class akte extends basis_db
$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).');';
$this->db_add_param($this->stud_selfservice, FHC_BOOLEAN).','.
$this->db_add_param($this->akzeptiertamum).');';
}
else
{
@@ -248,7 +251,8 @@ class akte extends basis_db
" 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).
" stud_selfservice=".$this->db_add_param($this->stud_selfservice, FHC_BOOLEAN).",".
" akzeptiertamum=".$this->db_add_param($this->akzeptiertamum).
" WHERE akte_id=".$this->db_add_param($this->akte_id, FHC_INTEGER);
}
@@ -307,7 +311,7 @@ class akte extends basis_db
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";
nachgereicht_am, ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice, akzeptiertamum";
if($returnInhalt === true)
{
$qry .= ",inhalt ";
@@ -367,6 +371,7 @@ class akte extends basis_db
$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);
$akten->akzeptiertamum = $row->akzeptiertamum;
$this->result[] = $akten;
}
@@ -429,6 +434,7 @@ class akte extends basis_db
$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);
$akten->akzeptiertamum = $row->akzeptiertamum;
$this->result[] = $akten;
}
@@ -453,7 +459,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, archiv, signiert, stud_selfservice
ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice, akzeptiertamum
FROM public.tbl_akte WHERE dms_id=".$this->db_add_param($dms_id, FHC_INTEGER)."
ORDER BY erstelltam";
@@ -488,6 +494,7 @@ class akte extends basis_db
$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);
$akten->akzeptiertamum = $row->akzeptiertamum;
$this->result[] = $akten;
}
@@ -515,7 +522,7 @@ class akte extends basis_db
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
nachgereicht_am, ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice, akzeptiertamum
FROM
public.tbl_akte
WHERE
@@ -563,6 +570,7 @@ class akte extends basis_db
$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);
$akten->akzeptiertamum = $row->akzeptiertamum;
$this->result[] = $akten;
}
+1
View File
@@ -100,6 +100,7 @@ foreach ($akten->result as $row)
<AKTE:nachgereicht_am><![CDATA['.$row->nachgereicht_am.']]></AKTE:nachgereicht_am>
<AKTE:signiert><![CDATA['.($row->signiert?'Ja':'Nein').']]></AKTE:signiert>
<AKTE:stud_selfservice><![CDATA['.($row->stud_selfservice?'Ja':'Nein').']]></AKTE:stud_selfservice>
<AKTE:stud_akzeptiertamum><![CDATA['.($row->akzeptiertamum != '' ? date('d.m.Y H:i:s',strtotime($row->akzeptiertamum)) : '').']]></AKTE:stud_akzeptiertamum>
</RDF:Description>
</RDF:li>
';
+17
View File
@@ -140,6 +140,23 @@ function checkfilter($row, $filter2, $buchungstyp = null)
}
}
}
elseif($filter2=='ausbildungsvertragakzeptiert')
{
//Alle Personen die den archivierten Ausbildungsvertrag akzeptiert haben
$qry = "SELECT count(*) as anzahl FROM public.tbl_akte
WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)."
AND dokument_kurzbz='Ausbvert' AND archiv=true AND stud_selfservice=true AND akzeptiertamum IS NOT NULL";
if($db->db_query($qry))
{
if($row_filter = $db->db_fetch_object())
{
if($row_filter->anzahl > 0)
return true;
else
return false;
}
}
}
return true;
}
+12 -1
View File
@@ -4115,6 +4115,17 @@ if(!$result = @$db->db_query('SELECT "Orgform DE", "Orgform EN" FROM public.vw_m
echo '<br>public.vw_msg_vars added';
}
// Spalte akzeptiertamum in public.tbl_akte
if(!$result = @$db->db_query("SELECT akzeptiertamum FROM public.tbl_akte LIMIT 1"))
{
$qry = "ALTER TABLE public.tbl_akte ADD COLUMN akzeptiertamum timestamp without time zone;";
if(!$db->db_query($qry))
echo '<strong>public.tbl_akte '.$db->db_last_error().'</strong><br>';
else
echo 'public.tbl_akte: Spalte akzeptiertamum hinzugefuegt!<br>';
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -4266,7 +4277,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","archiv","signiert","stud_selfservice"),
"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","akzeptiertamum"),
"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"),