diff --git a/application/controllers/system/Variables.php b/application/controllers/system/Variables.php
index c56407416..3cc246301 100644
--- a/application/controllers/system/Variables.php
+++ b/application/controllers/system/Variables.php
@@ -18,10 +18,10 @@ class Variables extends Auth_Controller
{
parent::__construct(
array(
- 'setVar' => 'basis/variable:rw',
- 'getVar' => 'basis/variable:rw',
- 'changeStudiensemesterVar' => 'basis/variable:rw',
- 'changeStudengangsTypVar' => 'basis/variable:rw'
+ 'setVar' => array('basis/variable:rw','basis/variable_persoenlich:rw'),
+ 'getVar' => array('basis/variable:rw','basis/variable_persoenlich:rw'),
+ 'changeStudiensemesterVar' => array('basis/variable:rw','basis/variable_persoenlich:rw'),
+ 'changeStudengangsTypVar' => array('basis/variable:rw','basis/variable_persoenlich:rw')
)
);
diff --git a/cis/private/lehre/fotoliste.pdf.php b/cis/private/lehre/fotoliste.pdf.php
index 62433e231..9e1c84b09 100644
--- a/cis/private/lehre/fotoliste.pdf.php
+++ b/cis/private/lehre/fotoliste.pdf.php
@@ -102,6 +102,7 @@ $gruppen_string = '';
$gruppen_string_arr = array();
$stg_typ = $stg->typ;
$stg_bezeichnung = $stg->bezeichnung;
+$lv_bezeichnung = '';
//structure overall lehrveranstaltungs data
if ($result = $db->db_query($qry)) {
diff --git a/cis/testtool/frage.php b/cis/testtool/frage.php
index 12d9d8d26..69dc9496c 100644
--- a/cis/testtool/frage.php
+++ b/cis/testtool/frage.php
@@ -37,6 +37,7 @@ require_once('../../include/gebiet.class.php');
require_once('../../include/sprache.class.php');
require_once '../../include/phrasen.class.php';
require_once '../../include/reihungstest.class.php';
+require_once '../../include/pruefling.class.php';
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
@@ -157,6 +158,12 @@ echo '
if(!isset($_SESSION['pruefling_id']))
die($p->t('testtool/bitteZuerstAnmelden'));
+$pruefling = new pruefling();
+$pruefling->load($_SESSION['pruefling_id']);
+
+if ($pruefling->gesperrt === 't')
+ die("");
+
$gebiet = new gebiet($gebiet_id);
if($gebiet->level_start!='')
diff --git a/cis/testtool/prueflinggesperrt.php b/cis/testtool/prueflinggesperrt.php
new file mode 100644
index 000000000..f0ab2b1ad
--- /dev/null
+++ b/cis/testtool/prueflinggesperrt.php
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+t('testtool/prueflingGesperrt');?>
+
+
+
diff --git a/include/datum.class.php b/include/datum.class.php
index f09066009..950cd60ff 100644
--- a/include/datum.class.php
+++ b/include/datum.class.php
@@ -154,7 +154,7 @@ class datum
public function checkDatum($datum)
{
//Format dd.mm.yyyy
- if(mb_ereg("([0-9]{2}).([0-9]{2}).([0-9]{4})$", $datum))
+ if(mb_ereg("([0-9]{2})[.]([0-9]{2})[.]([0-9]{4})$", $datum))
{
$year = substr($datum, 6, 4);
diff --git a/include/konto.class.php b/include/konto.class.php
index ca0950e34..7849f2605 100644
--- a/include/konto.class.php
+++ b/include/konto.class.php
@@ -969,10 +969,9 @@ class konto extends basis_db
{
$qry = "SELECT betrag
FROM public.tbl_konto
- JOIN public.tbl_benutzer benutzer USING(person_id)
WHERE person_id IN (".$this->implode4SQL(array_filter($person_ids)).")
AND studiensemester_kurzbz = ".$this->db_add_param($stsem)."
- AND buchungstyp_kurzbz = ".$this->db_add_param($typ)."
+ AND buchungstyp_kurzbz = ".$this->db_add_param($typ)."
GROUP BY buchungsnr";
if ($result = $this->db_query($qry))
diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php
index d8cb40536..b7511a5ad 100644
--- a/include/mitarbeiter.class.php
+++ b/include/mitarbeiter.class.php
@@ -1673,5 +1673,37 @@ class mitarbeiter extends benutzer
return false;
}
+
+ /**
+ * Generiert nächste freie Personalnummer anhand der sequence tbl_mitarbeiter_personalnummer_seq
+ * @return string $personalnummer
+ */
+ public function getNextPersonalnummer()
+ {
+ $qry = "SELECT nextval('tbl_mitarbeiter_personalnummer_seq') ";
+
+ if ($result = $this->db_query($qry))
+ {
+ while ($row = $this->db_fetch_object())
+ {
+ if ($row->nextval != '')
+ {
+ $personalnummer = $row->nextval;
+ return $personalnummer;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler bei einer Datenbankabfrage!';
+ $return = false;
+ }
+ }
+ }
+ else
+ {
+ $this->errormsg = "Fehler bei der Abfrage aufgetreten";
+ return false;
+ }
+ }
+
}
?>
diff --git a/include/pruefling.class.php b/include/pruefling.class.php
index 17fe48789..fc64d90c4 100644
--- a/include/pruefling.class.php
+++ b/include/pruefling.class.php
@@ -31,6 +31,7 @@ class pruefling extends basis_db
public $registriert;
public $prestudent_id;
public $semester;
+ public $gesperrt;
// ErgebnisArray
public $result=array();
@@ -67,6 +68,7 @@ class pruefling extends basis_db
$this->registriert = $row->registriert;
$this->prestudent_id = $row->prestudent_id;
$this->semester = $row->semester;
+ $this->gesperrt = $row->gesperrt;
return true;
}
else
@@ -184,6 +186,7 @@ class pruefling extends basis_db
$this->registriert = $row->registriert;
$this->prestudent_id = $row->prestudent_id;
$this->semester = $row->semester;
+ $this->gesperrt = $row->gesperrt;
return true;
}
else
@@ -221,6 +224,7 @@ class pruefling extends basis_db
$obj->registriert = $row->registriert;
$obj->prestudent_id = $row->prestudent_id;
$obj->semester = $row->semester;
+ $obj->gesperrt = $row->gesperrt;
$this->result[] = $obj;
}
diff --git a/include/tw/generateuid.inc.php b/include/tw/generateuid.inc.php
index 78e9eae69..8c0a1ab80 100644
--- a/include/tw/generateuid.inc.php
+++ b/include/tw/generateuid.inc.php
@@ -73,7 +73,7 @@ if(!$generateuid_addon_found)
// ****
// * Gerneriert die Mitarbeiter UID
// ****
- function generateMitarbeiterUID($vorname, $nachname, $lektor, $fixangestellt=true)
+ function generateMitarbeiterUID($vorname, $nachname, $lektor, $fixangestellt=true, $personalnummer=null)
{
$bn = new benutzer();
$reserviert = array();
@@ -110,4 +110,5 @@ if(!$generateuid_addon_found)
}
}
}
+
?>
diff --git a/locale/de-AT/testtool.php b/locale/de-AT/testtool.php
index 97e831836..dbafe21e9 100644
--- a/locale/de-AT/testtool.php
+++ b/locale/de-AT/testtool.php
@@ -78,4 +78,6 @@ $this->phrasen['testtool/einfuehrungsText']='
Display testpage
';
+$this->phrasen['testtool/prueflingGesperrt']='Bitte kontaktieren Sie die Reihungstestaufsicht!';
+
?>
diff --git a/locale/en-US/testtool.php b/locale/en-US/testtool.php
index 1630c9251..473ac1e0d 100644
--- a/locale/en-US/testtool.php
+++ b/locale/en-US/testtool.php
@@ -50,4 +50,5 @@ $this->phrasen['testtool/startDrueckenUmZuBeginnen']='To start this section, ple
$this->phrasen['testtool/keinPrueflingseintragVorhanden']='No candidate entry available.';
$this->phrasen['testtool/fuerFolgendeStgAngemeldet']='You have applied for the following degree programs:';
$this->phrasen['testtool/invalideGebiete']='One or more question areas incorrect!
Please inform an assisting person.';
+$this->phrasen['testtool/prueflingGesperrt']='Please contact the placement test supervisor!';
?>
\ No newline at end of file
diff --git a/system/checksystem.php b/system/checksystem.php
index f48d48d9a..a52fb2a6d 100644
--- a/system/checksystem.php
+++ b/system/checksystem.php
@@ -139,6 +139,7 @@ $berechtigungen = array(
array('basis/tempus','Tempus zugriff'),
array('basis/testtool','Administrationseite, Gebiete löschen/zurücksetzen'),
array('basis/variable','Variablenverwaltung'),
+ array('basis/variable_persoenlich','Verwaltung eigener Variablen'),
array('basis/vilesci','Grundrecht, um in VileSci irgendwelche Menüpunkte zu sehen'),
array('basis/servicezeitaufzeichnung','Erlaubt Erfassung von servicebezogenen (Service, OE, Kunde) Daten in der Zeitaufzeichnung'),
array('buchung/typen','Verwaltung von Buchungstypen'),
diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php
index 6c26e1418..47b292faa 100644
--- a/system/dbupdate_3.3.php
+++ b/system/dbupdate_3.3.php
@@ -2990,6 +2990,19 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants
}
}
+
+// Spalte gesperrt in testtool.tbl_pruefling
+if(!$result = @$db->db_query("SELECT gesperrt FROM testtool.tbl_pruefling LIMIT 1;"))
+{
+ $qry = "ALTER TABLE testtool.tbl_pruefling ADD COLUMN gesperrt boolean NOT NULL DEFAULT false;";
+
+ if(!$db->db_query($qry))
+ echo 'testtool.tbl_pruefling: '.$db->db_last_error().'
';
+ else
+ echo '
testtool.tbl_pruefling: Spalte gesperrt hinzugefuegt!
';
+}
+
+
// Kategorisierung von Services
if(!$result = @$db->db_query("SELECT * FROM public.tbl_servicekategorie LIMIT 1"))
{
@@ -6407,7 +6420,7 @@ $tabellen=array(
"testtool.tbl_gebiet" => array("gebiet_id","kurzbz","bezeichnung","beschreibung","zeit","multipleresponse","kategorien","maxfragen","zufallfrage","zufallvorschlag","levelgleichverteilung","maxpunkte","insertamum", "insertvon", "updateamum", "updatevon", "level_start","level_sprung_auf","level_sprung_ab","antwortenprozeile","bezeichnung_mehrsprachig", "offsetpunkte"),
"testtool.tbl_kategorie" => array("kategorie_kurzbz","gebiet_id"),
"testtool.tbl_kriterien" => array("gebiet_id","kategorie_kurzbz","punkte","typ"),
- "testtool.tbl_pruefling" => array("pruefling_id","prestudent_id","studiengang_kz","idnachweis","registriert","semester"),
+ "testtool.tbl_pruefling" => array("pruefling_id","prestudent_id","studiengang_kz","idnachweis","registriert","semester", "gesperrt"),
"testtool.tbl_vorschlag" => array("vorschlag_id","frage_id","nummer","punkte","insertamum","insertvon","updateamum","updatevon","aktiv"),
"testtool.tbl_pruefling_frage" => array("prueflingfrage_id","pruefling_id","frage_id","nummer","begintime","endtime"),
"testtool.tbl_frage_sprache" => array("frage_id","sprache","text","bild","audio","insertamum","insertvon","updateamum","updatevon"),
diff --git a/system/filtersupdate.php b/system/filtersupdate.php
index c687f2978..05cfc0d38 100644
--- a/system/filtersupdate.php
+++ b/system/filtersupdate.php
@@ -1022,16 +1022,14 @@ $filters = array(
{
"name": "Projektübersicht",
"columns": [
- {"name": "ProjectWorkID"},
+ {"name": "Studiengang"},
+ {"name": "StudentNachname"},
+ {"name": "Abgabedatum"},
+ {"name": "Note"},
{"name": "ErstNachname"},
{"name": "ErstAbgeschickt"},
{"name": "ZweitNachname"},
- {"name": "ZweitAbgeschickt"},
- {"name": "StudentNachname"},
- {"name": "Note"},
- {"name": "Abgabedatum"},
- {"name": "Studiengang"},
- {"name": "Kommissionsmitglieder"}
+ {"name": "ZweitAbgeschickt"}
],
"filters": []
}
diff --git a/vilesci/personen/import/mitarbeiterimport.php b/vilesci/personen/import/mitarbeiterimport.php
index 1b590ba7c..2bf10dede 100644
--- a/vilesci/personen/import/mitarbeiterimport.php
+++ b/vilesci/personen/import/mitarbeiterimport.php
@@ -16,8 +16,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger ,
- * Andreas Oesterreicher and
- * Rudolf Hangl .
+ * Andreas Oesterreicher ,
+ * Rudolf Hangl ,
+ * Manuela Thamer .
*/
require_once('../../../config/vilesci.config.inc.php');
@@ -624,8 +625,16 @@ if(isset($_POST['save']))
$nachname_clean = mb_strtolower(convertProblemChars($nachname));
$vorname_clean = mb_strtolower(convertProblemChars($vorname));
$uid='';
+ $mitarbeiter = new mitarbeiter();
- $uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor, $fixangestellt);
+ if ($_POST['personalnummer'])
+ {
+ $personalnummer = $_POST['personalnummer'];
+ }
+ else
+ $personalnummer = $mitarbeiter->getNextPersonalnummer();
+
+ $uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor, $fixangestellt, $personalnummer);
if ($wunschUid != '')
{
@@ -876,10 +885,10 @@ if(isset($_POST['save']))
}
}
- if(!$error)
+ if (!$error)
{
$db->db_query('COMMIT');
- die("MitarbeiterIn $vorname $vornamen $nachname wurde erfolgreich angelegt
Neue Person anlegen
");
+ die("MitarbeiterIn $vorname $vornamen $nachname ($uid) wurde erfolgreich angelegt
Neue Person anlegen
");
}
else
{
@@ -929,7 +938,8 @@ echo '| Wunsch-UID | ';
if ($showagain)
echo ' ';
-echo ' (optional, max. 32)
+echo ' (optional, max. 32)
|
';
echo '| Anrede | |
';
echo '| Titel(Pre) | |
';
diff --git a/vilesci/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php
index 1acfe1a55..69d4dc7b9 100644
--- a/vilesci/stammdaten/auswertung_fhtw.php
+++ b/vilesci/stammdaten/auswertung_fhtw.php
@@ -440,6 +440,46 @@ if ($deleteAllResults)
}
}
+$rtprueflingEntSperren = filter_input(INPUT_POST, 'rtprueflingEntSperren', FILTER_VALIDATE_BOOLEAN);
+if ($rtprueflingEntSperren)
+{
+ if (!$rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'su'))
+ {
+ echo json_encode(array(
+ 'status' => 'fehler',
+ 'msg' => $rechte->errormsg
+ ));
+ exit();
+ }
+
+ if (isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id'])
+ && isset($_POST['art']))
+ {
+ $qry = "UPDATE testtool.tbl_pruefling SET gesperrt =" . $db->db_add_param($_POST['art'], 'BOOLEAN') . "
+ WHERE prestudent_id IN
+ (SELECT prestudent_id FROM public.tbl_prestudent ps
+ JOIN public.tbl_person tp ON tp.person_id = ps.person_id
+ WHERE tp.person_id = (SELECT person_id FROM public.tbl_prestudent sps WHERE sps.prestudent_id = " . $db->db_add_param($_POST['prestudent_id']) . "));";
+
+ if ($result = $db->db_query($qry))
+ {
+ $msg = $_POST['art'] === 'false' ? 'Pruefling wurde gesperrt' : 'Pruefling wurde freigeschaltet';
+ echo json_encode(array(
+ 'status' => 'ok',
+ 'msg' => $msg));
+ exit();
+ }
+ else
+ {
+ echo json_encode(array(
+ 'status' => 'fehler',
+ 'msg' => 'Fehler beim speichern der Daten'
+ ));
+ exit();
+ }
+ }
+}
+
// Ajax-Request um einen Reihungstest freizuschalten
$rtFreischalten = filter_input(INPUT_POST, 'rtFreischalten', FILTER_VALIDATE_BOOLEAN);
if ($rtFreischalten)
@@ -1408,6 +1448,7 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
tbl_gebiet.bezeichnung AS gebiet,
tbl_pruefling.idnachweis,
tbl_pruefling.registriert,
+ tbl_pruefling.gesperrt,
get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) AS letzter_status
FROM PUBLIC.tbl_rt_person
JOIN PUBLIC.tbl_person ON (tbl_rt_person.person_id = tbl_person.person_id)
@@ -1530,6 +1571,7 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
$ergebnis[$row->prestudent_id]->geschlecht = $row->geschlecht;
$ergebnis[$row->prestudent_id]->idnachweis = $row->idnachweis;
$ergebnis[$row->prestudent_id]->registriert = $row->registriert;
+ $ergebnis[$row->prestudent_id]->gesperrt = $row->gesperrt;
$ergebnis[$row->prestudent_id]->stg_kurzbz = $row->stg_kurzbz;
$ergebnis[$row->prestudent_id]->stg_bez = $row->stg_bez;
$ergebnis[$row->prestudent_id]->ausbildungssemester = $row->ausbildungssemester;
@@ -2291,7 +2333,57 @@ else
});
}
}
-
+ function prueflingEntSperren(prestudent_id, name, art)
+ {
+ if (art === true)
+ var text = "sperren";
+ else if (art === false)
+ var text = "entsperren";
+
+ if (confirm("Wollen Sie den Studenten "+ name + " wirklich " + text + "?"))
+ {
+ data = {
+ prestudent_id: prestudent_id,
+ art: art,
+ rtprueflingEntSperren: true
+ };
+
+ $.ajax({
+ url: "auswertung_fhtw.php",
+ data: data,
+ type: "POST",
+ dataType: "json",
+ success: function(data)
+ {
+ if(data.status !== "ok")
+ {
+ $("#msgbox").attr("class","alert alert-danger");
+ $("#msgbox").show();
+ $("#msgbox").html(data["msg"]);
+ }
+ else
+ {
+ if (art === true)
+ {
+ $("#prueflingentsperren_" + prestudent_id).removeClass("hidden");
+ $("#prueflingsperren_" + prestudent_id).addClass("hidden");
+ }
+ else if (art === false)
+ {
+ $("#prueflingsperren_" + prestudent_id).removeClass("hidden");
+ $("#prueflingentsperren_" + prestudent_id).addClass("hidden");
+ }
+ }
+ },
+ error: function(data)
+ {
+ $("#msgbox").attr("class","alert alert-danger");
+ $("#msgbox").show();
+ $("#msgbox").html(data["msg"]);
+ }
+ });
+ }
+ }
function deleteAllResults(prestudent_id, name)
{
if (confirm("Wollen Sie ALLE Ergebnisse der Person "+name+" wirklich löschen"))
@@ -2955,6 +3047,7 @@ else
PreId |
|
+ Ent-/Sperren |
Nachname |
Vornamen |
GebDatum |
@@ -3011,6 +3104,18 @@ else
$erg->prestudent_id |
|
+ ";
+
+
+ echo "
+
+
+
+
+
+
+ | ";
+ echo "
".$erg->nachname." ".($erg->qualifikationskurs == true ? "(Q)" : "")." |
$erg->vorname |
" . $datum_obj->formatDatum($erg->gebdatum, 'd.m.Y') . " |
diff --git a/vilesci/stammdaten/infoscreen_uebersicht.php b/vilesci/stammdaten/infoscreen_uebersicht.php
index 24a89980f..e766b2bc1 100644
--- a/vilesci/stammdaten/infoscreen_uebersicht.php
+++ b/vilesci/stammdaten/infoscreen_uebersicht.php
@@ -44,11 +44,11 @@ echo '
-
-
-
-
-
+
+
+
+
+