From 5f4d71681b1bd19b8b174440eff665058305e8b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 1 Jul 2010 06:41:36 +0000 Subject: [PATCH] =?UTF-8?q?Tempus=20-=20Verschieben=20von=20mehreren=20Stu?= =?UTF-8?q?nden=20in=20ein=20anderes=20Fenster=20Unterst=C3=BCtzung=20f?= =?UTF-8?q?=C3=BCr=20Zutrittskartenleser=20welche=20die=20Nummer=20im=20HE?= =?UTF-8?q?X-Format=20auslesen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/betriebsmitteloverlay.js.php | 4 ++- content/dragboard.js.php | 27 +++++++++++++++-- content/student/studentDBDML.php | 3 ++ include/betriebsmittel.class.php | 29 +++++++++++++++++++ .../stammdaten/betriebsmittel_uebersicht.php | 15 ++++++---- 5 files changed, 68 insertions(+), 10 deletions(-) diff --git a/content/betriebsmitteloverlay.js.php b/content/betriebsmitteloverlay.js.php index d58514f80..7039e4769 100644 --- a/content/betriebsmitteloverlay.js.php +++ b/content/betriebsmitteloverlay.js.php @@ -328,11 +328,13 @@ function BetriebsmittelDetailSpeichern() alert('RetourAm Datum ist ungueltig'); return false; } + /* + Hex-Nummern sind nun auch erlaubt if(betriebsmitteltyp=='Zutrittskarte' && isNaN(nummer)) { alert('Bei Zutrittskarten muss die Nummer eine gueltige Zahl sein'); return false; - } + }*/ if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-studenten')) studiengang_kz=window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value; else diff --git a/content/dragboard.js.php b/content/dragboard.js.php index b376f3f05..1e83adff1 100644 --- a/content/dragboard.js.php +++ b/content/dragboard.js.php @@ -416,7 +416,28 @@ var listObserver= var aktion=evt.target.getAttribute("aktion"); aktion+="_set"; var paramList="?dragtype="+type+"&dragdatum="+dragdatum+"&pers_uid="+pers_uid+"&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit+"&old_ort="+old_ort+idList+"&aktion="+aktion; - + idList = TimeTableWeekGetMarkedIdList(); + paramList = paramList+idList; + + //die Buttons die verschoben werden grau einfaerben + var styleNow=evt.target.getAttribute("style"); + evt.target.setAttribute("style",styleNow+"color:gray;"); + + var items = document.getElementsByTagName('button'); + for each(var button in items) + { + if(button.id && button.id.startsWith('buttonSTPL')) + { + marked = button.getAttribute('marked'); + if(marked=='true') + { + var styleNow=button.getAttribute("style"); + button.setAttribute("style",styleNow+"color:gray;"); + } + } + } + + transferData.data=new TransferData(); transferData.data.addDataForFlavour("application/tempus-lehrstunde",paramList); } @@ -496,8 +517,8 @@ var boardObserver= url+="&mime="+dropdata.flavour.contentType; //IDs der Stunden die verschoben werden dazuhaengen - idList = TimeTableWeekGetMarkedIdList(); - url+=idList; + //idList = TimeTableWeekGetMarkedIdList(); + //url+=idList; if(new_ort=='' && ort=='') { alert('Es muss ein Ort gewaehlt werden'); diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index dae132057..96b6694a0 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -1775,6 +1775,9 @@ if(!$error) if($_POST['betriebsmitteltyp']=='Zutrittskarte' || $_POST['betriebsmitteltyp']=='Schluessel') { + if($_POST['betriebsmitteltyp']=='Zutrittskarte') + $_POST['nummer']=$bm->transform_kartennummer($_POST['nummer']); + //Das speichern von Zutrittskarten ohne Nummern verhindern if($_POST['betriebsmitteltyp']=='Zutrittskarte' && $_POST['nummer']=='') { diff --git a/include/betriebsmittel.class.php b/include/betriebsmittel.class.php index 9b947d360..68e226766 100644 --- a/include/betriebsmittel.class.php +++ b/include/betriebsmittel.class.php @@ -195,6 +195,11 @@ class betriebsmittel extends basis_db return false; } + //bei Zutrittskarten sicherstellen, dass die Nummer richtig kodiert ist + if($this->betriebsmitteltyp=='Zutrittskarte') + { + $this->nummer = $this->transform_kartennummer($this->nummer); + } $this->afa=(!isset($this->afa) || empty($this->afa)?$this->default_afa_jahre:$this->afa); if($new) { @@ -1071,5 +1076,29 @@ class betriebsmittel extends basis_db return $where; } + + /** + * Es sind mehrere Kartenlesegeraete im Umlauf + * Manche Geraete liefern die Kartennummer hexcodiert zurueck. + * Diese muessen erst in das richtige Format transformiert werden + * zusaetzlich werden die fuehrenden nullen entfernt + * + * @param $kartennummer + * @return $kartennummer + */ + function transform_kartennummer($kartennummer) + { + $kartennummer = trim($kartennummer); + //Kartennummern die im Hex-Format sind werden umgewandelt + if (!is_numeric($kartennummer)) + { + $kartennummer=substr($kartennummer,strlen($kartennummer)-2,2).substr($kartennummer,strlen($kartennummer)-4,2). substr($kartennummer,strlen($kartennummer)-6,2).substr($kartennummer,0,2); + $kartennummer=hexdec( $kartennummer); + } + + //Fuehrende nullen entfernen + $kartennummer = preg_replace("/^0*/", "", $kartennummer); + return $kartennummer; + } } ?> diff --git a/vilesci/stammdaten/betriebsmittel_uebersicht.php b/vilesci/stammdaten/betriebsmittel_uebersicht.php index bec83a296..73cec2cc1 100644 --- a/vilesci/stammdaten/betriebsmittel_uebersicht.php +++ b/vilesci/stammdaten/betriebsmittel_uebersicht.php @@ -25,6 +25,7 @@ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/betriebsmittel.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -64,22 +65,24 @@ $htmlstr.=' if(isset($_GET['searchstr']) || isset($_POST['bmsuche'])) { + $bm_obj = new betriebsmittel(); if (isset($_POST['bmsuche'])) { $bmsuche=strtoupper($_POST['bmsuche']); - $bmsuche = ereg_replace("^0*", "", $bmsuche); - + $kartennummer = $bm_obj->transform_kartennummer($bmsuche); + $sql_query="SELECT * FROM public.vw_betriebsmittelperson - WHERE upper(uid) LIKE '%".addslashes($bmsuche)."%' OR upper(nachname) LIKE '%".addslashes($bmsuche)."%' OR upper(vorname) LIKE '%".addslashes($bmsuche)."%' - OR upper(nummer) LIKE '%".addslashes($bmsuche)."%' OR upper(nummerintern) LIKE '%".addslashes($bmsuche)."%' - LIMIT 30"; + WHERE upper(nummer) LIKE '%".addslashes($kartennummer)."%' LIMIT 30"; //echo $sql_query; } else { $sql_query = 'SELECT * FROM public.vw_betriebsmittelperson '; if(!empty($searchstr)) - $sql_query.=" where uid ~* '".addslashes($searchstr)."' OR nummer ~* '".addslashes($searchstr)."' OR nummerintern ~* '".addslashes($searchstr)."' OR nachname ~* '".addslashes($searchstr)."' OR vorname ~* '".addslashes($searchstr)."' "; + { + $kartennummer = $bm_obj->transform_kartennummer($searchstr); + $sql_query.=" where uid ~* '".addslashes($searchstr)."' OR nummer ~* '".addslashes($searchstr)."' OR nummer ~* '".addslashes($kartennummer)."' OR nachname ~* '".addslashes($searchstr)."' OR vorname ~* '".addslashes($searchstr)."' "; + } $sql_query.=" ORDER BY nummer "; if(empty($searchstr)) $sql_query.=" LIMIT 100 ";