Compare commits

...

1 Commits

Author SHA1 Message Date
ma0048 b6bfa3b621 - prestudent_id beim archivieren setzen 2023-08-23 13:21:50 +02:00
11 changed files with 133 additions and 69 deletions
+4 -3
View File
@@ -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);
+2 -1
View File
@@ -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 = ?';
@@ -136,6 +136,10 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#punkte" onclick="LehrveranstaltungNotenTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-noten-tree-prestudent_id" label="PrestudentID" flex="2" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#prestudent_id" onclick="LehrveranstaltungNotenTreeSort()"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
@@ -159,6 +163,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
<treecell label="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#studiengang_kz_lv"/>
<treecell label="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#student_semester"/>
<treecell label="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#punkte"/>
<treecell label="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#prestudent_id"/>
</treerow>
</treeitem>
</treechildren>
@@ -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();
+62 -60
View File
@@ -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())
{
@@ -102,6 +102,10 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#student_uid" />
<splitter class="tree-splitter"/>
<treecol id="student-noten-tree-prestudent_id" label="PrestudentID" flex="2" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#prestudent_id" />
<splitter class="tree-splitter"/>
<treecol id="student-noten-tree-lehrveranstaltung_id" label="LehrveranstaltungID" flex="2" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#lehrveranstaltung_id" />
@@ -161,6 +165,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
<treecell label="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#studiensemester_kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#note"/>
<treecell label="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#student_uid"/>
<treecell label="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#prestudent_id"/>
<treecell label="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#lehrveranstaltung_id"/>
<treecell label="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#studiengang"/>
<treecell label="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#studiengang_kz"/>
+8
View File
@@ -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();
+11 -5
View File
@@ -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;
}
+1
View File
@@ -104,6 +104,7 @@ foreach ($obj->result as $row)
<RDF:Description id="'.$row->lehrveranstaltung_id.'/'.$row->student_uid.'/'.$row->studiensemester_kurzbz.'" about="'.$rdf_url.'/'.$row->lehrveranstaltung_id.'/'.$row->student_uid.'/'.$row->studiensemester_kurzbz.'" >
<NOTE:lehrveranstaltung_id><![CDATA['.$row->lehrveranstaltung_id.']]></NOTE:lehrveranstaltung_id>
<NOTE:student_uid><![CDATA['.$row->student_uid.']]></NOTE:student_uid>
<NOTE:prestudent_id><![CDATA['.$benutzer->prestudent_id.']]></NOTE:prestudent_id>
<NOTE:studiensemester_kurzbz><![CDATA['.$row->studiensemester_kurzbz.']]></NOTE:studiensemester_kurzbz>
<NOTE:note><![CDATA['.$row->note.']]></NOTE:note>
<NOTE:uebernahmedatum_iso><![CDATA['.$row->uebernahmedatum.']]></NOTE:uebernahmedatum_iso>
+1
View File
@@ -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 '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -0,0 +1,26 @@
<?php
if (!defined('DB_NAME'))
exit('No direct script access allowed');
if (!$result = @$db->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 '<strong>public.tbl_akte: ' . $db->db_last_error() . '</strong><br>';
else
echo '<br>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 '<strong>public.tbl_akte: ' . $db->db_last_error() . '</strong><br>';
else
echo '<br>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 '<strong>public.tbl_akte: ' . $db->db_last_error() . '</strong><br>';
else
echo '<br>public.tbl_akte: FK hinzugefuegt';
}