diff --git a/content/mitarbeiter/mitarbeiterDBDML.php b/content/mitarbeiter/mitarbeiterDBDML.php
index 180b2598b..5515710e6 100644
--- a/content/mitarbeiter/mitarbeiterDBDML.php
+++ b/content/mitarbeiter/mitarbeiterDBDML.php
@@ -40,6 +40,8 @@ require_once('../../include/vertrag.class.php');
require_once('../../include/lehreinheitmitarbeiter.class.php');
require_once('../../include/wawi_konto.class.php');
require_once('../../include/addon.class.php');
+require_once('../../include/stundensatz.class.php');
+
$user = get_uid();
@@ -93,7 +95,6 @@ if(!$error)
$mitarbeiter->geburtsnation = $_POST['geburtsnation'];
$mitarbeiter->sprache = $_POST['sprache'];
$mitarbeiter->kurzbz = $_POST['kurzbezeichnung'];
- $mitarbeiter->stundensatz = $_POST['stundensatz'];
$mitarbeiter->telefonklappe = $_POST['telefonklappe'];
$mitarbeiter->lektor = ($_POST['lektor']=='true'?true:false);
$mitarbeiter->fixangestellt = ($_POST['fixangestellt']=='true'?true:false);
@@ -808,6 +809,61 @@ if(!$error)
$errormsg = "";
}
}
+ else if (isset($_POST['type']) && $_POST['type'] === 'updateStundensatz')
+ {
+ $mitarbeiter_uid = $_POST['mitarbeiter_uid'];
+ $stundenbetrag = $_POST['stundensatz'];
+ $datum_von = $_POST['datum_von'];
+ $datum_bis = $_POST['datum_bis'];
+ $unternehmen = $_POST['unternehmen'];
+ $stundensatztyp = $_POST['typ'];
+ if (isset($_POST['stundensatz_id']))
+ {
+ $stundensatz = new stundensatz();
+ $stundensatz->load($_POST['stundensatz_id']);
+ $stundensatz->new = false;
+ }
+ else
+ {
+ $stundensatz = new stundensatz();
+ $stundensatz->new = true;
+ }
+
+ $stundensatz->uid = $mitarbeiter_uid;
+ $stundensatz->stundensatztyp = $stundensatztyp;
+ $stundensatz->stundensatz = $stundenbetrag;
+ $stundensatz->oe_kurzbz = $unternehmen;
+ $stundensatz->gueltig_von = $datum_von;
+ $stundensatz->gueltig_bis = $datum_bis;
+ $stundensatz->insertvon = $user;
+ $stundensatz->updatevon = $user;
+ $stundensatz->insertamum = date('Y-m-d H:i:s');
+ $stundensatz->updateamum = date('Y-m-d H:i:s');
+
+ if ($stundensatz->save())
+ {
+ $data = $stundensatz->stundensatz_id;
+ $return = true;
+ }
+ else
+ {
+ $errormsg = $stundensatz->errormsg;
+ $return = false;
+ }
+ }
+ else if (isset($_POST['type']) && $_POST['type'] === 'deleteStundensatz')
+ {
+ $stundensatz = new stundensatz();
+ if ($stundensatz->delete($_POST['stundensatz_id']))
+ {
+ $return = true;
+ }
+ else
+ {
+ $return = false;
+ $errormsg = $stundensatz->errormsg;
+ }
+ }
else
{
$return = false;
diff --git a/content/mitarbeiter/mitarbeiterdetailoverlay.xul.php b/content/mitarbeiter/mitarbeiterdetailoverlay.xul.php
index 7f2963013..219f6fc4d 100644
--- a/content/mitarbeiter/mitarbeiterdetailoverlay.xul.php
+++ b/content/mitarbeiter/mitarbeiterdetailoverlay.xul.php
@@ -227,8 +227,6 @@ echo '';
-
-
diff --git a/content/mitarbeiter/mitarbeiteroverlay.js.php b/content/mitarbeiter/mitarbeiteroverlay.js.php
index 2968c4030..abac20467 100644
--- a/content/mitarbeiter/mitarbeiteroverlay.js.php
+++ b/content/mitarbeiter/mitarbeiteroverlay.js.php
@@ -436,7 +436,6 @@ function MitarbeiterDetailDisableFields(val)
//document.getElementById('mitarbeiter-detail-textbox-personalnummer').disabled=val;
document.getElementById('mitarbeiter-detail-textbox-kurzbezeichnung').disabled=val;
document.getElementById('mitarbeiter-detail-checkbox-lektor').disabled=val;
- document.getElementById('mitarbeiter-detail-textbox-stundensatz').disabled=val;
document.getElementById('mitarbeiter-detail-textbox-telefonklappe').disabled=val;
document.getElementById('mitarbeiter-detail-checkbox-fixangestellt').disabled=val;
document.getElementById('mitarbeiter-detail-checkbox-bismelden').disabled=val;
@@ -557,7 +556,6 @@ function MitarbeiterAuswahl()
personalnummer=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#personalnummer" ));
kurzbezeichnung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#kurzbz" ));
- stundensatz=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#stundensatz" ));
telefonklappe=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#telefonklappe" ));
lektor=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lektor" ));
fixangestellt=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#fixangestellt" ));
@@ -605,7 +603,6 @@ function MitarbeiterAuswahl()
//Mitarbeiterdaten
document.getElementById('mitarbeiter-detail-textbox-personalnummer').value=personalnummer;
document.getElementById('mitarbeiter-detail-textbox-kurzbezeichnung').value=kurzbezeichnung;
- document.getElementById('mitarbeiter-detail-textbox-stundensatz').value=stundensatz;
document.getElementById('mitarbeiter-detail-textbox-telefonklappe').value=telefonklappe;
if(lektor=='Ja')
document.getElementById('mitarbeiter-detail-checkbox-lektor').checked=true;
@@ -652,6 +649,8 @@ function MitarbeiterAuswahl()
document.getElementById('mitarbeiter-udf').setAttribute('src', 'udf.xul.php?person_id='+person_id);
}
+ document.getElementById('mitarbeiter-stundensatz').setAttribute('src','mitarbeiter/stundensatzoverlay.xul.php?mitarbeiter_uid='+uid);
+
// **** VERWENDUNG ****
verwendungtree = document.getElementById('mitarbeiter-tree-verwendung');
url='rdf/bisverwendung.rdf.php?uid='+uid+"&"+gettimestamp();
@@ -843,7 +842,6 @@ function MitarbeiterSave()
//Mitarbeiterdaten
personalnummer = document.getElementById('mitarbeiter-detail-textbox-personalnummer').value;
kurzbezeichnung = document.getElementById('mitarbeiter-detail-textbox-kurzbezeichnung').value;
- stundensatz = document.getElementById('mitarbeiter-detail-textbox-stundensatz').value;
telefonklappe = document.getElementById('mitarbeiter-detail-textbox-telefonklappe').value;
lektor = document.getElementById('mitarbeiter-detail-checkbox-lektor').checked;
fixangestellt = document.getElementById('mitarbeiter-detail-checkbox-fixangestellt').checked;
@@ -895,7 +893,6 @@ function MitarbeiterSave()
req.add('geburtsnation', geburtsnation);
req.add('sprache', sprache);
req.add('kurzbezeichnung', kurzbezeichnung);
- req.add('stundensatz', stundensatz);
req.add('telefonklappe', telefonklappe);
req.add('lektor', lektor);
req.add('fixangestellt', fixangestellt);
diff --git a/content/mitarbeiter/mitarbeiteroverlay.xul.php b/content/mitarbeiter/mitarbeiteroverlay.xul.php
index 350a1d0cd..2c9dcb440 100644
--- a/content/mitarbeiter/mitarbeiteroverlay.xul.php
+++ b/content/mitarbeiter/mitarbeiteroverlay.xul.php
@@ -268,6 +268,7 @@ echo '
+
';
@@ -289,6 +290,7 @@ echo '
+
';
diff --git a/content/mitarbeiter/stundensatzoverlay.js.php b/content/mitarbeiter/stundensatzoverlay.js.php
new file mode 100644
index 000000000..da35ce114
--- /dev/null
+++ b/content/mitarbeiter/stundensatzoverlay.js.php
@@ -0,0 +1,310 @@
+
+
+var StundensaetzeTreeDatasource = ''; // Datasource des Stundensaetze Trees
+var StundensatzSelectID = null;
+var MitarbeiterUID = '';
+var StundensatzChanged = false;
+var DoubleRefresh = false
+
+var StundensaetzeSinkObserver =
+ {
+ onBeginLoad : function(pSink) {},
+ onInterrupt : function(pSink) {},
+ onResume : function(pSink) {},
+ onError : function(pSink, pStatus, pError) {},
+ onEndLoad : function(pSink)
+ {
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ document.getElementById('stundensaetze-tree').builder.rebuild();
+ }
+ };
+
+
+var StundensaetzeTreeListener =
+ {
+ willRebuild : function(builder) { },
+ didRebuild : function(builder)
+ {
+ if(DoubleRefresh === true)
+ {
+ window.setTimeout('StundensatzTreeDatasourceRefresh()',10);
+ DoubleRefresh = false;
+ }
+ else
+ {
+ //timeout nur bei Mozilla notwendig da sonst die rows
+ //noch keine values haben. Ab Seamonkey funktionierts auch
+ //ohne dem setTimeout
+ window.setTimeout(StundensaetzeTreeSelectID, 10);
+ }
+
+ }
+ };
+
+function StundensatzTreeDatasourceRefresh(StundensatzSelect)
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ StundensaetzeTreeDatasource.Refresh(false);
+}
+
+function StundensatzDisableFields(val)
+{
+
+ document.getElementById('mitarbeiter-stundensatz-button-neu').disabled = val;
+ document.getElementById('mitarbeiter-stundensatz-button-loeschen').disabled = val;
+}
+
+function StundensatzNeu()
+{
+ StundensatzDetailResetFields();
+ StundensatzDetailsDisableFields(false);
+ StundensatzChanged = false;
+}
+
+function StundensatzDetailsDisableFields(val)
+{
+ document.getElementById('mitarbeiter-stundensatz-textbox-stundensatz').disabled = val;
+ document.getElementById('mitarbeiter-stundensatz-textbox-unternehmen').disabled = val;
+ document.getElementById('mitarbeiter-stundensatz-textbox-typ').disabled = val;
+ document.getElementById('mitarbeiter-stundensatz-textbox-gueltig-von').disabled = val;
+ document.getElementById('mitarbeiter-stundensatz-textbox-gueltig-bis').disabled = val;
+ document.getElementById('mitarbeiter-stundensatz-button-speichern').disabled = val;
+}
+
+
+// ****
+// * Setzt Defaultwerte fuer die Felder
+// ****
+function StundensatzDetailResetFields()
+{
+ document.getElementById('mitarbeiter-stundensatz-textbox-stundensatz').value = '';
+ document.getElementById('mitarbeiter-stundensatz-textbox-gueltig-von').value = '';
+ document.getElementById('mitarbeiter-stundensatz-textbox-gueltig-bis').value = '';
+ document.getElementById('mitarbeiter-stundensatz-textbox-unternehmen').value = '';
+ document.getElementById('mitarbeiter-stundensatz-textbox-typ').value = '';
+
+ var Datum = new Date();
+ var Jahr = Datum.getFullYear();
+ var Tag = Datum.getDate();
+ var Monat = Datum.getMonth()+1;
+
+ document.getElementById('mitarbeiter-stundensatz-textbox-gueltig-von').value = Tag+'.'+Monat+'.'+Jahr;
+}
+
+// ****
+// * Laedt die Studensätze
+// ****
+function loadStundensaetze(mitarbeiter_uid)
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ MitarbeiterUID = mitarbeiter_uid;
+ var url = "rdf/stundensatz.rdf.php?mitarbeiter_uid="+mitarbeiter_uid+'&'+gettimestamp();
+ var tree = document.getElementById('stundensaetze-tree');
+
+ //Alte DS entfernen
+ var oldDatasources = tree.database.GetDataSources();
+ while(oldDatasources.hasMoreElements())
+ {
+ tree.database.RemoveDataSource(oldDatasources.getNext());
+ }
+ tree.builder.rebuild();
+
+ try
+ {
+ StundensaetzeTreeDatasource.removeXMLSinkObserver(StundensaetzeSinkObserver);
+ tree.builder.removeListener(StundensaetzeTreeListener);
+ }
+ catch(e)
+ {}
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ StundensaetzeTreeDatasource = rdfService.GetDataSource(url);
+
+ StundensaetzeTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+ StundensaetzeTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
+ tree.database.AddDataSource(StundensaetzeTreeDatasource);
+ StundensaetzeTreeDatasource.addXMLSinkObserver(StundensaetzeSinkObserver);
+ tree.builder.addListener(StundensaetzeTreeListener);
+
+ StundensatzDisableFields(false);
+}
+
+
+// ****
+// * Selectiert einen Stundensatz nachdem der Tree
+// * rebuildet wurde.
+// ****
+function StundensaetzeTreeSelectID()
+{
+ var tree = document.getElementById('stundensaetze-tree');
+ var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
+
+ //In der globalen Variable ist der zu selektierender Stundensatz gespeichert
+ if(StundensatzSelectID != null)
+ {
+ for(var i = 0; i < items; i++)
+ {
+ //ID der row holen
+ col = tree.columns ? tree.columns["stundensatz-treecol-stundensatz_id"] : "stundensatz-treecol-stundensatz_id";
+ id = tree.view.getCellText(i,col);
+
+ if(id === StundensatzSelectID)
+ {
+ //Zeile markieren
+ tree.view.selection.select(i);
+ //Sicherstellen, dass die Zeile im sichtbaren Bereich liegt
+ tree.treeBoxObject.ensureRowIsVisible(i);
+ return true;
+ }
+ }
+ StundensatzSelectID = null;
+ }
+}
+
+
+function StundensatzDetailSpeichern()
+{
+ var stundensatz = document.getElementById('mitarbeiter-stundensatz-textbox-stundensatz').value;
+ var datum_von = document.getElementById('mitarbeiter-stundensatz-textbox-gueltig-von').value;
+ var datum_bis = document.getElementById('mitarbeiter-stundensatz-textbox-gueltig-bis').value;
+ var unternehmen = document.getElementById('mitarbeiter-stundensatz-textbox-unternehmen').value;
+ var typ = document.getElementById('mitarbeiter-stundensatz-textbox-typ').value;
+
+ var url = 'content/mitarbeiter/mitarbeiterDBDML.php';
+ var req = new phpRequest(url,'','');
+
+ if (StundensatzChanged !== false)
+ req.add('stundensatz_id', StundensatzChanged);
+
+ req.add('type', 'updateStundensatz');
+ req.add('mitarbeiter_uid', MitarbeiterUID);
+ req.add('stundensatz', stundensatz);
+ req.add('datum_von', ConvertDateToISO(datum_von));
+ req.add('datum_bis', ConvertDateToISO(datum_bis));
+ req.add('unternehmen', unternehmen);
+ req.add('typ', typ);
+
+ var response = req.executePOST();
+
+ var val = new ParseReturnValue(response)
+
+ if (!val.dbdml_return)
+ {
+ if (val.dbdml_errormsg === '')
+ alert(response)
+ else
+ alert(val.dbdml_errormsg)
+ return false;
+ }
+ else
+ {
+ if(val.dbdml_errormsg !== '' && val.dbdml_errormsg !== 'unknown')
+ alert(val.dbdml_errormsg);
+
+ if(document.getElementById('stundensaetze-tree').view.rowCount === 0)
+ {
+ DoubleRefresh = true;
+ }
+ StundensatzSelectID = val.dbdml_data;
+
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ StundensaetzeTreeDatasource.Refresh(false);
+ StundensatzChanged = false;
+ StundensatzDetailResetFields();
+ StundensatzDetailsDisableFields(true);
+ return true;
+ }
+}
+
+function StundensatzBearbeiten()
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+
+ var tree = document.getElementById('stundensaetze-tree');
+
+ if (tree.currentIndex === -1)
+ return;
+
+ //Ausgewaehlten Stundensatz holen
+ var col = tree.columns ? tree.columns["stundensatz-treecol-stundensatz_id"] : "stundensatz-treecol-stundensatz_id";
+ var stundensatz_id = tree.view.getCellText(tree.currentIndex,col);
+
+ //Daten holen
+ var url = "rdf/stundensatz.rdf.php?stundensatz_id="+stundensatz_id+'&'+gettimestamp();
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+
+ var dsource = rdfService.GetDataSourceBlocking(url);
+
+ var subject = rdfService.GetResource("http://www.technikum-wien.at/stundensatz/"+stundensatz_id);
+
+ var predicateNS = "http://www.technikum-wien.at/stundensatz/rdf";
+
+ //Daten holen
+ var stundensatz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#stundensatz"));
+ var datum_von = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gueltig_von" ));
+ var datum_bis = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gueltig_bis" ));
+ var unternehmen = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#oe_kurzbz" ));
+ var typ = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#stundensatztyp" ));
+
+ StundensatzChanged = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#stundensatz_id" ));
+
+ document.getElementById('mitarbeiter-stundensatz-textbox-stundensatz').value = stundensatz;
+ document.getElementById('mitarbeiter-stundensatz-textbox-gueltig-von').value = datum_von;
+ document.getElementById('mitarbeiter-stundensatz-textbox-gueltig-bis').value = datum_bis;
+ document.getElementById('mitarbeiter-stundensatz-textbox-unternehmen').value = unternehmen;
+ document.getElementById('mitarbeiter-stundensatz-textbox-typ').value = typ;
+
+ StundensatzDetailsDisableFields(false);
+}
+
+function StundensatzDelete()
+{
+
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ var tree = document.getElementById('stundensaetze-tree');
+
+ if (tree.currentIndex === -1)
+ {
+ alert('Bitte zuerst einen Stundensatz auswaehlen');
+ return;
+ }
+
+ StundensatzDetailsDisableFields(false);
+
+ //Ausgewaehlten Stundensatz holen
+ var col = tree.columns ? tree.columns["stundensatz-treecol-stundensatz_id"] : "stundensatz-treecol-stundensatz_id";
+ var stundensatz_id = tree.view.getCellText(tree.currentIndex,col);
+
+ if (confirm('Diesen Stundensatz wirklich loeschen?'))
+ {
+ var url = 'content/mitarbeiter/mitarbeiterDBDML.php';
+ var req = new phpRequest(url,'','');
+
+ req.add('type', 'deleteStundensatz');
+ req.add('stundensatz_id', stundensatz_id);
+
+ var response = req.executePOST();
+
+ var val = new ParseReturnValue(response)
+
+ if (!val.dbdml_return)
+ {
+ if (val.dbdml_errormsg === '')
+ alert(response)
+ else
+ alert(val.dbdml_errormsg)
+ return false;
+ }
+ else
+ {
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ StundensaetzeTreeDatasource.Refresh(false);
+ StundensatzDetailResetFields();
+ StundensatzDetailsDisableFields(true);
+ return true;
+ }
+ }
+}
\ No newline at end of file
diff --git a/content/mitarbeiter/stundensatzoverlay.xul.php b/content/mitarbeiter/stundensatzoverlay.xul.php
new file mode 100644
index 000000000..7cbf107ab
--- /dev/null
+++ b/content/mitarbeiter/stundensatzoverlay.xul.php
@@ -0,0 +1,170 @@
+'."\n";
+
+echo '';
+echo '';
+echo '';
+
+if(isset($_GET['mitarbeiter_uid']))
+ $mitarbeiter_uid = $_GET['mitarbeiter_uid'];
+else
+ die('Parameter mitarbeiter_uid muss uebergeben werden');
+
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/include/organisationseinheit.class.php b/include/organisationseinheit.class.php
index 78b0e40c3..b0b53284f 100644
--- a/include/organisationseinheit.class.php
+++ b/include/organisationseinheit.class.php
@@ -977,6 +977,36 @@ class organisationseinheit extends basis_db
}
}
-
+ public function getRoots()
+ {
+ $qry = "SELECT *
+ FROM public.tbl_organisationseinheit
+ WHERE oe_parent_kurzbz IS NULL AND aktiv
+ ORDER BY organisationseinheittyp_kurzbz, bezeichnung";
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new organisationseinheit();
+
+ $obj->oe_kurzbz = $row->oe_kurzbz;
+ $obj->oe_parent_kurzbz = $row->oe_parent_kurzbz;
+ $obj->bezeichnung = $row->bezeichnung;
+ $obj->organisationseinheittyp_kurzbz = $row->organisationseinheittyp_kurzbz;
+ $obj->aktiv = $this->db_parse_bool($row->aktiv);
+ $obj->mailverteiler = $this->db_parse_bool($row->mailverteiler);
+ $obj->lehre = $this->db_parse_bool($row->lehre);
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Organisationseinheiten';
+ return false;
+ }
+ }
}
?>
diff --git a/include/stundensatz.class.php b/include/stundensatz.class.php
index 82368af7e..5893e67b8 100644
--- a/include/stundensatz.class.php
+++ b/include/stundensatz.class.php
@@ -19,9 +19,10 @@ class stundensatz extends basis_db
public $insertvon; // varchar(16)
public $updateamum; // timestamp
public $updatevon; // varchar(16)
-
-
+ public $oe_bezeichnung;
+ public $stundensatztyp_bezeichnung;
+
public function __construct($stundensatz_id = null)
{
parent::__construct();
@@ -78,5 +79,211 @@ class stundensatz extends basis_db
return false;
}
}
+
+ public function getAllStundensaetze($uid)
+ {
+ $qry = "SELECT
+ tbl_stundensatz.*,
+ tbl_organisationseinheit.bezeichnung AS oe_bezeichnung,
+ hr.tbl_stundensatztyp.bezeichnung AS stundensatztyp_bezeichnung,
+ tbl_organisationseinheit.oe_kurzbz
+ FROM
+ hr.tbl_stundensatz
+ LEFT JOIN
+ public.tbl_organisationseinheit ON tbl_stundensatz.oe_kurzbz = tbl_organisationseinheit.oe_kurzbz
+ JOIN hr.tbl_stundensatztyp USING(stundensatztyp)
+ WHERE
+ uid = ". $this->db_add_param($uid);
+
+ if ($result = $this->db_query($qry))
+ {
+ while ($row = $this->db_fetch_object($result))
+ {
+ $obj = new stundensatz();
+ $obj->stundensatz_id = $row->stundensatz_id;
+ $obj->uid = $row->uid;
+ $obj->stundensatztyp = $row->stundensatztyp;
+ $obj->stundensatz = $row->stundensatz;
+ $obj->oe_kurzbz = $row->oe_kurzbz;
+ $obj->gueltig_von = $row->gueltig_von;
+ $obj->gueltig_bis = $row->gueltig_bis;
+ $obj->insertamum = $row->insertamum;
+ $obj->insertvon = $row->insertvon;
+ $obj->updateamum = $row->updateamum;
+ $obj->updatevon = $row->updatevon;
+ $obj->oe_bezeichnung = $row->oe_bezeichnung;
+ $obj->stundensatztyp_bezeichnung = $row->stundensatztyp_bezeichnung;
+
+ $this->result[] = $obj;
+ }
+
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ public function load($stundensatz_id)
+ {
+ $qry = "SELECT
+ tbl_stundensatz.*,
+ tbl_organisationseinheit.bezeichnung AS oe_bezeichnung,
+ hr.tbl_stundensatztyp.bezeichnung AS stundensatztyp_bezeichnung,
+ tbl_organisationseinheit.oe_kurzbz
+ FROM
+ hr.tbl_stundensatz
+ LEFT JOIN public.tbl_organisationseinheit ON tbl_stundensatz.oe_kurzbz = tbl_organisationseinheit.oe_kurzbz
+ JOIN hr.tbl_stundensatztyp USING(stundensatztyp)
+ WHERE
+ stundensatz_id = ".$this->db_add_param($stundensatz_id).";";
+
+ if($this->db_query($qry))
+ {
+ if ($row = $this->db_fetch_object())
+ {
+ $this->stundensatz_id = $row->stundensatz_id;
+ $this->uid = $row->uid;
+ $this->stundensatztyp = $row->stundensatztyp;
+ $this->stundensatz = $row->stundensatz;
+ $this->oe_kurzbz = $row->oe_kurzbz;
+ $this->gueltig_von = $row->gueltig_von;
+ $this->gueltig_bis = $row->gueltig_bis;
+ $this->insertamum = $row->insertamum;
+ $this->insertvon = $row->insertvon;
+ $this->updateamum = $row->updateamum;
+ $this->updatevon = $row->updatevon;
+ $this->oe_bezeichnung = $row->oe_bezeichnung;
+ $this->stundensatztyp_bezeichnung = $row->stundensatztyp_bezeichnung;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden des Datensatzes';
+ return false;
+ }
+ }
+
+ public function save($new = null)
+ {
+ if (!$this->validate())
+ return false;
+
+ if(is_null($new))
+ $new = $this->new;
+
+ if ($new)
+ {
+
+ $qry = "BEGIN;INSERT INTO hr.tbl_stundensatz
+ (
+ uid,
+ stundensatz,
+ gueltig_von,
+ gueltig_bis,
+ oe_kurzbz,
+ stundensatztyp,
+ insertamum,
+ insertvon
+ )
+ VALUES
+ (" .
+ $this->db_add_param($this->uid) . "," .
+ $this->db_add_param($this->stundensatz, FHC_INTEGER) . "," .
+ $this->db_add_param($this->gueltig_von) . "," .
+ $this->db_add_param($this->gueltig_bis) . "," .
+ $this->db_add_param($this->oe_kurzbz) . "," .
+ $this->db_add_param($this->stundensatztyp) . "," .
+ $this->db_add_param($this->insertamum) . "," .
+ $this->db_add_param($this->insertvon) .
+ ");";
+ }
+ else
+ {
+ $qry = "UPDATE hr.tbl_stundensatz SET " .
+ "stundensatz = " . $this->db_add_param($this->stundensatz, FHC_INTEGER) .",".
+ "oe_kurzbz = " . $this->db_add_param($this->oe_kurzbz) .",".
+ "stundensatztyp = " . $this->db_add_param($this->stundensatztyp) .",".
+ "gueltig_von = " . $this->db_add_param($this->gueltig_von) .",".
+ "gueltig_bis = " . $this->db_add_param($this->gueltig_bis) .",".
+ "updatevon = " . $this->db_add_param($this->updatevon) .",".
+ "updateamum = " . $this->db_add_param($this->updateamum).
+ " WHERE stundensatz_id = " . $this->db_add_param($this->stundensatz_id, FHC_INTEGER).';';
+ }
+
+ if($this->db_query($qry))
+ {
+ if ($new)
+ {
+ $qry = "SELECT currval('hr.tbl_stundensatz_stundensatz_id_seq') as id;";
+ if ($this->db_query($qry))
+ {
+ if ($row = $this->db_fetch_object())
+ {
+ $this->stundensatz_id = $row->id;
+ $this->db_query('COMMIT');
+ return true;
+ } else
+ {
+ $this->db_query('ROLLBACK');
+ $this->errormsg = "Fehler beim Auslesen der Sequence";
+ return false;
+ }
+ } else
+ {
+ $this->db_query('ROLLBACK');
+ $this->errormsg = 'Fehler beim Auslesen der Sequence';
+ return false;
+ }
+ }
+ else
+ {
+ return true;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Zuteilen des Eintrages';
+ return false;
+ }
+ }
+
+ public function delete($stundensatz_id)
+ {
+ $qry = "DELETE FROM hr.tbl_stundensatz WHERE stundensatz_id = ".$this->db_add_param($stundensatz_id, FHC_INTEGER);
+
+ if($this->db_query($qry))
+ return true;
+ else
+ {
+ $this->errormsg = 'Fehler beim Löschen des Stundensatzes';
+ return false;
+ }
+ }
+
+ public function validate()
+ {
+ if (!is_numeric($this->stundensatz))
+ {
+ $this->errormsg = "Stundensatz ungueltig";
+ return false;
+ }
+
+ if (is_null($this->oe_kurzbz))
+ {
+ $this->errormsg = "Unternehmen ungueltig";
+ return false;
+ }
+
+ if ($this->insertamum === '')
+ {
+ $this->errormsg = "Datum ungueltig";
+ return false;
+ }
+ return true;
+ }
}
?>
diff --git a/include/stundensatztyp.class.php b/include/stundensatztyp.class.php
new file mode 100644
index 000000000..f54fc3957
--- /dev/null
+++ b/include/stundensatztyp.class.php
@@ -0,0 +1,77 @@
+load($stundensatztyp);
+ }
+
+ public function load($stundensatzzyp)
+ {
+ $qry = "SELECT *
+ FROM hr.tbl_stundensatztyp
+ WHERE stundensatztyp=". $this->db_add_param($stundensatzzyp);
+
+ if($this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object())
+ {
+ $this->stundensatztyp = $row->stundensatztyp;
+ $this->bezeichnung = $row->bezeichnung;
+ $this->aktiv = $this->db_parse_bool($row->aktiv);
+ }
+ }
+ else
+ {
+ $this->errormsg ="Fehler bei der Abfrage aufgetreten";
+ return false;
+ }
+ }
+
+ public function getAll($onlyAktiv = true, $order = 'aktiv DESC, bezeichnung')
+ {
+ $qry = "SELECT *
+ FROM hr.tbl_stundensatztyp";
+
+ if ($onlyAktiv)
+ {
+ $qry .= " WHERE aktiv";
+ }
+
+ if($order !== '')
+ $qry .= " ORDER BY ".$order;
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new stundensatzzyp();
+
+ $obj->stundensatztyp = $row->stundensatztyp;
+ $obj->bezeichnung = $row->bezeichnung;
+ $obj->aktiv = $this->db_parse_bool($row->aktiv);
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+}
+?>
diff --git a/rdf/organisationseinheit.rdf.php b/rdf/organisationseinheit.rdf.php
index ee66697a9..f6a5835bf 100644
--- a/rdf/organisationseinheit.rdf.php
+++ b/rdf/organisationseinheit.rdf.php
@@ -35,7 +35,12 @@ require_once('../include/organisationseinheit.class.php');
// raumtypen holen
$org=new organisationseinheit();
-$org->getAll(null, null, 'organisationseinheittyp_kurzbz, bezeichnung');
+if (isset($_GET['onlyRoots']) && $_GET['onlyRoots'] === 'true')
+{
+ $org->getRoots();
+}
+else
+ $org->getAll(null, null, 'organisationseinheittyp_kurzbz, bezeichnung');
$rdf_url='http://www.technikum-wien.at/organisationseinheit';
diff --git a/rdf/stundensatz.rdf.php b/rdf/stundensatz.rdf.php
new file mode 100644
index 000000000..c5365d5e0
--- /dev/null
+++ b/rdf/stundensatz.rdf.php
@@ -0,0 +1,76 @@
+';
+// DAO
+require_once('../config/vilesci.config.inc.php');
+require_once('../include/stundensatz.class.php');
+
+
+$rdf_url='http://www.technikum-wien.at/stundensatz';
+
+echo '
+
+
+';
+
+$mitarbeiter_uid = isset($_GET['mitarbeiter_uid']) ? $_GET['mitarbeiter_uid'] : '';
+$stundensatz_id = isset($_GET['stundensatz_id']) ? $_GET['stundensatz_id'] : '';
+
+$stundensatz = new stundensatz();
+
+if ($mitarbeiter_uid !== '')
+{
+ if (!$stundensatz->getAllStundensaetze($mitarbeiter_uid))
+ die("Fehler beim Laden der Stundensaetze");
+
+ foreach ($stundensatz->result as $row)
+ {
+ echo '
+
+
+ stundensatz_id.']]>
+ stundensatz.']]>
+ oe_bezeichnung).']]>
+ oe_kurzbz .']]>
+ stundensatztyp_bezeichnung .']]>
+ stundensatztyp .']]>
+ gueltig_von.']]>
+ gueltig_bis.']]>
+
+
+ ';
+ }
+}
+elseif ($stundensatz_id !== '')
+{
+ if (!$stundensatz->load($stundensatz_id))
+ die("Fehler beim Laden des Stundensatzes");
+
+ echo '
+
+
+ stundensatz_id.']]>
+ stundensatz.']]>
+ oe_bezeichnung).']]>
+ oe_kurzbz .']]>
+ stundensatztyp_bezeichnung .']]>
+ stundensatztyp .']]>
+ gueltig_von), 'd.m.Y').']]>
+ gueltig_bis) ? '' : date_format(date_create($stundensatz->gueltig_bis), 'd.m.Y') ).']]>
+
+
+ ';
+}
+?>
+
+
\ No newline at end of file
diff --git a/rdf/stundensatztyp.rdf.php b/rdf/stundensatztyp.rdf.php
new file mode 100644
index 000000000..e17bcd94d
--- /dev/null
+++ b/rdf/stundensatztyp.rdf.php
@@ -0,0 +1,42 @@
+';
+
+require_once('../config/vilesci.config.inc.php');
+require_once('../include/stundensatztyp.class.php');
+
+$rdf_url='http://www.technikum-wien.at/stundensatztyp';
+?>
+
+
+
+
+
+getAll())
+ die($stundensatztyp->errormsg);
+
+ foreach ($stundensatztyp->result as $row)
+ {
+ ?>
+
+
+ stundensatztyp ?>]]>
+ bezeichnung ?>]]>
+
+
+
+
+
\ No newline at end of file