From 3b89561736393b8d6fcff80ac5fd32ab176b70eb Mon Sep 17 00:00:00 2001 From: Manfred Date: Fri, 3 Sep 2021 15:14:54 +0200 Subject: [PATCH] =?UTF-8?q?Zutrittskarten=20l=C3=B6schen=20und=20status?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In kartenruecknahme.php werden nun Statusdetails zum Student oder Mitarbeiter angezeigt und man hat die Möglichkeit, Karten ganz aus dem System zu löschen. --- include/betriebsmittelperson.class.php | 13 ++- vilesci/fhausweis/kartenruecknahme.php | 152 +++++++++++++++++++++---- vilesci/fhausweis/kartezuweisen.php | 12 +- 3 files changed, 144 insertions(+), 33 deletions(-) diff --git a/include/betriebsmittelperson.class.php b/include/betriebsmittelperson.class.php index c105cc6da..fad950d76 100644 --- a/include/betriebsmittelperson.class.php +++ b/include/betriebsmittelperson.class.php @@ -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)) { diff --git a/vilesci/fhausweis/kartenruecknahme.php b/vilesci/fhausweis/kartenruecknahme.php index 7e67da753..f51cb0347 100644 --- a/vilesci/fhausweis/kartenruecknahme.php +++ b/vilesci/fhausweis/kartenruecknahme.php @@ -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 ' @@ -44,22 +49,61 @@ echo ' - Kartentausch + Kartenrücknahme -

Zutrittskarte - Ruecknahme

'; +

Zutrittskarte - Rücknahme

'; -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 'Karte erfolgreich gelöscht'; + } + else + { + echo 'Fehler beim löschen der Betriebsmittel_id: '.$bmp->betriebsmittel_id.''; + } + } + else + { + echo 'Fehler beim löschen der Betriebsmittelperson_id: '.$bmp->betriebsmittelperson_id.''; + } + } + else + { + echo 'Diese Karte ist derzeit nicht zugewiesen'; + } + } + else + { + echo 'Diese Karte ist derzeit nicht zugewiesen'; + } + + echo '


'; +} + +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 'Fehler beim Tauschen: '.$bmp->errormsg.''; - $error=true; + echo 'Fehler beim austragen der Karte'; } else - echo 'Karte wurde erfolgreich ausgetragen.
- + echo 'Karte wurde erfolgreich ausgetragen.'; + } + else + { + echo '
+ UID: '.$benutzer->uid.'
+ Karte augegeben am: '.($bmp->ausgegebenam != '' ? $datum_obj->formatDatum($bmp->ausgegebenam,'d.m.Y') : 'Karte nicht ausgegeben').'
+ Karte retour am: '.($bmp->retouram != '' ? $datum_obj->formatDatum($bmp->retouram,'d.m.Y') : 'Karte nicht retourniert').'
'; + if ($bmp->beschreibung != '') + { + echo 'Beschreibung: '.$bmp->beschreibung.'
'; + } + $student = new student(); + $mitarbeiter = new mitarbeiter(); + if ($student->load($bmp->uid)) + { + $prestudent = new prestudent(); + if ($prestudent->getLastStatus($student->prestudent_id)) + { + echo '
Letzter Status: '; + $style = ''; + if ($prestudent->status_kurzbz == 'Abbrecher' || $prestudent->status_kurzbz == 'Absolvent') + { + $style = 'style="color: red; font-weight: bold"'; + } + echo ''.$prestudent->status_kurzbz.' im '; + $style = ''; + $studiensemester = new studiensemester(); + if ($prestudent->studiensemester_kurzbz != $studiensemester->getakt()) + { + $style = 'style="color: red; font-weight: bold"'; + } + echo ''.$prestudent->studiensemester_kurzbz.'
'; + } + } + elseif ($mitarbeiter->load($bmp->uid)) + { + echo '
Letzter Status: '.($benutzer->bnaktiv ? 'Mitarbeiter*in aktiv' : 'Mitarbeiter*in inaktiv').'
'; + } + else + { + echo '
Kein/e Mitarbeiter*in oder Student*in
'; + } + echo '
-
Vorname: '.$benutzer->vorname.'
Nachname: '.$benutzer->nachname.'
- UID: '.$benutzer->uid.'
-
'; - } - else - { - echo 'Karte ist nicht ausgegeben oder wurde bereits retourniert'; +
'; + + if ($bmp->retouram == '') + { + echo '
+ + + +

'; + } + + if(!$rechte->isBerechtigt('basis/fhausweis', 'suid')) + { + echo '
+ + + ausgegebenam != '' || $bmp->retouram != '') + { + echo ' onclick="return confirm(\'Die Karte wurde ausgegeben oder retourniert. Wollen Sie sie wirklich löschen?\')"'; + } + echo '/> +
'; + } } } else @@ -116,7 +223,6 @@ if ($action == 'kartenruecknahme') Fehler beim Tauschen: Die Karte wurde dieser Person noch nicht zugeordnet ('.$benutzer->uid.' '.$kartennummer.') '; - $error = true; } } } @@ -144,10 +250,10 @@ Ziehen Sie die neue Karte über den Hitag Kartenleser um die Karte zu deaktivier

- + Kartennummer: - +
'; diff --git a/vilesci/fhausweis/kartezuweisen.php b/vilesci/fhausweis/kartezuweisen.php index 1a6ebfef6..1e2972d9e 100644 --- a/vilesci/fhausweis/kartezuweisen.php +++ b/vilesci/fhausweis/kartezuweisen.php @@ -44,13 +44,13 @@ echo ' - - - - - + + + + + - Kartentausch + Karte zuweisen