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.
-
';
- }
- else
- {
- echo 'Karte ist nicht ausgegeben oder wurde bereits retourniert';
+
';
+
+ if ($bmp->retouram == '')
+ {
+ echo ' ';
+ }
+
+ if(!$rechte->isBerechtigt('basis/fhausweis', 'suid'))
+ {
+ 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