diff --git a/content/betriebsmitteloverlay.js.php b/content/betriebsmitteloverlay.js.php index a951396bb..4d167a65d 100644 --- a/content/betriebsmitteloverlay.js.php +++ b/content/betriebsmitteloverlay.js.php @@ -418,7 +418,7 @@ function BetriebsmittelDetailSpeichern() else { BetriebsmittelSelectBetriebsmittelperson_id=val.dbdml_data; - loadBetriebsmittel(Betriebsmittel_Person_id); + loadBetriebsmittel(Betriebsmittel_Person_id, Betriebsmittel_Person_UID); } } diff --git a/content/zutrittskarte.php b/content/zutrittskarte.php index d7162467f..8c78fa82f 100755 --- a/content/zutrittskarte.php +++ b/content/zutrittskarte.php @@ -62,7 +62,8 @@ mkdir('Pictures'); // Vorlage der Zutrittskarte laden $vorlage = new vorlage(); -$vorlage->getAktuelleVorlage('0', 'Zutrittskarte'); +if(!$vorlage->getAktuelleVorlage('0', 'Zutrittskarte')) + die($vorlage->errormsg); $xsl_content = $vorlage->text; // Vorlage ODT in den Temp Ordner kopieren diff --git a/include/betriebsmittelperson.class.php b/include/betriebsmittelperson.class.php index 8f58c3c76..7b001ae26 100644 --- a/include/betriebsmittelperson.class.php +++ b/include/betriebsmittelperson.class.php @@ -562,5 +562,64 @@ class betriebsmittelperson extends basis_db return false; } } + + /** + * Sucht welche Person die uebergebene Kartennummer hat + * @param $person_id Person ID + * @param $nummer Kartennummer + * @return true wenn ok, false im Fehlerfall + */ + public function getKartenzuordnungPerson($person_id, $nummer) + { + $qry=' + SELECT + * + FROM + wawi.tbl_betriebsmittel + JOIN wawi.tbl_betriebsmittelperson USING(betriebsmittel_id) + WHERE tbl_betriebsmittel.nummer='.$this->db_add_param($nummer).' + AND tbl_betriebsmittelperson.person_id='.$this->db_add_param($person_id); + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->betriebsmittelperson_id = $row->betriebsmittelperson_id; + $this->betriebsmittel_id = $row->betriebsmittel_id; + $this->beschreibung = $row->beschreibung; + $this->betriebsmitteltyp = $row->betriebsmitteltyp; + $this->nummer = $row->nummer; + $this->inventarnummer = $row->inventarnummer; + $this->reservieren = $this->db_parse_bool($row->reservieren); + $this->ort_kurzbz = $row->ort_kurzbz; + $this->person_id = $row->person_id; + $this->anmerkung = $row->anmerkung; + $this->kaution = $row->kaution; + $this->ausgegebenam = $row->ausgegebenam; + $this->retouram = $row->retouram; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + $this->ext_id = $row->ext_id; + $this->oe_kurzbz = $row->oe_kurzbz; + $this->nummer2 = $row->nummer2; + $this->uid = $row->uid; + + return true; + } + else + { + $this->errormsg = 'Karte ist derzeit nicht ausgegeben'; + return false; + } + + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } ?> \ No newline at end of file diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index 8670f39d4..5f4a501e8 100644 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -172,8 +172,10 @@ $menu=array ( 'name'=>'FH Ausweis','permissions'=>array('basis/fhausweis'), 'Profilfotocheck'=>array('name'=>'Profilfoto Check','link'=>'fhausweis/bildpruefung.php','target'=>'main'), - 'Kartentausch'=>array('name'=>'Kartentausch','link'=>'fhausweis/kartentausch.php','target'=>'main'), + 'Kartenverwaltung'=>array('name'=>'Kartenverwaltung','link'=>'fhausweis/kartenverwaltung.php','target'=>'main'), 'KarteZuweisen'=>array('name'=>'Karte zuweisen','link'=>'fhausweis/kartezuweisen.php','target'=>'main'), + 'Kartentausch'=>array('name'=>'Kartentausch','link'=>'fhausweis/kartentausch.php','target'=>'main'), + 'Suche'=>array('name'=>'Suche','link'=>'fhausweis/search.php','target'=>'main'), 'Syncronisation'=>array('name'=>'Syncronisation', 'link'=>'stammdaten/imexport/zutrittskarten/index.html', 'target'=>'main') ) ), diff --git a/system/fhausweisuidsync.php b/system/fhausweisuidsync.php new file mode 100755 index 000000000..6d014fe4d --- /dev/null +++ b/system/fhausweisuidsync.php @@ -0,0 +1,84 @@ + + */ +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/benutzerberechtigung.class.php'); +require_once('../include/person.class.php'); + +$uid = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); +if(!$rechte->isBerechtigt('admin')) + die('Sie haben keine Berechtigung für diese Seite'); + +//Alle Kartenuser holen +$qry = " +SELECT + nummer, betriebsmittelperson_id, person_id +FROM + wawi.tbl_betriebsmittelperson + JOIN wawi.tbl_betriebsmittel USING(betriebsmittel_id) +WHERE + tbl_betriebsmittelperson.uid is null + AND tbl_betriebsmittelperson.retouram is null + AND tbl_betriebsmittel.betriebsmitteltyp='Zutrittskarte' + AND EXISTS (SELECT * FROM public.tbl_benutzer WHERE person_id=tbl_betriebsmittelperson.person_id AND aktiv=true)"; + +$db = new basis_db(); + +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + if(!$user = getUidFromCardNumber($row->nummer)) + { + $qry = "SELECT uid FROM public.tbl_benutzer WHERE aktiv AND person_id=".$db->db_add_param($row->person_id); + if($result_user = $db->db_query($qry)) + { + //Wenn nur 1 aktiver User vorhanden ist, wird dieser genommen + if($db->db_num_rows($result_user)==1) + { + if($row_user = $db->db_fetch_object($result_user)) + { + $user = $row_user->uid; + } + } + else + { + $pers = new person(); + $pers->load($row->person_id); + echo "
Fot Found: $row->nummer PersonID: $row->person_id BetriebsmittelpersonID: $row->betriebsmittelperson_id $pers->vorname $pers->nachname
"; + } + } + } + if($user!='') + { + $qry = "UPDATE wawi.tbl_betriebsmittelperson + SET uid=".$db->db_add_param($user)." + WHERE betriebsmittelperson_id=".$db->db_add_param($row->betriebsmittelperson_id); + if($db->db_query($qry)) + echo '+'; + else + echo '|'; + } + } +} + +?> \ No newline at end of file diff --git a/vilesci/fhausweis/kartentausch.php b/vilesci/fhausweis/kartentausch.php index 6d27d9943..5e4c04c09 100755 --- a/vilesci/fhausweis/kartentausch.php +++ b/vilesci/fhausweis/kartentausch.php @@ -56,15 +56,13 @@ $db = new basis_db(); $kartennummer_alt = (isset($_POST['kartennummer_alt'])?$_POST['kartennummer_alt']:''); $karten_user = (isset($_POST['karten_user'])?$_POST['karten_user']:''); $kartennummer_hitag = (isset($_POST['kartennummer_hitag'])?$_POST['kartennummer_hitag']:''); -$kartennummer_myfare = (isset($_POST['kartennummer_myfare'])?$_POST['kartennummer_myfare']:''); $action=(isset($_POST['action'])?$_POST['action']:''); if($action=='kartentausch') { echo '
Tausche Karte von User: '.$db->convert_html_chars($karten_user); - echo '
Alte Kartennummer:'.$db->convert_html_chars($kartennummer_alt); - echo '
Neue Kartennummer Hitag: '.$db->convert_html_chars($kartennummer_hitag); - echo '
Neue Kartennummer MyFARE: '.$db->convert_html_chars($kartennummer_myfare); + echo ' '.$db->convert_html_chars($kartennummer_alt); + echo ' -> '.$db->convert_html_chars($kartennummer_hitag); echo '
'; $benutzer = new benutzer(); @@ -75,72 +73,64 @@ if($action=='kartentausch') else { $error=false; - if($kartennummer_alt!='') + //Neue Karte aktivieren + $bmp = new betriebsmittelperson(); + if($bmp->getKartenzuordnungPerson($benutzer->person_id, $kartennummer_hitag)) { - //Alte Karte deaktivieren wenn vorhanden - $bmp = new betriebsmittelperson(); - if($bmp->getKartenzuordnung($kartennummer_alt)) + $bmp->ausgegebenam=date('Y-m-d'); + $bmp->updateamum = date('Y-m-d H:i:s'); + $bmp->updatevon = $uid; + + if(!$bmp->save(false)) { - if($bmp->person_id==$benutzer->person_id) + echo 'Fehler beim Tauschen: '.$bmp->errormsg.''; + $error=true; + } + } + else + { + echo 'Fehler beim Tauschen: Die neue Karte wurde dieser Person noch nicht zugeordnet'; + $error = true; + } + if(!$error) + { + if($kartennummer_alt!='') + { + //Alte Karte deaktivieren wenn vorhanden + $bmp = new betriebsmittelperson(); + if($bmp->getKartenzuordnung($kartennummer_alt)) { - $bmp->retouram = date('Y-m-d'); - if(!$bmp->save(false)) + if($bmp->person_id==$benutzer->person_id) { - echo 'Fehler beim Eintragen des Retourdatums'; + $bmp->retouram = date('Y-m-d'); + if(!$bmp->save(false)) + { + echo 'Fehler beim Eintragen des Retourdatums'; + $error=true; + } + } + else + { + echo 'Karte passt nicht zur Person'; $error=true; } } else { - echo 'Karte passt nicht zur Person'; + echo 'Kartenzuordnung der alten Karte nicht gefunden'; $error=true; } } - else - { - echo 'Kartenzuordnung nicht gefudnen'; - $error=true; - } } - if(!$error) { - //Neue Karte anlegen - $bm = new betriebsmittel(); - $bm->betriebsmitteltyp='Zutrittskarte'; - $bm->reservieren=false; - $bm->insertamum=date('Y-m-d H:i:s'); - $bm->insertvon = $uid; - $bm->nummer=$kartennummer_hitag; - $bm->nummer_myfare=$kartennummer_myfare; - if($bm->save(true)) - { - //Neue Karte der Person zuordnen - $bmp = new betriebsmittelperson(); - $bmp->betriebsmittel_id=$bm->betriebsmittel_id; - $bmp->ausgegebenam=date('Y-m-d'); - $bmp->insertamum = date('Y-m-d H:i:s'); - $bmp->insertvon = $uid; - $bmp->person_id = $benutzer->person_id; - if($bmp->save(true)) - { - echo 'Karte erfolgreich getauscht'; - } - else - { - echo 'Fehler beim Tauschen: '.$bmp->errormsg.''; - } - } - else - { - echo 'Fehler beim Tauschen: '.$bm->errormsg.''; - } - } + echo 'Karte erfolgreich getauscht'; + } } $kartennummer_alt=''; $karten_user=''; $kartennummer_hitag=''; - $kartennummer_myfare=''; + echo '


