diff --git a/application/libraries/AkteLib.php b/application/libraries/AkteLib.php
index c4aee0095..6f2a6427a 100644
--- a/application/libraries/AkteLib.php
+++ b/application/libraries/AkteLib.php
@@ -43,7 +43,7 @@ class AkteLib
*/
public function add(
$person_id, $dokument_kurzbz, $titel, $mimetype, $fileHandle, // Required parameters
- $bezeichnung = null, $archiv = false, $signiert = false, $stud_selfservice = false
+ $bezeichnung = null, $archiv = false, $signiert = false, $stud_selfservice = false, $prestudent_id = null
)
{
// add new dms entry and new dms version for the Akte, using Akte data (title, mimetype, file content as handle)
@@ -69,7 +69,8 @@ class AkteLib
'signiert' => $signiert,
'stud_selfservice' => $stud_selfservice,
'insertamum' => date('Y-m-d H:i:s'),
- 'insertvon' => $this->_who
+ 'insertvon' => $this->_who,
+ 'prestudent_id' => $prestudent_id
)
);
}
@@ -127,7 +128,7 @@ class AkteLib
$this->_ci->AkteModel->addSelect('person_id, dokument_kurzbz, mimetype, erstelltam, titel, bezeichnung,
gedruckt, uid, dms_id, nachgereicht, nachgereicht_am, anmerkung,
ausstellungsnation, formal_geprueft_amum, archiv, signiert,
- stud_selfservice, akzeptiertamum, insertvon, insertamum, updatevon, updateamum');
+ stud_selfservice, akzeptiertamum, insertvon, insertamum, updatevon, updateamum, prestudent_id');
$this->_ci->AkteModel->load($akte_id);
$akteResult = $this->_ci->AkteModel->load($akte_id);
diff --git a/application/models/crm/Akte_model.php b/application/models/crm/Akte_model.php
index 15a38022e..751637690 100644
--- a/application/models/crm/Akte_model.php
+++ b/application/models/crm/Akte_model.php
@@ -35,7 +35,8 @@ class Akte_model extends DB_Model
anmerkung,
nachgereicht,
nachgereicht_am,
- CASE WHEN inhalt is not null THEN true ELSE false END as inhalt_vorhanden
+ CASE WHEN inhalt is not null THEN true ELSE false END as inhalt_vorhanden,
+ prestudent_id
FROM public.tbl_akte
WHERE person_id = ?';
diff --git a/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php b/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php
index fda16c07a..718553d0a 100644
--- a/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php
+++ b/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php
@@ -136,6 +136,10 @@ echo "
+
+
@@ -159,6 +163,7 @@ echo "
+
diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php
index c743ff389..c0d1cf176 100644
--- a/content/lvplanung/lehrveranstaltungoverlay.js.php
+++ b/content/lvplanung/lehrveranstaltungoverlay.js.php
@@ -2493,6 +2493,9 @@ function LehrveranstaltungFFZertifikatPrint(event, signieren)
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
lvid = tree.view.getCellText(v,col);
+ col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-prestudent_id"] : "lehrveranstaltung-noten-tree-prestudent_id";
+ prestudent_id = tree.view.getCellText(v,col);
+
// Dokument fuer alle markierten Personen einzeln erstellen und signieren/archivieren
var req = new phpRequest(url,'','');
@@ -2501,6 +2504,7 @@ function LehrveranstaltungFFZertifikatPrint(event, signieren)
req.add('archive', '1');
req.add('uid', uid);
req.add('lvid', lvid);
+ req.add('prestudent_id', prestudent_id);
var response = req.execute();
@@ -2595,6 +2599,9 @@ function LehrveranstaltungLVZeugnisPrint(event, sprache, signieren)
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
lvid = tree.view.getCellText(v,col);
+ col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-prestudent_id"] : "lehrveranstaltung-noten-tree-prestudent_id";
+ prestudent_id = tree.view.getCellText(v,col);
+
// Dokument fuer alle markierten Personen einzeln erstellen und signieren/archivieren
var req = new phpRequest(url,'','');
@@ -2603,6 +2610,7 @@ function LehrveranstaltungLVZeugnisPrint(event, sprache, signieren)
req.add('archive', '1');
req.add('uid', uid);
req.add('lvid', lvid);
+ req.add('prestudent_id', prestudent_id);
var response = req.execute();
diff --git a/content/pdfExport.php b/content/pdfExport.php
index a2a5a1a33..91616981e 100644
--- a/content/pdfExport.php
+++ b/content/pdfExport.php
@@ -481,26 +481,31 @@ else
$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'] != '')
+ if (isset($_REQUEST['prestudent_id']) && $_REQUEST['prestudent_id'] != '')
{
- $uid = $_REQUEST["uid"];
+ $prestudent_id = $_REQUEST["prestudent_id"];
$heute = date('Y-m-d');
-
- $student = new student();
- $student->load($uid);
-
+ $uid = '';
+ $prestudent = new prestudent($prestudent_id);
+ $prestudent->getLastStatus($prestudent_id);
+
$studiengang = new studiengang();
- $studiengang->load($student->studiengang_kz);
-
- if (isset($_REQUEST['ss']))
+ $studiengang->load($prestudent->studiengang_kz);
+
+ if (isset($_REQUEST['uid']) && $_REQUEST['uid'] != '')
{
- $ss = $_REQUEST["ss"];
+ $student= new student();
+ $uid = $student->getUid($prestudent_id);
+ $student->load($uid);
- $prestudent = new prestudent();
- $prestudent->getLastStatus($student->prestudent_id,$ss);
- $semester = $prestudent->ausbildungssemester;
-
- $query = "SELECT
+ if (isset($_REQUEST['ss']))
+ {
+ $ss = $_REQUEST["ss"];
+ $prestudent = new prestudent();
+ $prestudent->getLastStatus($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
@@ -510,65 +515,61 @@ else
AND tbl_studentlehrverband.studiengang_kz = tbl_studiengang.studiengang_kz
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);
- if ($xsl == 'Ausbildungsver' || $xsl == 'AusbVerEng')
+ if ($row = $db->db_fetch_object($result))
{
- $bezeichnung = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64);
- }
- elseif ($xsl === 'LVZeugnisEng' || $xsl === 'LVZeugnis' || $xsl === 'Zertifikat')
- {
- $lehrveranstaltung = new lehrveranstaltung($_GET['lvid']);
- $vorlage->dokument_kurzbz = $xsl;
- $bezeichnung = mb_substr($xsl." ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$semester.". Semester".' '.$ss . ' '. $lehrveranstaltung->bezeichnung, 0, 64);
- $titel = mb_substr($xsl."_".strtoupper($row->typ).strtoupper($row->kurzbz)."_".$semester.'_'.$ss. '_' . str_replace(' ', '_', $lehrveranstaltung->bezeichnung), 0, 60);
- }
- elseif ($xsl == 'SZeugnis')
- {
- $bezeichnung = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64);
- $titel = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64);
+ $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);
+ }
+ elseif ($xsl === 'LVZeugnisEng' || $xsl === 'LVZeugnis' || $xsl === 'Zertifikat')
+ {
+ $lehrveranstaltung = new lehrveranstaltung($_GET['lvid']);
+ $vorlage->dokument_kurzbz = $xsl;
+ $bezeichnung = mb_substr($xsl." ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$semester.". Semester".' '.$ss . ' '. $lehrveranstaltung->bezeichnung, 0, 64);
+ $titel = mb_substr($xsl."_".strtoupper($row->typ).strtoupper($row->kurzbz)."_".$semester.'_'.$ss. '_' . str_replace(' ', '_', $lehrveranstaltung->bezeichnung), 0, 60);
+ }
+ elseif ($xsl == 'SZeugnis')
+ {
+ $bezeichnung = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64);
+ $titel = 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
{
- $bezeichnung = mb_substr($xsl." ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$semester.". Semester".' '.$ss, 0, 64);
+ die('StudentIn hat keinen Status in diesem Semester');
}
- $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
{
- $studiengang_kz = $student->studiengang_kz;
- $person_id = $student->person_id;
- $titel = $vorlage->bezeichnung.'_'.$studiengang->kuerzel;
+ $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);
}
}
- 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')
|| $rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid'))
@@ -627,6 +628,7 @@ else
$akte->archiv = true;
$akte->signiert = $sign;
$akte->stud_selfservice = $vorlage->stud_selfservice;
+ $akte->prestudent_id = $prestudent_id;
if (!$akte->save())
{
diff --git a/content/student/studentnotenoverlay.xul.php b/content/student/studentnotenoverlay.xul.php
index 395667bd7..5e945df59 100644
--- a/content/student/studentnotenoverlay.xul.php
+++ b/content/student/studentnotenoverlay.xul.php
@@ -102,6 +102,10 @@ echo "
+
+
@@ -161,6 +165,7 @@ echo "
+
diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php
index d9686d5e3..270de5f0d 100644
--- a/content/student/studentoverlay.js.php
+++ b/content/student/studentoverlay.js.php
@@ -479,6 +479,9 @@ function StudentFFZertifikatPrint(event, signieren)
col = tree.columns ? tree.columns["student-noten-tree-studiengang_kz_lv"] : "student-noten-tree-studiengang_kz_lv";
stg_kz = tree.view.getCellText(tree.currentIndex,col);
+ col = tree.columns ? tree.columns["student-noten-tree-prestudent_id"] : "student-noten-tree-prestudent_id";
+ prestudent_id = tree.view.getCellText(tree.currentIndex,col);
+
if (event.shiftKey)
var output='odt';
else if (event.ctrlKey)
@@ -494,6 +497,7 @@ function StudentFFZertifikatPrint(event, signieren)
req.add('output', 'pdf');
req.add('sign', '1');
req.add('archive', '1');
+ req.add('prestudent_id', prestudent_id)
var response = req.execute();
@@ -532,6 +536,9 @@ function StudentLVZeugnisPrint(event, sprache, signieren)
col = tree.columns ? tree.columns["student-noten-tree-studiengang_kz"] : "student-noten-tree-studiengang_kz";
stg_kz = tree.view.getCellText(tree.currentIndex,col);
+ col = tree.columns ? tree.columns["student-noten-tree-prestudent_id"] : "student-noten-tree-prestudent_id";
+ prestudent_id = tree.view.getCellText(tree.currentIndex,col);
+
if (event.shiftKey)
var output='odt';
else if (event.ctrlKey)
@@ -551,6 +558,7 @@ function StudentLVZeugnisPrint(event, sprache, signieren)
req.add('output', 'pdf');
req.add('sign', '1');
req.add('archive', '1');
+ req.add('prestudent_id', prestudent_id);
var response = req.execute();
diff --git a/include/akte.class.php b/include/akte.class.php
index 5a978c638..c8388fd81 100644
--- a/include/akte.class.php
+++ b/include/akte.class.php
@@ -55,6 +55,7 @@ class akte extends basis_db
public $signiert = false;
public $stud_selfservice = false;
public $akzeptiertamum;
+ public $prestudent_id;
/**
* Konstruktor
@@ -114,6 +115,7 @@ class akte extends basis_db
$this->signiert = $this->db_parse_bool($row->signiert);
$this->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
$this->akzeptiertamum = $row->akzeptiertamum;
+ $this->prestudent_id = $row->prestudent_id;
return true;
}
@@ -199,7 +201,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, akzeptiertamum) VALUES (".
+ archiv, signiert, stud_selfservice, akzeptiertamum, prestudent_id) VALUES (".
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
$this->db_add_param($this->dokument_kurzbz).', '.
$this->db_add_param($this->inhalt).', '.
@@ -224,7 +226,8 @@ class akte extends basis_db
$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->akzeptiertamum).');';
+ $this->db_add_param($this->akzeptiertamum).','.
+ $this->db_add_param($this->prestudent_id, FHC_INTEGER).');';
}
else
{
@@ -252,7 +255,8 @@ class akte extends basis_db
" 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).",".
- " akzeptiertamum=".$this->db_add_param($this->akzeptiertamum).
+ " akzeptiertamum=".$this->db_add_param($this->akzeptiertamum).",".
+ " prestudent_id=".$this->db_add_param($this->prestudent_id).
" WHERE akte_id=".$this->db_add_param($this->akte_id, FHC_INTEGER);
}
@@ -311,7 +315,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, akzeptiertamum";
+ nachgereicht_am, ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice, akzeptiertamum, prestudent_id";
if($returnInhalt === true)
{
$qry .= ",inhalt ";
@@ -372,6 +376,7 @@ class akte extends basis_db
$akten->signiert = $this->db_parse_bool($row->signiert);
$akten->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
$akten->akzeptiertamum = $row->akzeptiertamum;
+ $akten->prestudent_id = $row->prestudent_id;
$this->result[] = $akten;
}
@@ -522,7 +527,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, akzeptiertamum
+ nachgereicht_am, ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice, akzeptiertamum, prestudent_id
FROM
public.tbl_akte
WHERE
@@ -571,6 +576,7 @@ class akte extends basis_db
$akten->signiert = $this->db_parse_bool($row->signiert);
$akten->stud_selfservice = $this->db_parse_bool($row->stud_selfservice);
$akten->akzeptiertamum = $row->akzeptiertamum;
+ $akten->prestudent_id = $row->prestudent_id;
$this->result[] = $akten;
}
diff --git a/rdf/zeugnisnote.rdf.php b/rdf/zeugnisnote.rdf.php
index a2f01a2b9..8a7c89edb 100644
--- a/rdf/zeugnisnote.rdf.php
+++ b/rdf/zeugnisnote.rdf.php
@@ -104,6 +104,7 @@ foreach ($obj->result as $row)
lehrveranstaltung_id.']]>
student_uid.']]>
+ prestudent_id.']]>
studiensemester_kurzbz.']]>
note.']]>
uebernahmedatum.']]>
diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php
index ed60aeddf..bb4bd10b3 100644
--- a/system/dbupdate_3.4.php
+++ b/system/dbupdate_3.4.php
@@ -40,6 +40,7 @@ require_once('dbupdate_3.4/24913_tabelle_raumtyp_neues_attribut_aktiv.php');
require_once('dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php');
require_once('dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php');
require_once('dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php');
+require_once('dbupdate_3.4/30661_akte_prestudent_id_bei_archivierten_dokumenten_speichern.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo 'Pruefe Tabellen und Attribute!
';
diff --git a/system/dbupdate_3.4/30661_akte_prestudent_id_bei_archivierten_dokumenten_speichern.php b/system/dbupdate_3.4/30661_akte_prestudent_id_bei_archivierten_dokumenten_speichern.php
new file mode 100644
index 000000000..b685bb2fb
--- /dev/null
+++ b/system/dbupdate_3.4/30661_akte_prestudent_id_bei_archivierten_dokumenten_speichern.php
@@ -0,0 +1,26 @@
+db_query("SELECT prestudent_id FROM public.tbl_akte LIMIT 1"))
+{
+ $qry = "ALTER TABLE public.tbl_akte ADD COLUMN prestudent_id int;";
+ if (!$db->db_query($qry))
+ echo 'public.tbl_akte: ' . $db->db_last_error() . '
';
+ else
+ echo '
public.tbl_akte: Spalte prestudent_id hinzugefuegt';
+
+ $qry = "CREATE INDEX idx_tbl_akte_prestudent_id ON public.tbl_akte USING btree (prestudent_id);";
+
+ if (!$db->db_query($qry))
+ echo 'public.tbl_akte: ' . $db->db_last_error() . '
';
+ else
+ echo '
public.tbl_akte: Index prestudent_id hinzugefuegt';
+
+ $qry = "ALTER TABLE public.tbl_akte ADD CONSTRAINT fk_prestudent_id_akte FOREIGN KEY (prestudent_id) REFERENCES public.tbl_prestudent(prestudent_id) ON DELETE RESTRICT ON UPDATE CASCADE;";
+
+ if (!$db->db_query($qry))
+ echo 'public.tbl_akte: ' . $db->db_last_error() . '
';
+ else
+ echo '
public.tbl_akte: FK hinzugefuegt';
+}