diff --git a/content/fasDBDML.php b/content/fasDBDML.php index 65efb459d..436eef27b 100644 --- a/content/fasDBDML.php +++ b/content/fasDBDML.php @@ -418,7 +418,7 @@ if(!$error) $benutzerfunktion->datum_von = $_POST['datum_von']; $benutzerfunktion->datum_bis = $_POST['datum_bis']; $benutzerfunktion->bezeichnung = $_POST['bezeichnung']; - $benutzerfunktion->wochenstunden = $_POST['wochenstunden']; + $benutzerfunktion->wochenstunden = str_replace(',','.',$_POST['wochenstunden']); if($benutzerfunktion->save()) { diff --git a/content/mitarbeiter/mitarbeiterDBDML.php b/content/mitarbeiter/mitarbeiterDBDML.php index e1c251ea9..e907d41db 100644 --- a/content/mitarbeiter/mitarbeiterDBDML.php +++ b/content/mitarbeiter/mitarbeiterDBDML.php @@ -19,16 +19,9 @@ * Andreas Oesterreicher and * Rudolf Hangl . */ - -// **************************************** -// * Script sorgt fuer den Datenbanzugriff -// * der folgender FASonline Daten: -// * -// * - Adressen -// * - Kontakte -// * - Bankverbindungen -// **************************************** - +/** + * Script zur Veränderung von Mitarbeiterdaten in der Datenbank + */ require_once('../../config/vilesci.config.inc.php'); require_once('../../config/global.config.inc.php'); require_once('../../include/functions.inc.php'); @@ -41,6 +34,7 @@ require_once('../../include/bisverwendung.class.php'); require_once('../../include/bisfunktion.class.php'); require_once('../../include/entwicklungsteam.class.php'); require_once('../../include/resturlaub.class.php'); +require_once('../../include/buchung.class.php'); $user = get_uid(); @@ -343,6 +337,71 @@ if(!$error) $errormsg = $entwt->errormsg; } } + elseif(isset($_POST['type']) && $_POST['type']=='buchungsave') + { + if(!$rechte->isBerechtigt('buchung/mitarbeiter',null,'sui')) + { + $return = false; + $errormsg = 'Sie haben keine Berechtigung für diesen Vorgang'; + } + else + { + //Speichert die Buchungen eines Mitarbeiters + $buchung = new buchung(); + + $buchung->buchung_id = $_POST['buchung_id']; + $buchung->buchungstyp_kurzbz = $_POST['buchungstyp_kurzbz']; + $buchung->konto_id = $_POST['konto_id']; + $buchung->kostenstelle_id = $_POST['kostenstelle_id']; + $buchung->betrag = str_replace(',','.',$_POST['betrag']); + $buchung->buchungstext = $_POST['buchungstext']; + $buchung->buchungsdatum = $_POST['buchungsdatum']; + if($buchung->buchung_id=='') + { + $buchung->new=true; + $buchung->insertamum = date('Y-m-d H:i:s'); + $buchung->insertvon = $user; + } + else + { + $buchung->new=false; + $buchung->updateamum = date('Y-m-d H:i:s'); + $buchung->updatevon = $user; + } + + if($buchung->save()) + { + $return = true; + } + else + { + $errormsg = $buchung->errormsg; + $return = false; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='buchungdelete') + { + if(!$rechte->isBerechtigt('buchung/mitarbeiter',null,'suid')) + { + $return = false; + $errormsg = 'Sie haben keine Berechtigung für diesen Vorgang'; + } + else + { + //Loescht eine Buchung + $buchung = new buchung(); + if($buchung->delete($_POST['buchung_id'])) + { + $return = true; + } + else + { + $return = false; + $errormsg = $buchung->errormsg; + } + } + } else { $return = false; diff --git a/content/mitarbeiter/mitarbeiterbuchung.js.php b/content/mitarbeiter/mitarbeiterbuchung.js.php new file mode 100644 index 000000000..92869e4c1 --- /dev/null +++ b/content/mitarbeiter/mitarbeiterbuchung.js.php @@ -0,0 +1,362 @@ + + */ + +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); + +$user = get_uid(); + +?> +// *********** Globale Variablen *****************// +var MitarbeiterBuchungSelectBuchung=null; //Buchung die nach dem Refresh markiert werden soll +var MitarbeiterBuchungTreeDatasource; //Datasource des BuchungTrees +// ********** Observer und Listener ************* // + +// **** +// * Observer fuer Buchung Tree +// * startet Rebuild nachdem das Refresh +// * der datasource fertig ist +// **** +var MitarbeiterBuchungTreeSinkObserver = +{ + onBeginLoad : function(pSink) + { + tree = document.getElementById('mitarbeiter-buchung-tree'); + tree.removeEventListener('select', MitarbeiterBuchungAuswahl, false); + }, + onInterrupt : function(pSink) {}, + onResume : function(pSink) {}, + onError : function(pSink, pStatus, pError) { debug('Error MitarbeiterBuchungTreeSinkObserver:'+pError+':'+pStatus); }, + onEndLoad : function(pSink) + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + document.getElementById('mitarbeiter-buchung-tree').builder.rebuild(); + } +}; + +// **** +// * Nach dem Rebuild wird die Buchung wieder +// * markiert +// **** +var MitarbeiterBuchungTreeListener = +{ + willRebuild : function(builder) { }, + didRebuild : function(builder) + { + tree = document.getElementById('mitarbeiter-buchung-tree'); + tree.addEventListener('select', MitarbeiterBuchungAuswahl, false); + //timeout nur bei Mozilla notwendig da sonst die rows + //noch keine values haben. Ab Seamonkey funktionierts auch + //ohne dem setTimeout + window.setTimeout(MitarbeiterBuchungTreeSelectBuchung,10); + } +}; + +// ****************** FUNKTIONEN ************************** // + +function MitarbeiterBuchungLoad(person_id) +{ + if(person_id=='') + return; + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + // *** Konto *** + var menulistkonto = document.getElementById('mitarbeiter-buchung-menulist-konto'); + url='rdf/wawi_konto.rdf.php?person_id='+person_id+"&"+gettimestamp(); + + //Alte DS entfernen + var oldDatasources = menulistkonto.database.GetDataSources(); + while(oldDatasources.hasMoreElements()) + { + menulistkonto.database.RemoveDataSource(oldDatasources.getNext()); + } + //Refresh damit die entfernten DS auch wirklich entfernt werden + menulistkonto.builder.rebuild(); + + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + var myDatasource = rdfService.GetDataSourceBlocking(url); + menulistkonto.database.AddDataSource(myDatasource); + menulistkonto.builder.rebuild(); + + // *** Buchung *** + buchungtree = document.getElementById('mitarbeiter-buchung-tree'); + url='rdf/wawi_buchung.rdf.php?person_id='+person_id+"&"+gettimestamp(); + + try + { + MitarbeiterBuchungTreeDatasource.removeXMLSinkObserver(MitarbeiterBuchungTreeSinkObserver); + buchungtree.builder.removeListener(MitarbeiterBuchungTreeListener); + } + catch(e) + {} + + //Alte DS entfernen + var oldDatasources = buchungtree.database.GetDataSources(); + while(oldDatasources.hasMoreElements()) + { + buchungtree.database.RemoveDataSource(oldDatasources.getNext()); + } + //Refresh damit die entfernten DS auch wirklich entfernt werden + buchungtree.builder.rebuild(); + + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + MitarbeiterBuchungTreeDatasource = rdfService.GetDataSource(url); + MitarbeiterBuchungTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + MitarbeiterBuchungTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); + buchungtree.database.AddDataSource(MitarbeiterBuchungTreeDatasource); + MitarbeiterBuchungTreeDatasource.addXMLSinkObserver(MitarbeiterBuchungTreeSinkObserver); + buchungtree.builder.addListener(MitarbeiterBuchungTreeListener); + + MitarbeiterBuchungDisableFields(false); +} + +// **** +// * Selectiert die Buchung nachdem der Tree +// * rebuildet wurde. +// **** +function MitarbeiterBuchungTreeSelectBuchung() +{ + var tree=document.getElementById('mitarbeiter-buchung-tree'); + if(tree.view) + var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln + else + return false; + + //In der globalen Variable ist die zu selektierende Buchung gespeichert + if(MitarbeiterBuchungSelectBuchung!=null) + { + //Jetzt die wirkliche Anzahl (aller) Zeilen holen + items = tree.view.rowCount; + for(var i=0;i + */ + +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"); +require_once('../../config/vilesci.config.inc.php'); +echo ''; + +?> + + +