'; } @@ -178,24 +168,14 @@ if($action=='sucheKarte') echo 'Suche User mit der Kartennummer '.$db->convert_html_chars($kartennummer_alt).'
'; if(!$karten_user = getUidFromCardNumber($kartennummer_alt)) { - //Wenn die Karte nicht im LDAP eingetragen ist, - //dann schauen ob die Karte laut DB ausgegeben ist - if($bmp->getKartenzuordnung($kartennummer_alt)) - { - $bn = new benutzer(); - if($bn->getBenutzerFromPerson($bm->person_id)) - { - if(isset($bn->result[0])) - { - $karten_user = $bn->result[0]->uid; - } - } - } - if($karten_user=='') echo 'Diese Karte ist derzeit nicht ausgegeben'; } } +if($action=='sucheUser') +{ + echo 'Bei direkten Zugriff auf die Person muss die alte Karte manuell entfernt werden!'; +} if($karten_user!='') { echo '

'; @@ -242,7 +222,7 @@ if($karten_user!='') - +
Kartennummer Hitag:Kartennummer Neu + + + FH-Complete + + +

FH Ausweis

+'; + + +$uid = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); +if(!$rechte->isBerechtigt('basis/fhausweis')) + die('Sie haben keine Berechtigung für diese Seite'); + +$db = new basis_db(); +$filter = (isset($_POST['filter'])?$_POST['filter']:''); +$person_id = (isset($_GET['person_id'])?$_GET['person_id']:''); +$datum_obj = new datum(); + +echo '
+Suche: + +
'; + +if(isset($_POST['search'])) +{ + $person = new person(); + $person->getTab($filter); + + if(count($person->personen)==1) + { + //wenn nur ein Ergebnis zurueck kommt - gleich anzeigen + $person_id=$person->personen[0]->person_id; + } + else + { + echo ' + + + + + + + '; + foreach($person->personen as $row) + { + $benutzer = new benutzer(); + if(!$benutzer->getBenutzerFromPerson($row->person_id)) + echo $benutzer->errormsg; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } + echo '
PersonIDVornameNachnameAktive Accounts
Details'.$row->person_id.''.$row->vorname.''.$row->nachname.''; + foreach($benutzer->result as $row_account) + { + echo $row_account->uid.' '; + } + echo '
'; + } +} +if($person_id!='') +{ + echo '

