diff --git a/content/betriebsmitteloverlay.js.php b/content/betriebsmitteloverlay.js.php
index 7039e4769..3d4128338 100644
--- a/content/betriebsmitteloverlay.js.php
+++ b/content/betriebsmitteloverlay.js.php
@@ -190,6 +190,7 @@ function BetriebsmittelAuswahl()
ausgegebenam = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ausgegebenam" ));
retouram = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#retouram" ));
betriebsmitteltyp = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#betriebsmitteltyp" ));
+ inventarnummer = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#inventarnummer" ));
nummer = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nummer" ));
beschreibung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#beschreibung" ));
@@ -200,10 +201,21 @@ function BetriebsmittelAuswahl()
document.getElementById('betriebsmittel-textbox-kaution').value=kaution;
document.getElementById('betriebsmittel-textbox-ausgegebenam').value=ausgegebenam;
document.getElementById('betriebsmittel-textbox-retouram').value=retouram;
- document.getElementById('betriebsmittel-menulist-betriebsmitteltyp').value=betriebsmitteltyp;
+ if(inventarnummer=='')
+ document.getElementById('betriebsmittel-menulist-betriebsmitteltyp').value=betriebsmitteltyp;
+ else
+ document.getElementById('betriebsmittel-menulist-betriebsmitteltyp').value='Inventar';
document.getElementById('betriebsmittel-textbox-nummer').value=nummer;
document.getElementById('betriebsmittel-textbox-nummerold').value=nummer;
document.getElementById('betriebsmittel-textbox-beschreibung').value=beschreibung;
+ BetriebsmittelTypChange();
+ menulist = document.getElementById('betriebsmittel-menulist-inventarnummer');
+ BetriebsmittelMenulistInventarLoad(menulist, inventarnummer);
+ MenulistSelectItemOnValue('betriebsmittel-menulist-inventarnummer',betriebsmittel_id);
+
+ //Typ darf nach nach Anlegen nicht mehr geändert werden, da sonst normales Inventar
+ //angelegt werden koennte, das soll aber nur der Zentraleinkauf machen
+ document.getElementById('betriebsmittel-menulist-betriebsmitteltyp').disabled=true;
}
// ****
@@ -229,6 +241,7 @@ function BetriebsmittelDetailDisableFields(val)
document.getElementById('betriebsmittel-textbox-ausgegebenam').disabled=val;
document.getElementById('betriebsmittel-textbox-retouram').disabled=val;
document.getElementById('betriebsmittel-button-speichern').disabled=val;
+ document.getElementById('betriebsmittel-menulist-inventarnummer').disabled=val;
if(val)
BetriebsmittelDetailResetFields();
@@ -247,6 +260,7 @@ function BetriebsmittelDetailResetFields()
document.getElementById('betriebsmittel-textbox-ausgegebenam').value='';
document.getElementById('betriebsmittel-textbox-retouram').value='';
document.getElementById('betriebsmittel-textbox-nummerold').value='';
+ document.getElementById('betriebsmittel-menulist-inventarnummer').value='';
}
// ****
@@ -317,6 +331,9 @@ function BetriebsmittelDetailSpeichern()
nummerold = document.getElementById('betriebsmittel-textbox-nummerold').value;
beschreibung = document.getElementById('betriebsmittel-textbox-beschreibung').value;
neu = document.getElementById('betriebsmittel-checkbox-neu').checked;
+ inventarnummer = MenulistGetSelectedValue('betriebsmittel-menulist-inventarnummer');
+ if(inventarnummer!='')
+ betriebsmittel_id=inventarnummer;
if(ausgegebenam!='' && !CheckDatum(ausgegebenam))
{
@@ -402,4 +419,70 @@ function BetriebsmittelNeu()
document.getElementById('betriebsmittel-textbox-ausgegebenam').value=tag+'.'+monat+'.'+jahr;
document.getElementById('betriebsmittel-textbox-kaution').value = '0.0';
document.getElementById('betriebsmittel-textbox-nummerold').value='';
-}
\ No newline at end of file
+ document.getElementById('betriebsmittel-menulist-inventarnummer').value='';
+ BetriebsmittelTypChange();
+}
+
+// ****
+// * Wird aufgerufen, wenn der Betriebsmitteltyp geändert wird
+// * Wenn als Betriebsmitteltyp Inventar ausgewaehlt wird, dann wird ein DropDown fuer die
+// * Inventarnummer angezeigt, sonst ein Feld fuer die Nummer und Beschreibung
+// ****
+function BetriebsmittelTypChange()
+{
+ betriebsmitteltyp = document.getElementById('betriebsmittel-menulist-betriebsmitteltyp').value;
+ if(betriebsmitteltyp=='Inventar')
+ {
+ document.getElementById('betriebsmittel-row-nummer').hidden=true;
+ document.getElementById('betriebsmittel-row-beschreibung').hidden=true;
+ document.getElementById('betriebsmittel-row-inventarnummer').hidden=false;
+ }
+ else
+ {
+ document.getElementById('betriebsmittel-row-nummer').hidden=false;
+ document.getElementById('betriebsmittel-row-beschreibung').hidden=false;
+ document.getElementById('betriebsmittel-row-inventarnummer').hidden=true;
+ }
+}
+
+// ****
+// * Laedt dynamisch das Inventarnummern DropDown
+// * Es muessen mindestens 3 Zeichen in das DropDown Menue eingegeben werden
+// ****
+function BetriebsmittelMenulistInventarLoad(menulist, filter)
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+
+ if(typeof(filter)=='undefined')
+ v = menulist.value;
+ else
+ v = filter;
+
+ if(v.length>2)
+ {
+ var url = 'rdf/betriebsmittel.rdf.php?filter='+encodeURIComponent(v)+'&'+gettimestamp();
+
+ var oldDatasources = menulist.database.GetDataSources();
+ while(oldDatasources.hasMoreElements())
+ {
+ menulist.database.RemoveDataSource(oldDatasources.getNext());
+ }
+ //Refresh damit die entfernten DS auch wirklich entfernt werden
+ menulist.builder.rebuild();
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ if(typeof(filter)=='undefined')
+ var datasource = rdfService.GetDataSource(url);
+ else
+ var datasource = rdfService.GetDataSourceBlocking(url);
+ datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+ datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
+ menulist.database.AddDataSource(datasource);
+ if(typeof(filter)!='undefined')
+ menulist.builder.rebuild();
+ }
+}
+
+
+
+
diff --git a/content/betriebsmitteloverlay.xul.php b/content/betriebsmitteloverlay.xul.php
index bcbb98325..ffad8db5c 100644
--- a/content/betriebsmitteloverlay.xul.php
+++ b/content/betriebsmitteloverlay.xul.php
@@ -113,6 +113,10 @@ else
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/betriebsmittel/rdf#betriebsmittelperson_id" />
+
+
@@ -128,6 +132,7 @@ else
+
@@ -158,19 +163,17 @@ else
-
-
+
@@ -178,10 +181,27 @@ else
-
+
+
+
+
+
diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php
index 8285b5596..22ceba7f6 100644
--- a/content/student/studentDBDML.php
+++ b/content/student/studentDBDML.php
@@ -1772,8 +1772,12 @@ if(!$error)
}
else
{
+ $betriebsmittel_id = $_POST['betriebsmittel_id'];
$bm = new betriebsmittel();
+ //Nur Zutrittskarten und Schluessel koennen neu angelegt werden
+ //Das andere Inventar wird vom Zentraleinkauf inventarisiert
+ //Es kann nur ausgewaehlt, aber nicht neu angelegt werden
if($_POST['betriebsmitteltyp']=='Zutrittskarte' || $_POST['betriebsmitteltyp']=='Schluessel')
{
if($_POST['betriebsmitteltyp']=='Zutrittskarte')
@@ -1869,74 +1873,58 @@ if(!$error)
$errormsg = 'Fehler beim Laden der Zutrittskarte';
}
}
-
- if(!$error)
- {
- //Zuordnung Betriebsmittel-Person anlegen
- $bmp = new betriebsmittelperson();
- if($_POST['neu']!='true')
- {
- if($bmp->load($_POST['betriebsmittelperson_id']))
- {
- $bmp->updateamum = date('Y-m-d H:i:s');
- $bmp->updatevon = $user;
- $bmp->betriebsmittelperson_id = $_POST['betriebsmittelperson_id'];
- $bmp->new = false;
- }
- else
- {
- /*
- $bmp->insertamum = date('Y-m-d H:i:s');
- $bmp->insertvon = $user;
- $bmp->new = true;
- */
- $error = true;
- $errormsg = "Zuordnung unbekannt:".$_POST['betriebsmittelperson_id'];
- $return = false;
- }
- }
- else
- {
- $bmp->insertamum = date('Y-m-d H:i:s');
- $bmp->insertvon = $user;
- $bmp->new = true;
- }
-
- if(!$error)
- {
- $bmp->person_id = $_POST['person_id'];
- $bmp->betriebsmittel_id=$betriebsmittel_id;
- $bmp->anmerkung = $_POST['anmerkung'];
- $bmp->kaution = trim(str_replace(',','.',$_POST['kaution']));
- $bmp->ausgegebenam = $_POST['ausgegebenam'];
- $bmp->retouram = $_POST['retouram'];
-
- if($bmp->save())
- {
- $return = true;
- $data = $bmp->betriebsmittelperson_id;
- }
- else
- {
- $return = false;
- $errormsg = $bmp->errormsg;
- }
- }
- }
- }
- else
- {
- $errormsg = 'Fehler:'.$bm->errormsg;
- $return = false;
}
}
}
- else
+
+ if(!$error)
{
- $error = true;
- $return = false;
- $errormsg = 'Derzeit koennen nur Zutrittskarten und Schluessel geaendert werden!';
- }
+ //Zuordnung Betriebsmittel-Person anlegen
+ $bmp = new betriebsmittelperson();
+ if($_POST['neu']!='true')
+ {
+ if($bmp->load($_POST['betriebsmittelperson_id']))
+ {
+ $bmp->updateamum = date('Y-m-d H:i:s');
+ $bmp->updatevon = $user;
+ $bmp->betriebsmittelperson_id = $_POST['betriebsmittelperson_id'];
+ $bmp->new = false;
+ }
+ else
+ {
+ $error = true;
+ $errormsg = "Zuordnung unbekannt:".$_POST['betriebsmittelperson_id'];
+ $return = false;
+ }
+ }
+ else
+ {
+ $bmp->insertamum = date('Y-m-d H:i:s');
+ $bmp->insertvon = $user;
+ $bmp->new = true;
+ }
+
+ if(!$error)
+ {
+ $bmp->person_id = $_POST['person_id'];
+ $bmp->betriebsmittel_id=$betriebsmittel_id;
+ $bmp->anmerkung = $_POST['anmerkung'];
+ $bmp->kaution = trim(str_replace(',','.',$_POST['kaution']));
+ $bmp->ausgegebenam = $_POST['ausgegebenam'];
+ $bmp->retouram = $_POST['retouram'];
+
+ if($bmp->save())
+ {
+ $return = true;
+ $data = $bmp->betriebsmittelperson_id;
+ }
+ else
+ {
+ $return = false;
+ $errormsg = $bmp->errormsg;
+ }
+ }
+ }
}
}
elseif(isset($_POST['type']) && $_POST['type']=='deletebisio')
diff --git a/include/betriebsmittel.class.php b/include/betriebsmittel.class.php
index ecb904bf0..10e3a42cd 100644
--- a/include/betriebsmittel.class.php
+++ b/include/betriebsmittel.class.php
@@ -164,6 +164,7 @@ class betriebsmittel extends basis_db
public function searchBetriebsmittel($filter)
{
$qry = "SELECT * FROM wawi.tbl_betriebsmittel where inventarnummer LIKE '%".addslashes($filter)."%'";
+
$this->result = array();
if($this->db_query($qry))
{