- rt sperre vor dem login moeglich

This commit is contained in:
ma0048
2023-06-22 10:23:00 +02:00
parent f5ee097b72
commit a81ceb51b8
3 changed files with 63 additions and 37 deletions
+3
View File
@@ -362,6 +362,8 @@ if ((isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']) &&
$pruefling->idnachweis = '';
$pruefling->registriert = date('Y-m-d H:i:s');
$pruefling->prestudent_id = $_SESSION['prestudent_id'];
$pruefling->gesperrt = $pruefling->isGesperrt(null, $_SESSION['prestudent_id']);
if ($pruefling->save())
{
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
@@ -385,6 +387,7 @@ if (isset($_POST['save']) && isset($_SESSION['prestudent_id']))
$pruefling->registriert = date('Y-m-d H:i:s');
$pruefling->prestudent_id = $_SESSION['prestudent_id'];
$pruefling->semester = $_POST['semester'];
$pruefling->gesperrt = $pruefling->isGesperrt(null, $_SESSION['prestudent_id']);
if ($pruefling->save())
{
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
+22 -8
View File
@@ -108,12 +108,13 @@ class pruefling extends basis_db
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
{
$qry = 'BEGIN;INSERT INTO testtool.tbl_pruefling (studiengang_kz, idnachweis, registriert, prestudent_id, semester) VALUES('.
$qry = 'BEGIN;INSERT INTO testtool.tbl_pruefling (studiengang_kz, idnachweis, registriert, prestudent_id, semester, gesperrt) VALUES('.
$this->db_add_param($this->studiengang_kz).",".
$this->db_add_param($this->idnachweis).",".
$this->db_add_param($this->registriert).",".
$this->db_add_param($this->prestudent_id).",".
$this->db_add_param($this->semester).");";
$this->db_add_param($this->semester).",".
$this->db_add_param($this->gesperrt, FHC_BOOLEAN).");";
}
else
{
@@ -122,7 +123,8 @@ class pruefling extends basis_db
' idnachweis='.$this->db_add_param($this->idnachweis).','.
' registriert='.$this->db_add_param($this->registriert).','.
' semester='.$this->db_add_param($this->semester).','.
' prestudent_id='.$this->db_add_param($this->prestudent_id, FHC_INTEGER).
' prestudent_id='.$this->db_add_param($this->prestudent_id, FHC_INTEGER).','.
' gesperrt='.$this->db_add_param($this->gesperrt, FHC_BOOLEAN).
" WHERE pruefling_id=".$this->db_add_param($this->pruefling_id, FHC_INTEGER, false).";";
}
@@ -558,18 +560,30 @@ class pruefling extends basis_db
}
}
public function isGesperrt($pruefling_id)
public function isGesperrt($pruefling_id = null, $prestudent_id = null)
{
if (is_null($pruefling_id) && is_null($prestudent_id))
{
$this->errormsg = 'Falsche Parameterübergabe';
return false;
}
$qry = "SELECT spruefling.gesperrt
FROM testtool.tbl_pruefling
JOIN public.tbl_prestudent USING(prestudent_id)
RIGHT JOIN public.tbl_prestudent USING(prestudent_id)
JOIN public.tbl_person USING (person_id)
JOIN public.tbl_prestudent pss ON pss.person_id = tbl_person.person_id
JOIN testtool.tbl_pruefling spruefling ON pss.prestudent_id = spruefling.prestudent_id
WHERE tbl_pruefling.pruefling_id = ".$this->db_add_param($pruefling_id, FHC_INTEGER)."
AND spruefling.gesperrt
LIMIT 1";
WHERE spruefling.gesperrt";
if (!is_null($pruefling_id))
$qry .= " AND tbl_pruefling.pruefling_id = ".$this->db_add_param($pruefling_id, FHC_INTEGER);
if (!is_null($prestudent_id))
$qry .= " AND tbl_prestudent.prestudent_id = ".$this->db_add_param($prestudent_id, FHC_INTEGER);
$qry .= " LIMIT 1";
if($result = $this->db_query($qry))
{
if ($this->db_num_rows($result) == 0)
+38 -29
View File
@@ -501,46 +501,55 @@ if ($rtprueflingEntSperren)
WHERE person_id = ". $db->db_add_param($_POST['person_id']) . "
)";
if ($result = $db->db_query($qry))
{
if ($db->db_num_rows($result) === 0)
{
echo json_encode(array(
'status' => 'warning',
'msg' => 'Kein Pruefling gefunden!'
));
exit();
$ps = new prestudent();
$ps->getPrestudenten($_POST['person_id']);
$prestudent = new prestudent($ps->result[0]->prestudent_id);
$prestudent->getLastStatus($prestudent->prestudent_id);
$pruefling = new pruefling();
$pruefling->new = true;
$pruefling->studiengang_kz = $prestudent->studiengang_kz;
$pruefling->registriert = date('Y-m-d H:i:s');
$pruefling->semester = $prestudent->ausbildungssemester;
$pruefling->prestudent_id = $prestudent->prestudent_id;
$pruefling->gesperrt = true;
$resultSperre = $pruefling->save();
}
else
{
$pruefling_ids = array();
while ($row = $db->db_fetch_object($result))
{
$pruefling_ids[] = $row->pruefling_id;
}
$qry = "UPDATE testtool.tbl_pruefling SET gesperrt =" . $db->db_add_param($_POST['art'], 'BOOLEAN') . "
$qry = "UPDATE testtool.tbl_pruefling
SET gesperrt =" . $db->db_add_param($_POST['art'], 'BOOLEAN') . "
WHERE pruefling_id IN (" . $db->db_implode4SQL($pruefling_ids) . ")";
if ($result_update = $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();
}
$resultSperre = $db->db_query($qry);
}
if ($resultSperre)
{
$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();
}
}
else