Im WaWi kann nun ein Projekt zu einer Bestellung zugeordnet werden,

Im Planner gibt es eigenen Reiter Bestellung
This commit is contained in:
Karl Burkhart
2011-11-03 15:54:43 +00:00
parent 78b429a439
commit 884d4a3296
8 changed files with 271 additions and 359 deletions
+41
View File
@@ -217,6 +217,47 @@ function treeProjektmenueSelect()
document.getElementById('toolbarbutton-projektdokument-zuweisung').disabled=true; document.getElementById('toolbarbutton-projektdokument-zuweisung').disabled=true;
} }
// Bestellung laden
if(projekt_phase_id=='' && projekt_kurzbz!='')
{
try
{
url = "<?php echo APP_ROOT; ?>rdf/bestellung.rdf.php?projektKurzbz="+projekt_kurzbz+"&"+gettimestamp();
var treeDokument=document.getElementById('tree-bestellung');
//Alte DS entfernen
var oldDatasources = treeDokument.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
treeDokument.database.RemoveDataSource(oldDatasources.getNext());
}
try
{
datasourceTreeDokument.removeXMLSinkObserver(DokumentTreeSinkObserver);
treeDokument.builder.removeListener(DokumentTreeListener);
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
datasourceTreeDokument = rdfService.GetDataSource(url);
datasourceTreeDokument.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasourceTreeDokument.QueryInterface(Components.interfaces.nsIRDFXMLSink);
treeDokument.database.AddDataSource(datasourceTreeDokument);
datasourceTreeDokument.addXMLSinkObserver(DokumentTreeSinkObserver);
treeDokument.builder.addListener(DokumentTreeListener);
}
catch(e)
{
debug("whoops Documents load failed with exception: "+e);
}
}
if(projekt_kurzbz!='') if(projekt_kurzbz!='')
{ {
//Neu Button bei Tasks aktivieren //Neu Button bei Tasks aktivieren
+2 -2
View File
@@ -110,8 +110,8 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/ressource.overlay.xul.php"
<tab id="tab-projekttask" label="Tasks" selected="true" /> <tab id="tab-projekttask" label="Tasks" selected="true" />
<tab id="tab-dokumente" label="Dokumente" /> <tab id="tab-dokumente" label="Dokumente" />
<tab id="tab-ressource" label="Ressourcen" /> <tab id="tab-ressource" label="Ressourcen" />
<!--
<tab id="tab-bestellung" label="Bestellungen" /> <tab id="tab-bestellung" label="Bestellungen" />
<!--
<tab id="tab-gantt" label="Gantt" /> <tab id="tab-gantt" label="Gantt" />
--> -->
<tab id="tab-notiz" label="Eigene Notizen" /> <tab id="tab-notiz" label="Eigene Notizen" />
@@ -122,8 +122,8 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/ressource.overlay.xul.php"
<vbox id="box-projekttask" /> <vbox id="box-projekttask" />
<vbox id="box-dokumente" /> <vbox id="box-dokumente" />
<vbox id="box-ressource" /> <vbox id="box-ressource" />
<!--
<vbox id="box-bestellung" /> <vbox id="box-bestellung" />
<!--
<vbox id="box-gantt" /> <vbox id="box-gantt" />
--> -->
<vbox id="box-notiz" /> <vbox id="box-notiz" />
+26 -270
View File
@@ -1,5 +1,5 @@
<?php <?php
/* Copyright (C) 2006 Technikum-Wien /* Copyright (C) 2011 FH Technikum-Wien
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as * it under the terms of the GNU General Public License as
@@ -15,23 +15,24 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* Authors: Christian Paminger <christian.paminger@technikum-wien.at> * Authors: Andreas Österreicher <andreas.oesterreicher@technikum-wien.at>
* Karl Burkhart <burkhart@technikum-wien.at>
*/ */
require_once('../../config/vilesci.config.inc.php'); require_once('../../config/vilesci.config.inc.php');
die('// fuehrt zu Konflikten');
?>
?>
// *********** Globale Variablen *****************// // *********** Globale Variablen *****************//
var ProjektSelectKurzbz=null; //Kurzbz des Projekt Eintrages der nach dem Refresh markiert werden soll
var DokumentSelectID=null; //ID des Dokuments das nach dem Refresh markiert werden soll
// ********** Observer und Listener ************* // // ********** Observer und Listener ************* //
// **** // ****
// * Observer fuer LV Tree // * Observer fuer Dokument Tree
// * startet Rebuild nachdem das Refresh // * startet Rebuild nachdem das Refresh
// * der datasource fertig ist // * der datasource fertig ist
// **** // ****
var observerTreeProjekt = var DokumentTreeSinkObserver =
{ {
onBeginLoad : function(pSink) {}, onBeginLoad : function(pSink) {},
onInterrupt : function(pSink) {}, onInterrupt : function(pSink) {},
@@ -40,15 +41,15 @@ var observerTreeProjekt =
onEndLoad : function(pSink) onEndLoad : function(pSink)
{ {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('tree-projekt').builder.rebuild(); document.getElementById('tree-bestellung').builder.rebuild();
} }
}; };
// **** // ****
// * Nach dem Rebuild wird die Lehreinheit wieder // * Nach dem Rebuild wird das Dokument wieder
// * markiert // * markiert
// **** // ****
var listenerTreeProjekt = var DokumentTreeListener =
{ {
willRebuild : function(builder) willRebuild : function(builder)
{ {
@@ -58,7 +59,7 @@ var listenerTreeProjekt =
//timeout nur bei Mozilla notwendig da sonst die rows //timeout nur bei Mozilla notwendig da sonst die rows
//noch keine values haben. Ab Seamonkey funktionierts auch //noch keine values haben. Ab Seamonkey funktionierts auch
//ohne dem setTimeout //ohne dem setTimeout
window.setTimeout(ProjektTreeSelectProjekt,10); window.setTimeout(DokumentTreeSelectDokument,10);
// Progressmeter stoppen // Progressmeter stoppen
//document.getElementById('statusbar-progressmeter').setAttribute('mode','determined'); //document.getElementById('statusbar-progressmeter').setAttribute('mode','determined');
} }
@@ -67,173 +68,47 @@ var listenerTreeProjekt =
// ****************** FUNKTIONEN ************************** // // ****************** FUNKTIONEN ************************** //
// **** // ****
// * Asynchroner (Nicht blockierender) Refresh des LV Trees // * Asynchroner (Nicht blockierender) Refresh des Dokument Trees
// **** // ****
function ProjektTreeRefresh() function BestellungTreeRefresh()
{ {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
//markierte Lehreinheit global speichern damit diese LE nach dem //markiertes Dokument global speichern damit es nach dem
//refresh wieder markiert werden kann. //refresh wieder markiert werden kann.
var tree = document.getElementById('tree-projekt'); var tree = document.getElementById('tree-bestellung');
try try
{ {
ProjektSelectKurzbz = getTreeCellText(tree, "treecol-projekt-projekt_kurzbz", tree.currentIndex); DokumentSelectID = getTreeCellText(tree, "treecol-bestellung-bestell_nr", tree.currentIndex);
} }
catch(e) catch(e)
{ {
ProjektSelectKurzbz=null; DokumentSelectID=null;
} }
datasourceTreeProjekt.Refresh(false); //non blocking
datasourceTreeDokument.Refresh(false); //non blocking
} }
// **** // ****
// * Selectiert die Lektorzuordnung nachdem der Tree // * Selectiert das Dokument nachdem der Tree
// * rebuildet wurde. // * rebuildet wurde.
// **** // ****
function onselectProjekt() function DokumentTreeSelectDokument()
{ {
// Trick 17 (sonst gibt's ein Permission denied) var tree=document.getElementById('tree-bestellung');
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('tree-projekt');
if (tree.currentIndex==-1) return;
try
{
//Ausgewaehltes Projekt holen
var projekt_kurzbz = getTreeCellText(tree, "treecol-projekt-projekt_kurzbz", tree.currentIndex);
if(projekt_kurzbz!='')
{
//Projekt wurde markiert
//Loeschen Button aktivieren
document.getElementById('toolbarbutton-projekt-del').disabled=false;
}
else
{
return false;
}
}
catch(e)
{
alert(e);
return false;
}
var req = new phpRequest('<?php echo APP_ROOT; ?>rdf/projekt.rdf.php','','');
req.add('projekt_kurzbz',projekt_kurzbz);
var response = req.execute();
// Datasource holen
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/projekt/alle-projekte');
dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource);
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
getService(Components.interfaces.nsIRDFService);
var subject = rdfService.GetResource("http://www.technikum-wien.at/projekt/" + projekt_kurzbz);
var predicateNS = "http://www.technikum-wien.at/projekt/rdf";
//Daten holen
var projekt_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#projekt_kurzbz" ));
var oe_kurzbz=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#oe_kurzbz" ));
var titel=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titel" ));
var beschreibung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#beschreibung" ));
var nummer=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nummer" ));
var beginn=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#beginn" ));
var ende=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ende" ));
var personentage=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#personentage" ));
//Daten den Feldern zuweisen
document.getElementById('textbox-projekt-detail-projekt_kurzbz').value=projekt_kurzbz;
document.getElementById('textbox-projekt-detail-oe_kurzbz').value=oe_kurzbz;
document.getElementById('textbox-projekt-detail-titel').value=titel;
document.getElementById('textbox-projekt-detail-beschreibung').value=beschreibung;
document.getElementById('textbox-projekt-detail-nummer').value=nummer;
document.getElementById('textbox-projekt-detail-beginn').value=beginn;
document.getElementById('textbox-projekt-detail-ende').value=ende;
document.getElementById('checkbox-projekt-detail-neu').checked=false;
//Notizen zu einem Projekt Laden
notiz = document.getElementById('box-projekt-notizen');
notiz.LoadNotizTree(projekt_kurzbz,'','','','','','', '');
}
// ****
// * Speichert die Details
// ****
function saveProjektDetail()
{
//Werte holen
projekt_kurzbz = document.getElementById('textbox-projekt-detail-projekt_kurzbz').value;
oe_kurzbz = document.getElementById('textbox-projekt-detail-oe_kurzbz').value;
titel = document.getElementById('textbox-projekt-detail-titel').value;
beschreibung = document.getElementById('textbox-projekt-detail-beschreibung').value;
nummer = document.getElementById('textbox-projekt-detail-nummer').value;
beginn = document.getElementById('textbox-projekt-detail-beginn').value;
ende = document.getElementById('textbox-projekt-detail-ende').value;
neu = document.getElementById('checkbox-projekt-detail-neu').checked;
var soapBody = new SOAPObject("saveProjekt");
soapBody.appendChild(new SOAPObject("projekt_kurzbz")).val(projekt_kurzbz);
soapBody.appendChild(new SOAPObject("oe_kurzbz")).val(oe_kurzbz);
soapBody.appendChild(new SOAPObject("titel")).val(titel);
soapBody.appendChild(new SOAPObject("beschreibung")).val(beschreibung);
soapBody.appendChild(new SOAPObject("nummer")).val(nummer);
soapBody.appendChild(new SOAPObject("beginn")).val(beginn);
soapBody.appendChild(new SOAPObject("ende")).val(ende);
if(neu)
soapBody.appendChild(new SOAPObject("neu")).val('true');
else
soapBody.appendChild(new SOAPObject("neu")).val('false');
var sr = new SOAPRequest("saveProjekt",soapBody);
SOAPClient.Proxy="<?php echo APP_ROOT;?>soap/projekt.soap.php?"+gettimestamp();
SOAPClient.SendRequest(sr, clb_saveProjekt);
}
// ****
// * Callback Funktion nach Speichern eines Projekts
// ****
function clb_saveProjekt(respObj)
{
try
{
var projekt_kurzbz = respObj.Body[0].saveProjektResponse[0].message[0].Text;
ProjektSelectKurzbz = projekt_kurzbz;
}
catch(e)
{
var fehler = respObj.Body[0].Fault[0].faultstring[0].Text;
alert('Fehler: '+fehler);
return;
}
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
datasourceTreeProjekt.Refresh(false); //non blocking
SetStatusBarText('Daten wurden gespeichert');
}
// ****
// * Selectiert ein Projekt nachdem der Tree
// * rebuildet wurde.
// ****
function ProjektTreeSelectProjekt()
{
var tree=document.getElementById('tree-projekt');
var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
//In der globalen Variable ist die zu selektierende ID gespeichert //In der globalen Variable ist die zu selektierende ID gespeichert
if(ProjektSelectKurzbz!=null) if(DokumentSelectID!=null)
{ {
for(var i=0;i<items;i++) for(var i=0;i<items;i++)
{ {
//id der row holen //id der row holen
id = getTreeCellText(tree, "treecol-projekt-projekt_kurzbz", i); id = getTreeCellText(tree, "treecol-bestellung-bestell_nr", i);
//wenn dies die zu selektierende Zeile //wenn dies die zu selektierende Zeile
if(ProjektSelectKurzbz==id) if(DokumentSelectID==id)
{ {
//Zeile markieren //Zeile markieren
tree.view.selection.select(i); tree.view.selection.select(i);
@@ -243,123 +118,4 @@ function ProjektTreeSelectProjekt()
} }
} }
} }
}
// ****
// * Projekt loeschen
// ****
function ProjektDelete()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('tree-projekt');
if (tree.currentIndex==-1)
return;
try
{
//Ausgewaehltes Projekt holen
id = getTreeCellText(tree, "treecol-projekt-projekt_kurzbz", tree.currentIndex);
}
catch(e)
{
alert(e);
return false;
}
//Abfrage ob wirklich geloescht werden soll
if (confirm('Wollen Sie das Projekt mit der Kurzbz '+id+' wirklich loeschen?'))
{
//Script zum loeschen der Lehreinheit aufrufen
alert('Ist noch nicht implementiert!');
/*
var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','','');
req.add('type','lehreinheit');
req.add('do','delete');
req.add('lehreinheit_id',lehreinheit_id);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if(!val.dbdml_return)
alert(val.dbdml_errormsg)
LvTreeRefresh();
LeDetailReset();
LeDetailDisableFields(true);
*/
}
}
// ****
// * Leert alle Eingabe- und Auswahlfelder
// ****
function ProjektDetailReset()
{
/*
document.getElementById('lehrveranstaltung-detail-textbox-lvnr').value='';
document.getElementById('lehrveranstaltung-detail-textbox-unr').value='';
document.getElementById('lehrveranstaltung-detail-textbox-lehrveranstaltung').value='';
document.getElementById('lehrveranstaltung-detail-checkbox-lehre').checked=true;
document.getElementById('lehrveranstaltung-detail-textbox-stundenblockung').value='';
document.getElementById('lehrveranstaltung-detail-textbox-wochenrythmus').value='';
document.getElementById('lehrveranstaltung-detail-textbox-startkw').value='';
document.getElementById('lehrveranstaltung-detail-textbox-anmerkung').value='';
document.getElementById('lehrveranstaltung-detail-menulist-sprache').value='German';
document.getElementById('lehrveranstaltung-detail-menulist-raumtyp').value='Dummy';
document.getElementById('lehrveranstaltung-detail-menulist-raumtypalternativ').value='Dummy';
document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').value=getStudiensemester();
document.getElementById('lehrveranstaltung-detail-menulist-lehrform').value='UE';
document.getElementById('lehrveranstaltung-detail-textbox-lehreinheit_id').value='';
//mitarbeiterlehreinheit tree leeren
lektortree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter');
//Alte DS entfernen
var oldDatasources = lektortree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
lektortree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
lektortree.builder.rebuild();
//Gruppentree leeren
gruppentree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe');
//Alte DS entfernen
var oldDatasources = gruppentree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
gruppentree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
gruppentree.builder.rebuild();
*/
}
// ****
// * Deaktiviert alle Eingabe- und Auswahlfelder
// ****
function ProjektDisableFields(val)
{
/*
//document.getElementById('lehrveranstaltung-detail-textbox-lvnr').disabled=val;
//document.getElementById('lehrveranstaltung-detail-textbox-unr').disabled=val;
//document.getElementById('lehrveranstaltung-detail-textbox-lehrveranstaltung').disabled=val;
document.getElementById('lehrveranstaltung-detail-checkbox-lehre').disabled=val;
document.getElementById('lehrveranstaltung-detail-textbox-stundenblockung').disabled=val;
document.getElementById('lehrveranstaltung-detail-textbox-wochenrythmus').disabled=val;
document.getElementById('lehrveranstaltung-detail-textbox-startkw').disabled=val;
document.getElementById('lehrveranstaltung-detail-textbox-anmerkung').disabled=val;
document.getElementById('lehrveranstaltung-detail-menulist-sprache').disabled=val;
document.getElementById('lehrveranstaltung-detail-menulist-lehrfach').disabled=val;
document.getElementById('lehrveranstaltung-detail-menulist-raumtyp').disabled=val;
document.getElementById('lehrveranstaltung-detail-menulist-raumtypalternativ').disabled=val;
document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').disabled=val;
document.getElementById('lehrveranstaltung-detail-menulist-lehrform').disabled=val;
document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe').disabled=val;
document.getElementById('lehrveranstaltung-detail-button-save').disabled=val;
document.getElementById('lehrveranstaltung-detail-textbox-unr').disabled=val;
*/
} }
+10 -53
View File
@@ -16,6 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* Authors: Christian Paminger <christian.paminger@technikum-wien.at> * Authors: Christian Paminger <christian.paminger@technikum-wien.at>
* Karl Burkhart <burkhart@technikum-wien.at>
*/ */
header("Cache-Control: no-cache"); header("Cache-Control: no-cache");
@@ -50,9 +51,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</popupset> </popupset>
<toolbox> <toolbox>
<toolbar id="toolbar-bestellung-main"> <toolbar id="toolbar-bestellung-main">
<toolbarbutton id="toolbarbutton-bestellung-neu" label="Neues Projekt" oncommand="ProjektNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neuen Task anlegen" /> <toolbarbutton id="toolbarbutton-bestellung-refresh" label="Aktualisieren" oncommand="BestellungTreeRefresh();" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
<toolbarbutton id="toolbarbutton-bestellung-del" label="Loeschen" oncommand="ProjektDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="Task löschen"/>
<toolbarbutton id="toolbarbutton-bestellung-refresh" label="Aktualisieren" oncommand="ProjektTreeRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
</toolbar> </toolbar>
</toolbox> </toolbox>
@@ -61,43 +60,23 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<!-- ************* --> <!-- ************* -->
<!-- Bem.: style="visibility:collapse" versteckt eine Spalte --> <!-- Bem.: style="visibility:collapse" versteckt eine Spalte -->
<tree id="tree-bestellung" seltype="single" hidecolumnpicker="false" flex="1" <tree id="tree-bestellung" seltype="single" hidecolumnpicker="false" flex="1"
datasources="../../rdf/bestellung.rdf.php?foo=<?php echo time(); ?>" ref="http://www.technikum-wien.at/bestellung" datasources="rdf:null" ref="http://www.technikum-wien.at/bestellung"
style="margin:0px;" enableColumnDrag="true" style="margin:0px;" enableColumnDrag="true"
onselect="onselectProjekt(this);" onselect=""
persist="height" persist="height"
flags="dont-build-content" flags="dont-build-content"
context="bestellung-tree-popup" context="bestellung-tree-popup"
> >
<treecols> <treecols>
<treecol id="treecol-bestellung-bestell_nr" label="Bestellnummer" flex="4" hidden="false" primary="true" persist="hidden, width, ordinal" <treecol id="treecol-bestellung-bestell_nr" label="Bestellnummer" flex="1" hidden="false" primary="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator" class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bestellung/rdf#bestell_nr"/> sort="rdf:http://www.technikum-wien.at/bestellung/rdf#bestell_nr"/>
<splitter class="tree-splitter"/> <splitter class="tree-splitter"/>
<treecol id="treecol-bestellung-titel" label="Titel" flex="4" hidden="false" persist="hidden, width, ordinal" <treecol id="treecol-bestellung-titel" label="Titel" flex="8" hidden="false" persist="hidden, width, ordinal"
class="sortDirectionIndicator" class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bestellung/rdf#titel"/> sort="rdf:http://www.technikum-wien.at/bestellung/rdf#titel"/>
<splitter class="tree-splitter"/> <splitter class="tree-splitter"/>
<treecol id="treecol-bestellung-titel" label="titel" flex="2" hidden="true" persist="hidden, width, ordinal" <treecol id="treecol-bestellung-betrag" label="Betrag" flex="1" hidden="false" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bestellung/rdf#titel"/>
<splitter class="tree-splitter"/>
<treecol id="treecol-bestellung-oe_kurzbz" label="OE (Organisationseinheit)" flex="2" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bestellung/rdf#oe_kurzbz"/>
<splitter class="tree-splitter"/>
<treecol id="treecol-bestellung-beschreibung" label="Beschreibung" flex="5" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bestellung/rdf#beschreibung"/>
<splitter class="tree-splitter"/>
<treecol id="treecol-bestellung-beginn" label="Start" flex="2" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bestellung/rdf#beginn" />
<splitter class="tree-splitter"/>
<treecol id="treecol-bestellung-ende" label="Ende" flex="2" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bestellung/rdf#ende" />
<splitter class="tree-splitter"/>
<treecol id="treecol-bestellung-betrag" label="Betrag" flex="2" hidden="false" persist="hidden, width, ordinal"
class="sortDirectionIndicator" class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bestellung/rdf#betrag" /> sort="rdf:http://www.technikum-wien.at/bestellung/rdf#betrag" />
</treecols> </treecols>
@@ -106,15 +85,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<rule> <rule>
<treechildren> <treechildren>
<treeitem uri="rdf:*"> <treeitem uri="rdf:*">
<treerow dbID="rdf:http://www.technikum-wien.at/bestellung/rdf#bestell_nr" > <treerow>
<treecell label="rdf:http://www.technikum-wien.at/bestellung/rdf#bestell_nr"/> <treecell label="rdf:http://www.technikum-wien.at/bestellung/rdf#bestell_nr"/>
<treecell label="rdf:http://www.technikum-wien.at/bestellung/rdf#titel"/> <treecell label="rdf:http://www.technikum-wien.at/bestellung/rdf#titel"/>
<treecell label="rdf:http://www.technikum-wien.at/bestellung/rdf#titel"/> <treecell label="rdf:http://www.technikum-wien.at/bestellung/rdf#betrag"/>
<treecell label="rdf:http://www.technikum-wien.at/bestellung/rdf#oe_kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/bestellung/rdf#beschreibung"/>
<treecell label="rdf:http://www.technikum-wien.at/bestellung/rdf#beginn"/>
<treecell label="rdf:http://www.technikum-wien.at/bestellung/rdf#ende"/>
<treecell label="rdf:http://www.technikum-wien.at/bestellung/rdf#budget"/>
</treerow> </treerow>
</treeitem> </treeitem>
</treechildren> </treechildren>
@@ -122,26 +96,9 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</template> </template>
</tree> </tree>
<splitter collapse="after" persist="state">
<grippy />
</splitter>
<!-- ************ --> <!-- ************ -->
<!-- * Detail * --> <!-- * Detail * -->
<!-- ************ --> <!-- ************ -->
<vbox flex="1" style="overflow:auto;margin:0px;" persist="height">
<tabbox id="tabbox-bestellung" flex="3" orient="vertical">
<tabs id="tabs-bestellung-main" orient="horizontal">
<tab id="tab-bestellung-detail" label="Details" />
<tab id="tab-bestellung-ressource" label="Ressource" />
<tab id="tab-bestellung-notizen" label="Notizen" />
</tabs>
<tabpanels id="tabpanels-bestellung-main" flex="1">
<vbox id="box-bestellung-detail" />
<vbox id="box-bestellung-ressource" />
<box class="Notiz" id="box-bestellung-notizen"/>
</tabpanels>
</tabbox>
</vbox>
</vbox> </vbox>
</overlay> </overlay>
+34
View File
@@ -285,5 +285,39 @@ class projekt extends basis_db
return false; return false;
} }
} }
public function getProjektFromBestellung($bestellungID)
{
$qry ="select * from fue.tbl_projekt
join wawi.tbl_projekt_bestellung USING (projekt_kurzbz)
where bestellung_id= '".addslashes($bestellungID)."'";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->projekt_kurzbz = $row->projekt_kurzbz;
$this->nummer= $row->nummer;
$this->titel= $row->titel;
$this->beschreibung= $row->beschreibung;
$this->beginn= $row->beginn;
$this->ende = $row->ende;
$this->oe_kurzbz= $row->oe_kurzbz;
$this->budget= $row->budget;
return true;
}
else
{
$this->errormsg = 'Datensatz wurde nicht gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
} }
?> ?>
+63
View File
@@ -971,6 +971,69 @@ class wawi_bestellung extends basis_db
} }
return false; return false;
} }
/**
*
* speichert / loescht ein Projekt zu einer Bestellung
* @param $bestellungID
* @param $projektKurzbz
*/
public function saveProjektToBestellung($bestellungID, $projektKurzbz)
{
// Wenn keine ProjektKurzbz übergeben wurde Lösche die Zuteilung
if($projektKurzbz == '')
{
$qry = "DELETE FROM wawi.tbl_projekt_bestellung WHERE bestellung_id = '".addslashes($bestellungID)."';";
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = "Fehler beim Löschen der Zuordnung: Projekt zu Bestellung aufgetreten.";
return false;
}
}
else
{
$qry1 = "SELECT 1 FROM wawi.tbl_projekt_bestellung WHERE bestellung_id = '".addslashes($bestellungID)."';";
if($this->db_query($qry1))
{
if($row = $this->db_fetch_object())
{
// es gibt eine Zuordnung -> UPDATE
$qry ="UPDATE wawi.tbl_projekt_bestellung SET projekt_kurzbz = '".addslashes($projektKurzbz)."'
WHERE bestellung_id = '".addslashes($bestellungID)."';";
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = "Fehler beim Zuordnen: Bestellung zu Projekt aufgetreten.";
return false;
}
}
else
{
// gibt noch keine Zuordnung -> INSERT
$qry ="INSERT INTO wawi.tbl_projekt_bestellung (projekt_kurzbz, bestellung_id, anteil) VALUES ('".addslashes($projektKurzbz)."', '".addslashes($bestellungID)."', '100');";
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = "Fehler beim Zuordnen: Bestellung zu Projekt aufgetreten.";
return false;
}
}
}
}
}
/** /**
* *
+47 -29
View File
@@ -21,34 +21,52 @@ require_once('../config/vilesci.config.inc.php');
require_once('../include/rdf.class.php'); require_once('../include/rdf.class.php');
require_once('../include/wawi_bestellung.class.php'); require_once('../include/wawi_bestellung.class.php');
$oRdf = new rdf('BESTELLUNG','http://www.technikum-wien.at/bestellung'); if(isset($_GET['projektKurzbz']))
$oRdf->sendHeader(); {
$projektKurzbz = $_GET['projektKurzbz'];
$oBestellung = new wawi_bestellung(); $oRdf = new rdf('BESTELLUNG','http://www.technikum-wien.at/bestellung');
$oBestellung->getBestellungProjekt('lernquadrat'); $oRdf->sendHeader();
foreach ($oBestellung->result as $bestellung) $oBestellung = new wawi_bestellung();
{ $oBestellung->getBestellungProjekt($projektKurzbz);
$i=$oRdf->newObjekt($bestellung->bestellung_id);
$oRdf->obj[$i]->setAttribut('bestellung_id',$bestellung->bestellung_id,false);
$oRdf->obj[$i]->setAttribut('kostenstelle_id',$bestellung->kostenstelle_id,false); foreach ($oBestellung->result as $bestellung)
$oRdf->obj[$i]->setAttribut('konto_id',$bestellung->konto_id,false); {
$oRdf->obj[$i]->setAttribut('lieferadresse',$bestellung->lieferadresse,true); $brutto = $bestellung->getBrutto($bestellung->bestellung_id);
$oRdf->obj[$i]->setAttribut('rechnungsadresse',$bestellung->rechnungsadresse,true); if($brutto == '')
$oRdf->obj[$i]->setAttribut('freigegeben',$bestellung->freigegeben,true); $brutto = '0';
$oRdf->obj[$i]->setAttribut('bestell_nr',$bestellung->bestell_nr,false); else
$oRdf->obj[$i]->setAttribut('titel',$bestellung->titel,true); $brutto = sprintf("%01.2f", $brutto);
$oRdf->obj[$i]->setAttribut('bemerkung',$bestellung->bemerkung,true);
$oRdf->obj[$i]->setAttribut('liefertermin',$bestellung->liefertermin,true);
$oRdf->obj[$i]->setAttribut('besteller_uid',$bestellung->besteller_uid,false); $i=$oRdf->newObjekt($bestellung->bestellung_id);
$oRdf->obj[$i]->setAttribut('updateamum',$bestellung->updateamum,true); $oRdf->obj[$i]->setAttribut('bestellung_id',$bestellung->bestellung_id,false);
$oRdf->obj[$i]->setAttribut('updatevon',$bestellung->updatevon,true); $oRdf->obj[$i]->setAttribut('kostenstelle_id',$bestellung->kostenstelle_id,false);
$oRdf->obj[$i]->setAttribut('insertamum',$bestellung->insertamum,true); $oRdf->obj[$i]->setAttribut('konto_id',$bestellung->konto_id,false);
$oRdf->obj[$i]->setAttribut('insertvon',$bestellung->insertvon,true); $oRdf->obj[$i]->setAttribut('lieferadresse',$bestellung->lieferadresse,true);
$oRdf->obj[$i]->setAttribut('ext_id',$bestellung->ext_id,false); $oRdf->obj[$i]->setAttribut('rechnungsadresse',$bestellung->rechnungsadresse,true);
$oRdf->obj[$i]->setAttribut('zahlungstyp_kurzbz',$bestellung->zahlungstyp_kurzbz,true); $oRdf->obj[$i]->setAttribut('freigegeben',$bestellung->freigegeben,true);
$oRdf->obj[$i]->setAttribut('bestell_nr',$bestellung->bestell_nr,false);
$oRdf->obj[$i]->setAttribut('titel',$bestellung->titel,true);
$oRdf->obj[$i]->setAttribut('bemerkung',$bestellung->bemerkung,true);
$oRdf->obj[$i]->setAttribut('liefertermin',$bestellung->liefertermin,true);
$oRdf->obj[$i]->setAttribut('besteller_uid',$bestellung->besteller_uid,false);
$oRdf->obj[$i]->setAttribut('updateamum',$bestellung->updateamum,true);
$oRdf->obj[$i]->setAttribut('updatevon',$bestellung->updatevon,true);
$oRdf->obj[$i]->setAttribut('insertamum',$bestellung->insertamum,true);
$oRdf->obj[$i]->setAttribut('insertvon',$bestellung->insertvon,true);
$oRdf->obj[$i]->setAttribut('ext_id',$bestellung->ext_id,false);
$oRdf->obj[$i]->setAttribut('betrag',$brutto,false);
$oRdf->obj[$i]->setAttribut('zahlungstyp_kurzbz',$bestellung->zahlungstyp_kurzbz,true);
$oRdf->addSequence($bestellung->bestellung_id);
}
$oRdf->sendRdfText();
}
else
{
echo "Parameter: projektKurzbz";
} }
$oRdf->sendRdfText();
?> ?>
+48 -5
View File
@@ -40,6 +40,7 @@ require_once '../include/wawi_aufteilung.class.php';
require_once '../include/wawi_bestellstatus.class.php'; require_once '../include/wawi_bestellstatus.class.php';
require_once '../include/wawi_zahlungstyp.class.php'; require_once '../include/wawi_zahlungstyp.class.php';
require_once '../include/tags.class.php'; require_once '../include/tags.class.php';
require_once '../include/projekt.class.php';
$aktion =''; $aktion ='';
$test = 0; // Bestelldetail Anzahl $test = 0; // Bestelldetail Anzahl
@@ -53,6 +54,14 @@ $rechte->getBerechtigungen($user);
$kst=new wawi_kostenstelle(); $kst=new wawi_kostenstelle();
$kst->loadArray($rechte->getKostenstelle($berechtigung_kurzbz),'bezeichnung'); $kst->loadArray($rechte->getKostenstelle($berechtigung_kurzbz),'bezeichnung');
$projekt = new projekt();
$projekt->getProjekteMitarbeiter($user);
$projektZugeordnet = false;
// Abfrage ob dem user ein oder mehrere Projekte zugeordnet sind
if(count($projekt->result) > 0)
$projektZugeordnet = true;
if(isset($_POST['getKonto'])) if(isset($_POST['getKonto']))
{ {
$id = $_POST['id']; $id = $_POST['id'];
@@ -885,8 +894,8 @@ if($_GET['method']=='update')
$bestellung_new = new wawi_bestellung(); $bestellung_new = new wawi_bestellung();
$bestellung_new->load($bestellung_id); $bestellung_new->load($bestellung_id);
$bestellung_new_brutto = $bestellung_new->getBrutto($bestellung_id); $bestellung_new_brutto = $bestellung_new->getBrutto($bestellung_id);
$status = new wawi_bestellstatus(); $status = new wawi_bestellstatus();
if(!$rechte->isberechtigt('wawi/bestellung',null, 'sui',$bestellung_old->kostenstelle_id) if(!$rechte->isberechtigt('wawi/bestellung',null, 'sui',$bestellung_old->kostenstelle_id)
&& !$rechte->isberechtigt('wawi/freigabe',null, 's',$bestellung_old->kostenstelle_id) && !$rechte->isberechtigt('wawi/freigabe',null, 's',$bestellung_old->kostenstelle_id)
&& !$rechte->isberechtigt('wawi/freigabe_advanced')) && !$rechte->isberechtigt('wawi/freigabe_advanced'))
@@ -898,6 +907,7 @@ if($_GET['method']=='update')
// überprüfen wenn js fehlschlägt, nicht speichern // überprüfen wenn js fehlschlägt, nicht speichern
if(isset($_POST['filter_kst']) || isset($_POST['titel'])) if(isset($_POST['filter_kst']) || isset($_POST['titel']))
{ {
$aufteilung_anzahl = $_POST['anz_aufteilung']; $aufteilung_anzahl = $_POST['anz_aufteilung'];
$bestellung_detail_anz = $_POST['detail_anz']; $bestellung_detail_anz = $_POST['detail_anz'];
@@ -917,7 +927,13 @@ if($_GET['method']=='update')
$bestellung_new->updatevon = $user; $bestellung_new->updatevon = $user;
$bestellung_new->zahlungstyp_kurzbz = $_POST['filter_zahlungstyp']; $bestellung_new->zahlungstyp_kurzbz = $_POST['filter_zahlungstyp'];
$bestellung_new->kostenstelle_id = $_POST['filter_kst']; $bestellung_new->kostenstelle_id = $_POST['filter_kst'];
if(isset($_POST['filter_projekt']))
{
// Projekt zu Bestellung speichern
$bestellung_new->saveProjektToBestellung($bestellung_new->bestellung_id, $_REQUEST['filter_projekt']);
}
// wenn sich kostenstelle geändert hat, neue bestellnummer generieren // wenn sich kostenstelle geändert hat, neue bestellnummer generieren
if($bestellung_new->kostenstelle_id != $bestellung_old->kostenstelle_id && !$status->isStatiVorhanden($bestellung_id, 'Bestellung') ) if($bestellung_new->kostenstelle_id != $bestellung_old->kostenstelle_id && !$status->isStatiVorhanden($bestellung_id, 'Bestellung') )
{ {
@@ -1381,9 +1397,36 @@ if($_GET['method']=='update')
echo " <td>Firma: </td>\n"; echo " <td>Firma: </td>\n";
echo " <td><input type='text' name='firmenname' id='firmenname' size='60' maxlength='256' value ='".$firma->name."'>\n"; echo " <td><input type='text' name='firmenname' id='firmenname' size='60' maxlength='256' value ='".$firma->name."'>\n";
echo " <input type='hidden' name='firma_id' id='firma_id' size='5' maxlength='7' value ='".$bestellung->firma_id."'></td>\n"; echo " <input type='hidden' name='firma_id' id='firma_id' size='5' maxlength='7' value ='".$bestellung->firma_id."'></td>\n";
echo " <td>Kontaktperson:</td><td colspan='2'> <input type='text' name='besteller' id='besteller' size='30' maxlength='256' value ='".$besteller_vorname.' '.$besteller_nachname."'>\n"; echo " <td>Kontaktperson:</td><td> <input type='text' name='besteller' id='besteller' size='30' maxlength='256' value ='".$besteller_vorname.' '.$besteller_nachname."'>\n";
echo " <input type='hidden' name='besteller_uid' id='besteller_uid' size='5' maxlength='7' value ='".$bestellung->besteller_uid."'></td>\n"; echo " <td>";
// wenn user projekt zugeordnet ist -> Projekt Drop Down anzeigen
$ProjektUser = new projekt();
$ProjektUser->getProjektFromBestellung($bestellung->bestellung_id);
$Bestellung_Projekt = false; // Projekt DropDown aus allen Projekten von eingeloggten User und dem der Bestellung -> true wenn Projekt aus Bestellung in User Projekten enthalten ist
if($projektZugeordnet == true)
{
echo " Projekt:";
echo " <SELECT name='filter_projekt' id='filter_projekt' style='width: 230px;'>\n";
echo " <option value=''>-- Kein Projekt ausgewählt --</option>";
// Projekte vom User
foreach ($projekt->result as $userProjekts)
{
$selected = "";
if($ProjektUser->projekt_kurzbz == $userProjekts->projekt_kurzbz)
{
$selected = 'selected';
$Bestellung_Projekt = true;
}
echo " <option value='".$userProjekts->projekt_kurzbz."' $selected>".$userProjekts->titel."</option>";
}
// Projekt von der Bestellung
if($Bestellung_Projekt == false && $ProjektUser->projekt_kurzbz != '')
echo " <option value='".$ProjektUser->projekt_kurzbz."' selected>".$ProjektUser->titel."</option>";
echo "</select>";
}
echo " <input type='hidden' name='besteller_uid' id='besteller_uid' size='5' maxlength='7' value ='".$bestellung->besteller_uid."'></td>\n";
echo "</td>";
echo "</tr>\n"; echo "</tr>\n";
echo "<tr>\n"; echo "<tr>\n";
$disabled = ''; $disabled = '';