Merge branch 'feature-34874/pv21_fas_stundensaetze' into feature-25562/PV21_Datenbankstruktur_fuer_Vertraege_und_Gehaelter

This commit is contained in:
Harald Bamberger
2024-01-10 14:18:25 +01:00
12 changed files with 982 additions and 12 deletions
+57 -1
View File
@@ -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;
@@ -227,8 +227,6 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<checkbox label="Kleriker" id="mitarbeiter-detail-checkbox-kleriker" checked="false" disabled="true" hidden="true" onchange="MitarbeiterDetailValueChange()"/>
</row>
<row>
<label align="end" control="mitarbeiter-detail-textbox-stundensatz" value="Stundensatz"/>
<textbox id="mitarbeiter-detail-textbox-stundensatz" size="10" maxlength="10" disabled="true" oninput="MitarbeiterDetailValueChange()"/>
<label align="end" control="mitarbeiter-detail-textbox-telefonklappe" value="Telefonklappe"/>
<hbox>
<textbox id="mitarbeiter-detail-textbox-telefonklappe" size="10" maxlength="10" disabled="true" oninput="MitarbeiterDetailValueChange()"/>
@@ -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='<?php echo APP_ROOT;?>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);
@@ -268,6 +268,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragover
?>
<tab id="mitarbeiter-tab-termine" label="Termine" onclick="MitarbeiterTermineIFrameLoad()" />
<tab id="mitarbeiter-tab-notizen" label="Notizen"/>
<tab id="mitarbeiter-tab-stundensatz" label="Stundensätze" />
<?php
if (!defined('FAS_UDF') || FAS_UDF == true)
echo '<tab id="mitarbeiter-tab-udf" label="Zusatzfelder" onclick="MitarbeiterUDFIFrameLoad()"/>';
@@ -289,6 +290,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragover
<vbox id="mitarbeiter-box-notiz">
<box class="Notiz" flex="1" id="mitarbeiter-box-notizen"/>
</vbox>
<iframe id="mitarbeiter-stundensatz" src="" style="margin-top:10px;" />
<?php
if (!defined('FAS_UDF') || FAS_UDF == true)
echo '<iframe id="mitarbeiter-udf" src="" style="margin-top:10px;" />';
@@ -0,0 +1,310 @@
<?php
require_once('../../config/vilesci.config.inc.php');
?>
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 = "<?php echo APP_ROOT; ?>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 = '<?php echo APP_ROOT ?>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 = "<?php echo APP_ROOT; ?>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 = '<?php echo APP_ROOT ?>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;
}
}
}
@@ -0,0 +1,170 @@
<?php
header("Cache-Control: no-cache");
header("Cache-Control: post-check=0, pre-check=0",false);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
include('../../config/vilesci.config.inc.php');
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/datepicker/datepicker.css" type="text/css"?>';
if(isset($_GET['mitarbeiter_uid']))
$mitarbeiter_uid = $_GET['mitarbeiter_uid'];
else
die('Parameter mitarbeiter_uid muss uebergeben werden');
?>
<window id="stundensaetze-window" title="Stundensaetze"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="loadStundensaetze('<?php echo $mitarbeiter_uid; ?>');"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/mitarbeiter/stundensatzoverlay.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/phpRequest.js.php" />
<hbox flex="1">
<!-- STUNDENSÄTZE -->
<vbox flex="4">
<tree id="stundensaetze-tree" seltype="single" hidecolumnpicker="false" flex="2"
datasources="rdf:null" ref="http://www.technikum-wien.at/stundensatz/liste"
onselect="StundensatzBearbeiten()"
flags="dont-build-content"
enableColumnDrag="true"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
persist="hidden, height"
>
<treecols>
<treecol id="stundensatz-treecol-stundensatz_id" label="StundensatzID" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/stundensatz/rdf#stundensatz_id"/>
<splitter class="tree-splitter"/>
<treecol id="stundensatz-treecol-stundensatz" label="Stundensatz" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/stundensatz/rdf#stundensatz"/>
<splitter class="tree-splitter"/>
<treecol id="stundensatz-treecol-oe_kurzbz_bezeichnung" label="Unternehmen" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/stundensatz/rdf#oe_kurzbz_bezeichnung"/>
<splitter class="tree-splitter"/>
<treecol id="stundensatz-treecol-stundensatz-typ" label="Stundensatztyp" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/stundensatz/rdf#stundensatztyp_bezeichnung"/>
<splitter class="tree-splitter"/>
<treecol id="stundensatz-treecol-gueltig_von" label="Gültig von" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/stundensatz/rdf#gueltig_von"/>
<splitter class="tree-splitter"/>
<treecol id="stundensatz-treecol-gueltig_bis" label="Gültig bis" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/stundensatz/rdf#gueltig_bis"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/stundensatz/rdf#stundensatz_id" />
<treecell label="rdf:http://www.technikum-wien.at/stundensatz/rdf#stundensatz" />
<treecell label="rdf:http://www.technikum-wien.at/stundensatz/rdf#oe_kurzbz_bezeichnung" />
<treecell label="rdf:http://www.technikum-wien.at/stundensatz/rdf#stundensatztyp_bezeichnung" />
<treecell label="rdf:http://www.technikum-wien.at/stundensatz/rdf#gueltig_von" />
<treecell label="rdf:http://www.technikum-wien.at/stundensatz/rdf#gueltig_bis" />
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
</vbox>
<vbox flex="1">
<hbox>
<button id="mitarbeiter-stundensatz-button-neu" label="Neu" oncommand="StundensatzNeu();" disabled="true"/>
<button id="mitarbeiter-stundensatz-button-loeschen" label="Loeschen" oncommand="StundensatzDelete();" disabled="true"/>
</hbox>
<vbox hidden="true">
<label value="Stundensatz" control="mitarbeiter-stundensatz-textbox-stundensatz_id"/>
<textbox id="mitarbeiter-stundensatz-textbox-stundensatz_id" disabled="true"/>
</vbox>
<groupbox id="mitarbeiter-stundensatz-groupbox">
<caption label="Details"/>
<grid id="mitarbeiter-stundensatz-grid-detail" style="overflow:auto;margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<label value="Stundensatz" control="mitarbeiter-stundensatz-textbox-stundensatz"/>
<hbox>
<textbox id="mitarbeiter-stundensatz-textbox-stundensatz" disabled="true" maxlength="9" size="9"/>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Stundensatztyp" control="mitarbeiter-stundensatz-textbox-typ"/>
<menulist id="mitarbeiter-stundensatz-textbox-typ"
flex="1"
disabled="true"
xmlns:STUNDENSATZTYP="http://www.technikum-wien.at/stundensatztyp/rdf#"
datasources="<?php echo APP_ROOT;?>rdf/stundensatztyp.rdf.php"
ref="http://www.technikum-wien.at/stundensatztyp/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/stundensatztyp/rdf#typ"
label="rdf:http://www.technikum-wien.at/stundensatztyp/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Unternehmen" control="mitarbeiter-stundensatz-textbox-unternehmen"/>
<menulist id="mitarbeiter-stundensatz-textbox-unternehmen"
flex="1"
disabled="true"
xmlns:ORGANISATIONSEINHEIT="http://www.technikum-wien.at/organisationseinheit/rdf#"
datasources="<?php echo APP_ROOT;?>rdf/organisationseinheit.rdf.php?onlyRoots=true"
ref="http://www.technikum-wien.at/organisationseinheit/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/organisationseinheit/rdf#oe_kurzbz"
label="rdf:http://www.technikum-wien.at/organisationseinheit/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Gültig von" control="mitarbeiter-stundensatz-textbox-gueltig-von"/>
<hbox>
<box class="Datum" id="mitarbeiter-stundensatz-textbox-gueltig-von" disabled="true"/>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Gültig bis" control="mitarbeiter-stundensatz-textbox-gueltig-bis"/>
<hbox>
<box class="Datum" id="mitarbeiter-stundensatz-textbox-gueltig-bis" disabled="true"/>
<spacer flex="1" />
</hbox>
</row>
</rows>
</grid>
<hbox>
<spacer flex="1" />
<button id="mitarbeiter-stundensatz-button-speichern" oncommand="StundensatzDetailSpeichern()" label="Speichern" disabled="true"/>
</hbox>
</groupbox>
</vbox>
</hbox>
</window>
+31 -1
View File
@@ -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;
}
}
}
?>
+209 -2
View File
@@ -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;
}
}
?>
+77
View File
@@ -0,0 +1,77 @@
<?php
require_once(dirname(__FILE__).'/basis_db.class.php');
class stundensatzzyp extends basis_db
{
public $result = array();
public $stundensatztyp;
public $bezeichnung;
public $aktiv;
public function __construct($stundensatztyp=null)
{
parent::__construct();
if($stundensatztyp!=null)
$this->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;
}
}
}
?>
+6 -1
View File
@@ -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';
+76
View File
@@ -0,0 +1,76 @@
<?php
// header für no cache
header("Cache-Control: no-cache");
header("Cache-Control: post-check=0, pre-check=0",false);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache");
// content type setzen
header("Content-type: application/xhtml+xml");
// xml
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
// DAO
require_once('../config/vilesci.config.inc.php');
require_once('../include/stundensatz.class.php');
$rdf_url='http://www.technikum-wien.at/stundensatz';
echo '
<RDF:RDF
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:STUNDENSATZ="'.$rdf_url.'/rdf#"
>
<RDF:Seq about="'.$rdf_url.'/liste">
';
$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 '
<RDF:li>
<RDF:Description id="'.$row->stundensatz_id.'" about="'.$rdf_url.'/'.$row->stundensatz_id.'" >
<STUNDENSATZ:stundensatz_id><![CDATA['.$row->stundensatz_id.']]></STUNDENSATZ:stundensatz_id>
<STUNDENSATZ:stundensatz><![CDATA['.$row->stundensatz.']]></STUNDENSATZ:stundensatz>
<STUNDENSATZ:oe_kurzbz_bezeichnung><![CDATA['.($row->oe_bezeichnung).']]></STUNDENSATZ:oe_kurzbz_bezeichnung>
<STUNDENSATZ:oe_kurzbz><![CDATA['. $row->oe_kurzbz .']]></STUNDENSATZ:oe_kurzbz>
<STUNDENSATZ:stundensatztyp_bezeichnung><![CDATA['. $row->stundensatztyp_bezeichnung .']]></STUNDENSATZ:stundensatztyp_bezeichnung>
<STUNDENSATZ:stundensatztyp><![CDATA['. $row->stundensatztyp .']]></STUNDENSATZ:stundensatztyp>
<STUNDENSATZ:gueltig_von><![CDATA['.$row->gueltig_von.']]></STUNDENSATZ:gueltig_von>
<STUNDENSATZ:gueltig_bis><![CDATA['.$row->gueltig_bis.']]></STUNDENSATZ:gueltig_bis>
</RDF:Description>
</RDF:li>
';
}
}
elseif ($stundensatz_id !== '')
{
if (!$stundensatz->load($stundensatz_id))
die("Fehler beim Laden des Stundensatzes");
echo '
<RDF:li>
<RDF:Description id="'.$stundensatz->stundensatz_id.'" about="'.$rdf_url.'/'.$stundensatz->stundensatz_id.'" >
<STUNDENSATZ:stundensatz_id><![CDATA['.$stundensatz->stundensatz_id.']]></STUNDENSATZ:stundensatz_id>
<STUNDENSATZ:stundensatz><![CDATA['.$stundensatz->stundensatz.']]></STUNDENSATZ:stundensatz>
<STUNDENSATZ:oe_kurzbz_bezeichnung><![CDATA['.($stundensatz->oe_bezeichnung).']]></STUNDENSATZ:oe_kurzbz_bezeichnung>
<STUNDENSATZ:oe_kurzbz><![CDATA['. $stundensatz->oe_kurzbz .']]></STUNDENSATZ:oe_kurzbz>
<STUNDENSATZ:stundensatztyp_bezeichnung><![CDATA['. $stundensatz->stundensatztyp_bezeichnung .']]></STUNDENSATZ:stundensatztyp_bezeichnung>
<STUNDENSATZ:stundensatztyp><![CDATA['. $stundensatz->stundensatztyp .']]></STUNDENSATZ:stundensatztyp>
<STUNDENSATZ:gueltig_von><![CDATA['.date_format(date_create($stundensatz->gueltig_von), 'd.m.Y').']]></STUNDENSATZ:gueltig_von>
<STUNDENSATZ:gueltig_bis><![CDATA['. (is_null($stundensatz->gueltig_bis) ? '' : date_format(date_create($stundensatz->gueltig_bis), 'd.m.Y') ).']]></STUNDENSATZ:gueltig_bis>
</RDF:Description>
</RDF:li>
';
}
?>
</RDF:Seq>
</RDF:RDF>
+42
View File
@@ -0,0 +1,42 @@
<?php
header("Cache-Control: no-cache");
header("Cache-Control: post-check=0, pre-check=0",false);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache");
header("Content-type: application/xhtml+xml");
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
require_once('../config/vilesci.config.inc.php');
require_once('../include/stundensatztyp.class.php');
$rdf_url='http://www.technikum-wien.at/stundensatztyp';
?>
<RDF:RDF
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:STUNDENSATZTYP="<?php echo $rdf_url; ?>/rdf#"
>
<RDF:Seq about="<?php echo $rdf_url ?>/liste">
<?php
$stundensatztyp = new stundensatzzyp();
if (!$stundensatztyp->getAll())
die($stundensatztyp->errormsg);
foreach ($stundensatztyp->result as $row)
{
?>
<RDF:li>
<RDF:Description id="<?php echo $row->stundensatztyp; ?>" about="<?php echo $rdf_url.'/'.$row->stundensatztyp; ?>" >
<STUNDENSATZTYP:typ><![CDATA[<?php echo $row->stundensatztyp ?>]]></STUNDENSATZTYP:typ>
<STUNDENSATZTYP:bezeichnung><![CDATA[<?php echo $row->bezeichnung ?>]]></STUNDENSATZTYP:bezeichnung>
</RDF:Description>
</RDF:li>
<?php
}
?>
</RDF:Seq>
</RDF:RDF>