Merge branch 'master' of github.com:FH-Complete/FHC-Core

This commit is contained in:
Andreas Österreicher
2021-09-03 17:36:19 +02:00
3 changed files with 144 additions and 33 deletions
+9 -4
View File
@@ -509,10 +509,11 @@ class betriebsmittelperson extends basis_db
/**
* Sucht welche Person die uebergebene Kartennummer hat
* @param $nummer Kartennummer
* @param $nummer Kartennummer
* @param boolean $checkRetour Optional. Default true. Checkt, ob die Karte bereits retourniert wurde. Wenn false werden auch bereits retournierte Karten zurückgegeben
* @return true wenn ok, false im Fehlerfall
*/
public function getKartenzuordnung($nummer)
public function getKartenzuordnung($nummer, $checkRetour=true)
{
// fuehrende Nullen bei Kartennummern auch checken
$qry='
@@ -536,8 +537,12 @@ class betriebsmittelperson extends basis_db
OR tbl_betriebsmittel.nummer2='.$this->db_add_param('00000'.$nummer).'
)
AND tbl_betriebsmittel.betriebsmitteltyp=\'Zutrittskarte\'
AND (ausgegebenam<=now() OR ausgegebenam is NULL)
AND (retouram>=now() OR retouram is NULL)';
AND (ausgegebenam<=now() OR ausgegebenam is NULL)';
if ($checkRetour == true)
{
$qry .= ' AND (retouram>=now() OR retouram is NULL)';
}
if($this->db_query($qry))
{
+129 -23
View File
@@ -26,15 +26,20 @@ require_once('../../include/functions.inc.php');
require_once('../../include/person.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/student.class.php');
require_once('../../include/prestudent.class.php');
require_once('../../include/mitarbeiter.class.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/betriebsmittel.class.php');
require_once('../../include/betriebsmittelperson.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/studiensemester.class.php');
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$datum_obj = new datum();
echo '<!DOCTYPE HTML>
<html>
@@ -44,22 +49,61 @@ echo '<!DOCTYPE HTML>
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../skin/jquery.css" type="text/css"/>
<script type="text/javascript" src="../../include/js/jquery.js"></script>
<title>Kartentausch</title>
<title>Kartenrücknahme</title>
</head>
<body>
<h2>Zutrittskarte - Ruecknahme</h2>';
<h2>Zutrittskarte - Rücknahme</h2>';
if(!$rechte->isBerechtigt('basis/fhausweis', 'suid'))
if(!$rechte->isBerechtigt('basis/fhausweis', 's'))
die('Sie haben keine Berechtigung für diese Seite');
$db = new basis_db();
$kartennummer = (isset($_POST['kartennummer'])?$_POST['kartennummer']:'');
$action=(isset($_POST['action'])?$_POST['action']:'');
if ($action == 'kartenruecknahme')
if ($action == 'karte_loeschen')
{
if(!$rechte->isBerechtigt('basis/fhausweis', 'suid'))
die('Sie haben keine Berechtigung zum löschen von Karten');
$bmp = new betriebsmittelperson();
if ($bmp->getKartenzuordnung($kartennummer, false))
{
if ($bmp->betriebsmittelperson_id != '')
{
if ($bmp->delete($bmp->betriebsmittelperson_id))
{
if ($bmp->delete_betriebsmittel($bmp->betriebsmittel_id))
{
echo '<span class="ok">Karte erfolgreich gelöscht</span>';
}
else
{
echo '<span class="error">Fehler beim löschen der Betriebsmittel_id: '.$bmp->betriebsmittel_id.'</span>';
}
}
else
{
echo '<span class="error">Fehler beim löschen der Betriebsmittelperson_id: '.$bmp->betriebsmittelperson_id.'</span>';
}
}
else
{
echo '<span class="error">Diese Karte ist derzeit nicht zugewiesen</span>';
}
}
else
{
echo '<span class="error">Diese Karte ist derzeit nicht zugewiesen</span>';
}
echo '<br><hr><br>';
}
if ($action == 'kartenabfrage' || $action == 'kartenruecknahme')
{
$bmp = new betriebsmittelperson();
if ($bmp->getKartenzuordnung($kartennummer))
if ($bmp->getKartenzuordnung($kartennummer, false))
{
if ($bmp->uid != '')
{
@@ -72,25 +116,28 @@ if ($action == 'kartenruecknahme')
}
else
{
$error=false;
//Neue Karte aktivieren
$bmp = new betriebsmittelperson();
if ($bmp->getKartenzuordnungPerson($benutzer->person_id, $kartennummer))
{
if ($bmp->ausgegebenam != '' && $bmp->retouram == '')
if ($action == 'kartenruecknahme')
{
$bmp->retouram=date('Y-m-d');
if(!$rechte->isBerechtigt('basis/fhausweis', 'su'))
die('Sie haben keine Berechtigung zum aktualisieren von Kartendaten');
$bmp->retouram = date('Y-m-d');
$bmp->updateamum = date('Y-m-d H:i:s');
$bmp->updatevon = $uid;
if(!$bmp->save(false))
{
echo '<span class="error">Fehler beim Tauschen: '.$bmp->errormsg.'</span>';
$error=true;
echo '<span class="error">Fehler beim austragen der Karte</span>';
}
else
echo '<span class="ok">Karte wurde erfolgreich ausgetragen.</span><br>
<table>
echo '<span class="ok">Karte wurde erfolgreich ausgetragen.</span>';
}
else
{
echo '<table>
<tr>
<td>
<img src="../../content/bild.php?src=person&person_id='.$benutzer->person_id.'"
@@ -99,14 +146,74 @@ if ($action == 'kartenruecknahme')
<td>
Vorname: '.$benutzer->vorname.'<br>
Nachname: '.$benutzer->nachname.'<br>
UID: <b>'.$benutzer->uid.'<br>
</td>
UID: '.$benutzer->uid.'<br>
Karte augegeben am: '.($bmp->ausgegebenam != '' ? $datum_obj->formatDatum($bmp->ausgegebenam,'d.m.Y') : '<span style="color: red">Karte nicht ausgegeben</span>').'<br>
Karte retour am: '.($bmp->retouram != '' ? $datum_obj->formatDatum($bmp->retouram,'d.m.Y') : '<span style="color: red">Karte nicht retourniert</span>').'<br>';
if ($bmp->beschreibung != '')
{
echo 'Beschreibung: '.$bmp->beschreibung.'<br>';
}
$student = new student();
$mitarbeiter = new mitarbeiter();
if ($student->load($bmp->uid))
{
$prestudent = new prestudent();
if ($prestudent->getLastStatus($student->prestudent_id))
{
echo '<br>Letzter Status: <b>';
$style = '';
if ($prestudent->status_kurzbz == 'Abbrecher' || $prestudent->status_kurzbz == 'Absolvent')
{
$style = 'style="color: red; font-weight: bold"';
}
echo '<span '.$style.'>'.$prestudent->status_kurzbz.'</span> im ';
$style = '';
$studiensemester = new studiensemester();
if ($prestudent->studiensemester_kurzbz != $studiensemester->getakt())
{
$style = 'style="color: red; font-weight: bold"';
}
echo '<span '.$style.'>'.$prestudent->studiensemester_kurzbz.'</span><br>';
}
}
elseif ($mitarbeiter->load($bmp->uid))
{
echo '<br>Letzter Status: '.($benutzer->bnaktiv ? '<span style="color: green;">Mitarbeiter*in aktiv</span>' : '<span style="color: red; font-weight: bold">Mitarbeiter*in inaktiv</span>').'<br>';
}
else
{
echo '<br>Kein/e Mitarbeiter*in oder Student*in<br>';
}
echo ' </td>
</tr>
</table>';
}
else
{
echo '<span>Karte ist nicht ausgegeben oder wurde bereits retourniert</span>';
</table><br>';
if ($bmp->retouram == '')
{
echo '<form action="'.$_SERVER['PHP_SELF'].'" METHOD="POST">
<input type="hidden" name="action" value="kartenruecknahme" />
<input type="hidden" name="kartennummer" value="'.$kartennummer.'"/>
<input type="submit" name="retournieren" style="color: #fff; background-color: #f0ad4e; border-color: #eea236; padding: 3px" value="Karte austragen" />
</form><br>';
}
if(!$rechte->isBerechtigt('basis/fhausweis', 'suid'))
{
echo '<form action="'.$_SERVER['PHP_SELF'].'" METHOD="POST">
<input type="hidden" name="action" value="karte_loeschen" />
<input type="hidden" name="kartennummer" value="'.$kartennummer.'"/>
<input type="submit"
name="loeschen"
style="color: #fff; background-color: #d9534f; border-color: #d43f3a;; padding: 3px"
value="Karte löschen" ';
// Wenn die Karte ausgegeben und/oder retourniert ist, wird zur Sicherheit nachgefragt ob wirklich gelöscht werden soll
if ($bmp->ausgegebenam != '' || $bmp->retouram != '')
{
echo ' onclick="return confirm(\'Die Karte wurde ausgegeben oder retourniert. Wollen Sie sie wirklich löschen?\')"';
}
echo '/>
</form>';
}
}
}
else
@@ -116,7 +223,6 @@ if ($action == 'kartenruecknahme')
Fehler beim Tauschen: Die Karte wurde dieser
Person noch nicht zugeordnet ('.$benutzer->uid.' '.$kartennummer.')
</span>';
$error = true;
}
}
}
@@ -144,10 +250,10 @@ Ziehen Sie die neue Karte über den Hitag Kartenleser um die Karte zu deaktivier
</script>
<br><br>
<form action="'.$_SERVER['PHP_SELF'].'" METHOD="POST">
<input type="hidden" name="action" value="kartenruecknahme" />
<input type="hidden" name="action" value="kartenabfrage" />
Kartennummer:
<input type="text" id="kartennummer" name="kartennummer"/>
<input type="submit" name="retournieren" value="Karte austragen" />
<input type="submit" name="abfragen" value="Karte abfragen" />
</form>
';
+6 -6
View File
@@ -44,13 +44,13 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../skin/jquery.css" type="text/css"/>
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
<link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
<title>Kartentausch</title>
<title>Karte zuweisen</title>
<script type="text/javascript">
$(document).ready(function()
{