'; + $person = new person(); + $person->load($person_id); + $fs = new fotostatus(); + $fs->getLastFotoStatus($person_id); + + echo ' + + + + +
+ + + Vorname: '.$person->vorname.' +
Nachname: '.$person->nachname.' +
Geburtsdatum: '.$datum_obj->formatDatum($person->gebdatum,'d.m.Y').' +
'; + + echo '
Aktueller Fotostatus: '.$fs->fotostatus_kurzbz .' ( '.$datum_obj->formatDatum($fs->datum,'d.m.Y').' )'; + + $benutzer = new benutzer(); + if(!$benutzer->getBenutzerFromPerson($person->person_id)) + echo $benutzer->errormsg; + echo '

Accounts:
'; + foreach($benutzer->result as $row_account) + { + echo '

'.$row_account->uid.''; + echo '
Neue Karte bereits gedruckt:'; + $qry = " + SELECT + tbl_betriebsmittelperson.ausgegebenam + FROM + wawi.tbl_betriebsmittel + JOIN wawi.tbl_betriebsmittelperson USING(betriebsmittel_id) + WHERE + tbl_betriebsmittel.betriebsmitteltyp='Zutrittskarte' + AND tbl_betriebsmittelperson.uid=".$db->db_add_param($row_account->uid)." + AND nummer2 is not null"; + $ausgegeben=''; + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + $ausgegeben = $row->ausgegebenam; + } + } + if($db->db_num_rows($result)>0) + echo 'Ja'; + else + echo 'Nein'; + + echo '
Neue Karte bereits ausgegeben: '; + if($ausgegeben=='') + echo 'Nein'; + else + echo 'Ja ( '.$datum_obj->formatDatum($ausgegeben,'d.m.Y').' )'; + } + +} +echo ' +'; +?> \ No newline at end of file