From bfbde54fa8db35b0498054465c6fc9ff7385bc11 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Tue, 19 May 2020 17:17:48 +0200 Subject: [PATCH] Ausbildungsvertrag im Bewerbungstool herunterladen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- content/pdfExport.php | 87 ++++++++++++------- content/student/studentDBDML.php | 28 ++++-- content/student/studentoverlay.js.php | 23 ++++- content/student/studentzeugnisoverlay.xul.php | 5 ++ include/akte.class.php | 20 +++-- rdf/akte.rdf.php | 1 + rdf/student.rdf.php | 17 ++++ system/dbupdate_3.3.php | 13 ++- 8 files changed, 146 insertions(+), 48 deletions(-) diff --git a/content/pdfExport.php b/content/pdfExport.php index 3fc058adf..90552cac0 100644 --- a/content/pdfExport.php +++ b/content/pdfExport.php @@ -477,22 +477,29 @@ else if(!$vorlage->archivierbar) die('Dieses Dokument ist nicht archivierbar'); + $studiengang_kz = null; // Archivieren von Dokumenten - $uid = $_REQUEST["uid"]; - $heute = date('Y-m-d'); - - $student = new student(); - $student->load($uid); - - if (isset($_REQUEST['ss'])) + // Wenn UID übergeben wurde ist es ein Student, sonst ein PreStudent (zB Ausbildungsvertrag) + if (isset($_REQUEST['uid']) && $_REQUEST['uid'] != '') { - $ss = $_REQUEST["ss"]; + $uid = $_REQUEST["uid"]; + $heute = date('Y-m-d'); - $prestudent = new prestudent(); - $prestudent->getLastStatus($student->prestudent_id,$ss); - $semester = $prestudent->ausbildungssemester; + $student = new student(); + $student->load($uid); - $query = "SELECT + $studiengang = new studiengang(); + $studiengang->load($student->studiengang_kz); + + if (isset($_REQUEST['ss'])) + { + $ss = $_REQUEST["ss"]; + + $prestudent = new prestudent(); + $prestudent->getLastStatus($student->prestudent_id,$ss); + $semester = $prestudent->ausbildungssemester; + + $query = "SELECT tbl_studiengang.studiengang_kz, tbl_studentlehrverband.semester, tbl_studiengang.typ, tbl_studiengang.kurzbz, tbl_person.person_id FROM tbl_person, tbl_benutzer, tbl_studentlehrverband, tbl_studiengang @@ -503,29 +510,51 @@ else AND tbl_studentlehrverband.student_uid = ".$db->db_add_param($uid)." AND tbl_studentlehrverband.studiensemester_kurzbz = ".$db->db_add_param($ss); - if ($result = $db->db_query($query)) - { - if ($row = $db->db_fetch_object($result)) + if ($result = $db->db_query($query)) { - $person_id = $row->person_id; - $titel = mb_substr($xsl."_".strtoupper($row->typ).strtoupper($row->kurzbz)."_".$semester.'_'.$ss, 0, 64); - $bezeichnung = mb_substr($xsl." ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$semester.". Semester".' '.$ss, 0, 64); - $studiengang_kz = $row->studiengang_kz; - } - else - { - die('StudentIn hat keinen Status in diesem Semester'); + if ($row = $db->db_fetch_object($result)) + { + $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 + { + die('StudentIn hat keinen Status in diesem Semester'); + } } } + else + { + $studiengang_kz = $student->studiengang_kz; + $person_id = $student->person_id; + $titel = $vorlage->bezeichnung.'_'.$studiengang->kuerzel; + $bezeichnung = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64); + } } - else + 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($student->studiengang_kz); - $studiengang_kz=$student->studiengang_kz; - $person_id = $student->person_id; - $titel = $vorlage->bezeichnung.'_'.$studiengang->kuerzel; - $bezeichnung = $vorlage->bezeichnung.'_'.$studiengang->kuerzel; + $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') diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 8ec746015..9916f6fc5 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -1897,16 +1897,28 @@ if(!$error) } if(!$error) { - $akte = new akte(); - - if($akte->delete($_POST['akte_id'])) - { - $return = true; - } - else + $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 = $akte->errormsg; + $errormsg = 'Akzeptierte Ausbildungsverträge dürfen nur von Administratoren gelöscht werden'; + } + + if(!$error) + { + if ($akte->delete($_POST['akte_id'])) + { + $return = true; + } + else + { + $return = false; + $errormsg = $akte->errormsg; + } } } } diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index 6dbaa55e8..f0e2715bf 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -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'; class="sortDirectionIndicator" sort="rdf:http://www.technikum-wien.at/akte/rdf#stud_selfservice" /> +