Files
FHC-Core/content/mitarbeiter/mitarbeitervertrag.js.php
T

534 lines
19 KiB
PHP

<?php
/* Copyright (C) 2014 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
$user = get_uid();
if(false): ?> <script type="text/javascript"><?php endif; ?>
var MitarbeiterVertragLoadedPerson=null
// ****************** FUNKTIONEN ************************** //
function MitarbeiterVertragLoad(person_id)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
if(typeof(person_id)=='undefined' && MitarbeiterVertragLoadedPerson!='')
{
person_id = MitarbeiterVertragLoadedPerson;
}
if(person_id=='')
return;
MitarbeiterVertragLoadedPerson=person_id;
// Aktiven Filter Eintrag holen
var filterpopup = document.getElementById('mitarbeiter-vertrag-menupopup-filter');
var e = filterpopup.getElementsByTagName("menuitem");
var filter;
for (var i = 0; i < e.length; i++)
{
if (e[i].getAttribute("checked"))
filter=e[i].value
}
// *** Vertrag ***
var treevertrag = document.getElementById('mitarbeiter-vertrag-tree');
url='<?php echo APP_ROOT;?>rdf/vertrag.rdf.php?person_id='+person_id+"&filter="+filter+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = treevertrag.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
treevertrag.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
treevertrag.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var myDatasource = rdfService.GetDataSourceBlocking(url);
treevertrag.database.AddDataSource(myDatasource);
treevertrag.builder.rebuild();
// Detail Tree leeren
vertragzugeordnettree = document.getElementById('mitarbeiter-vertrag-tree-zugeordnet');
//Alte DS entfernen
var oldDatasources = vertragzugeordnettree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
vertragzugeordnettree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
vertragzugeordnettree.builder.rebuild();
// Status Tree leeren
vertragsstatustree = document.getElementById('mitarbeiter-vertrag-tree-vertragsstatus');
//Alte DS entfernen
var oldDatasources = vertragsstatustree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
vertragsstatustree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
vertragsstatustree.builder.rebuild();
MitarbeiterVertragDisableFields(false);
}
function MitarbeiterVertragDisableFields(val)
{
}
function MitarbeiterVertragSelectVertrag()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree=document.getElementById('mitarbeiter-vertrag-tree');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertrag_id"] : "mitarbeiter-vertrag-tree-vertrag_id";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
// *** Zugeordnete Vertragselemente laden
vertragzugeordnettree = document.getElementById('mitarbeiter-vertrag-tree-zugeordnet');
url='<?php echo APP_ROOT;?>rdf/vertragdetails.rdf.php?vertrag_id='+vertrag_id+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = vertragzugeordnettree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
vertragzugeordnettree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
vertragzugeordnettree.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSource(url);
vertragzugeordnettree.database.AddDataSource(datasource);
// *** Status laden
vertragsstatustree = document.getElementById('mitarbeiter-vertrag-tree-vertragsstatus');
url='<?php echo APP_ROOT;?>rdf/vertragsstatus.rdf.php?vertrag_id='+vertrag_id+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = vertragsstatustree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
vertragsstatustree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
vertragsstatustree.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSource(url);
vertragsstatustree.database.AddDataSource(datasource);
}
/**
* Generiert einen Vertrag aus den markierten Elementen
*/
function MitarbeiterVertragGenerateVertrag(windowdocument)
{
var tree = windowdocument.getElementById('mitarbeiter-vertrag-tree-nichtzugeordnet');
var start = new Object();
var end = new Object();
var numRanges = tree.view.selection.getRangeCount();
var url = '<?php echo APP_ROOT ?>content/mitarbeiter/mitarbeiterDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'vertraggenerate');
req.add('person_id',MitarbeiterVertragLoadedPerson);
var betrag = windowdocument.getElementById('mitarbeiter-vertrag-neu-textbox-betrag').value;
var vertragstyp_kurzbz = windowdocument.getElementById('mitarbeiter-vertrag-neu-menulist-vertragstyp').value;
var bezeichnung = windowdocument.getElementById('mitarbeiter-vertrag-neu-textbox-bezeichnung').value;
var vertrag_id = windowdocument.getElementById('mitarbeiter-vertrag-neu-textbox-vertrag_id').value;
var anmerkung = windowdocument.getElementById('mitarbeiter-vertrag-neu-textbox-anmerkung').value;
var vertragsdatum = windowdocument.getElementById('mitarbeiter-vertrag-neu-box-vertragsdatum').iso;
if(windowdocument.getElementById("mitarbeiter-vertrag-neu-textbox-fahrten") != null)
var fahrten = windowdocument.getElementById("mitarbeiter-vertrag-neu-textbox-fahrten").value;
else
var fahrten = 1;
if(betrag=='')
{
alert('Bitte geben Sie einen Betrag ein');
return false;
}
if(vertragstyp_kurzbz == 'fahrtkosten')
betrag = betrag * fahrten;
req.add('betrag',betrag);
req.add('vertragstyp_kurzbz',vertragstyp_kurzbz);
req.add('bezeichnung',bezeichnung);
req.add('vertrag_id',vertrag_id);
req.add('anmerkung',anmerkung);
req.add('vertragsdatum',vertragsdatum);
var anzahl=0;
for (var t = 0; t < numRanges; t++)
{
tree.view.selection.getRangeAt(t,start,end);
for (var v = start.value; v <= end.value; v++)
{
type = getTreeCellText(tree, "mitarbeiter-vertrag-tree-nichtzugeordnet-type", v);
stsem = getTreeCellText(tree, "mitarbeiter-vertrag-tree-nichtzugeordnet-studiensemester_kurzbz",v);
pruefung_id = getTreeCellText(tree, "mitarbeiter-vertrag-tree-nichtzugeordnet-pruefung_id",v);
projektarbeit_id = getTreeCellText(tree, "mitarbeiter-vertrag-tree-nichtzugeordnet-projektarbeit_id",v);
mitarbeiter_uid = getTreeCellText(tree, "mitarbeiter-vertrag-tree-nichtzugeordnet-mitarbeiter_uid",v);
lehreinheit_id = getTreeCellText(tree, "mitarbeiter-vertrag-tree-nichtzugeordnet-lehreinheit_id",v);
betreuerart_kurzbz = getTreeCellText(tree, "mitarbeiter-vertrag-tree-nichtzugeordnet-betreuerart_kurzbz",v);
vertragsstunden = getTreeCellText(tree, "mitarbeiter-vertrag-tree-nichtzugeordnet-vertragsstunden",v);
vertragsstunden_studiensemester_kurzbz = getTreeCellText(tree, "mitarbeiter-vertrag-tree-nichtzugeordnet-vertragsstunden_studiensemester_kurzbz",v);
req.add('type_'+anzahl, type);
req.add('stsem_'+anzahl, stsem);
req.add('pruefung_id_'+anzahl, pruefung_id);
req.add('projektarbeit_id_'+anzahl, projektarbeit_id);
req.add('mitarbeiter_uid_'+anzahl, mitarbeiter_uid);
req.add('lehreinheit_id_'+anzahl, lehreinheit_id);
req.add('betreuerart_kurzbz_'+anzahl, betreuerart_kurzbz);
req.add('vertragsstunden'+anzahl, vertragsstunden);
req.add('vertragsstunden_studiensemester_kurzbz'+anzahl, vertragsstunden_studiensemester_kurzbz);
anzahl++;
}
}
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
MitarbeiterVertragLoad(MitarbeiterVertragLoadedPerson);
return true;
}
}
/**
* Oeffnet den Dialog zum Erstellen eines neuen Vertrags
*/
function MitarbeiterVertragAddVertrag()
{
window.open('<?php echo APP_ROOT?>content/mitarbeiter/mitarbeitervertragneudialog.xul.php?person_id='+MitarbeiterVertragLoadedPerson,"Vertrag","status=no, width=500, height=400, centerscreen, resizable");
}
/**
* Fuegt einen neuen Status zu einem Vertrag hinzu
*/
function MitarbeiterVertragStatusAdd(status)
{
var tree=document.getElementById('mitarbeiter-vertrag-tree');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertrag_id"] : "mitarbeiter-vertrag-tree-vertrag_id";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
var url = '<?php echo APP_ROOT ?>content/mitarbeiter/mitarbeiterDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'vertragsstatusadd');
req.add('vertrag_id',vertrag_id);
req.add('status',status);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
MitarbeiterVertragSelectVertrag();
return true;
}
}
/**
* Editieren eines Vertrags
*/
function MitarbeiterVertragEdit()
{
var tree=document.getElementById('mitarbeiter-vertrag-tree');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertrag_id"] : "mitarbeiter-vertrag-tree-vertrag_id";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
window.open('<?php echo APP_ROOT?>content/mitarbeiter/mitarbeitervertragneudialog.xul.php?person_id='+MitarbeiterVertragLoadedPerson+'&vertrag_id='+vertrag_id,"Vertrag","status=no, width=500, height=400, centerscreen, resizable");
}
function MitarbeiterVertragDetailDelete()
{
var tree=document.getElementById('mitarbeiter-vertrag-tree');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertrag_id"] : "mitarbeiter-vertrag-tree-vertrag_id";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
var url = '<?php echo APP_ROOT ?>content/mitarbeiter/mitarbeiterDBDML.php';
var req = new phpRequest(url,'','');
req.add('vertrag_id',vertrag_id);
var tree=document.getElementById('mitarbeiter-vertrag-tree-zugeordnet');
type = getTreeCellText(tree, "mitarbeiter-vertrag-tree-zugeordnet-type", tree.currentIndex);
stsem = getTreeCellText(tree, "mitarbeiter-vertrag-tree-zugeordnet-studiensemester_kurzbz",tree.currentIndex);
pruefung_id = getTreeCellText(tree, "mitarbeiter-vertrag-tree-zugeordnet-pruefung_id",tree.currentIndex);
projektarbeit_id = getTreeCellText(tree, "mitarbeiter-vertrag-tree-zugeordnet-projektarbeit_id",tree.currentIndex);
mitarbeiter_uid = getTreeCellText(tree, "mitarbeiter-vertrag-tree-zugeordnet-mitarbeiter_uid",tree.currentIndex);
lehreinheit_id = getTreeCellText(tree, "mitarbeiter-vertrag-tree-zugeordnet-lehreinheit_id",tree.currentIndex);
betreuerart_kurzbz = getTreeCellText(tree, "mitarbeiter-vertrag-tree-zugeordnet-betreuerart_kurzbz",tree.currentIndex);
betrag = getTreeCellText(tree, "mitarbeiter-vertrag-tree-zugeordnet-betrag",tree.currentIndex);
req.add('type', 'vertragsdetaildelete');
req.add('vertragstype', type);
req.add('stsem', stsem);
req.add('pruefung_id', pruefung_id);
req.add('projektarbeit_id', projektarbeit_id);
req.add('mitarbeiter_uid', mitarbeiter_uid);
req.add('lehreinheit_id', lehreinheit_id);
req.add('betreuerart_kurzbz', betreuerart_kurzbz);
req.add('betrag', betrag);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
MitarbeiterVertragLoad(MitarbeiterVertragLoadedPerson);
return true;
}
}
function MitarbeiterVertragSelectVertragsstatus()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree=document.getElementById('mitarbeiter-vertrag-tree-vertragsstatus');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertragsstatus-vertrag_id"] : "mitarbeiter-vertrag-tree-vertragsstatus-vertrag_id";
var col_status = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertragsstatus-vertragsstatus_kurzbz"] : "mitarbeiter-vertrag-tree-vertragsstatus-vertragsstatus_kurzbz";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
var vertrag_status=tree.view.getCellText(tree.currentIndex,col_status);
vertragstatustree = document.getElementById('mitarbeiter-vertrag-tree-vertragsstatus');
url='<?php echo APP_ROOT;?>rdf/vertragsstatus.rdf.php?vertrag_id='+vertrag_id+'&vertragsstatus_kurzbz='+vertrag_status+'&'+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/vertragsstatus/"+vertrag_status +"/"+ vertrag_id);
var predicateNS = "http://www.technikum-wien.at/vertragsstatus/rdf";
//Daten holen
vertragsdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#datum" ));
// Uhrzeit wegschneiden
vertragsdatum = vertragsdatum.substring(0,10);
document.getElementById('mitarbeiter-vertrag-vertragsstatus-textbox-vertragsdatum').value=vertragsdatum;
document.getElementById('mitarbeiter-vertrag-vertragsstatus-textbox-vertragsdatum').disabled=false;
}
function MitarbeiterVertragVertragsstatusUpdate()
{
var tree=document.getElementById('mitarbeiter-vertrag-tree-vertragsstatus');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertragsstatus-vertrag_id"] : "mitarbeiter-vertrag-tree-vertragsstatus-vertrag_id";
var col_status = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertragsstatus-vertragsstatus_kurzbz"] : "mitarbeiter-vertrag-tree-vertragsstatus-vertragsstatus_kurzbz";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
var vertrag_status=tree.view.getCellText(tree.currentIndex,col_status);
var vertrag_datum = document.getElementById("mitarbeiter-vertrag-vertragsstatus-textbox-vertragsdatum").iso;
var url = '<?php echo APP_ROOT ?>content/mitarbeiter/mitarbeiterDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'vertragsstatusupdate');
req.add('vertrag_id',vertrag_id);
req.add('status',vertrag_status);
req.add('datum',vertrag_datum);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
MitarbeiterVertragVertragsstatusReload(vertrag_id);
return true;
}
}
function MitarbeiterVertragStatusDelete()
{
var tree=document.getElementById('mitarbeiter-vertrag-tree-vertragsstatus');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertragsstatus-vertrag_id"] : "mitarbeiter-vertrag-tree-vertragsstatus-vertrag_id";
var col_status = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertragsstatus-vertragsstatus_kurzbz"] : "mitarbeiter-vertrag-tree-vertragsstatus-vertragsstatus_kurzbz";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
var vertrag_status=tree.view.getCellText(tree.currentIndex,col_status);
var url = '<?php echo APP_ROOT ?>content/mitarbeiter/mitarbeiterDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'vertragsstatusdelete');
req.add('vertrag_id',vertrag_id);
req.add('status',vertrag_status);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
MitarbeiterVertragVertragsstatusReload(vertrag_id);
return true;
}
}
function MitarbeiterVertragVertragsstatusReload(vertrag_id)
{
// *** Status laden
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var vertragsstatustree = document.getElementById('mitarbeiter-vertrag-tree-vertragsstatus');
url='<?php echo APP_ROOT;?>rdf/vertragsstatus.rdf.php?vertrag_id='+vertrag_id+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = vertragsstatustree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
vertragsstatustree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
vertragsstatustree.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSource(url);
vertragsstatustree.database.AddDataSource(datasource);
return true;
}
function MitarbeiterVertragDelete()
{
var tree=document.getElementById('mitarbeiter-vertrag-tree');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertrag_id"] : "mitarbeiter-vertrag-tree-vertrag_id";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
if(confirm('Wollen Sie diesen Eintrag wirklich löschen'))
{
var url = '<?php echo APP_ROOT ?>content/mitarbeiter/mitarbeiterDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'vertragdelete');
req.add('vertrag_id',vertrag_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)
}
else
{
MitarbeiterVertragLoad(MitarbeiterVertragLoadedPerson);
return true;
}
}
}