mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
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:
+33
-4
@@ -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;
|
||||
$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')
|
||||
|
||||
@@ -1897,9 +1897,20 @@ 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($akte->delete($_POST['akte_id']))
|
||||
if(!$error)
|
||||
{
|
||||
if ($akte->delete($_POST['akte_id']))
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
@@ -1910,6 +1921,7 @@ if(!$error)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
';
|
||||
|
||||
@@ -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
@@ -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"),
|
||||
|
||||
Reference in New Issue
Block a user