- Cronjobverwaltung

- Anpassung an neue Firmenverwaltung 
- Bugfix Infoterminal, Login ohne Passwort nicht mehr moeglich
This commit is contained in:
Andreas Österreicher
2010-03-18 13:48:16 +00:00
parent 5f1e232ce9
commit d762d00163
62 changed files with 4896 additions and 2152 deletions
+18 -4
View File
@@ -337,15 +337,18 @@ function show(id)
if($row_course_leader->telefonklappe != "")
{
$hauptnummer='';
/*
$qry_standort = "SELECT tbl_firma.telefon as nummer FROM public.tbl_standort, public.tbl_adresse, public.tbl_firma
WHERE standort_kurzbz='".addslashes($row_course_leader->standort_kurzbz)."' AND
tbl_adresse.adresse_id=tbl_standort.adresse_id AND
tbl_adresse.firma_id=tbl_firma.firma_id";
*/
$qry_standort = "SELECT kontakt FROM public.tbl_kontakt WHERE standort_id='".addslashes($row_course_leader->standort_id)."' AND kontakttyp='telefon'";
if($result_standort = $db->db_query($qry_standort))
{
if($row_standort = $db->db_fetch_object($result_standort))
{
$hauptnummer = $row_standort->nummer;
$hauptnummer = $row_standort->kontakt;
}
}
@@ -428,15 +431,18 @@ function show(id)
if($row_course_leader_deputy->telefonklappe != "")
{
$hauptnummer='';
/*
$qry_standort = "SELECT tbl_firma.telefon as nummer FROM public.tbl_standort, public.tbl_adresse, public.tbl_firma
WHERE standort_kurzbz='".addslashes($row_course_leader_deputy->standort_kurzbz)."' AND
tbl_adresse.adresse_id=tbl_standort.adresse_id AND
tbl_adresse.firma_id=tbl_firma.firma_id";
*/
$qry_standort = "SELECT kontakt FROM public.tbl_kontakt WHERE standort_id='".addslashes($row_course_leader_deputy->standort_id)."' AND kontakttyp='telefon'";
if($result_standort = $db->db_query($qry_standort))
{
if($row_standort = $db->db_fetch_object($result_standort))
{
$hauptnummer = $row_standort->nummer;
$hauptnummer = $row_standort->kontakt;
}
}
@@ -514,15 +520,19 @@ function show(id)
if($row_course_leader_deputy->telefonklappe != "")
{
$hauptnummer='';
/*
$qry_standort = "SELECT tbl_firma.telefon as nummer FROM public.tbl_standort, public.tbl_adresse, public.tbl_firma
WHERE standort_kurzbz='".addslashes($row_course_leader_deputy->standort_kurzbz)."' AND
tbl_adresse.adresse_id=tbl_standort.adresse_id AND
tbl_adresse.firma_id=tbl_firma.firma_id";
*/
$qry_standort = "SELECT kontakt FROM public.tbl_kontakt WHERE standort_id='".addslashes($row_course_leader_deputy->standort_id)."' AND kontakttyp='telefon'";
if($result_standort = $db->db_query($qry_standort))
{
if($row_standort = $db->db_fetch_object($result_standort))
{
$hauptnummer = $row_standort->nummer;
$hauptnummer = $row_standort->kontakt;
}
}
@@ -598,15 +608,19 @@ function show(id)
if($row_course_secretary->telefonklappe != "")
{
$hauptnummer='';
/*
$qry_standort = "SELECT tbl_firma.telefon as nummer FROM public.tbl_standort, public.tbl_adresse, public.tbl_firma
WHERE standort_kurzbz='".addslashes($row_course_secretary->standort_kurzbz)."' AND
tbl_adresse.adresse_id=tbl_standort.adresse_id AND
tbl_adresse.firma_id=tbl_firma.firma_id";
*/
$qry_standort = "SELECT kontakt FROM public.tbl_kontakt WHERE standort_id='".addslashes($row_course_secretary->standort_id)."' AND kontakttyp='telefon'";
if($result_standort = $db->db_query($qry_standort))
{
if($row_standort = $db->db_fetch_object($result_standort))
{
$hauptnummer = $row_standort->nummer;
$hauptnummer = $row_standort->kontakt;
}
}
+5 -5
View File
@@ -100,12 +100,12 @@
if($tel != "")
{
$vorwahl = '+43 1 333 40 77-';
if($row->standort_kurzbz!='')
if($row->standort_id!='')
{
$qry = "SELECT telefon FROM public.tbl_standort, public.tbl_adresse, public.tbl_firma WHERE tbl_standort.standort_kurzbz='$row->standort_kurzbz' AND tbl_standort.adresse_id=tbl_adresse.adresse_id AND tbl_adresse.firma_id=tbl_firma.firma_id";
if($result_tel = $db->db_query($qry))
if($row_tel = $db->db_fetch_object($result_tel))
$vorwahl = $row_tel->telefon;
$qry = "SELECT kontakt FROM public.tbl_kontakt WHERE standort_id='$row->standort_id'";
if($result_tel = $db->db_query($qry))
if($row_tel = $db->db_fetch_object($result_tel))
$vorwahl = $row_tel->kontakt;
}
}
}
File diff suppressed because it is too large Load Diff
+3
View File
@@ -157,6 +157,7 @@ else
</row>
<row>
<label value="Firma" control="adresse-menulist-firma"/>
<!--
<menulist id="adresse-menulist-firma"
datasources="<?php echo APP_ROOT ?>rdf/firma.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/firma/liste" >
@@ -168,6 +169,8 @@ else
</menupopup>
</template>
</menulist>
-->
<box class="Firma" id="adresse-menulist-firma" />
</row>
<row>
<label value="Anmerkung" control="adresse-textbox-name"/>
+10
View File
@@ -11,3 +11,13 @@ vbox.StyleBox
{
-moz-binding: url('bindings.xml.php#StyleBox');
}
box.Standort
{
-moz-binding: url('bindings.xml.php#Standort');
}
box.Firma
{
-moz-binding: url('bindings.xml.php#Firma');
}
+447 -2
View File
@@ -19,8 +19,10 @@
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
header("Content-type: application/vnd.mozilla.xul+xml");
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
require_once('../config/vilesci.config.inc.php');
header("Content-type: application/vnd.mozilla.xul+xml");
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
?>
<bindings xmlns="http://www.mozilla.org/xbl"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
@@ -143,4 +145,447 @@
</xul:box>
</content>
</binding>
<!--
Binding fuer die Standortauswahl
Zeigt ein DropDown fuer die Firmen an,
wenn eine Firma ausgewaehlt wird, wird ein DropDown mit den zugehoerigen Standorten angezeigt
-->
<binding id="Standort">
<content>
<xul:hbox flex="1">
<!--<xul:label value="Firma" />-->
<xul:menulist anonid="binding-standort-menulist-firma"
editable="true"
xbl:inherits="disabled"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/firma/liste"
oninput="document.getBindingParent(this).getFirmen();"
oncommand="document.getBindingParent(this).getStandorte();">
<xul:template>
<xul:menupopup>
<xul:menuitem value="rdf:http://www.technikum-wien.at/firma/rdf#firma_id"
label="rdf:http://www.technikum-wien.at/firma/rdf#name"
uri="rdf:*"/>
</xul:menupopup>
</xul:template>
</xul:menulist>
<!--<xul:label value="Standort" />-->
<xul:menulist anonid="binding-standort-menulist-standort"
xbl:inherits="disabled"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/standort/liste">
<xul:template>
<xul:menupopup>
<xul:menuitem value="rdf:http://www.technikum-wien.at/standort/rdf#standort_id"
label="rdf:http://www.technikum-wien.at/standort/rdf#bezeichnung"
firma_id="rdf:http://www.technikum-wien.at/standort/rdf#firma_id"
uri="rdf:*"/>
</xul:menupopup>
</xul:template>
</xul:menulist>
</xul:hbox>
</content>
<implementation>
<field name="firmentyp" />
<field name="autoload" />
<property name="value" onget="return document.getAnonymousElementByAttribute(this ,'anonid', 'binding-standort-menulist-standort').value" >
<setter>
<![CDATA[
//Standort DropDown mit standorten dieser Firma laden
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
menuliststandort = document.getAnonymousElementByAttribute(this ,'anonid', 'binding-standort-menulist-standort');
menulistfirma = document.getAnonymousElementByAttribute(this ,'anonid', 'binding-standort-menulist-firma');
if(val!='')
{
var url = '<?php echo APP_ROOT; ?>rdf/standort.rdf.php?standort_id_all='+val+'&'+gettimestamp();
var oldDatasources = menuliststandort.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
menuliststandort.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menuliststandort.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSourceBlocking(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menuliststandort.database.AddDataSource(datasource);
menuliststandort.builder.rebuild();
//Standort markieren
menuliststandort.selectedIndex=0;
//Firmen Drop Down laden
var children = menuliststandort.getElementsByAttribute('selected','true');
if(children.length>0)
v = children[0].getAttribute('firma_id');
else
return false;
typ=this.getAttribute('firmentyp');
var url = '<?php echo APP_ROOT; ?>rdf/firma.rdf.php?firma_id='+encodeURIComponent(v);
if(typ!='')
url = url+'&firmentyp_kurzbz='+encodeURIComponent(typ);
url = url+'&optional=true&'+gettimestamp()
var oldDatasources = menulistfirma.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
menulistfirma.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menulistfirma.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSourceBlocking(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menulistfirma.database.AddDataSource(datasource);
menulistfirma.builder.rebuild();
//Firma markieren
menulistfirma.selectedIndex=1;
}
else
{
menulistfirma.selectedIndex=-1;
menuliststandort.selectedIndex=-1;
menulistfirma.value='';
}
]]>
</setter>
</property>
<property name="disabled" onget="return document.getAnonymousElementByAttribute(this ,'anonid', 'binding-standort-menulist-firma').disabled" >
<setter>
<![CDATA[
document.getAnonymousElementByAttribute(this ,'anonid', 'binding-standort-menulist-firma').disabled = val;
document.getAnonymousElementByAttribute(this ,'anonid', 'binding-standort-menulist-standort').disabled = val;
if(!val)
{
autoload = this.getAttribute('autoload');
if(autoload)
{
//alert('autoload');
this.getAllFirmen();
}
}
]]>
</setter>
</property>
<method name="getFirmen">
<body>
<![CDATA[
// Setzt das Drop Down fuer die Firmen
//Set Source RDF
menulist = document.getAnonymousElementByAttribute(this ,'anonid', 'binding-standort-menulist-firma');
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
v = menulist.value;
typ=this.getAttribute('firmentyp');
if(v.length>2)
{
var url = '<?php echo APP_ROOT; ?>rdf/firma.rdf.php?filter='+encodeURIComponent(v);
if(typ!='')
url = url+'&firmentyp_kurzbz='+encodeURIComponent(typ);
url = url+'&optional=true&'+gettimestamp()
//alert(url);
var oldDatasources = menulist.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
menulist.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menulist.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSource(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menulist.database.AddDataSource(datasource);
menulist.builder.rebuild();
}
]]>
</body>
</method>
<method name="getStandorte">
<body>
<![CDATA[
//Setzt das DropDown fuer die Standorte
//Set Source RDF
menulist = document.getAnonymousElementByAttribute(this ,'anonid', 'binding-standort-menulist-standort');
menulistfirma = document.getAnonymousElementByAttribute(this ,'anonid', 'binding-standort-menulist-firma');
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var children = menulistfirma.getElementsByAttribute('selected','true');
if(children.length>0)
v = children[0].value;
else
return false;
if(v!='')
{
var url = '<?php echo APP_ROOT; ?>rdf/standort.rdf.php?firma_id='+v+'&'+gettimestamp();
var oldDatasources = menulist.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
menulist.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menulist.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSourceBlocking(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menulist.database.AddDataSource(datasource);
menulist.builder.rebuild();
menulist.selectedIndex=0;
menulist.disabled=false;
}
else
{
var oldDatasources = menulist.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
menulist.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menulist.builder.rebuild();
menulist.value='';
menulist.selectdIndex=-1;
}
]]>
</body>
</method>
<method name="getAllFirmen">
<body>
<![CDATA[
//alert('Load');
// Setzt das Drop Down fuer die Firmen
//Set Source RDF
menulist = document.getAnonymousElementByAttribute(this ,'anonid', 'binding-standort-menulist-firma');
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
v = menulist.value;
typ=this.getAttribute('firmentyp');
var url = '<?php echo APP_ROOT; ?>rdf/firma.rdf.php?firmentyp_kurzbz='+encodeURIComponent(typ);
url = url+'&optional=true&'+gettimestamp()
//alert(url);
var oldDatasources = menulist.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
menulist.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menulist.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSourceBlocking(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menulist.database.AddDataSource(datasource);
menulist.builder.rebuild();
]]>
</body>
</method>
</implementation>
<handlers>
</handlers>
</binding>
<!--
Binding fuer die Firmenauswahl
Zeigt ein DropDown fuer die Firmen an
-->
<binding id="Firma">
<content>
<xul:hbox flex="1">
<xul:menulist anonid="binding-firma-menulist-firma"
editable="true"
xbl:inherits="disabled"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/firma/liste"
oninput="document.getBindingParent(this).getFirmen();">
<xul:template>
<xul:menupopup>
<xul:menuitem value="rdf:http://www.technikum-wien.at/firma/rdf#firma_id"
label="rdf:http://www.technikum-wien.at/firma/rdf#name"
uri="rdf:*"/>
</xul:menupopup>
</xul:template>
</xul:menulist>
</xul:hbox>
</content>
<implementation>
<field name="firmentyp" />
<field name="autoload" />
<property name="value">
<getter>
<![CDATA[
menulistfirma = document.getAnonymousElementByAttribute(this ,'anonid', 'binding-firma-menulist-firma');
var children = menulistfirma.getElementsByAttribute('selected','true');
if(children.length>0)
return children[0].value;
else
return '';
]]>
</getter>
<setter>
<![CDATA[
v = val;
menulistfirma=document.getAnonymousElementByAttribute(this ,'anonid', 'binding-firma-menulist-firma');
if(v!='')
{
typ=this.getAttribute('firmentyp');
var url = '<?php echo APP_ROOT; ?>rdf/firma.rdf.php?firma_id='+encodeURIComponent(v);
if(typ!='')
url = url+'&firmentyp_kurzbz='+encodeURIComponent(typ);
url = url+'&optional=true&'+gettimestamp()
var oldDatasources = menulistfirma.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
menulistfirma.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menulistfirma.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSourceBlocking(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menulistfirma.database.AddDataSource(datasource);
menulistfirma.builder.rebuild();
//Firma markieren
menulistfirma.selectedIndex=1;
}
else
{
menulistfirma.selectedIndex=-1;
menulistfirma.value='';
}
]]>
</setter>
</property>
<property name="disabled" onget="return document.getAnonymousElementByAttribute(this ,'anonid', 'binding-standort-menulist-firma').disabled" >
<setter>
<![CDATA[
document.getAnonymousElementByAttribute(this ,'anonid', 'binding-firma-menulist-firma').disabled = val;
if(!val)
{
autoload = this.getAttribute('autoload');
if(autoload)
{
this.getAllFirmen();
}
}
]]>
</setter>
</property>
<method name="getFirmen">
<body>
<![CDATA[
// Setzt das Drop Down fuer die Firmen
//Set Source RDF
menulist = document.getAnonymousElementByAttribute(this ,'anonid', 'binding-firma-menulist-firma');
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
v = menulist.value;
typ=this.getAttribute('firmentyp');
if(v.length>2)
{
var url = '<?php echo APP_ROOT; ?>rdf/firma.rdf.php?filter='+encodeURIComponent(v);
if(typ!='')
url = url+'&firmentyp_kurzbz='+encodeURIComponent(typ);
url = url+'&optional=true&'+gettimestamp()
//alert(url);
var oldDatasources = menulist.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
menulist.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menulist.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSource(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menulist.database.AddDataSource(datasource);
menulist.builder.rebuild();
}
]]>
</body>
</method>
<method name="getAllFirmen">
<body>
<![CDATA[
//alert('Load');
// Setzt das Drop Down fuer die Firmen
//Set Source RDF
menulist = document.getAnonymousElementByAttribute(this ,'anonid', 'binding-firma-menulist-firma');
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
v = menulist.value;
typ=this.getAttribute('firmentyp');
var url = '<?php echo APP_ROOT; ?>rdf/firma.rdf.php?firmentyp_kurzbz='+encodeURIComponent(typ);
url = url+'&optional=true&'+gettimestamp()
//alert(url);
var oldDatasources = menulist.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
menulist.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menulist.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSourceBlocking(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menulist.database.AddDataSource(datasource);
menulist.builder.rebuild();
]]>
</body>
</method>
</implementation>
<handlers>
</handlers>
</binding>
</bindings>
+1 -1
View File
@@ -235,7 +235,7 @@ if(!$error)
$kontakt->kontakt = $_POST['kontakt'];
$kontakt->kontakttyp = $_POST['typ'];
$kontakt->zustellung = ($_POST['zustellung']=='true'?true:false);
$kontakt->firma_id = $_POST['firma_id'];
$kontakt->standort_id = $_POST['standort_id'];
$kontakt->updateamum = date('Y-m-d H:i:s');
$kontakt->updatevon = $user;
+2 -2
View File
@@ -467,7 +467,7 @@ function KontaktKontaktSpeichern(dialog)
kontakt = dialog.getElementById('kontakt-textbox-kontakt').value;
zustellung = dialog.getElementById('kontakt-checkbox-zustellung').checked;
typ = dialog.getElementById('kontakt-menulist-typ').value;
firma_id = dialog.getElementById('kontakt-menulist-firma').value;
standort_id = dialog.getElementById('kontakt-menulist-firma').value;
//Bei Mitarbeitern wird kein Studiengang mitgeschickt
if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter'))
@@ -488,7 +488,7 @@ function KontaktKontaktSpeichern(dialog)
req.add('kontakt', kontakt);
req.add('typ', typ);
req.add('zustellung', zustellung);
req.add('firma_id', firma_id);
req.add('standort_id', standort_id);
req.add('studiengang_kz', studiengang_kz);
var response = req.executePOST();
+3 -3
View File
@@ -54,7 +54,7 @@ function KontaktInit(kontakt_id, person_id)
anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
kontakt = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#kontakt" ));
zustellung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zustellung" ));
firma_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#firma_id" ));
standort_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#standort_id" ));
typ = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#kontakttyp" ));
neu = false;
}
@@ -65,7 +65,7 @@ function KontaktInit(kontakt_id, person_id)
anmerkung='';
kontakt='';
zustellung='Ja';
firma_id='';
standort_id='';
typ='email';
}
@@ -75,7 +75,7 @@ function KontaktInit(kontakt_id, person_id)
document.getElementById('kontakt-textbox-anmerkung').value=anmerkung;
document.getElementById('kontakt-textbox-kontakt').value=kontakt;
document.getElementById('kontakt-menulist-typ').value=typ;
document.getElementById('kontakt-menulist-firma').value=firma_id;
document.getElementById('kontakt-menulist-firma').value=standort_id;
if(zustellung=='Ja')
document.getElementById('kontakt-checkbox-zustellung').checked=true;
+4 -2
View File
@@ -93,8 +93,8 @@ else
</row>
<row>
<label value="Firma" control="kontakt-menulist-firma"/>
<menulist id="kontakt-menulist-firma"
<label value="Firma / Standort" control="kontakt-menulist-firma"/>
<!--<menulist id="kontakt-menulist-firma"
datasources="<?php echo APP_ROOT ?>rdf/firma.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/firma/liste" >
<template>
@@ -105,6 +105,8 @@ else
</menupopup>
</template>
</menulist>
-->
<box class="Standort" id="kontakt-menulist-firma" />
</row>
</rows>
</grid>
+1 -1
View File
@@ -100,7 +100,7 @@ if(!$error)
$mitarbeiter->ausbildungcode = $_POST['ausbildung'];
$mitarbeiter->anmerkung = $_POST['anmerkung'];
$mitarbeiter->ort_kurzbz = $_POST['ort_kurzbz'];
$mitarbeiter->standort_kurzbz = $_POST['standort_kurzbz'];
$mitarbeiter->standort_id = $_POST['standort_id'];
$mitarbeiter->alias = $_POST['alias'];
$mitarbeiter->updateamum = date('Y-m-d H:i:s');
$mitarbeiter->updatevon = $user;
@@ -234,16 +234,15 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</menulist>
<spacer flex="1"/>
</vbox>
<label align="end" control="mitarbeiter-detail-menulist-standort" value="Standort"/>
<vbox>
<menulist id="mitarbeiter-detail-menulist-standort" disabled="true"
datasources="<?php echo APP_ROOT; ?>rdf/standort.rdf.php?optional=true"
datasources="<?php echo APP_ROOT; ?>rdf/standort.rdf.php?optional=true&amp;firmentyp_kurzbz=Intern"
ref="http://www.technikum-wien.at/standort/liste" oncommand="MitarbeiterDetailValueChange()">
<template>
<menupopup>
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/standort/rdf#bezeichnung"
value="rdf:http://www.technikum-wien.at/standort/rdf#standort_kurzbz"/>
value="rdf:http://www.technikum-wien.at/standort/rdf#standort_id"/>
</menupopup>
</template>
</menulist>
@@ -524,7 +524,7 @@ function MitarbeiterAuswahl()
ausbildung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ausbildung" ));
anmerkung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
ort_kurzbz=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ort_kurzbz" ));
standort_kurzbz=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#standort_kurzbz" ));
standort_id=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#standort_id" ));
alias=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#alias" ));
urlaubstageprojahr=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#urlaubstageprojahr" ));
resturlaubstage=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#resturlaubstage" ));
@@ -582,7 +582,7 @@ function MitarbeiterAuswahl()
document.getElementById('mitarbeiter-detail-menulist-ausbildung').value=ausbildung;
document.getElementById('mitarbeiter-detail-textbox-mitarbeiteranmerkung').value=anmerkung;
document.getElementById('mitarbeiter-detail-menulist-ort_kurzbz').value=ort_kurzbz;
document.getElementById('mitarbeiter-detail-menulist-standort').value=standort_kurzbz;
document.getElementById('mitarbeiter-detail-menulist-standort').value=standort_id;
document.getElementById('mitarbeiter-detail-textbox-alias').value=alias;
document.getElementById('mitarbeiter-detail-textbox-urlaubsanspruch').value=urlaubstageprojahr;
document.getElementById('mitarbeiter-detail-textbox-resturlaubstage').value=resturlaubstage;
@@ -771,7 +771,7 @@ function MitarbeiterSave()
ausbildung = document.getElementById('mitarbeiter-detail-menulist-ausbildung').value;
anmerkung = document.getElementById('mitarbeiter-detail-textbox-mitarbeiteranmerkung').value;
ort_kurzbz = document.getElementById('mitarbeiter-detail-menulist-ort_kurzbz').value;
standort_kurzbz = document.getElementById('mitarbeiter-detail-menulist-standort').value;
standort_id = document.getElementById('mitarbeiter-detail-menulist-standort').value;
alias = document.getElementById('mitarbeiter-detail-textbox-alias').value;
urlaubsanspruch = document.getElementById('mitarbeiter-detail-textbox-urlaubsanspruch').value;
@@ -818,7 +818,7 @@ function MitarbeiterSave()
req.add('ausbildung', ausbildung);
req.add('anmerkung', anmerkung);
req.add('ort_kurzbz', ort_kurzbz);
req.add('standort_kurzbz', standort_kurzbz);
req.add('standort_id', standort_id);
req.add('alias', alias);
req.add('urlaubsanspruch', urlaubsanspruch);
req.add('resturlaubstage', resturlaubstage);
@@ -185,6 +185,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</row>
<row>
<label value="Firma" control="student-projektarbeit-menulist-firma"/>
<box class="Firma" id="student-projektarbeit-menulist-firma" />
<!--
<hbox>
<menulist id="student-projektarbeit-menulist-firma" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/firma.rdf.php?optional=true" flex="1"
@@ -199,6 +201,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</menulist>
<toolbarbutton id="student-projektarbeit-button-firma-refresh" image="../skin/images/refresh.png" tooltiptext="Liste neu laden" onclick="StudentProjektarbeitFirmaRefresh()"/>
</hbox>
-->
</row>
<row>
<label value="Lehrveranstaltung" control="student-projektarbeit-menulist-lehrveranstaltung"/>
+145 -315
View File
@@ -29,19 +29,12 @@ require_once(dirname(__FILE__).'/basis_db.class.php');
class betriebsmittel extends basis_db
{
public $schema_inventar='wawi';
# private $schema_inventar='public';
public $schema_wawi='public';
public $default_afa_jahre=5;
public $debug=false; // boolean
public $new; // boolean
public $result;
//Tabellenspalten
public $betriebsmittel_id; // integer
public $betriebsmitteltyp; // string
@@ -54,7 +47,6 @@ class betriebsmittel extends basis_db
public $insertvon; // string
public $updateamum; // timestamp
public $updatevon; // string
// Neu wegen Inventar seq 2009-12
public $beschreibung; // string
public $oe_kurzbz; // string
public $hersteller; // string
@@ -62,9 +54,7 @@ class betriebsmittel extends basis_db
public $seriennummer; // string
public $bestellung_id; // integer
public $bestelldetail_id; // integer
public $afa; // string
public $verwendung; // string
public $anmerkung; // string
public $leasing_bis; // date
@@ -99,13 +89,12 @@ class betriebsmittel extends basis_db
return false;
}
$qry = "SELECT * FROM ".$this->schema_inventar.".tbl_betriebsmittel WHERE betriebsmittel_id='".addslashes($betriebsmittel_id)."'";
$qry = "SELECT * FROM wawi.tbl_betriebsmittel WHERE betriebsmittel_id='".addslashes($betriebsmittel_id)."'";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->betriebsmittel_id = $row->betriebsmittel_id;
$this->beschreibung = $row->beschreibung;
$this->betriebsmitteltyp = $row->betriebsmitteltyp;
@@ -118,20 +107,19 @@ class betriebsmittel extends basis_db
$this->insertvon = $row->insertvon;
$this->insertamum = $row->insertamum;
$this->ext_id = $row->ext_id;
// Neu wegen Inventar seq 2009-12
$this->beschreibung = $row->beschreibung; // string
$this->oe_kurzbz = $row->oe_kurzbz; // string
$this->hersteller = $row->hersteller; // string
$this->seriennummer = $row->seriennummer; // string
$this->bestellung_id = $row->bestellung_id; // integer
$this->bestelldetail_id = $row->bestelldetail_id; // integer
$this->afa = $row->afa; // string
$this->verwendung = $row->verwendung; // string
$this->anmerkung = $row->anmerkung; // string
$this->beschreibung = $row->beschreibung;
$this->oe_kurzbz = $row->oe_kurzbz;
$this->hersteller = $row->hersteller;
$this->seriennummer = $row->seriennummer;
$this->bestellung_id = $row->bestellung_id;
$this->bestelldetail_id = $row->bestelldetail_id;
$this->afa = $row->afa;
$this->verwendung = $row->verwendung;
$this->anmerkung = $row->anmerkung;
$this->leasing_bis = $row->leasing_bis;
$this->leasing_bis = $row->leasing_bis; // string
return $this->result=$row;
//return $this->result=$row;
return true;
}
else
{
@@ -176,30 +164,30 @@ class betriebsmittel extends basis_db
if($new)
{
//Neuen Datensatz einfuegen
$qry='INSERT INTO '.$this->schema_inventar.'.tbl_betriebsmittel (beschreibung, betriebsmitteltyp, nummer
$qry='INSERT INTO wawi.tbl_betriebsmittel (beschreibung, betriebsmitteltyp, nummer
, nummerintern, reservieren, ort_kurzbz
,ext_id, insertamum, insertvon, updateamum, updatevon,oe_kurzbz,hersteller,seriennummer
,bestellung_id,bestelldetail_id,afa,verwendung,anmerkung,leasing_bis) VALUES('.
$this->addslashes($this->beschreibung).', '.
$this->addslashes($this->betriebsmitteltyp).', '.
$this->addslashes($this->nummer).', '.
$this->addslashes($this->nummerintern).', '.
($this->reservieren?'true':'false').', '.
$this->addslashes($this->ort_kurzbz).', '.
$this->addslashes($this->ext_id).', '.
($this->insertamum?$this->addslashes($this->insertamum):'now()').', '.
$this->addslashes($this->insertvon).', '.
$this->addslashes($this->beschreibung).', '.
$this->addslashes($this->betriebsmitteltyp).', '.
$this->addslashes($this->nummer).', '.
$this->addslashes($this->nummerintern).', '.
($this->reservieren?'true':'false').', '.
$this->addslashes($this->ort_kurzbz).', '.
$this->addslashes($this->ext_id).', '.
($this->insertamum?$this->addslashes($this->insertamum):'now()').', '.
$this->addslashes($this->insertvon).', '.
($this->updateamum?$this->addslashes($this->updateamum):'now()').', '.
$this->addslashes((empty($this->updatevon)?$this->updatevon:$this->insertvon)).', '.
$this->addslashes($this->oe_kurzbz).', '.
$this->addslashes($this->hersteller).', '.
$this->addslashes($this->seriennummer).', '.
$this->addslashes($this->bestellung_id).', '.
$this->addslashes($this->bestelldetail_id).', '.
$this->addslashes($this->afa).', '.
$this->addslashes($this->verwendung).', '.
$this->addslashes($this->anmerkung) .', '.
($this->leasing_bis?$this->addslashes($this->leasing_bis):'null') .');' ;
$this->addslashes((empty($this->updatevon)?$this->updatevon:$this->insertvon)).', '.
$this->addslashes($this->oe_kurzbz).', '.
$this->addslashes($this->hersteller).', '.
$this->addslashes($this->seriennummer).', '.
$this->addslashes($this->bestellung_id).', '.
$this->addslashes($this->bestelldetail_id).', '.
$this->addslashes($this->afa).', '.
$this->addslashes($this->verwendung).', '.
$this->addslashes($this->anmerkung) .', '.
($this->leasing_bis?$this->addslashes($this->leasing_bis):'null') .');' ;
}
else
@@ -210,7 +198,7 @@ class betriebsmittel extends basis_db
return false;
}
$qry='UPDATE '.$this->schema_inventar.'.tbl_betriebsmittel SET '.
$qry='UPDATE wawi.tbl_betriebsmittel SET '.
'betriebsmitteltyp='.$this->addslashes($this->betriebsmitteltyp).', '.
'beschreibung='.$this->addslashes($this->beschreibung).', '.
'nummer='.$this->addslashes($this->nummer).', '.
@@ -220,7 +208,6 @@ class betriebsmittel extends basis_db
'ext_id='.$this->addslashes($this->ext_id).', '.
'updateamum='.($this->updateamum?$this->addslashes($this->updateamum):'now()').', '.
'updatevon='.$this->addslashes($this->updatevon).', '.
// Neu wegen Inventar seq 2009-12
'oe_kurzbz='.$this->addslashes($this->oe_kurzbz).', '.
'hersteller='.$this->addslashes($this->hersteller).', '.
'seriennummer='.$this->addslashes($this->seriennummer).', '.
@@ -232,12 +219,12 @@ class betriebsmittel extends basis_db
'leasing_bis='.($this->leasing_bis?$this->addslashes($this->leasing_bis):'null').' '.
'WHERE betriebsmittel_id='.$this->addslashes($this->betriebsmittel_id).';';
}
##echo $qry;
if($this->db_query($qry))
{
if($new)
{
$qry = "SELECT currval('".$this->schema_inventar.".tbl_betriebsmittel_betriebsmittel_id_seq') as id;";
$qry = "SELECT currval('wawi.tbl_betriebsmittel_betriebsmittel_id_seq') as id;";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
@@ -264,6 +251,7 @@ class betriebsmittel extends basis_db
return false;
}
}
/**
* Loescht den Datenensatz mit der ID die uebergeben wird
* @param $betriebsmittel_id ID die geloescht werden soll
@@ -276,7 +264,7 @@ class betriebsmittel extends basis_db
$this->errormsg = 'Betriebsmittel_id ist ungueltig';
return false;
}
$qry = "DELETE FROM ".$this->schema_inventar.".tbl_betriebsmittel WHERE betriebsmittel_id='".addslashes($betriebsmittel_id)."'";
$qry = "DELETE FROM wawi.tbl_betriebsmittel WHERE betriebsmittel_id='".addslashes($betriebsmittel_id)."'";
if($this->db_query($qry))
return true;
else
@@ -299,11 +287,10 @@ class betriebsmittel extends basis_db
$this->result=array();
$this->errormsg = '';
$qry = '';
$qry.= 'SELECT * ';
$qry.= ' FROM '.$this->schema_inventar.'.tbl_betriebsmittel ';
$qry= 'SELECT * ';
$qry.= ' FROM wawi.tbl_betriebsmittel ';
$qry.= " WHERE betriebsmitteltyp='".addslashes($betriebsmitteltyp)."' AND nummer='".addslashes($nummer)."'";
$qry.= " ORDER BY updateamum DESC";
$qry.= ' ORDER BY updateamum DESC';
if($this->db_query($qry))
{
@@ -322,17 +309,16 @@ class betriebsmittel extends basis_db
$bm->updatevon = $row->updatevon;
$bm->insertamum = $row->insertamum;
$bm->insertvon = $row->insertvon;
// Neu wegen Inventar seq 2009-12
$bm->beschreibung = $row->beschreibung; // string
$bm->oe_kurzbz = $row->oe_kurzbz; // string
$bm->hersteller = $row->hersteller; // string
$bm->seriennummer = $row->seriennummer; // string
$bm->bestellung_id = $row->bestellung_id; // integer
$bm->bestelldetail_id = $row->bestelldetail_id; // integer
$bm->afa = $row->afa; // string
$bm->verwendung = $row->verwendung; // string
$bm->anmerkung = $row->anmerkung; // string
$bm->leasing_bis = $row->leasing_bis; // date
$bm->beschreibung = $row->beschreibung;
$bm->oe_kurzbz = $row->oe_kurzbz;
$bm->hersteller = $row->hersteller;
$bm->seriennummer = $row->seriennummer;
$bm->bestellung_id = $row->bestellung_id;
$bm->bestelldetail_id = $row->bestelldetail_id;
$bm->afa = $row->afa;
$bm->verwendung = $row->verwendung;
$bm->anmerkung = $row->anmerkung;
$bm->leasing_bis = $row->leasing_bis;
$this->result[] = $bm;
}
@@ -356,10 +342,7 @@ class betriebsmittel extends basis_db
$this->result=array();
$this->errormsg = '';
$qry = '';
$qry.= 'SELECT * ';
$qry.= ' FROM '.$this->schema_inventar.'.tbl_betriebsmittel ';
$qry.= " ORDER BY nummer";
$qry= 'SELECT * FROM wawi.tbl_betriebsmittel ORDER BY nummer';
if($this->db_query($qry))
{
@@ -378,16 +361,15 @@ class betriebsmittel extends basis_db
$bm->updatevon = $row->updatevon;
$bm->insertamum = $row->insertamum;
$bm->insertvon = $row->insertvon;
// Neu wegen Inventar seq 2009-12
$bm->oe_kurzbz = $row->oe_kurzbz; // string
$bm->hersteller = $row->hersteller; // string
$bm->seriennummer = $row->seriennummer; // string
$bm->bestellung_id = $row->bestellung_id; // integer
$bm->bestelldetail_id = $row->bestelldetail_id; // integer
$bm->afa = $row->afa; // string
$bm->verwendung = $row->verwendung; // string
$bm->anmerkung = $row->anmerkung; // string
$bm->leasing_bis = $row->leasing_bis; // date
$bm->oe_kurzbz = $row->oe_kurzbz;
$bm->hersteller = $row->hersteller;
$bm->seriennummer = $row->seriennummer;
$bm->bestellung_id = $row->bestellung_id;
$bm->bestelldetail_id = $row->bestelldetail_id;
$bm->afa = $row->afa;
$bm->verwendung = $row->verwendung;
$bm->anmerkung = $row->anmerkung;
$bm->leasing_bis = $row->leasing_bis;
$this->result[] = $bm;
}
return true;
@@ -399,11 +381,6 @@ class betriebsmittel extends basis_db
}
}
// ------------------------------------------------------------------------------------------
// Inventardaten lesen
// ------------------------------------------------------------------------------------------
/**
* Laedt das Betriebsmittel mit der Nummer des Betriebsmittels $nummer
* @param $nummer Nummer des zu ladenden Betriebsmittel
@@ -415,10 +392,7 @@ class betriebsmittel extends basis_db
$this->result=array();
$this->errormsg = '';
$qry='';
$qry.=' select * ';
$qry.=' from '.$this->schema_inventar.'.tbl_betriebsmittel ';
$qry.=' where nummer='.$this->addslashes($nummer);
$qry=' SELECT * FROM wawi.tbl_betriebsmittel WHERE nummer='.$this->addslashes($nummer);
if($this->db_query($qry))
{
@@ -436,17 +410,17 @@ class betriebsmittel extends basis_db
$this->insertvon = $row->insertvon;
$this->insertamum = $row->insertamum;
$this->ext_id = $row->ext_id;
// Neu wegen Inventar seq 2009-12
$this->beschreibung = $row->beschreibung; // string
$this->oe_kurzbz = $row->oe_kurzbz; // string
$this->hersteller = $row->hersteller; // string
$this->seriennummer = $row->seriennummer; // string
$this->bestellung_id = $row->bestellung_id; // integer
$this->bestelldetail_id = $row->bestelldetail_id; // integer
$this->afa = $row->afa; // string
$this->verwendung = $row->verwendung; // string
$this->anmerkung = $row->anmerkung; // string
$this->leasing_bis = $row->leasing_bis; // date
$this->beschreibung = $row->beschreibung;
$this->oe_kurzbz = $row->oe_kurzbz;
$this->hersteller = $row->hersteller;
$this->seriennummer = $row->seriennummer;
$this->bestellung_id = $row->bestellung_id;
$this->bestelldetail_id = $row->bestelldetail_id;
$this->afa = $row->afa;
$this->verwendung = $row->verwendung;
$this->anmerkung = $row->anmerkung;
$this->leasing_bis = $row->leasing_bis;
return $this->result=$row;
}
else
@@ -477,7 +451,8 @@ class betriebsmittel extends basis_db
return false;
}
$qry = "SELECT * FROM ".$this->schema_inventar.".tbl_betriebsmittel WHERE betriebsmittel_id='".addslashes($betriebsmittel_id)."'";
$qry = "SELECT * FROM wawi.tbl_betriebsmittel WHERE betriebsmittel_id='".addslashes($betriebsmittel_id)."'";
if($res=$this->db_query($qry))
{
if($row = $this->db_fetch_object($res))
@@ -494,27 +469,26 @@ class betriebsmittel extends basis_db
$this->insertvon = $row->insertvon;
$this->insertamum = $row->insertamum;
$this->ext_id = $row->ext_id;
// Neu wegen Inventar seq 2009-12
$this->beschreibung = $row->beschreibung; // string
$this->hersteller = $row->hersteller; // string
$this->seriennummer = $row->seriennummer; // string
$this->bestellung_id = $row->bestellung_id; // integer
$this->bestelldetail_id = $row->bestelldetail_id; // integer
$this->afa = $row->afa; // string
$this->verwendung = $row->verwendung; // string
$this->anmerkung = $row->anmerkung; // string
$this->leasing_bis = $row->leasing_bis; // string
$this->oe_kurzbz = trim($row->oe_kurzbz); // string
$this->beschreibung = $row->beschreibung;
$this->hersteller = $row->hersteller;
$this->seriennummer = $row->seriennummer;
$this->bestellung_id = $row->bestellung_id;
$this->bestelldetail_id = $row->bestelldetail_id;
$this->afa = $row->afa;
$this->verwendung = $row->verwendung;
$this->anmerkung = $row->anmerkung;
$this->leasing_bis = $row->leasing_bis;
$this->oe_kurzbz = trim($row->oe_kurzbz);
if (empty($this->oe_kurzbz))
{
$qry="SELECT uid ";
$qry.=" FROM ".$this->schema_inventar.".tbl_betriebsmittel ";
$qry.=" JOIN ".$this->schema_inventar.".tbl_betriebsmittelperson USING(betriebsmittel_id) ";
$qry.=" FROM wawi.tbl_betriebsmittel ";
$qry.=" JOIN wawi.tbl_betriebsmittelperson USING(betriebsmittel_id) ";
$qry.=" JOIN campus.vw_benutzer USING(person_id) ";
$qry.=" WHERE tbl_betriebsmittel.betriebsmittel_id='".addslashes($this->betriebsmittel_id)."' ";
$qry.=" order by retouram asc limit 1 ";
$qry.=" ORDER BY retouram asc limit 1 ";
$qry1 = "SELECT
*, tbl_benutzerfunktion.oe_kurzbz as oe_kurzbz, tbl_organisationseinheit.bezeichnung as oe_bezeichnung,
@@ -566,12 +540,10 @@ class betriebsmittel extends basis_db
$this->result=array();
$this->errormsg = '';
$qry='';
$qry.=' select * ';
$qry.=' from '.$this->schema_inventar.'.tbl_betriebsmittel ';
$qry.=' where bestellung_id='.$this->addslashes($bestellung_id);
$qry='SELECT * FROM wawi.tbl_betriebsmittel WHERE bestellung_id='.$this->addslashes($bestellung_id);
if (!is_null($bestelldetail_id) && !empty($bestelldetail_id) && is_numeric($bestelldetail_id) )
$qry.=' and bestelldetail_id='.$this->addslashes($bestelldetail_id);
$qry.=' AND bestelldetail_id='.$this->addslashes($bestelldetail_id);
if($this->db_query($qry))
{
@@ -589,17 +561,17 @@ class betriebsmittel extends basis_db
$this->insertvon = $row->insertvon;
$this->insertamum = $row->insertamum;
$this->ext_id = $row->ext_id;
// Neu wegen Inventar seq 2009-12
$this->beschreibung = $row->beschreibung; // string
$this->oe_kurzbz = $row->oe_kurzbz; // string
$this->hersteller = $row->hersteller; // string
$this->seriennummer = $row->seriennummer; // string
$this->bestellung_id = $row->bestellung_id; // integer
$this->bestelldetail_id = $row->bestelldetail_id; // integer
$this->afa = $row->afa; // string
$this->verwendung = $row->verwendung; // string
$this->anmerkung = $row->anmerkung; // string
$this->leasing_bis = $row->leasing_bis; // date
$this->beschreibung = $row->beschreibung;
$this->oe_kurzbz = $row->oe_kurzbz;
$this->hersteller = $row->hersteller;
$this->seriennummer = $row->seriennummer;
$this->bestellung_id = $row->bestellung_id;
$this->bestelldetail_id = $row->bestelldetail_id;
$this->afa = $row->afa;
$this->verwendung = $row->verwendung;
$this->anmerkung = $row->anmerkung;
$this->leasing_bis = $row->leasing_bis;
return $this->result=$row;
}
else
@@ -646,8 +618,7 @@ class betriebsmittel extends basis_db
$firma_id=trim($firma_id);
$qry='';
$qry.='select distinct(tbl_betriebsmittel.nummer) ';
# $qry.=',tbl_betriebsmittelperson.person_id ';
$qry.='select distinct on(tbl_betriebsmittel.nummer) tbl_betriebsmittel.nummer ';
$qry.=',tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id ';
$qry.=',tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz ';
$qry.=',tbl_betriebsmittel_betriebsmittelstatus.datum as betriebsmittelstatus_datum ';
@@ -656,15 +627,15 @@ class betriebsmittel extends basis_db
$qry.=', tbl_betriebsmittel.*';
$qry.=', wawi_be.*';
$qry.=", trim(to_char(date_part('year', tbl_betriebsmittel_betriebsmittelstatus.datum) + tbl_betriebsmittel.afa , '9999') || '-' || to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'MM-DD')) as betriebsmittelstatus_datum_afa ";
$qry.=' from '.$this->schema_inventar.'.tbl_betriebsmittel';
$qry.=' from wawi.tbl_betriebsmittel';
$qry.=' left outer join '.$this->schema_inventar.'.tbl_betriebsmitteltyp on (tbl_betriebsmitteltyp.betriebsmitteltyp=tbl_betriebsmittel.betriebsmitteltyp ) ';
$qry.=' left outer join '.$this->schema_inventar.'.tbl_betriebsmittel_betriebsmittelstatus on (tbl_betriebsmittel_betriebsmittelstatus.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
$qry.=' left outer join '.$this->schema_inventar.'.tbl_betriebsmittelstatus on (tbl_betriebsmittelstatus.betriebsmittelstatus_kurzbz=tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz ) ';
$qry.=' left outer join wawi.tbl_betriebsmitteltyp on (tbl_betriebsmitteltyp.betriebsmitteltyp=tbl_betriebsmittel.betriebsmitteltyp ) ';
$qry.=' left outer join wawi.tbl_betriebsmittel_betriebsmittelstatus on (tbl_betriebsmittel_betriebsmittelstatus.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
$qry.=' left outer join wawi.tbl_betriebsmittelstatus on (tbl_betriebsmittelstatus.betriebsmittelstatus_kurzbz=tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz ) ';
$qry.=' left outer join public.tbl_ort on (tbl_ort.ort_kurzbz=tbl_betriebsmittel.ort_kurzbz ) ';
$qry.=' left outer join '.$this->schema_inventar.'.tbl_betriebsmittelperson on (tbl_betriebsmittelperson.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
$qry.=' left outer join wawi.tbl_betriebsmittelperson on (tbl_betriebsmittelperson.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
// Verbindung zum WAWI aufbauen
// Verbindung zum WAWI aufbauen
$qry.=' left outer join dblink(\''.CONN_STRING_WAWI.'\',\'
select distinct bestellung.bestellung_id,bestellung.bestellnr,bestellung.titel,bestellung.firma_id,firma.firmenname from public.bestellung
left join public.firma on ( firma.firma_id=bestellung.firma_id ) \' )
@@ -676,9 +647,11 @@ class betriebsmittel extends basis_db
if ($where!='' && !$where)
return $this->result;
// Select und Bedingung zusammen fuehren zu SQL Abfrage
if($order=='')
$order = 'tbl_betriebsmittel.nummer,tbl_betriebsmittel_betriebsmittelstatus.datum DESC, tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id DESC';
// Select und Bedingung zusammen fuehren zu SQL Abfrage
$qry.=$where.(!is_null($order) && !empty($order)?' ORDER BY '. $order:''). (!$where?' limit 100 ':' limit 300 ');
## echo "<hr>$qry <hr>";
if(!$result=$this->db_query($qry))
{
$this->errormsg ='Probleme beim lesen der Betriebsmittel '.($this->debug?$this->db_last_error() ."<br />$qry<br />":'') ;
@@ -686,10 +659,9 @@ class betriebsmittel extends basis_db
}
while($row = $this->db_fetch_object($result))
$this->result[]=$row;
##var_dump($this->result);
return $this->result;
}
// Ende ===========================================================================================
/**
* Laedt INVENTARTABELLE BESTELLUNG_ID
@@ -719,15 +691,15 @@ class betriebsmittel extends basis_db
$ort_kurzbz=trim($ort_kurzbz);
$qry='';
$qry.='select distinct(tbl_betriebsmittel.bestellung_id) ';
$qry.=' from '.$this->schema_inventar.'.tbl_betriebsmittel';
$qry.=' from wawi.tbl_betriebsmittel';
$qry.=' left outer join '.$this->schema_inventar.'.tbl_betriebsmitteltyp on (tbl_betriebsmitteltyp.betriebsmitteltyp=tbl_betriebsmittel.betriebsmitteltyp ) ';
$qry.=' left outer join '.$this->schema_inventar.'.tbl_betriebsmittel_betriebsmittelstatus on (tbl_betriebsmittel_betriebsmittelstatus.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
$qry.=' left outer join '.$this->schema_inventar.'.tbl_betriebsmittelstatus on (tbl_betriebsmittelstatus.betriebsmittelstatus_kurzbz=tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz ) ';
$qry.=' left outer join wawi.tbl_betriebsmitteltyp on (tbl_betriebsmitteltyp.betriebsmitteltyp=tbl_betriebsmittel.betriebsmitteltyp ) ';
$qry.=' left outer join wawi.tbl_betriebsmittel_betriebsmittelstatus on (tbl_betriebsmittel_betriebsmittelstatus.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
$qry.=' left outer join wawi.tbl_betriebsmittelstatus on (tbl_betriebsmittelstatus.betriebsmittelstatus_kurzbz=tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz ) ';
$qry.=' left outer join public.tbl_ort on (tbl_ort.ort_kurzbz=tbl_betriebsmittel.ort_kurzbz ) ';
$qry.=' left outer join '.$this->schema_inventar.'.tbl_betriebsmittelperson on (tbl_betriebsmittelperson.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
$qry.=' left outer join wawi.tbl_betriebsmittelperson on (tbl_betriebsmittelperson.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
// Verbindung zum WAWI aufbauen
// Verbindung zum WAWI aufbauen
if ( $bestellnr || $firma_id || $beschreibung )
$qry.=' left outer join dblink(\''.CONN_STRING_WAWI.'\',\'
select distinct bestellung.bestellung_id,bestellung.bestellnr,bestellung.titel,bestellung.firma_id,firma.firmenname from public.bestellung
@@ -739,7 +711,7 @@ class betriebsmittel extends basis_db
$where='';
$where=$this->betriebsmittel_inventar_get_where($nummer,$ort_kurzbz,$betriebsmittelstatus_kurzbz,$betriebsmitteltyp,$bestellung_id,$bestelldetail_id,$bestellnr,$hersteller,$afa,$jahr_monat,$firma_id,$inventur_jahr,$beschreibung,$oe_kurzbz,$seriennummer);
// Select und Bedingung zusammen fuehren zu SQL Abfrage
// Select und Bedingung zusammen fuehren zu SQL Abfrage
if (is_null($order) || empty($order) )
$order='tbl_betriebsmittel.bestellung_id';
@@ -753,22 +725,39 @@ class betriebsmittel extends basis_db
{
$this->result[]=$row;
}
#var_dump($this->result);
#exit;
return $this->result;
}
// -------------------------------------------
function betriebsmittel_inventar_get_where($nummer=null,$ort_kurzbz=null,$betriebsmittelstatus_kurzbz=null,$betriebsmitteltyp=null,$bestellung_id=null,$bestelldetail_id=null,$bestellnr=null,$hersteller=null,$afa=null,$jahr_monat=null,$firma_id=null,$inventur_jahr=null,$beschreibung=null,$oe_kurzbz=null,$seriennummer=null,$person_id=null,$betriebsmittel_id=null)
/**
* Laedt Inventartabelle
*
* @param $nummer
* @param $ort_kurzbz
* @param $betriebsmittelstatus_kurzbz
* @param $betriebsmitteltyp
* @param $bestellung_id
* @param $bestelldetail_id
* @param $bestellnr
* @param $hersteller
* @param $afa
* @param $jahr_monat
* @param $firma_id
* @param $inventur_jahr
* @param $beschreibung
* @param $oe_kurzbz
* @param $seriennummer
* @param $person_id
* @param $betriebsmittel_id
* @return unknown
*/
public function betriebsmittel_inventar_get_where($nummer=null,$ort_kurzbz=null,$betriebsmittelstatus_kurzbz=null,$betriebsmitteltyp=null,$bestellung_id=null,$bestelldetail_id=null,$bestellnr=null,$hersteller=null,$afa=null,$jahr_monat=null,$firma_id=null,$inventur_jahr=null,$beschreibung=null,$oe_kurzbz=null,$seriennummer=null,$person_id=null,$betriebsmittel_id=null)
{
## echo " betriebsmittel_inventar($nummer<br>,$ort_kurzbz<br>,StatusKurz $betriebsmittelstatus_kurzbz<br>,$betriebsmitteltyp<br>,Bestellung ID $bestellung_id<br>,$bestelldetail_id<br>,Bestellnr $bestellnr<br>,$hersteller<br>,AFA $afa<br>,JJMM $jahr_monat<br>,Firma $firma_id<br>,Invent $inventur_jahr<br>,Beschr $beschreibung<br>,OE $oe_kurzbz<br>Seriennr $seriennummer<br>, person_id $person_id <br>, betriebsmittel_id $betriebsmittel_id <hr>";
#exit;
$where='';
// Inventarnummer oder Betriebsmittelnummer
if (!is_null($nummer) && !empty($nummer) )
{
$matchcode=mb_strtoupper(addslashes(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($nummer))));
## $where.=" AND UPPER(trim(tbl_betriebsmittel.nummer)) like '%".$matchcode."%' " ;
$where.=" AND UPPER(trim(tbl_betriebsmittel.nummer)) like '".$matchcode."' " ;
}
if (!is_null($betriebsmittel_id) && !empty($betriebsmittel_id) )
@@ -795,7 +784,6 @@ class betriebsmittel extends basis_db
if ( $bestellnr || $firma_id || $beschreibung )
$where.=" or UPPER(trim(wawi_be.titel)) like '%". $matchcode ."%' " ;
$where.=" or UPPER(trim(tbl_betriebsmittel.anmerkung)) like '%".$matchcode."%' ) ";
}
if (!is_null($bestellung_id) && $bestellung_id!='' && is_numeric($bestellung_id))
@@ -828,8 +816,6 @@ class betriebsmittel extends basis_db
if (!is_null($oe_kurzbz) && $oe_kurzbz!='')
{
## where funktion_kurzbz='oezuordnung'
$matchcode=mb_strtoupper(addslashes(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($oe_kurzbz))));
$where.=" AND ( upper(trim(tbl_betriebsmittel.oe_kurzbz)) like '%". $matchcode."%' " ;
$where.=" or tbl_betriebsmittelperson.person_id in ( SELECT distinct vw_benutzer.person_id
@@ -874,25 +860,6 @@ class betriebsmittel extends basis_db
)";
}
/*
and tbl_betriebsmittelperson.person_id= ( SELECT distinct vw_benutzer.person_id
FROM public.tbl_benutzerfunktion JOIN campus.vw_benutzer USING(uid)
and (funktion_kurzbz='oezuordnung' OR funktion_kurzbz='Leitung')
and oe_kurzbz IN(
WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
(
SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
WHERE upper(trim(oe_kurzbz))=upper(trim('".addslashes($oe_kurzbz)."'))
UNION ALL
SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
WHERE o.oe_parent_kurzbz=oes.oe_kurzbz
)
SELECT oe_kurzbz
FROM oes
GROUP BY oe_kurzbz limit 1 )
*/
// Ort
if (!is_null($ort_kurzbz) && $ort_kurzbz!='')
{
@@ -931,7 +898,6 @@ class betriebsmittel extends basis_db
else
{
$inventur_jahr=($inventur_jahr * -1);
# $where.=" and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYY') = '".$inventur_jahr."'";
$where.=" and not tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id in ( select max(betriebsmittelbetriebsmittelstatus_id) from wawi.tbl_betriebsmittel_betriebsmittelstatus where not betriebsmittelbetriebsmittelstatus_id is null
and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYY')='".$inventur_jahr."' ".($betriebsmittelstatus_kurzbz?" and upper(trim(betriebsmittelstatus_kurzbz))=".$this->addslashes(mb_strtoupper(trim($betriebsmittelstatus_kurzbz))):'')." group by betriebsmittel_id ) ";
$betriebsmittelstatus_kurzbz='vorhanden';
@@ -972,144 +938,8 @@ class betriebsmittel extends basis_db
if (!is_null($betriebsmittelstatus_kurzbz) && !empty($betriebsmittelstatus_kurzbz) )
$where.=" and upper(trim(tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz)) = ".$this->addslashes(mb_strtoupper(trim($betriebsmittelstatus_kurzbz))) ;
##echo "<br> $where <br>";
return $where;
}
/**
* Laedt INVENTARTABELLE ORTE
* @param nummer ID eines Inventars
* @param ort_kurzbz ort_kurzbz eines Inventars
* @param betriebsmitteltyp ort_kurzbz eines Inventars
* @param betriebsmittelstatus_kurzbz STATUS eines Inventars
* @param nummer Datensatzid eines Inventars
* @param bestellnr WAWI Bestellnummer des Inventars
* @param bestellung_id WAWI Rechnungsnummer des Inventars
* @param afa AfA Datum
* @param Jahr_Monat der WAWI Bestellerfassung
* @param firma_id der WAWI Bestellerfassung
* @param inventur_jahr der Status Jahr - Status = inventur
* @param beschreibung der Inventarbeschreibung
* @param oe_kurzbz der Organisatzion
* @return Daten Objekt wenn ok, false im Fehlerfall
*/
/*
function betriebsmittel_inventar_orte($order=null,$nummer=null,$ort_kurzbz=null,$betriebsmittelstatus_kurzbz=null,$betriebsmitteltyp=null,$bestellung_id=null,$bestelldetail_id=null,$bestellnr=null,$hersteller=null,$afa=null,$jahr_monat=null,$firma_id=null,$inventur_jahr=null,$beschreibung=null,$oe_kurzbz=null,$seriennummer=null)
{
// Init
$this->errormsg='';
$this->result=array();
$ort_kurzbz=trim($ort_kurzbz);
$qry='';
$qry.='select distinct(tbl_betriebsmittel.ort_kurzbz),tbl_ort.bezeichnung ';
$qry.=' from '.$this->schema_inventar.'.tbl_betriebsmittel';
$qry.=' left outer join '.$this->schema_inventar.'.tbl_betriebsmitteltyp on (tbl_betriebsmitteltyp.betriebsmitteltyp=tbl_betriebsmittel.betriebsmitteltyp ) ';
$qry.=' left outer join '.$this->schema_inventar.'.tbl_betriebsmittel_betriebsmittelstatus on (tbl_betriebsmittel_betriebsmittelstatus.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
$qry.=' left outer join '.$this->schema_inventar.'.tbl_betriebsmittelstatus on (tbl_betriebsmittelstatus.betriebsmittelstatus_kurzbz=tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz ) ';
$qry.=' left outer join public.tbl_ort on (tbl_ort.ort_kurzbz=tbl_betriebsmittel.ort_kurzbz ) ';
// Verbindung zum WAWI aufbauen
if ( $bestellnr || $firma_id || $beschreibung )
$qry.=' left outer join dblink(\''.CONN_STRING_WAWI.'\',\'
select distinct bestellung.bestellung_id,bestellung.bestellnr,bestellung.titel,bestellung.firma_id,firma.firmenname from public.bestellung
left join public.firma on ( firma.firma_id=bestellung.firma_id ) \' )
as wawi_be(bestellung_id int, bestellnr char(32), titel char(120), firma_id int, firmenname char(160) )
on ( cast(wawi_be.bestellung_id as INTEGER)=cast(tbl_betriebsmittel.bestellung_id as INTEGER) and cast(tbl_betriebsmittel.bestellung_id as INTEGER)>0 ) ';
$qry.=" where not tbl_betriebsmittel.ort_kurzbz is null ";
$where='';
$where=$this->betriebsmittel_inventar_get_where($nummer,$ort_kurzbz,$betriebsmittelstatus_kurzbz,$betriebsmitteltyp,$bestellung_id,$bestelldetail_id,$bestellnr,$hersteller,$afa,$jahr_monat,$firma_id,$inventur_jahr,$beschreibung,$oe_kurzbz,$seriennummer);
// Select und Bedingung zusammen fuehren zu SQL Abfrage
if (is_null($order) || empty($order) )
$order='tbl_betriebsmittel.ort_kurzbz';
$qry.=$where.(!is_null($order) && !empty($order)?' ORDER BY '. $order:'').(!$where?' limit 30 ':' limit 90 ');
if(!$result=$this->db_query($qry))
{
$this->errormsg ='Probleme beim lesen der Betriebsmittel '.($this->debug?$this->db_last_error() ."<br />$qry<br />":'') ;
return false;
}
while($row = $this->db_fetch_object($result))
$this->result[]=$row;
#var_dump($this->result);
return $this->result;
}
*/
/**
* Laedt INVENTARTABELLE HERSTELLER
* @param nummer ID eines Inventars
* @param ort_kurzbz ort_kurzbz eines Inventars
* @param betriebsmitteltyp ort_kurzbz eines Inventars
* @param betriebsmittelstatus_kurzbz STATUS eines Inventars
* @param nummer Datensatzid eines Inventars
* @param bestellnr WAWI Bestellnummer des Inventars
* @param bestellung_id WAWI Rechnungsnummer des Inventars
* @param afa AfA Datum
* @param Jahr_Monat der WAWI Bestellerfassung
* @param firma_id der WAWI Bestellerfassung
* @param inventur_jahr der Status Jahr - Status = inventur
* @param beschreibung der Inventarbeschreibung
* @param oe_kurzbz der Organisatzion
* @return Daten Objekt wenn ok, false im Fehlerfall
*/
/*
function betriebsmittel_inventar_hersteller($order=null,$nummer=null,$ort_kurzbz=null,$betriebsmittelstatus_kurzbz=null,$betriebsmitteltyp=null,$bestellung_id=null,$bestelldetail_id=null,$bestellnr=null,$hersteller=null,$afa=null,$jahr_monat=null,$firma_id=null,$inventur_jahr=null,$beschreibung=null,$oe_kurzbz=null,$seriennummer=null)
{
// Init
$this->errormsg='';
$this->result=array();
$ort_kurzbz=trim($ort_kurzbz);
$qry='';
$qry.='select distinct(tbl_betriebsmittel.hersteller) ';
$qry.=' from '.$this->schema_inventar.'.tbl_betriebsmittel';
$qry.=' left outer join '.$this->schema_inventar.'.tbl_betriebsmitteltyp on (tbl_betriebsmitteltyp.betriebsmitteltyp=tbl_betriebsmittel.betriebsmitteltyp ) ';
$qry.=' left outer join '.$this->schema_inventar.'.tbl_betriebsmittel_betriebsmittelstatus on (tbl_betriebsmittel_betriebsmittelstatus.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
$qry.=' left outer join '.$this->schema_inventar.'.tbl_betriebsmittelstatus on (tbl_betriebsmittelstatus.betriebsmittelstatus_kurzbz=tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz ) ';
$qry.=' left outer join public.tbl_ort on (tbl_ort.ort_kurzbz=tbl_betriebsmittel.ort_kurzbz ) ';
// Verbindung zum WAWI aufbauen
if ( $bestellnr || $firma_id || $beschreibung )
$qry.=' left outer join dblink(\''.CONN_STRING_WAWI.'\',\'
select distinct bestellung.bestellung_id,bestellung.bestellnr,bestellung.titel,bestellung.firma_id,firma.firmenname from public.bestellung
left join public.firma on ( firma.firma_id=bestellung.firma_id ) \' )
as wawi_be(bestellung_id int, bestellnr char(32), titel char(120), firma_id int, firmenname char(160) )
on ( cast(wawi_be.bestellung_id as INTEGER)=cast(tbl_betriebsmittel.bestellung_id as INTEGER) and cast(tbl_betriebsmittel.bestellung_id as INTEGER)>0 ) ';
$qry.=" where not tbl_betriebsmittel.hersteller is null ";
$where=$this->betriebsmittel_inventar_get_where($nummer,$ort_kurzbz,$betriebsmittelstatus_kurzbz,$betriebsmitteltyp,$bestellung_id,$bestelldetail_id,$bestellnr,$hersteller,$afa,$jahr_monat,$firma_id,$inventur_jahr,$beschreibung,$oe_kurzbz,$seriennummer);
// Select und Bedingung zusammen fuehren zu SQL Abfrage
if (is_null($order) || empty($order) )
$order='tbl_betriebsmittel.hersteller';
$qry.=$where.(!is_null($order) && !empty($order)?' ORDER BY '. $order:'').(!$where?' limit 20 ':' limit 50 ');
#echo "<hr> $qry <hr>";
if(!$result=$this->db_query($qry))
{
$this->errormsg ='Probleme beim lesen der Betriebsmittel '.($this->debug?$this->db_last_error() ."<br />$qry<br />":'') ;
return false;
}
while($row = $this->db_fetch_object($result))
{
$this->result[]=$row;
}
#var_dump($this->result);
#exit;
return $this->result;
}
*/
}
?>
+11 -13
View File
@@ -27,8 +27,6 @@ require_once(dirname(__FILE__).'/basis_db.class.php');
class betriebsmittelperson extends basis_db
{
# public $schema_inventar='public';
public $schema_inventar='wawi';
public $debug=false; // boolean
@@ -88,7 +86,7 @@ class betriebsmittelperson extends basis_db
return false;
}
$qry = "SELECT * FROM ".$this->schema_inventar.".tbl_betriebsmittel JOIN ".$this->schema_inventar.".tbl_betriebsmittelperson USING(betriebsmittel_id)
$qry = "SELECT * FROM wawi.tbl_betriebsmittel JOIN wawi.tbl_betriebsmittelperson USING(betriebsmittel_id)
WHERE betriebsmittel_id='".addslashes($betriebsmittel_id)."' AND person_id='".addslashes($person_id)."'";
if($this->db_query($qry))
{
@@ -186,7 +184,7 @@ class betriebsmittelperson extends basis_db
if($new)
{
//Pruefen ob dieses Betriebsmittel dieser Person schon zugeordnet ist
$qry = "SELECT 1 FROM ".$this->schema_inventar.".tbl_betriebsmittelperson
$qry = "SELECT 1 FROM wawi.tbl_betriebsmittelperson
WHERE person_id=".$this->addslashes($this->person_id)." AND
betriebsmittel_id=".$this->addslashes($this->betriebsmittel_id);
@@ -199,7 +197,7 @@ class betriebsmittelperson extends basis_db
}
}
//Neuen Datensatz einfuegen
$qry='INSERT INTO '.$this->schema_inventar.'.tbl_betriebsmittelperson (betriebsmittel_id, person_id, anmerkung, kaution,
$qry='INSERT INTO wawi.tbl_betriebsmittelperson (betriebsmittel_id, person_id, anmerkung, kaution,
ausgegebenam, retouram, ext_id, insertamum, insertvon, updateamum, updatevon) VALUES('.
$this->addslashes($this->betriebsmittel_id).', '.
$this->addslashes($this->person_id).', '.
@@ -224,7 +222,7 @@ class betriebsmittelperson extends basis_db
if($this->person_id_old=='')
$this->person_id_old = $this->person_id;
$qry='UPDATE '.$this->schema_inventar.'.tbl_betriebsmittelperson SET '.
$qry='UPDATE wawi.tbl_betriebsmittelperson SET '.
'betriebsmittel_id='.$this->addslashes($this->betriebsmittel_id).', '.
'person_id='.$this->addslashes($this->person_id).', '.
'anmerkung='.$this->addslashes($this->anmerkung).', '.
@@ -267,7 +265,7 @@ class betriebsmittelperson extends basis_db
$this->errormsg = 'Person_id ist ungueltig';
return false;
}
$qry = 'DELETE FROM '.$this->schema_inventar.'.tbl_betriebsmittelperson
$qry = 'DELETE FROM wawi.tbl_betriebsmittelperson
WHERE betriebsmittel_id='.$this->addslashes($betriebsmittel_id).($person_id?' and person_id='.$this->addslashes($person_id):'');
if($this->db_query($qry))
return true;
@@ -292,7 +290,7 @@ class betriebsmittelperson extends basis_db
$this->errormsg = 'Person_id ist ungueltig';
return false;
}
$qry = "SELECT * FROM ".$this->schema_inventar.".tbl_betriebsmittel JOIN ".$this->schema_inventar.".tbl_betriebsmittelperson USING(betriebsmittel_id)
$qry = "SELECT * FROM wawi.tbl_betriebsmittel JOIN wawi.tbl_betriebsmittelperson USING(betriebsmittel_id)
WHERE person_id='".addslashes($person_id)."'";
if(!is_null($betriebsmitteltyp))
$qry.=" AND betriebsmitteltyp='".addslashes($betriebsmitteltyp)."'";
@@ -372,10 +370,10 @@ class betriebsmittelperson extends basis_db
$qry='';
$qry.='SELECT * ';
$qry.=' FROM '.$this->schema_inventar.'.tbl_betriebsmittel JOIN '.$this->schema_inventar.'.tbl_betriebsmittelperson USING(betriebsmittel_id)';
$qry.=' FROM wawi.tbl_betriebsmittel JOIN wawi.tbl_betriebsmittelperson USING(betriebsmittel_id)';
$qry.=' WHERE betriebsmittel_id='.$this->addslashes($betriebsmittel_id);
$qry.=' order by ausgegebenam desc, retouram desc ';
$qry.=' limit 1';
$qry.=' ORDER BY ausgegebenam desc, retouram desc ';
$qry.=' LIMIT 1';
if($this->db_query($qry))
{
@@ -430,9 +428,9 @@ class betriebsmittelperson extends basis_db
}
$qry='';
$qry.='SELECT * ';
$qry.=' FROM '.$this->schema_inventar.'.tbl_betriebsmittel JOIN '.$this->schema_inventar.'.tbl_betriebsmittelperson USING(betriebsmittel_id)';
$qry.=' FROM wawi.tbl_betriebsmittel JOIN wawi.tbl_betriebsmittelperson USING(betriebsmittel_id)';
$qry.=' WHERE betriebsmittel_id='.$this->addslashes($betriebsmittel_id);
$qry.=' order by ausgegebenam desc, retouram desc';
$qry.=' ORDER BY ausgegebenam desc, retouram desc';
if($this->db_query($qry))
{
+17 -18
View File
@@ -28,8 +28,6 @@ require_once(dirname(__FILE__).'/basis_db.class.php');
class betriebsmitteltyp extends basis_db
{
private $schema_inventar='wawi';
public $debug=false; // boolean
public $new; // boolean
public $result = array();
@@ -66,7 +64,7 @@ class betriebsmitteltyp extends basis_db
$this->result=array();
$this->errormsg = '';
// Select erzeugen
$qry.=' select * FROM '.$this->schema_inventar.'.tbl_betriebsmitteltyp';
$qry.=' select * FROM wawi.tbl_betriebsmitteltyp';
$qry.=" where betriebsmitteltyp >'' ";
// Bedingungen hinzufuegen
@@ -106,7 +104,7 @@ class betriebsmitteltyp extends basis_db
{
$this->result=array();
$this->errormsg = '';
$qry = "SELECT * FROM ".$this->schema_inventar.".tbl_betriebsmitteltyp ORDER BY betriebsmitteltyp";
$qry = "SELECT * FROM wawi.tbl_betriebsmitteltyp ORDER BY betriebsmitteltyp";
if($this->db_query($qry))
{
@@ -140,7 +138,7 @@ class betriebsmitteltyp extends basis_db
$this->errormsg = '';
$dbanzahl=0;
$qry='';
$qry1='SELECT * FROM '.$this->schema_inventar.'.tbl_betriebsmitteltyp WHERE beschreibung='.$this->addslashes($this->beschreibung).';';
$qry1='SELECT * FROM wawi.tbl_betriebsmitteltyp WHERE beschreibung='.$this->addslashes($this->beschreibung).';';
if($this->db_query($qry1))
{
if($this->db_num_rows()>0) //eintrag gefunden
@@ -152,14 +150,14 @@ class betriebsmitteltyp extends basis_db
else
$dbanzahl=$row1->anzahl;
$qry='UPDATE '.$this->schema_inventar.'.tbl_betriebsmitteltyp SET '.
$qry='UPDATE wawi.tbl_betriebsmitteltyp SET '.
'anzahl ='.addslashes($dbanzahl)."+".addslashes($this->anzahl).' '.
'WHERE beschreibung='.$this->addslashes($this->beschreibung).'; ' ;
}
}
else
{
$qry='INSERT INTO '.$this->schema_inventar.'.tbl_betriebsmitteltyp (betriebsmitteltyp, beschreibung, anzahl, kaution,typ_code) VALUES('.
$qry='INSERT INTO wawi.tbl_betriebsmitteltyp (betriebsmitteltyp, beschreibung, anzahl, kaution,typ_code) VALUES('.
$this->addslashes($this->betriebsmitteltyp).', '.
$this->addslashes($this->beschreibung).', '.
$this->addslashes($this->anzahl).', '.
@@ -191,7 +189,7 @@ class betriebsmitteltyp extends basis_db
public function update()
{
$this->errormsg = '';
$qry='UPDATE '.$this->schema_inventar.'.tbl_betriebsmitteltyp SET '.
$qry='UPDATE wawi.tbl_betriebsmitteltyp SET '.
'beschreibung ='.$this->addslashes($this->beschreibung).', '.
'anzahl ='.$this->addslashes($this->anzahl).', '.
'kaution ='.$this->addslashes($this->kaution).', '.
@@ -207,6 +205,7 @@ class betriebsmitteltyp extends basis_db
return false;
}
}
/**
* Speichert die Daten in die Datenbank
* @return true wenn erfolgreich, false im Fehlerfall
@@ -214,18 +213,18 @@ class betriebsmitteltyp extends basis_db
public function check_beschreibung()
{
$this->errormsg = '';
$qry='UPDATE '.$this->schema_inventar.'.tbl_betriebsmitteltyp SET '.
$qry='UPDATE wawi.tbl_betriebsmitteltyp SET '.
'beschreibung = trim(betriebsmitteltyp) '.
' where beschreibung is null ';
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Pruefen der Beschreibung des Betriebsmitteltypen-Datensatzes '.($this->debug?$this->db_last_error():'');
return false;
}
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Pruefen der Beschreibung des Betriebsmitteltypen-Datensatzes '.($this->debug?$this->db_last_error():'');
return false;
}
}
}
?>
+667
View File
@@ -0,0 +1,667 @@
<?php
/* Copyright (C) 2010 Technikum-Wien
*
* 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: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Simane-Sequens <gerald.simane@technikum-wien.at>.
*/
/**
* Klasse Cronjob
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/datum.class.php');
class cronjob extends basis_db
{
public $new;
public $result = array();
public $output = array();
//Tabellenspalten
public $cronjob_id;
public $server_kurzbz;
public $titel;
public $beschreibung;
public $file;
public $last_execute;
public $aktiv=true;
public $running=false;
public $jahr;
public $monat;
public $tag;
public $wochentag;
public $stunde;
public $minute;
public $standalone=false;
public $reihenfolge;
public $updateamum;
public $updatevon;
public $insertamum;
public $insertvon;
public $variablen;
/**
* Konstruktor
* @param $cronjob_id ID des Cronjobs der geladen werden soll (Default=null)
*/
public function __construct($cronjob_id=null)
{
parent::__construct();
if(!is_null($cronjob_id))
$this->load($cronjob_id);
}
/**
* Laedt einen Cronjob mit der ID $cronjob_id
* @param $cronjob_id ID des zu ladenden Cronjobs
* @return true wenn ok, false im Fehlerfall
*/
public function load($cronjob_id)
{
if(!is_numeric($cronjob_id))
{
$this->errormsg = 'id ist ungueltig';
return false;
}
$qry = "SELECT * FROM system.tbl_cronjob WHERE cronjob_id='".addslashes($cronjob_id)."'";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->cronjob_id = $row->cronjob_id;
$this->server_kurzbz = $row->server_kurzbz;
$this->titel = $row->titel;
$this->beschreibung = $row->beschreibung;
$this->file = $row->file;
$this->last_execute = $row->last_execute;
$this->aktiv = ($row->aktiv=='t'?true:false);
$this->running = ($row->running=='t'?true:false);
$this->jahr = $row->jahr;
$this->monat = $row->monat;
$this->tag = $row->tag;
$this->wochentag = $row->wochentag;
$this->stunde = $row->stunde;
$this->minute = $row->minute;
$this->standalone = ($row->standalone=='t'?true:false);
$this->reihenfolge = $row->reihenfolge;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->variablen = $row->variablen;
return true;
}
else
{
$this->errormsg = 'Datensatz wurde nicht gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Prueft die Variablen auf Gueltigkeit
* @return true wenn ok, false im Fehlerfall
*/
protected function validate()
{
//Gesamtlaenge pruefen
if(mb_strlen($this->titel)>64)
{
$this->errormsg = 'Titel darf nicht laenger als 64 Zeichen sein';
return false;
}
if(mb_strlen($this->jahr)>6)
{
$this->errormsg = 'Jahr darf nicht laenger als 6 Zeichen sein';
return false;
}
if(mb_strlen($this->monat)>4)
{
$this->errormsg = 'Monat darf nicht laenger als 4 Zeichen sein';
return false;
}
if(mb_strlen($this->tag)>4)
{
$this->errormsg = 'Tag darf nicht laenger als 4 Zeichen sein';
return false;
}
if(mb_strlen($this->stunde)>4)
{
$this->errormsg = 'Stunde darf nicht laenger als 4 Zeichen sein';
return false;
}
if(mb_strlen($this->minute)>4)
{
$this->errormsg = 'Stunde darf nicht laenger als 4 Zeichen sein';
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
* andernfalls wird der Datensatz mit der ID in $cronjob_id aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
public function save()
{
//Variablen pruefen
if(!$this->validate())
return false;
if($this->new)
{
if($this->last_execute=='')
$this->last_execute = date('Y-m-d H:i:s');
//Neuen Datensatz einfuegen
$qry = 'BEGIN;INSERT INTO system.tbl_cronjob (server_kurzbz, titel, beschreibung, file, last_execute, aktiv,
running, jahr, monat, tag, wochentag, stunde, minute, standalone, reihenfolge, updateamum, updatevon,
insertamum, insertvon, variablen) VALUES('.
$this->addslashes($this->server_kurzbz).', '.
$this->addslashes($this->titel).', '.
$this->addslashes($this->beschreibung).', '.
$this->addslashes($this->file).', '.
$this->addslashes($this->last_execute).', '.
($this->aktiv?'true':'false').', '.
($this->running?'true':'false').', '.
$this->addslashes($this->jahr).', '.
$this->addslashes($this->monat).', '.
$this->addslashes($this->tag).', '.
$this->addslashes($this->wochentag).', '.
$this->addslashes($this->stunde).', '.
$this->addslashes($this->minute).', '.
($this->standalone?'true':'false').', '.
$this->addslashes($this->reihenfolge).', '.
$this->addslashes($this->updateamum).', '.
$this->addslashes($this->updatevon).', '.
$this->addslashes($this->insertamum).', '.
$this->addslashes($this->insertvon).','.
$this->addslashes($this->variablen).');';
}
else
{
//Updaten des bestehenden Datensatzes
//Pruefen ob id eine gueltige Zahl ist
if(!is_numeric($this->cronjob_id))
{
$this->errormsg = 'cronjob_id muss eine gueltige Zahl sein';
return false;
}
$qry='UPDATE system.tbl_cronjob SET '.
'server_kurzbz='.$this->addslashes($this->server_kurzbz).', '.
'titel='.$this->addslashes($this->titel).', '.
'beschreibung='.$this->addslashes($this->beschreibung).', '.
'file='.$this->addslashes($this->file).', '.
'last_execute='.$this->addslashes($this->last_execute).', '.
'aktiv='.($this->aktiv?'true':'false').', '.
'running='.($this->running?'true':'false').', '.
'jahr='.$this->addslashes($this->jahr).', '.
'monat='.$this->addslashes($this->monat).', '.
'tag='.$this->addslashes($this->tag).', '.
'wochentag='.$this->addslashes($this->wochentag).', '.
'stunde='.$this->addslashes($this->stunde).', '.
'minute='.$this->addslashes($this->minute).', '.
'standalone='.($this->standalone?'true':'false').', '.
'reihenfolge='.$this->addslashes($this->reihenfolge).', '.
'variablen='.$this->addslashes($this->variablen).','.
'updateamum='.$this->addslashes($this->updateamum).','.
'updatevon='.$this->addslashes($this->updatevon).' '.
'WHERE cronjob_id='.$this->addslashes($this->cronjob_id).';';
}
if($this->db_query($qry))
{
if($this->new)
{
//Sequence auslesen
$qry = "SELECT currval('system.tbl_cronjob_cronjob_id_seq') as id";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->cronjob_id = $row->id;
$this->db_query('COMMIT');
return true;
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
$this->db_query('ROLLBACK');
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
$this->db_query('ROLLBACK');
return false;
}
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Daten';
return false;
}
}
/**
* Loescht den Datenensatz mit der ID die uebergeben wird
* @param $cronjob_id ID die geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
public function delete($cronjob_id)
{
if(!is_numeric($cronjob_id))
{
$this->errormsg = 'Id ist ungueltig';
return false;
}
$qry = "DELETE FROM system.tbl_cronjob WHERE cronjob_id='".addslashes($cronjob_id)."'";
if($this->db_query($qry))
return true;
else
{
$this->errormsg = 'Fehler beim Loeschen des Datensatzes';
return false;
}
}
/**
* Liefert alle Cronjobs
* @param $server
* @param $order Sortierreihenfolge
* @param $aktiv wenn true dann nur aktive sonst alle
* @return true wenn ok, false im Fehlerfall
*/
public function getAll($server=null, $order=null, $aktiv=null)
{
$qry = "SELECT * FROM system.tbl_cronjob WHERE 1=1";
if($server!=null)
$qry.=" AND server_kurzbz='".addslashes($server)."'";
if ($aktiv)
$qry.=' AND aktiv=true';
if($order!=null)
$qry .=" ORDER BY $order";
if(!$result = $this->db_query($qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
while($row = $this->db_fetch_object($result))
{
$obj = new cronjob();
$obj->cronjob_id = $row->cronjob_id;
$obj->server_kurzbz = $row->server_kurzbz;
$obj->titel = $row->titel;
$obj->beschreibung = $row->beschreibung;
$obj->file = $row->file;
$obj->last_execute = $row->last_execute;
$obj->aktiv = ($row->aktiv=='t'?true:false);
$obj->running = ($row->running=='t'?true:false);
$obj->jahr = $row->jahr;
$obj->monat = $row->monat;
$obj->tag = $row->tag;
$obj->wochentag = $row->wochentag;
$obj->stunde = $row->stunde;
$obj->minute = $row->minute;
$obj->standalone = ($row->standalone=='t'?true:false);
$obj->reihenfolge = $row->reihenfolge;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->variablen = $row->variablen;
$this->result[] = $obj;
}
return true;
}
/**
* Startet einen geladenen Cronjob
*
* @return true wenn ok, false im Fehlerfall
*/
public function execute()
{
$return = true;
if($this->standalone && isJobRunning())
{
$this->errormsg = 'Job kann nicht ausgefuehrt werden, da noch ein anderer Job laeuft';
return false;
}
if($this->server_kurzbz!=SERVER_NAME)
{
$this->errormsg = 'Fehler: Dieses Script kann nur am Server '.$this->server_kurzbz.' gestartet werden. (aktueller Server laut config: '.SERVER_NAME.')';
return false;
}
$this->running = true;
if(!$this->save())
return false;
unset($this->output);
$path = dirname($this->file);
$file = basename($this->file);
$file .= ' id='.$this->cronjob_id;
if(chdir($path))
{
exec("php $file", $this->output);
//echo "Execute: php $file";
$this->last_execute = date('Y-m-d H:i:s');
}
else
{
$this->errormsg = 'Fehler: Falscher Verzeichnisname';
$return = false;
}
$this->running = false;
if(!$this->save())
return false;
return $return;
}
/**
* Startet einen geladenen Cronjob mit Initialisierungsparameter
* Der Job setzt dann die Standardwerte fuer die Variablen
*
* @return true wenn ok, false im Fehlerfall
*/
public function init()
{
$return = true;
unset($this->output);
$path = dirname($this->file);
$file = basename($this->file);
$file .= ' -i';
$file .= ' id='.$this->cronjob_id;
if(chdir($path))
{
exec("php $file", $this->output);
//echo "Execute: php $file";
return true;
}
else
{
$this->errormsg = 'Fehler: Falscher Verzeichnisname';
return false;
}
}
/**
* Prueft ob zur Zeit ein Cronjob laeuft
*
* @return boolean
*/
public function isJobRunning()
{
$qry = 'SELECT count(*) as anzahl FROM system.tbl_cronjob WHERE running=true';
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
if($row->anzahl>0)
return true;
else
return false;
}
else
{
$this->errormsg = 'Fehler beim Ermitteln der Daten';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Ermitteln der Daten';
return false;
}
}
/**
* Parst die Schrittweite aus einem Feld
* Wenn eine fixe Zeitangabe enthalten ist, wird false zurueckgeliefert
*
* @param $value
* @return Schrittweite oder false wenn fixe Zeitangabe
*/
public function parseSchrittweite($value)
{
$matches='';
//Pruefen ob der Wert im Format "*/<Zahl>" ist
if(preg_match('/^\*\/(?P<value>\d+)/',$value, $matches))
return $matches['value'];
else
return false;
}
/**
* Prueft, ob der Wert ein Fixdatum ist
*
* @param $value
* @return boolean
*/
public function isFixDatum($value)
{
if($value=='')
return false;
if($this->parseSchrittweite($value))
return false;
return true;
}
/**
* Liefert die naechste Ausfuehrungszeit des aktuell geladenen Cronjobs
*
* @return timestamp des naechsten Starts
*/
public function getNextExecutionTime()
{
$datum = new datum();
$last_execute = $datum->mktime_fromtimestamp($this->last_execute);
$executiontime = $last_execute;
$jahr = date('Y', $last_execute);
$monat = date('m', $last_execute);
$tag = date('d', $last_execute);
$stunde = date('H', $last_execute);
$stunde_last = date('H', $last_execute);
$minute = date('i', $last_execute);
// wenn ein wochentag gewaehlt wird, dann wird jahr, monat und tag
// nicht beruecksichtigt
if($this->wochentag!='')
{
$stamp = jump_weekday($last_execute, $this->wochentag);
$jahr = date('Y',$stamp);
$monat = date('m',$stamp);
$tag = date('d',$stamp);
}
else
{
//jahr
if(!$jahr_schritt = $this->parseSchrittweite($this->jahr))
$jahr = ($this->jahr!=''?$this->jahr:$jahr);
else
$jahr+= $jahr_schritt;
//monat
if(!$monat_schritt = $this->parseSchrittweite($this->monat))
{
if($this->monat<$monat && $this->monat!='' && !$this->isFixDatum($this->jahr))
{
if(!$this->isFixDatum($this->jahr))
{
$jahr++;
}
}
$monat = ($this->monat!=''?$this->monat:$monat);
}
else
$monat+= $monat_schritt;
//tag
if(!$tag_schritt = $this->parseSchrittweite($this->tag))
{
if($this->tag<$tag && $this->tag!='')
{
if(!$this->isFixDatum($this->monat))
{
$monat++;
}
elseif(!$this->isFixDatum($this->jahr))
{
$jahr++;
}
}
$tag = ($this->tag!=''?$this->tag:$tag);
}
else
$tag+= $tag_schritt;
}
//Stunde
if(!$stunde_schritt = $this->parseSchrittweite($this->stunde))
{
if($this->stunde<$stunde && $this->stunde!='')
{
if(!$this->isFixDatum($this->tag))
{
$tag++;
}
elseif(!$this->isFixDatum($this->monat))
{
$monat++;
}
elseif(!$this->isFixDatum($this->jahr))
{
$jahr++;
}
}
$stunde = ($this->stunde!=''?$this->stunde:$stunde);
}
else
$stunde+= $stunde_schritt;
//Minute
if(!$minute_schritt = $this->parseSchrittweite($this->minute))
{
if($this->stunde<=$stunde_last)
{
if($this->minute<=$minute && $this->minute!='')
{
if(!$this->isFixDatum($this->stunde))
{
$stunde++;
}
elseif(!$this->isFixDatum($this->tag))
{
$tag++;
}
elseif(!$this->isFixDatum($this->monat))
{
$monat++;
}
elseif(!$this->isFixDatum($this->jahr))
{
$jahr++;
}
}
}
$minute = ($this->minute!=''?$this->minute:$minute);
}
else
$minute+= $minute_schritt;
$next = mktime($stunde, $minute, 0, $monat, $tag, $jahr);
//Cronjobs die nicht mehr ausgefuehrt werden (Datum vor der letzten Ausfuehrung)
if($next<$last_execute)
$next=false;
return $next;
}
/**
* Parst die Cronjob ID aus den Kommandozeilenparametern
*
* @return cronjob_id wenn ok, sonst false
*/
public function getCronjobID()
{
foreach ($_SERVER['argv'] as $row)
{
if(strstr($row,'id='))
{
return substr($row,strlen('id='));
}
}
return false;
}
/**
* Prueft ob der Script-Aufruf ein Inistialisierungsaufruf ist
*
* @return boolean
*/
public function isInitialCall()
{
foreach ($_SERVER['argv'] as $row)
{
if($row=='-i')
{
return true;
}
}
return false;
}
}
?>
+7 -4
View File
@@ -383,13 +383,15 @@ class firma extends basis_db
* Laedt alle Firmen Standorte, und Adressen nach Suchstring und/oder eines bestimmen Firmentyps
* @return true wenn ok, false im Fehlerfall
*/
public function searchFirma($filter='',$firmentyp_kurzbz='')
public function searchFirma($filter='',$firmentyp_kurzbz='', $standorte=false)
{
$this->result = array();
$this->errormsg = '';
$qry =" SElECT tbl_firma.firma_id,tbl_firma.* ";
$qry.=" ,tbl_standort.kurzbz,tbl_standort.adresse_id,tbl_standort.standort_id,tbl_standort.bezeichnung ";
$qry ="SELECT * FROM (SElECT ";
if(!$standorte)
$qry.=" distinct on(firma_id)";
$qry.=" tbl_firma.firma_id,tbl_firma.* ,tbl_standort.kurzbz,tbl_standort.adresse_id,tbl_standort.standort_id,tbl_standort.bezeichnung ";
$qry.=" ,person_id, tbl_adresse.name as adress_name, strasse, plz, ort, gemeinde,nation,typ,heimatadresse,zustelladresse ";
$qry.=" FROM public.tbl_firma, public.tbl_standort ";
$qry.=" left outer join public.tbl_adresse on ( tbl_adresse.adresse_id=tbl_standort.adresse_id ) ";
@@ -411,9 +413,10 @@ class firma extends basis_db
if($firmentyp_kurzbz!='')
$qry.=" and firmentyp_kurzbz='".addslashes($firmentyp_kurzbz)."'";
$qry.=" ORDER BY name ";
if($filter=='' && $firmentyp_kurzbz=='')
$qry.=" limit 500 ";
$qry.=") as a ORDER BY name ";
if($this->db_query($qry))
{
+2 -2
View File
@@ -281,9 +281,9 @@ class gruppe extends basis_db
*/
protected function validate()
{
if(mb_strlen($this->gruppe_kurzbz)>16)
if(mb_strlen($this->gruppe_kurzbz)>32)
{
$this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 16 Zeichen sein';
$this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 32 Zeichen sein';
return false;
}
if($this->gruppe_kurzbz=='')
+19
View File
@@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<script src="JSONeditor.js"></script>
<script>
onload=function(){
myjson = {"stgs":["256","257","222","546"],"mailtostudent":{"256":true,"257":true,"222":false,"546":false},"stsem":"WS2008"};
JSONeditor.start('tree','jform',myjson,false)
}
</script>
</head>
<body>
<div style="position:absolute;top:10px;left:10px" id="tree"></div>
<div style="position:absolute;top:10px;left:400px" id="jform"></div>
</body>
</html>
+686
View File
@@ -0,0 +1,686 @@
/*
jsonEditor 1.02
copyright 2007-2009 Thomas Frank
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
*/
JSONeditor={
start:function(treeDivName,formDivName,json,showExamples, path){
if(this.examples.length<6){
var e=this.treeBuilder.JSONstring.make(this)
eval("this.examples[5]={JSONeditor:"+e+"}")
}
this.treeDivName=treeDivName
var t=this.treeBuilder, $=t.$
treeBuilder=t
t.images.path=path+t.images.path;
var s=$(treeDivName).style
var f=$(formDivName)
var fs=f.style
f.innerHTML=this.formHTML
if(!showExamples){$('jExamples').style.display="none"}
fs.fontSize=s.fontSize="11px"
fs.fontFamily=s.fontFamily="Verdana,Arial,Helvetica,sans-serif"
var e=f.getElementsByTagName("*")
for(var i=0;i<e.length;i++){
var s=e[i].style
if(s){
s.fontSize="11px"
s.fontFamily="Verdana,Arial,Helvetica,sans-serif"
}
}
json=json||{}
t.JSONbuild(treeDivName,json)
},
loadExample:function(x){
treeBuilder.hasRunJSONbuildOnce=false
treeBuilder.JSONbuild(this.treeDivName,this.examples[x/1])
},
formHTML:"<form name=\"jsoninput\" onsubmit=\"return treeBuilder.jsonChange(this)\"><div id=\"jExamples\">Load an example:&nbsp;<select name=\"jloadExamples\" onchange=\"JSONeditor.loadExample(this.value)\"><option value=\"0\">None/empty</option><option value=\"1\">Employee data</option><option value=\"2\">Sample Konfabulator Widget</option><option value=\"3\">Member data</option><option value=\"4\">A menu system</option><option value=\"5\">The source code of this JSON editor</option></select><br><br></div>\nLabel:<br><input name=\"jlabel\" type=\"text\" value=\"\" size=\"60\" style=\"width:400px\"><br><br>\nValue: <br><textarea name=\"jvalue\" rows=\"10\" cols=\"50\" style=\"width:400px\"></textarea><br><br>\nData type: <select onchange=\"treeBuilder.changeJsonDataType(this.value,this.parentNode)\" name=\"jtype\">\n<option value=\"object\">object</option>\n<option value=\"array\">array</option>\n<option value=\"function\">function</option>\n<option value=\"string\">string</option>\n<option value=\"number\">number</option>\n<option value=\"boolean\">boolean</option>\n<option value=\"null\">null</option>\n<option value=\"undefined\">undefined</option>\n</select>&nbsp;&nbsp;&nbsp;&nbsp;\n<input name=\"orgjlabel\" type=\"hidden\" value=\"\" size=\"50\" style=\"width:300px\">\n<input onfocus=\"this.blur()\" type=\"submit\" value=\"Save\">&nbsp;\n<br><br>\n<input name=\"jAddChild\" onfocus=\"this.blur()\" type=\"button\" onclick=\"treeBuilder.jsonAddChild(this.parentNode)\" value=\"Add child\">\n<input name=\"jAddSibling\" onfocus=\"this.blur()\" type=\"button\" onclick=\"treeBuilder.jsonAddSibling(this.parentNode)\" value=\"Add sibling\">\n<br><br>\n<input name=\"jRemove\" onfocus=\"this.blur()\" type=\"button\" onclick=\"treeBuilder.jsonRemove(this.parentNode)\" value=\"Delete\">&nbsp;\n<input name=\"jRename\" onfocus=\"this.blur()\" type=\"button\" onclick=\"treeBuilder.jsonRename(this.parentNode)\" value=\"Rename\">&nbsp;\n<input name=\"jCut\" onfocus=\"this.blur()\" type=\"button\" onclick=\"treeBuilder.jsonCut(this.parentNode)\" value=\"Cut\">&nbsp;\n<input name=\"jCopy\" onfocus=\"this.blur()\" type=\"button\" onclick=\"treeBuilder.jsonCopy(this.parentNode)\" value=\"Copy\">&nbsp;\n<input name=\"jPaste\" onfocus=\"this.blur()\" type=\"button\" onclick=\"treeBuilder.jsonPaste(this.parentNode)\" value=\"Paste\">&nbsp;\n<br><br>\n<input type=\"checkbox\" name=\"jbefore\">Add children first/siblings before\n<br>\n<input type=\"checkbox\" name=\"jPasteAsChild\">Paste as child on objects & arrays\n<br><br><div id=\"jformMessage\"></div>\n</form>",
examples:[{},
{employee:{gid:102, companyID:121, defaultActionID:444,names:{firstName:"Stive", middleInitial:"Jr",lastName:"Martin"},address:{city:"Albany",state:"NY",zipCode:"14410-585",addreess:"41 State Street"},job:{departmentID:102,jobTitleID:100,hireDate:"1/02/2000",terminationDate:"1/12/2007"},contact:{phoneHome:"12-123-2133", beeper:"5656",email1:"info@soft-amis.com",fax:"21-321-23223",phoneMobile:"32-434-3433",phoneOffice:"82-900-8993"},login:{employeeID:"eID102",password:"password",superUser:true,lastLoginDate:"1/12/2007",text:"text", regexp:/^mmm/, date: new Date() },comment:{PCDATA:"comment"},roles:[{role:102},{role:103}]}},
{"widget": {"debug": true,"window": {"title": "Sample Konfabulator Widget","name": "main_window","width": 500,"height": 500},"Pairs": [ {"src": "Images/Sun.png","name": "sun1"},{"hOffset": 250,"vOffset": 200},null,{"alignment": "center"}],"text": {"a very long item label here": "Click Here","size": 36,"style": "null","name": "text1","hOffset": 250,"vOffset": 100,"alignment": "center","onmouseover": function(){alert("Hello World");},"onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"}}},
{"members": [{"href": "1","entity": {"category": [{"term": "weblog", "label": "Weblog stuff"}],"updated": "2007-05-02T23:32:03Z","title": "This is the second post","author": {"uri": "http://dealmeida.net/","email": "roberto@dealmeida.net","name": "Rob de Almeida"},"summary": "Testing search","content": {"content": "This is my second post, to test the search.","type": "text"},"id": "1"}},{"href": "0","entity": {"category": [{"term": "weblog", "label": "Weblog stuff"},{"term": "json", "label": "JSON"}],"updated": "2007-05-02T23:25:59Z","title": "This is the second version of the first post","author": {"uri": "http://dealmeida.net/","email": "roberto@dealmeida.net","name": "Rob de Almeida"},"summary": "This is my first post here, after some modifications","content": {"content": "This is my first post, testing the jsonstore WSGI microapp PUT.","type": "html"},"id": "0"}}],"next": null},
{"menu": {"header": "SVG Viewer","items": [{"id": "Open"},{"id": "OpenNew", "label": "Open New", "thing": "thing"},{"id": "ZoomIn", "label": "Zoom In"},{"id": "ZoomOut", "label": "Zoom Out"},{"id": "OriginalView", "label": "Original View"},null,{"id": "Quality"},{"id": "Pause"},{"id": "Mute"},null,{"id": "Find", "label": "Find..."},{"id": "FindAgain", "label": "Find Again"},{"id": "Copy"},{"id": "CopyAgain", "label": "Copy Again"},{"id": "CopySVG", "label": "Copy SVG"},{"id": "ViewSVG", "label": "View SVG"}]}}
]
}
/*
treeBuilder v 1.00 + a lot of json stuff added...
copyright 2007 Thomas Frank
*/
JSONeditor.treeBuilder={
stateMem:{},
images:{
folderNode:'',
folderNodeOpen:'',
folderNodeLast:'',
folderNodeOpenLast:'',
docNode:'',
docNodeLast:'',
folder:'',
folderOpen:'',
doc:'',
vertLine:'',
folderNodeFirst:'',
folderNodeOpenFirst:'',
folderNodeLastFirst:'',
folderNodeOpenLastFirst:'',
path:'treeBuilderImages/',
nodeWidth:16
},
$:function(x){return document.getElementById(x)},
preParse:function(x){
var x=x.innerHTML.split("\n");
var d=[];
for(var i=0;i<x.length;i++){
if(x[i]){
var y=x[i].split("\t");
var l=0;while(!y[l]){l++};
var la=y[l]?y[l]:'';l++;
var t=y[l]?y[l]:'';
d.push({level:l,label:la,todo:t});
}
};
return d
},
isArray:function(x){
return x.constructor==Array
},
jSyncTree:function(x){
var d=this.$(this.baseDiv).getElementsByTagName('div')
for(var i=0;i<d.length;i++){
treeBuilder.maniClick="giveItBack"
var p=d[i].onclick()
if(p==x){
var t=d[i]
treeBuilder.maniClick="selectIt"
t.onclick()
t=t.parentNode
while(t.id!=this.baseDiv){if(t.style){this.openAndClose(t.id,"open")};t=t.parentNode}
}
}
treeBuilder.maniClick=false
},
jsonResponder:function(x){
this.jTypeChanged=false
treeBuilder.jSyncTree(x)
var t=treeBuilder
eval("var a=treeBuilder."+x)
eval("var ap=treeBuilder."+treeBuilder.jsonParent(x))
var b=t.JSONstring.make(a)
var t=(a && treeBuilder.isArray(a))?"array":typeof a
var tp=(ap && treeBuilder.isArray(ap))?"array":typeof ap
if(a===null){t="null"}
var f=document.forms.jsoninput
if(t=="string"){eval("b="+b)}
f.jlabel.value=x
f.orgjlabel.value=x
f.jvalue.value=b
f.jtype.value=t
f.jlabel.disabled=f.jlabel.value=="json"
f.jtype.disabled=f.jlabel.disabled
f.jRemove.disabled=f.jlabel.disabled
f.jAddSibling.disabled=f.jlabel.disabled
f.jRename.disabled=f.jlabel.disabled || tp=="array"
f.jAddChild.disabled=t!="array" && t!="object"
f.jPaste.disabled=!treeBuilder.jClipboard
f.jCut.disabled=f.jlabel.disabled
},
jsonParent:function(x){
// inmproved thanks to \x000
if(x=="json"){return "treeBuilder"}
if (x.charAt(x.length-1)==']') {return x.substring(0,x.lastIndexOf('['))}
return x.substring(0,x.lastIndexOf('.'))
},
jsonChild:function(el1){
var p=this.jsonParent(el1)
el1=el1.split(p).join("")
if(el1.charAt(0)=="."){el1=el1.substring(1)}
if(el1.charAt(0)=="["){el1=el1.substring(2,el1.length-2)}
return el1
},
jsonRemove:function(f){
this.jsonChange(f,true)
},
jsonAlreadyExists:function(o,l){
if(o[l]!==undefined){
var co=2
while(o[l+"_"+co]!==undefined){co++}
var n=l+"_"+co
var p='"'+l+'" already exists in this object.\nDo you want to rename? (otherwise the old "'+l+'" will be overwritten.)'
p=prompt(p,n)
if(p){l=p}
}
return l
},
jsonAddChild:function(f,label){
var first=f.jbefore.checked
var l=f.orgjlabel.value
eval('var o=this.'+l)
var t=(o && this.isArray(o))?"array":typeof o
if(t=="object"){
var nl=label||prompt("Label (without path):","")
if(!nl){return}
if(nl/1==nl){nl="$"+nl}
nl=this.jsonAlreadyExists(o,nl)
var n=nl.replace(/\w/g,'')===""?l+"."+nl:l+'["'+nl+'"]'
eval('this.'+n+'={}')
if(first){
eval("var t=this."+l+";this."+l+"={};var s=this."+l)
eval('this.'+n+'={}')
for(var i in t){s[i]=t[i]}
}
}
if(t=="array"){
o.push({})
n=l+"["+(o.length-1)+"]"
if(first){
for(var i=o.length-1;i>0;i--){o[i]=o[i-1]}
o[0]={}
n=l+"[0]"
}
}
this.JSONbuild(this.baseDiv,this.json)
for(var i in this.stateMem){this.openAndClose(i,true)}
this.jsonResponder(n)
},
jsonAddSibling:function(f,label){
var before=f.jbefore.checked
var l=f.orgjlabel.value
var r=Math.random()
eval('var temp=this.'+l)
eval('this.'+l+"=r")
var s=this.JSONstring.make(this.json)
s=s.split(r+",")
if(s.length<2){s=s[0].split(r)}
var lp=this.jsonParent(l)
eval('var o=this.'+lp)
var t=(o && this.isArray(o))?"array":typeof o
if(t=="object"){
var nl=label||prompt("Label (without path):","")
if(!nl){return}
if(nl/1==nl){nl="$"+nl}
nl=this.jsonAlreadyExists(o,nl)
var n=nl.replace(/\w/g,'')===""?"."+nl:'["'+nl+'"]'
s=s.join('null,"'+nl+'":{},')
lp+=n
}
if(t=="array"){
s=s.join('null,{},')
var k=l.split("[")
k[k.length-1]=(k[k.length-1].split("]").join("")/1+1)+"]"
lp=k.join("[")
}
s=s.split("},}").join("}}") // replace with something better soon
eval('this.json='+s)
eval('this.'+l+'=temp')
if(before){lp=this.jsonSwitchPlace(this.jsonParent(l),l,lp)}
this.JSONbuild(this.baseDiv,this.json)
for(var i in this.stateMem){this.openAndClose(i,true)}
this.jsonResponder(lp)
},
jSaveFirst:function(f,a){
var l=f.orgjlabel.value
eval("var orgj=this."+l)
orgj=this.JSONstring.make(orgj)
var v=f.jvalue.value
v=f.jtype.value=="string"?this.JSONstring.make(v):v
v=v.split("\r").join("")
if(orgj!=v || f.orgjlabel.value!=f.jlabel.value || this.jTypeChanged){
var k=confirm("Save before "+a+"?")
if(k){this.jsonChange(f)}
}
},
jsonRename:function(f){
this.jSaveFirst(f,"renaming")
var orgl=l=f.orgjlabel.value
l=this.jsonChild(l)
var nl=prompt("Label (without path):",l)
if(!nl){return}
this.jsonResponder(orgl)
var nl=nl.replace(/\w/g,'')===""?"."+nl:'["'+nl+'"]'
f.jlabel.value=this.jsonParent(orgl)+nl
this.jsonChange(f,false,true)
},
jsonSwitchPlace:function(p,el1,el2){
var orgel1=el1, orgel2=el2
eval("var o=this."+p)
if(this.isArray(o)){
eval("var t=this."+el1)
eval("this."+el1+"=this."+el2)
eval("this."+el2+"=t")
return orgel1
}
el1=this.jsonChild(el1)
el2=this.jsonChild(el2)
var o2={}
for(var i in o){
if(i==el1){o2[el2]=o[el2];o2[el1]=o[el1];continue}
if(i==el2){continue}
o2[i]=o[i]
}
eval("this."+p+"=o2")
return orgel2
},
jsonCut:function(f){
this.jSaveFirst(f,"cutting")
this.jsonCopy(f,true)
this.jsonChange(f,true)
this.setJsonMessage('Cut to clipboard!')
},
jsonCopy:function(f,r){
if(!r){this.jSaveFirst(f,"copying")}
var l=f.orgjlabel.value
eval("var v=this."+l)
v=this.JSONstring.make(v)
var l=this.jsonChild(l)
this.jClipboard={label:l,jvalue:v}
this.jsonResponder(f.jlabel.value)
if(!r){this.setJsonMessage('Copied to clipboard!')}
},
jsonPaste:function(f,r){
var t=f.jtype.value
var sibling=t!="object" && t!="array"
if(!f.jPasteAsChild.checked){sibling=true}
if(f.orgjlabel.value=="json"){sibling=false}
if(sibling){this.jsonAddSibling(f,this.jClipboard.label)}
else {this.jsonAddChild(f,this.jClipboard.label)}
var l=f.orgjlabel.value
eval("this."+l+"="+this.jClipboard.jvalue)
this.jsonResponder(l)
this.jsonChange(f)
if(!r){this.setJsonMessage('Pasted!')}
},
setJsonMessage:function(x){
this.$('jformMessage').innerHTML=x
setTimeout("treeBuilder.$('jformMessage').innerHTML=''",1500)
},
changeJsonDataType:function(x,f){
this.jTypeChanged=true
var v=f.jvalue.value
var orgv=v;
v=x=='object'?'{"label":"'+v+'"}':v
v=x=='array'?'["'+v+'"]':v
if(!orgv){
v=x=='object'?'{}':v
v=x=='array'?'[]':v
}
v=x=='function'?'function(){'+v+'}':v
v=x=='string'?v:v
v=x=='number'?v/1:v
v=x=='boolean'?!!v:v
v=x=='null'?'null':v
v=x=='undefined'?'undefined':v
f.jvalue.value=v
},
jsonChange:function(f,remove,rename){
try {
var l=f.jlabel.value
var orgl=f.orgjlabel.value||"json.not1r2e3a4l"
eval("var cur=this."+l)
if(l!=orgl && cur!==undefined){
var c=confirm(l+"\n\nalready contains other data. Overwrite?")
if(!c){return false}
}
var v=f.jvalue.value.split("\r").join("")
if(f.jtype.value=="string"){
v=this.JSONstring.make(v)
}
if(l=="json"){
eval("v="+v)
this.JSONbuild(this.baseDiv,v)
for(var i in this.stateMem){this.openAndClose(i,true)}
this.setJsonMessage('Saved!')
return false
}
eval("var json="+this.JSONstring.make(this.json))
var randi=Math.random()
eval(orgl+'='+randi)
var paname=this.jsonParent(orgl)
var samepa=this.jsonParent(orgl)==this.jsonParent(l)
eval("var pa="+paname)
if(this.isArray(pa)){
eval(paname+'=[];var newpa='+paname)
for(var i=0;i<pa.length;i++){
if(pa[i]!=randi){newpa[i]=pa[i]}
}
if(remove){
var pos=l.substring(l.lastIndexOf("[")+1,l.lastIndexOf("]"))/1
newpa=newpa.splice(pos,1)
}
if(!remove){eval(l+"="+v)}
}
else {
eval(paname+'={};var newpa='+paname)
for(var i in pa){
if(pa[i]!=randi){newpa[i]=pa[i]}
else if(samepa && !remove){eval(l+"="+v)}
}
if(!samepa && !remove){eval(l+"="+v)}
}
this.json=json
var selId=this.selectedElement?this.selectedElement.id:null
this.JSONbuild(this.baseDiv,this.json)
for(var i in this.stateMem){this.openAndClose(i,true)}
this.selectedElement=this.$(selId)
if(this.selectedElement && !remove && orgl!="json.not1r2e3a4l"){
this.selectedElement.style.fontWeight="bold"
}
if(remove){l=""}
this.setJsonMessage(remove?'Deleted!':rename?'Renamed!':'Saved!')
if(!remove){this.jsonResponder(l)}
}
catch(err){
alert(err+"\n\n"+"Save error!")
}
return false
},
JSONbuild:function(divName,x,y,z){
if(!z){
this.partMem=[]
this.JSONmem=[]
this.json=x
this.baseDiv=divName
}
var t=(x && this.isArray(x))?"array":typeof x
y=y===undefined?"json":y
z=z||0
this.partMem[z]='["'+y+'"]'
if(typeof y!="number" && y.replace(/\w/g,'')===""){this.partMem[z]="."+y}
if(typeof y=="number"){this.partMem[z]="["+y+"]"}
if(z===0){this.partMem[z]="json"}
this.partMem=this.partMem.slice(0,z+1)
var x2=x
this.JSONmem.push({type:t,label:y,todo:this.partMem.join(""),level:z+1})
if(t=="object"){
for(var i in x){
this.JSONbuild(false,x[i],i,z+1)
}
}
if(t=="array"){
for(var i=0;i<x.length;i++){
this.JSONbuild(false,x[i],i,z+1)
}
}
if(divName){
this.build(divName,this.jsonResponder,this.JSONmem)
if(!this.hasRunJSONbuildOnce){this.jsonResponder('json')}
this.hasRunJSONbuildOnce=true
}
},
build:function(divName,todoFunc,data){
//
// divName is the id of the div we'll build the tree inside
//
// todoFunc - a function to call on label click with todo as parameter
//
// data should be an array of objects
// each object should contain label,todo + level or id and pid (parentId)
//
var d=data, n=divName, $=this.$, lastlevel=0, levelmem=[], im=this.images;
this.treeBaseDiv=divName
if(!d){
var c=$(divName).childNodes;
for(var i=0;i<c.length;i++){
if((c[i].tagName+"").toLowerCase()=='pre'){d=this.preParse(c[i])}
};
if(!d){return}
};
$(n).style.display="none";
while ($(n).firstChild){$(n).removeChild($(n).firstChild)};
for(var i=0;i<d.length;i++){
if(d[i].level && !lastlevel){lastlevel=d[i].level};
if(d[i].level && d[i].level>lastlevel){levelmem.push(n);n=d[i-1].id};
if(d[i].level && d[i].level>lastlevel+1){return 'Trying to jump levels!'};
if(d[i].level && d[i].level<lastlevel){
for(var j=d[i].level;j<lastlevel;j++){n=levelmem.pop()}
};
if(!d[i].id){d[i].id=n+"_"+i};
if(!d[i].pid){d[i].pid=n};
lastlevel=d[i].level;
var a=document.createElement('div');
var t=document.createElement('span');
t.style.verticalAlign='middle';
a.style.whiteSpace='nowrap';
var t2=document.createTextNode(d[i].label);
t.appendChild(t2);
a.style.paddingLeft=d[i].pid==divName?'0px':im.nodeWidth+'px';
a.style.cursor='pointer';
a.style.display=(d[i].pid==divName)?'':'none';
a.id=d[i].id;
a.t=t;
var f=function(){
var todo=d[i].todo;
var func=todoFunc;
a.onclick=function(e){
if(treeBuilder.maniClick=="giveItBack"){return todo}
if(treeBuilder.selectedElement){
treeBuilder.selectedElement.style.fontWeight=""
}
this.style.fontWeight="bold"
treeBuilder.selectedElement=this
if(treeBuilder.maniClick=="selectIt"){return}
func(todo);
if (!e){e=window.event};
e.cancelBubble = true;
if(e.stopPropagation){e.stopPropagation()};
};
a.onmouseover=function(e){
//this.style.color="#999"
if (!e){e=window.event};
e.cancelBubble = true;
if(e.stopPropagation){e.stopPropagation()};
};
a.onmouseout=function(e){
//this.style.color=""
if (!e){e=window.event};
e.cancelBubble = true;
if(e.stopPropagation){e.stopPropagation()};
};
};
f();
$(d[i].pid).appendChild(a);
if(d[i].pid==divName && !a.previousSibling){a.first=true};
};
// calculate necessary element looks before initial display
for(var i=0;i<d.length;i++){var x=$(d[i].id);if(x && x.style.display!="none"){this.setElementLook(x)}};
$(divName).style.display="";
},
setElementLook:function(m){
var $=this.$, im=this.images
if(!m.inited){
var co=0
for(var j in im){
if(!Object.prototype[j]){
if(j=="vertLine"){break};
var img=document.createElement('img');
var k=(m.first && j.indexOf('Node')>=0)?j+'First':j;
img.src=im.path+(im[k]?im[k]:k+'.gif');
img.style.display="none";
img.style.verticalAlign="middle";
img.id=m.id+"_"+j;
if(j.indexOf('folderNode')==0){
img.onclick=function(e){
treeBuilder.openAndClose(this);
if (!e){e=window.event};
e.cancelBubble = true;
if(e.stopPropagation){e.stopPropagation()};
}
};
if(m.firstChild){m.insertBefore(img,m.childNodes[co]); co++}
else {m.appendChild(img)};
}
};
m.insertBefore(m.t,m.childNodes[co]);
m.inited=true
};
var lastChild=m.childNodes[m.childNodes.length-1];
var isParent=(lastChild.tagName+"").toLowerCase()=="div";
var isLast=!m.nextSibling;
var isOpen=isParent && lastChild.style.display!='none';
$(m.id+"_folder").style.display=!isOpen && isParent?'':'none';
$(m.id+"_folderOpen").style.display=isOpen && isParent?'':'none';
$(m.id+"_doc").style.display=isParent?'none':'';
$(m.id+"_docNode").style.display=isParent || isLast?'none':'';
$(m.id+"_docNodeLast").style.display=isParent || !isLast?'none':'';
$(m.id+"_folderNode").style.display=isOpen || !isParent || isLast?'none':'';
$(m.id+"_folderNodeLast").style.display=isOpen || !isParent || !isLast?'none':'';
$(m.id+"_folderNodeOpen").style.display=!isOpen || !isParent || isLast?'none':'';
$(m.id+"_folderNodeOpenLast").style.display=!isOpen || !isParent || !isLast?'none':'';
var p=m.parentNode.nextSibling;
if(p && p.id){
var sp=p;insideBase=false;
while(sp){if(sp==$(this.treeBaseDiv)){insideBase=true};sp=sp.parentNode}
if(!insideBase){return}
var bg=im.path+(im.vertLine?im.vertLine:'vertLine.gif');
m.style.backgroundImage='url('+bg+')';
m.style.backgroundRepeat='repeat-y'
};
},
openAndClose:function(x,remem){
var o, div=remem?this.$(x):x.parentNode;
if(!div){return}
if(remem){o=this.stateMem[div.id]}
else {o=x.id.indexOf('Open')<0}
if(remem=="open"){o=true}
this.stateMem[div.id]=o
var c=div.childNodes;
for(var i=0;i<c.length;i++){
if(c[i].tagName.toLowerCase()!="div"){continue};
c[i].style.display=o?'':'none';
if(o && !c[i].inited){this.setElementLook(c[i])}
};
this.setElementLook(div)
}
}
/*
JSONstring v 1.0
copyright 2006 Thomas Frank
Based on Steve Yen's implementation:
http://trimpath.com/project/wiki/JsonLibrary
*/
JSONeditor.treeBuilder.JSONstring={
compactOutput:false,
includeProtos:false,
includeFunctions: true,
detectCirculars:false,
restoreCirculars:false,
make:function(arg,restore) {
this.restore=restore;
this.mem=[];this.pathMem=[];
return this.toJsonStringArray(arg).join('');
},
toObject:function(x){
eval("this.myObj="+x);
if(!this.restoreCirculars || !alert){return this.myObj};
this.restoreCode=[];
this.make(this.myObj,true);
var r=this.restoreCode.join(";")+";";
eval('r=r.replace(/\\W([0-9]{1,})(\\W)/g,"[$1]$2").replace(/\\.\\;/g,";")');
eval(r);
return this.myObj
},
toJsonStringArray:function(arg, out) {
if(!out){this.path=[]};
out = out || [];
var u; // undefined
switch (typeof arg) {
case 'object':
this.lastObj=arg;
if(this.detectCirculars){
var m=this.mem; var n=this.pathMem;
for(var i=0;i<m.length;i++){
if(arg===m[i]){
out.push('"JSONcircRef:'+n[i]+'"');return out
}
};
m.push(arg); n.push(this.path.join("."));
};
if (arg) {
if (arg.constructor == Array) {
out.push('[');
for (var i = 0; i < arg.length; ++i) {
this.path.push(i);
if (i > 0)
out.push(',\n');
this.toJsonStringArray(arg[i], out);
this.path.pop();
}
out.push(']');
return out;
} else if (typeof arg.toString != 'undefined') {
out.push('{');
var first = true;
for (var i in arg) {
if(!this.includeProtos && arg[i]===arg.constructor.prototype[i]){continue};
this.path.push(i);
var curr = out.length;
if (!first)
out.push(this.compactOutput?',':',\n');
this.toJsonStringArray(i, out);
out.push(':');
this.toJsonStringArray(arg[i], out);
if (out[out.length - 1] == u)
out.splice(curr, out.length - curr);
else
first = false;
this.path.pop();
}
out.push('}');
return out;
}
return out;
}
out.push('null');
return out;
case 'unknown':
case 'undefined':
case 'function':
try {eval('var a='+arg)}
catch(e){arg='function(){alert("Could not convert the real function to JSON, due to a browser bug only found in Safari. Let us hope it will get fixed in future versions of Safari!")}'}
out.push(this.includeFunctions?arg:u);
return out;
case 'string':
if(this.restore && arg.indexOf("JSONcircRef:")==0){
this.restoreCode.push('this.myObj.'+this.path.join(".")+"="+arg.split("JSONcircRef:").join("this.myObj."));
};
out.push('"');
var a=['\n','\\n','\r','\\r','"','\\"'];
arg+=""; for(var i=0;i<6;i+=2){arg=arg.split(a[i]).join(a[i+1])};
out.push(arg);
out.push('"');
return out;
default:
out.push(String(arg));
return out;
}
}
}
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 993 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 974 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 872 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 868 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 863 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 B

+11 -2
View File
@@ -35,13 +35,22 @@
$student = new student($user);
$datum_obj = new datum();
//Outgoing
echo '<tr>
echo '
<tr>
<td class="tdwidth10" nowrap>&nbsp;</td>
<td class="tdwrap">
<a class="Item" href="https://www.mobility-online.co.at/mobility/BewerbungServlet?identifier=wien20&kz_bew_art=OUT&kz_bew_pers=S&aust_prog=SMS&bew_matr_nr='.rawurlencode(trim($student->matrikelnr)).'&bew_nachname='.rawurlencode($student->nachname).'&bew_vorname='.rawurlencode($student->vorname).'&bew_titel='.rawurlencode($student->titelpre).'&bew_email='.rawurlencode($user.'@'.DOMAIN).'&bew_geb_datum='.rawurlencode($datum_obj->formatDatum($student->gebdatum,'d.m.Y')).'&bew_geschlecht='.rawurlencode(mb_strtoupper($student->geschlecht)).'" target="content">
<img src="../../skin/images/menu_item.gif" width="7" height="9">&nbsp;Mobility</a>
</td>
</tr>';
</tr>
<tr>
<td class="tdwidth10" nowrap>&nbsp;</td>
<td class="tdwrap">
<a class="Item" href="https://www.mobility-online.co.at/mobility/BewerbungServlet?sprache=en&identifier=wien20&kz_bew_art=OUT&kz_bew_pers=S&aust_prog=SMS&bew_matr_nr='.rawurlencode(trim($student->matrikelnr)).'&bew_nachname='.rawurlencode($student->nachname).'&bew_vorname='.rawurlencode($student->vorname).'&bew_titel='.rawurlencode($student->titelpre).'&bew_email='.rawurlencode($user.'@'.DOMAIN).'&bew_geb_datum='.rawurlencode($datum_obj->formatDatum($student->gebdatum,'d.m.Y')).'&bew_geschlecht='.rawurlencode(mb_strtoupper($student->geschlecht)).'" target="content">
<img src="../../skin/images/menu_item.gif" width="7" height="9">&nbsp;Mobility Englisch</a>
</td>
</tr>
';
//Dokumente
echo '<tr>
+7 -2
View File
@@ -193,8 +193,13 @@ $menu=array
'ServerTests'=>array('name'=>'Server-Tests', 'link'=>'admin/test/index.html', 'target'=>'main'),
'htaccessGenerator'=>array('name'=>'.htaccess-Generator', 'link'=>'admin/htaccess/access.php', 'target'=>'main'),
),
'FAS-Installation'=>array('name'=>'FAS-Installation', 'link'=>'admin/fasinstall.html', 'target'=>'main'),
'ViReferenz'=>array('name'=>'VI-Kurzreferenz', 'link'=>'admin/VI-Kurzreferenz.html', 'target'=>'main'),
'Hilfe'=> array
(
'name'=>'Hilfe',
'FAS-Installation'=>array('name'=>'FAS-Installation', 'link'=>'admin/fasinstall.html', 'target'=>'main'),
'ViReferenz'=>array('name'=>'VI-Kurzreferenz', 'link'=>'admin/VI-Kurzreferenz.html', 'target'=>'main'),
),
'Cronjobs'=>array('name'=>'Cronjobs', 'link'=>'stammdaten/cronjobverwaltung.php', 'target'=>'main','permissions'=>array('basis/cronjob')),
),
'SD-Tools'=> array
(
+18 -10
View File
@@ -38,6 +38,16 @@ if(isset($_GET['firma_id']))
else
$firma_id = '';
if(isset($_GET['filter']))
$filter = $_GET['filter'];
else
$filter = '';
if(isset($_GET['firmentyp_kurzbz']))
$firmentyp_kurzbz = $_GET['firmentyp_kurzbz'];
else
$firmentyp_kurzbz='';
$datum = new datum();
$firma = new firma();
@@ -60,10 +70,6 @@ if(isset($_GET['optional']) && $_GET['optional']=='true')
<RDF:Description id="" about="" >
<FIRMA:firma_id><![CDATA[]]></FIRMA:firma_id>
<FIRMA:name><![CDATA[-- keine Auswahl --]]></FIRMA:name>
<FIRMA:adresse><![CDATA[]]></FIRMA:adresse>
<FIRMA:email><![CDATA[]]></FIRMA:email>
<FIRMA:telefon><![CDATA[]]></FIRMA:telefon>
<FIRMA:fax><![CDATA[]]></FIRMA:fax>
<FIRMA:anmerkung><![CDATA[]]></FIRMA:anmerkung>
<FIRMA:firmentyp_kurzbz><![CDATA[]]></FIRMA:firmentyp_kurzbz>
</RDF:Description>
@@ -76,12 +82,18 @@ if($firma_id!='')
$firma->load($firma_id);
draw_rdf($firma);
}
else
elseif($firmentyp_kurzbz!='' || $filter!='')
{
$firma->getAll($firma_id);
$firma->searchFirma($filter, $firmentyp_kurzbz);
foreach ($firma->result as $row)
draw_rdf($row);
}
else
{
//$firma->getAll($firma_id);
//foreach ($firma->result as $row)
// draw_rdf($row);
}
function draw_rdf($row)
{
@@ -92,10 +104,6 @@ function draw_rdf($row)
<RDF:Description id="'.$row->firma_id.'" about="'.$rdf_url.'/'.$row->firma_id.'" >
<FIRMA:firma_id><![CDATA['.$row->firma_id.']]></FIRMA:firma_id>
<FIRMA:name><![CDATA['.$row->name.']]></FIRMA:name>
<FIRMA:adresse><![CDATA['.$row->adresse.']]></FIRMA:adresse>
<FIRMA:email><![CDATA['.$row->email.']]></FIRMA:email>
<FIRMA:telefon><![CDATA['.$row->telefon.']]></FIRMA:telefon>
<FIRMA:fax><![CDATA['.$row->fax.']]></FIRMA:fax>
<FIRMA:anmerkung><![CDATA['.$row->anmerkung.']]></FIRMA:anmerkung>
<FIRMA:firmentyp_kurzbz><![CDATA['.$row->firmentyp_kurzbz.']]></FIRMA:firmentyp_kurzbz>
</RDF:Description>
+1
View File
@@ -81,6 +81,7 @@ function draw_rdf($row)
<KONTAKT:person_id><![CDATA['.$row->person_id.']]></KONTAKT:person_id>
<KONTAKT:firma_id><![CDATA['.$row->firma_id.']]></KONTAKT:firma_id>
<KONTAKT:firma_name><![CDATA['.$row->firma_name.']]></KONTAKT:firma_name>
<KONTAKT:standort_id><![CDATA['.$row->standort_id.']]></KONTAKT:standort_id>
<KONTAKT:kontakttyp><![CDATA['.$row->kontakttyp.']]></KONTAKT:kontakttyp>
<KONTAKT:anmerkung><![CDATA['.$row->anmerkung.']]></KONTAKT:anmerkung>
<KONTAKT:kontakt><![CDATA['.$row->kontakt.']]></KONTAKT:kontakt>
+1 -1
View File
@@ -119,7 +119,7 @@ function draw_row($mitarbeiter)
if($lehrveranstaltung_id==null && $filter==null && $mitarbeiter_uid==null)
{
$ma=$mitarbeiter->getMitarbeiter($lektor,$fixangestellt,$stg_kz,$fachbereich_id);
$ma=$mitarbeiter->getMitarbeiter($lektor,$fixangestellt,$stg_kz);
$stg_obj = new studiengang();
$stg_obj->getAll('typ, kurzbz', false);
+1 -1
View File
@@ -153,7 +153,7 @@ function draw_row($mitarbeiter)
<MITARBEITER:ort_kurzbz><![CDATA['.$mitarbeiter->ort_kurzbz.']]></MITARBEITER:ort_kurzbz>
<MITARBEITER:telefonklappe><![CDATA['.$mitarbeiter->telefonklappe.']]></MITARBEITER:telefonklappe>
<MITARBEITER:anmerkung><![CDATA['.$mitarbeiter->anmerkung.']]></MITARBEITER:anmerkung>
<MITARBEITER:standort_kurzbz><![CDATA['.$mitarbeiter->standort_kurzbz.']]></MITARBEITER:standort_kurzbz>
<MITARBEITER:standort_id><![CDATA['.$mitarbeiter->standort_id.']]></MITARBEITER:standort_id>
<MITARBEITER:alias><![CDATA['.$mitarbeiter->alias.']]></MITARBEITER:alias>
<MITARBEITER:insertamum><![CDATA['.date('d.m.Y H:i:s',$datum->mktime_fromtimestamp($mitarbeiter->insertamum)).']]></MITARBEITER:insertamum>
<MITARBEITER:insertamum_iso><![CDATA['.$mitarbeiter->insertamum.']]></MITARBEITER:insertamum_iso>
+43 -5
View File
@@ -34,6 +34,27 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
$rdf_url='http://www.technikum-wien.at/standort';
if(isset($_GET['firma_id']) && is_numeric($_GET['firma_id']))
$firma_id = $_GET['firma_id'];
else
unset($firma_id);
if(isset($_GET['standort_id']) && is_numeric($_GET['standort_id']))
$standort_id = $_GET['standort_id'];
else
unset($standort_id);
if(isset($_GET['standort_id_all']) && is_numeric($_GET['standort_id_all']))
$standort_id_all = $_GET['standort_id_all'];
else
unset($standort_id_all);
if(isset($_GET['firmentyp_kurzbz']))
$firmentyp_kurzbz = $_GET['firmentyp_kurzbz'];
else
unset($firmentyp_kurzbz);
echo '
<RDF:RDF
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
@@ -47,14 +68,29 @@ if(isset($_GET['optional']) && $_GET['optional']=='true')
echo '
<RDF:li>
<RDF:Description id="" about="" >
<STANDORT:standort_kurzbz><![CDATA[]]></STANDORT:standort_kurzbz>
<STANDORT:standort_id><![CDATA[]]></STANDORT:standort_id>
<STANDORT:adresse_id><![CDATA[]]></STANDORT:adresse_id>
<STANDORT:bezeichnung><![CDATA[-- keine Auswahl --]]></STANDORT:bezeichnung>
<STANDORT:kurzbz><![CDATA[-- keine Auswahl --]]></STANDORT:kurzbz>
<STANDORT:firma_id><![CDATA[]]></STANDORT:firma_id>
</RDF:Description>
</RDF:li>';
}
$qry = "SELECT * FROM public.tbl_standort ORDER BY standort_kurzbz";
$qry = "SELECT * FROM public.tbl_standort";
if(isset($firma_id))
$qry.=" WHERE firma_id='".addslashes($firma_id)."'";
elseif(isset($standort_id))
$qry.=" WHERE standort_id='".addslashes($standort_id)."'";
elseif(isset($standort_id_all))
$qry.=" WHERE firma_id=(SELECT firma_id FROM public.tbl_standort WHERE standort_id='".addslashes($standort_id_all)."')";
elseif(isset($firmentyp_kurzbz))
$qry.=" JOIN public.tbl_firma USING(firma_id) WHERE firmentyp_kurzbz='".addslashes($firmentyp_kurzbz)."'";
else
die('Fehlerhafte Parameteruebergabe');
$qry.=" ORDER BY kurzbz";
$db = new basis_db();
if($db->db_query($qry))
while($row = $db->db_fetch_object())
@@ -66,10 +102,12 @@ function draw_content($row)
echo '
<RDF:li>
<RDF:Description id="'.$row->standort_kurzbz.'" about="'.$rdf_url.'/'.$row->standort_kurzbz.'" >
<STANDORT:standort_kurzbz><![CDATA['.$row->standort_kurzbz.']]></STANDORT:standort_kurzbz>
<RDF:Description id="'.$row->standort_id.'" about="'.$rdf_url.'/'.$row->standort_id.'" >
<STANDORT:standort_id><![CDATA['.$row->standort_id.']]></STANDORT:standort_id>
<STANDORT:adresse_id><![CDATA['.$row->adresse_id.']]></STANDORT:adresse_id>
<STANDORT:bezeichnung><![CDATA['.$row->standort_kurzbz.']]></STANDORT:bezeichnung>
<STANDORT:bezeichnung><![CDATA['.$row->bezeichnung.']]></STANDORT:bezeichnung>
<STANDORT:kurzbz><![CDATA['.$row->kurzbz.']]></STANDORT:kurzbz>
<STANDORT:firma_id><![CDATA['.$row->firma_id.']]></STANDORT:firma_id>
</RDF:Description>
</RDF:li>';
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

+291 -245
View File
@@ -20164,11 +20164,11 @@
<FontStyle>0</FontStyle>
<FormatLocked>0</FormatLocked>
<FontHeight>-28</FontHeight>
<Top>3901</Top>
<Left>1869</Left>
<Top>3608</Top>
<Left>1857</Left>
<z>0</z>
<Width>732</Width>
<Height>434</Height>
<Width>804</Width>
<Height>473</Height>
<dz>0</dz>
<RecalculateSizes>1</RecalculateSizes>
<UseWorkSpaceRecalculateSizes>1</UseWorkSpaceRecalculateSizes>
@@ -20836,8 +20836,8 @@
<FontStyle>0</FontStyle>
<FormatLocked>0</FormatLocked>
<FontHeight>-28</FontHeight>
<Top>3356</Top>
<Left>158</Left>
<Top>3310</Top>
<Left>115</Left>
<z>0</z>
<Width>744</Width>
<Height>200</Height>
@@ -20910,8 +20910,8 @@
<FontStyle>0</FontStyle>
<FormatLocked>0</FormatLocked>
<FontHeight>-28</FontHeight>
<Top>3763</Top>
<Left>105</Left>
<Top>3554</Top>
<Left>108</Left>
<z>0</z>
<Width>800</Width>
<Height>551</Height>
@@ -21061,8 +21061,8 @@
<FontStyle>0</FontStyle>
<FormatLocked>0</FormatLocked>
<FontHeight>-28</FontHeight>
<Top>3001</Top>
<Left>1349</Left>
<Top>2921</Top>
<Left>1335</Left>
<z>0</z>
<Width>788</Width>
<Height>590</Height>
@@ -21602,8 +21602,8 @@
<FontStyle>0</FontStyle>
<FormatLocked>0</FormatLocked>
<FontHeight>-28</FontHeight>
<Top>3521</Top>
<Left>2727</Left>
<Top>3335</Top>
<Left>2775</Left>
<z>0</z>
<Width>830</Width>
<Height>746</Height>
@@ -21814,8 +21814,8 @@
<FontStyle>0</FontStyle>
<FormatLocked>0</FormatLocked>
<FontHeight>-28</FontHeight>
<Top>4216</Top>
<Left>1021</Left>
<Top>3974</Top>
<Left>992</Left>
<z>0</z>
<Width>682</Width>
<Height>115</Height>
@@ -21851,8 +21851,8 @@
<FontStyle>0</FontStyle>
<FormatLocked>0</FormatLocked>
<FontHeight>-28</FontHeight>
<Top>3821</Top>
<Left>1009</Left>
<Top>3616</Top>
<Left>997</Left>
<z>0</z>
<Width>716</Width>
<Height>200</Height>
@@ -22850,16 +22850,16 @@
<WorkSpaceShape2>
<Id>{63847D90-6226-4AC8-83C0-7353C08AC81C}</Id>
</WorkSpaceShape2>
<NamePositionX>4506</NamePositionX>
<NamePositionY>2313</NamePositionY>
<NamePositionX>4536</NamePositionX>
<NamePositionY>2131</NamePositionY>
<Points>
<Point>
<x>2601</x>
<y>4161</y>
<x>2661</x>
<y>3797</y>
</Point>
<Point>
<x>2632</x>
<y>4161</y>
<x>2692</x>
<y>3797</y>
</Point>
<Point>
<x>6473</x>
@@ -22893,16 +22893,16 @@
<WorkSpaceShape2>
<Id>{0C663600-4D6D-4A2E-800A-153F59399066}</Id>
</WorkSpaceShape2>
<NamePositionX>5039</NamePositionX>
<NamePositionY>2801</NamePositionY>
<NamePositionX>5069</NamePositionX>
<NamePositionY>2623</NamePositionY>
<Points>
<Point>
<x>2601</x>
<y>4248</y>
<x>2661</x>
<y>3892</y>
</Point>
<Point>
<x>2632</x>
<y>4248</y>
<x>2692</x>
<y>3892</y>
</Point>
<Point>
<x>7539</x>
@@ -23280,8 +23280,8 @@
<WorkSpaceShape2>
<Id>{C1125389-C466-4DFA-88C1-872A5EAA6C84}</Id>
</WorkSpaceShape2>
<NamePositionX>4173</NamePositionX>
<NamePositionY>3294</NamePositionY>
<NamePositionX>4174</NamePositionX>
<NamePositionY>3189</NamePositionY>
<Points>
<Point>
<x>7640</x>
@@ -23292,12 +23292,12 @@
<y>2760</y>
</Point>
<Point>
<x>936</x>
<y>3947</y>
<x>939</x>
<y>3738</y>
</Point>
<Point>
<x>905</x>
<y>3947</y>
<x>908</x>
<y>3738</y>
</Point>
</Points>
</WorkSpaceLinePERRelationPG83>
@@ -23409,8 +23409,8 @@
<WorkSpaceShape2>
<Id>{58DA1692-56FE-4F60-85AF-A1081BBC9D56}</Id>
</WorkSpaceShape2>
<NamePositionX>6723</NamePositionX>
<NamePositionY>3110</NamePositionY>
<NamePositionX>6747</NamePositionX>
<NamePositionY>3017</NamePositionY>
<Points>
<Point>
<x>7640</x>
@@ -23421,12 +23421,12 @@
<y>2939</y>
</Point>
<Point>
<x>3588</x>
<y>3894</y>
<x>3636</x>
<y>3708</y>
</Point>
<Point>
<x>3557</x>
<y>3894</y>
<x>3605</x>
<y>3708</y>
</Point>
</Points>
</WorkSpaceLinePERRelationPG83>
@@ -23722,24 +23722,24 @@
<WorkSpaceShape2>
<Id>{C1125389-C466-4DFA-88C1-872A5EAA6C84}</Id>
</WorkSpaceShape2>
<NamePositionX>432</NamePositionX>
<NamePositionY>3586</NamePositionY>
<NamePositionX>411</NamePositionX>
<NamePositionY>3459</NamePositionY>
<Points>
<Point>
<x>530</x>
<y>3556</y>
<x>487</x>
<y>3510</y>
</Point>
<Point>
<x>530</x>
<y>3587</y>
<x>487</x>
<y>3541</y>
</Point>
<Point>
<x>505</x>
<y>3732</y>
<x>508</x>
<y>3523</y>
</Point>
<Point>
<x>505</x>
<y>3763</y>
<x>508</x>
<y>3554</y>
</Point>
</Points>
</WorkSpaceLinePERRelationPG83>
@@ -23937,8 +23937,8 @@
<WorkSpaceShape2>
<Id>{24717DE1-C8E6-4FF7-8853-A0CA4D252296}</Id>
</WorkSpaceShape2>
<NamePositionX>2178</NamePositionX>
<NamePositionY>2977</NamePositionY>
<NamePositionX>2171</NamePositionX>
<NamePositionY>2897</NamePositionY>
<Points>
<Point>
<x>2418</x>
@@ -23949,12 +23949,12 @@
<y>2894</y>
</Point>
<Point>
<x>2168</x>
<y>3198</y>
<x>2154</x>
<y>3039</y>
</Point>
<Point>
<x>2137</x>
<y>3198</y>
<x>2123</x>
<y>3039</y>
</Point>
</Points>
</WorkSpaceLinePERRelationPG83>
@@ -23980,16 +23980,16 @@
<WorkSpaceShape2>
<Id>{6197D07D-4517-402A-9CB4-3BE888A5681A}</Id>
</WorkSpaceShape2>
<NamePositionX>1078</NamePositionX>
<NamePositionY>3214</NamePositionY>
<NamePositionX>1071</NamePositionX>
<NamePositionY>3174</NamePositionY>
<Points>
<Point>
<x>1349</x>
<y>3296</y>
<x>1335</x>
<y>3216</y>
</Point>
<Point>
<x>1318</x>
<y>3296</y>
<x>1304</x>
<y>3216</y>
</Point>
<Point>
<x>1108</x>
@@ -24023,24 +24023,24 @@
<WorkSpaceShape2>
<Id>{58DA1692-56FE-4F60-85AF-A1081BBC9D56}</Id>
</WorkSpaceShape2>
<NamePositionX>2332</NamePositionX>
<NamePositionY>3514</NamePositionY>
<NamePositionX>2349</NamePositionX>
<NamePositionY>3303</NamePositionY>
<Points>
<Point>
<x>2137</x>
<y>3394</y>
<x>2123</x>
<y>3157</y>
</Point>
<Point>
<x>2168</x>
<y>3394</y>
<x>2154</x>
<y>3157</y>
</Point>
<Point>
<x>2696</x>
<y>3770</y>
<x>2744</x>
<y>3584</y>
</Point>
<Point>
<x>2727</x>
<y>3770</y>
<x>2775</x>
<y>3584</y>
</Point>
</Points>
</WorkSpaceLinePERRelationPG83>
@@ -24539,24 +24539,24 @@
<WorkSpaceShape2>
<Id>{48520BBB-325D-43AE-B172-B937944B7440}</Id>
</WorkSpaceShape2>
<NamePositionX>2379</NamePositionX>
<NamePositionY>3913</NamePositionY>
<NamePositionX>2434</NamePositionX>
<NamePositionY>3711</NamePositionY>
<Points>
<Point>
<x>2727</x>
<y>4018</y>
<x>2775</x>
<y>3832</y>
</Point>
<Point>
<x>2696</x>
<y>4018</y>
<x>2744</x>
<y>3832</y>
</Point>
<Point>
<x>2632</x>
<y>4075</y>
<x>2692</x>
<y>3986</y>
</Point>
<Point>
<x>2601</x>
<y>4075</y>
<x>2661</x>
<y>3986</y>
</Point>
</Points>
</WorkSpaceLinePERRelationPG83>
@@ -24797,24 +24797,24 @@
<WorkSpaceShape2>
<Id>{57F2AAE5-8BC2-485A-A794-759ECE139158}</Id>
</WorkSpaceShape2>
<NamePositionX>1551</NamePositionX>
<NamePositionY>3711</NamePositionY>
<NamePositionX>1637</NamePositionX>
<NamePositionY>3547</NamePositionY>
<Points>
<Point>
<x>1546</x>
<y>3591</y>
<x>1729</x>
<y>3511</y>
</Point>
<Point>
<x>1546</x>
<y>3622</y>
<x>1729</x>
<y>3542</y>
</Point>
<Point>
<x>1756</x>
<y>3921</y>
<x>1744</x>
<y>3716</y>
</Point>
<Point>
<x>1725</x>
<y>3921</y>
<x>1713</x>
<y>3716</y>
</Point>
</Points>
</WorkSpaceLinePERRelationPG83>
@@ -24840,24 +24840,24 @@
<WorkSpaceShape2>
<Id>{57F2AAE5-8BC2-485A-A794-759ECE139158}</Id>
</WorkSpaceShape2>
<NamePositionX>1264</NamePositionX>
<NamePositionY>4059</NamePositionY>
<NamePositionX>1244</NamePositionX>
<NamePositionY>3835</NamePositionY>
<Points>
<Point>
<x>1362</x>
<y>4216</y>
<x>1333</x>
<y>3974</y>
</Point>
<Point>
<x>1362</x>
<y>4185</y>
<x>1333</x>
<y>3943</y>
</Point>
<Point>
<x>1367</x>
<y>4052</y>
<x>1355</x>
<y>3847</y>
</Point>
<Point>
<x>1367</x>
<y>4021</y>
<x>1355</x>
<y>3816</y>
</Point>
</Points>
</WorkSpaceLinePERRelationPG83>
@@ -24883,16 +24883,16 @@
<WorkSpaceShape2>
<Id>{451B8084-866B-49D2-AD9C-4FAF675CDAA6}</Id>
</WorkSpaceShape2>
<NamePositionX>3229</NamePositionX>
<NamePositionY>3022</NamePositionY>
<NamePositionX>3259</NamePositionX>
<NamePositionY>2879</NamePositionY>
<Points>
<Point>
<x>2601</x>
<y>3988</y>
<x>2661</x>
<y>3703</y>
</Point>
<Point>
<x>2632</x>
<y>3988</y>
<x>2692</x>
<y>3703</y>
</Point>
<Point>
<x>4026</x>
@@ -24926,24 +24926,24 @@
<WorkSpaceShape2>
<Id>{C1125389-C466-4DFA-88C1-872A5EAA6C84}</Id>
</WorkSpaceShape2>
<NamePositionX>1287</NamePositionX>
<NamePositionY>4100</NamePositionY>
<NamePositionX>1279</NamePositionX>
<NamePositionY>3818</NamePositionY>
<Points>
<Point>
<x>1869</x>
<y>4190</y>
<x>1857</x>
<y>3844</y>
</Point>
<Point>
<x>1838</x>
<y>4190</y>
<x>1826</x>
<y>3844</y>
</Point>
<Point>
<x>936</x>
<y>4130</y>
<x>939</x>
<y>3921</y>
</Point>
<Point>
<x>905</x>
<y>4130</y>
<x>908</x>
<y>3921</y>
</Point>
</Points>
</WorkSpaceLinePERRelationPG83>
@@ -24969,24 +24969,24 @@
<WorkSpaceShape2>
<Id>{24717DE1-C8E6-4FF7-8853-A0CA4D252296}</Id>
</WorkSpaceShape2>
<NamePositionX>1988</NamePositionX>
<NamePositionY>3686</NamePositionY>
<NamePositionX>2174</NamePositionX>
<NamePositionY>3366</NamePositionY>
<Points>
<Point>
<x>2235</x>
<y>3901</y>
<x>2393</x>
<y>3608</y>
</Point>
<Point>
<x>2235</x>
<y>3870</y>
<x>2393</x>
<y>3577</y>
</Point>
<Point>
<x>1940</x>
<y>3622</y>
<x>2154</x>
<y>3275</y>
</Point>
<Point>
<x>1940</x>
<y>3591</y>
<x>2123</x>
<y>3275</y>
</Point>
</Points>
</WorkSpaceLinePERRelationPG83>
@@ -25012,16 +25012,16 @@
<WorkSpaceShape2>
<Id>{A35EA055-8283-4E52-8F55-92A001656642}</Id>
</WorkSpaceShape2>
<NamePositionX>1642</NamePositionX>
<NamePositionY>2844</NamePositionY>
<NamePositionX>1635</NamePositionX>
<NamePositionY>2804</NamePositionY>
<Points>
<Point>
<x>1743</x>
<y>3001</y>
<x>1729</x>
<y>2921</y>
</Point>
<Point>
<x>1743</x>
<y>2970</y>
<x>1729</x>
<y>2890</y>
</Point>
<Point>
<x>1740</x>
@@ -25098,24 +25098,24 @@
<WorkSpaceShape2>
<Id>{48520BBB-325D-43AE-B172-B937944B7440}</Id>
</WorkSpaceShape2>
<NamePositionX>1690</NamePositionX>
<NamePositionY>3774</NamePositionY>
<NamePositionX>2041</NamePositionX>
<NamePositionY>3403</NamePositionY>
<Points>
<Point>
<x>1743</x>
<y>3591</y>
<x>2123</x>
<y>3393</y>
</Point>
<Point>
<x>1743</x>
<y>3622</y>
<x>2154</x>
<y>3393</y>
</Point>
<Point>
<x>1838</x>
<y>4046</y>
<x>2125</x>
<y>3577</y>
</Point>
<Point>
<x>1869</x>
<y>4046</y>
<x>2125</x>
<y>3608</y>
</Point>
</Points>
</WorkSpaceLinePERRelationPG83>
@@ -34441,8 +34441,8 @@
<Top>2133</Top>
<Left>2506</Left>
<z>0</z>
<Width>732</Width>
<Height>434</Height>
<Width>804</Width>
<Height>473</Height>
<dz>0</dz>
<RecalculateSizes>1</RecalculateSizes>
<UseWorkSpaceRecalculateSizes>1</UseWorkSpaceRecalculateSizes>
@@ -34915,7 +34915,7 @@
<Company>Technikum Wien</Company>
<Version>2.0</Version>
<CreatedDate>2009-04-17T10:15:21.000+01:00</CreatedDate>
<ModifiedDate>2010-03-03T16:50:38.356+01:00</ModifiedDate>
<ModifiedDate>2010-03-11T14:44:52.662+01:00</ModifiedDate>
<Project>FH-Complete 2.0</Project>
<Description></Description>
</ModelTitlePG83>
@@ -72635,10 +72635,53 @@ Studiengang&gt;0 und Semester&gt;0 -&gt; News fuer bestimmtes Semester im Studie
<ArrDims></ArrDims>
<IsArray>0</IsArray>
</PERAttributePG83>
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{8073E15A-5A57-4198-BB3A-3D94B5C3CE6D}</Id>
<Name>firma_id</Name>
<Ordinal>3</Ordinal>
<HistoryID>{49E78925-65B0-4824-A02A-F0083EA358DC}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>1</RNOffset>
<RNLength>8</RNLength>
<IgnoreNC>0</IgnoreNC>
<GenerateCode>1</GenerateCode>
<BeforeScript></BeforeScript>
<AfterScript></AfterScript>
<Notes></Notes>
<Comments></Comments>
<DataTypeParam1></DataTypeParam1>
<DataTypeParam2></DataTypeParam2>
<KeepForeignKey>0</KeepForeignKey>
<DefaultValue>nextval('seq_firma_firma_id'::regclass)</DefaultValue>
<NotNull>0</NotNull>
<Migrated>0</Migrated>
<Caption>firma_id</Caption>
<Unique>0</Unique>
<OriginalName></OriginalName>
<CheckConstraint></CheckConstraint>
<CheckConstraintName></CheckConstraintName>
<KeyConstraintItems/>
<PKForeignKeys/>
<FKForeignKeys>
<Id>{7BAFC3D3-245A-443F-8205-E032B5A9928E}</Id>
</FKForeignKeys>
<DictType/>
<Domain/>
<DataType>
<Id>{361EF147-269D-4247-8F7C-5A3876A3999A}</Id>
</DataType>
<UserDataType/>
<IndexItems/>
<Default/>
<CheckConstraints/>
<KeyConstraint/>
<ArrDims></ArrDims>
<IsArray>0</IsArray>
</PERAttributePG83>
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{5EEE291E-11E4-4821-9456-FB24867FEAE3}</Id>
<Name>name</Name>
<Ordinal>3</Ordinal>
<Ordinal>4</Ordinal>
<HistoryID>{E7BCA0D1-540D-43E5-BABC-D03899ECC9B7}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>1</RNOffset>
@@ -72679,7 +72722,7 @@ Studiengang&gt;0 und Semester&gt;0 -&gt; News fuer bestimmtes Semester im Studie
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{8D2EFD4F-94E5-445B-9076-9EAD33B6A2BF}</Id>
<Name>strasse</Name>
<Ordinal>4</Ordinal>
<Ordinal>5</Ordinal>
<HistoryID>{EFDA28B3-0049-4F39-9374-9DECB378D94C}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>1</RNOffset>
@@ -72720,7 +72763,7 @@ Studiengang&gt;0 und Semester&gt;0 -&gt; News fuer bestimmtes Semester im Studie
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{511A03C2-B004-4CB3-AC23-8A8D3A018D72}</Id>
<Name>plz</Name>
<Ordinal>5</Ordinal>
<Ordinal>6</Ordinal>
<HistoryID>{7929A1F9-BAFC-4A72-8DFE-06970F8F1917}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>1</RNOffset>
@@ -72761,7 +72804,7 @@ Studiengang&gt;0 und Semester&gt;0 -&gt; News fuer bestimmtes Semester im Studie
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{9715FD0C-581C-41D2-9350-7B54CB3D74DD}</Id>
<Name>ort</Name>
<Ordinal>6</Ordinal>
<Ordinal>7</Ordinal>
<HistoryID>{33679293-2CF3-4976-8B72-F38DDA33A9EC}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>1</RNOffset>
@@ -72802,7 +72845,7 @@ Studiengang&gt;0 und Semester&gt;0 -&gt; News fuer bestimmtes Semester im Studie
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{64520C27-7FB4-48F1-99BB-90C0E73F995B}</Id>
<Name>gemeinde</Name>
<Ordinal>7</Ordinal>
<Ordinal>8</Ordinal>
<HistoryID>{238AAD8C-679C-4BFA-983D-613238BC97E5}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>1</RNOffset>
@@ -72843,7 +72886,7 @@ Studiengang&gt;0 und Semester&gt;0 -&gt; News fuer bestimmtes Semester im Studie
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{1D2D430A-ED4B-4522-9A2E-0AB33F07191F}</Id>
<Name>nation</Name>
<Ordinal>8</Ordinal>
<Ordinal>9</Ordinal>
<HistoryID>{C3A0B39E-E910-409D-8505-E0AE8568AE93}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>1</RNOffset>
@@ -72886,7 +72929,7 @@ Studiengang&gt;0 und Semester&gt;0 -&gt; News fuer bestimmtes Semester im Studie
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{883C7760-6119-4B62-A398-CBA0A70102D7}</Id>
<Name>typ</Name>
<Ordinal>9</Ordinal>
<Ordinal>10</Ordinal>
<HistoryID>{FCAEE480-90F9-47C8-9947-18507D39F33D}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>1</RNOffset>
@@ -72927,7 +72970,7 @@ Studiengang&gt;0 und Semester&gt;0 -&gt; News fuer bestimmtes Semester im Studie
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{C6144DDF-44C5-4125-BFD6-F038CA0B3604}</Id>
<Name>heimatadresse</Name>
<Ordinal>10</Ordinal>
<Ordinal>11</Ordinal>
<HistoryID>{3C8E52B2-59CD-4B60-8944-DA0E7210066E}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>1</RNOffset>
@@ -72968,7 +73011,7 @@ Studiengang&gt;0 und Semester&gt;0 -&gt; News fuer bestimmtes Semester im Studie
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{014394F7-0D8A-459D-8F5A-20AF4423F694}</Id>
<Name>zustelladresse</Name>
<Ordinal>11</Ordinal>
<Ordinal>12</Ordinal>
<HistoryID>{19AB4BFC-B6A5-4854-93ED-16CD4D94A2AD}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>1</RNOffset>
@@ -73006,49 +73049,6 @@ Studiengang&gt;0 und Semester&gt;0 -&gt; News fuer bestimmtes Semester im Studie
<ArrDims></ArrDims>
<IsArray>0</IsArray>
</PERAttributePG83>
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{8073E15A-5A57-4198-BB3A-3D94B5C3CE6D}</Id>
<Name>firma_id</Name>
<Ordinal>12</Ordinal>
<HistoryID>{49E78925-65B0-4824-A02A-F0083EA358DC}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>1</RNOffset>
<RNLength>8</RNLength>
<IgnoreNC>0</IgnoreNC>
<GenerateCode>1</GenerateCode>
<BeforeScript></BeforeScript>
<AfterScript></AfterScript>
<Notes></Notes>
<Comments></Comments>
<DataTypeParam1></DataTypeParam1>
<DataTypeParam2></DataTypeParam2>
<KeepForeignKey>0</KeepForeignKey>
<DefaultValue>nextval('seq_firma_firma_id'::regclass)</DefaultValue>
<NotNull>0</NotNull>
<Migrated>0</Migrated>
<Caption>firma_id</Caption>
<Unique>0</Unique>
<OriginalName></OriginalName>
<CheckConstraint></CheckConstraint>
<CheckConstraintName></CheckConstraintName>
<KeyConstraintItems/>
<PKForeignKeys/>
<FKForeignKeys>
<Id>{7BAFC3D3-245A-443F-8205-E032B5A9928E}</Id>
</FKForeignKeys>
<DictType/>
<Domain/>
<DataType>
<Id>{361EF147-269D-4247-8F7C-5A3876A3999A}</Id>
</DataType>
<UserDataType/>
<IndexItems/>
<Default/>
<CheckConstraints/>
<KeyConstraint/>
<ArrDims></ArrDims>
<IsArray>0</IsArray>
</PERAttributePG83>
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{5D502AD8-09EC-4869-8956-24DE03BEB3B4}</Id>
<Name>updateamum</Name>
@@ -83889,7 +83889,7 @@ art=tbl_benutzerrolle.art &amp; tbl_rolleberechtigung.art</Comments>
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{B533D5E3-6A93-4D14-81EA-1EB82F5CAA48}</Id>
<Name>kontakttyp</Name>
<Ordinal>4</Ordinal>
<Ordinal>3</Ordinal>
<HistoryID>{EA04C6D5-0F60-484E-918A-62A98D25C6C0}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>1</RNOffset>
@@ -83929,6 +83929,49 @@ art=tbl_benutzerrolle.art &amp; tbl_rolleberechtigung.art</Comments>
<ArrDims></ArrDims>
<IsArray>0</IsArray>
</PERAttributePG83>
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{046AE7F9-17FD-490B-926C-18F883EB3A0C}</Id>
<Name>standort_id</Name>
<Ordinal>4</Ordinal>
<HistoryID>{A2EA2563-F6F4-4C03-A4ED-F965DCD488C0}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>0</RNOffset>
<RNLength>0</RNLength>
<IgnoreNC>0</IgnoreNC>
<GenerateCode>1</GenerateCode>
<BeforeScript></BeforeScript>
<AfterScript></AfterScript>
<Notes></Notes>
<Comments></Comments>
<DataTypeParam1></DataTypeParam1>
<DataTypeParam2></DataTypeParam2>
<KeepForeignKey>0</KeepForeignKey>
<DefaultValue></DefaultValue>
<NotNull>0</NotNull>
<Migrated>1</Migrated>
<Caption>standort_id</Caption>
<Unique>0</Unique>
<OriginalName></OriginalName>
<CheckConstraint></CheckConstraint>
<CheckConstraintName></CheckConstraintName>
<KeyConstraintItems/>
<PKForeignKeys/>
<FKForeignKeys>
<Id>{4E63AC47-CBFB-4ABD-AD3F-03A21B6E0F5B}</Id>
</FKForeignKeys>
<DictType/>
<Domain/>
<DataType>
<Id>{361EF147-269D-4247-8F7C-5A3876A3999A}</Id>
</DataType>
<UserDataType/>
<IndexItems/>
<Default/>
<CheckConstraints/>
<KeyConstraint/>
<ArrDims></ArrDims>
<IsArray>0</IsArray>
</PERAttributePG83>
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{1674D28E-DEA0-4386-A548-792A37074EB5}</Id>
<Name>anmerkung</Name>
@@ -84257,49 +84300,6 @@ art=tbl_benutzerrolle.art &amp; tbl_rolleberechtigung.art</Comments>
<ArrDims></ArrDims>
<IsArray>0</IsArray>
</PERAttributePG83>
<PERAttributePG83 ObjectType="2003" CSAOName="PERAttributePG83">
<Id>{046AE7F9-17FD-490B-926C-18F883EB3A0C}</Id>
<Name>standort_id</Name>
<Ordinal>0</Ordinal>
<HistoryID>{A2EA2563-F6F4-4C03-A4ED-F965DCD488C0}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>0</RNOffset>
<RNLength>0</RNLength>
<IgnoreNC>0</IgnoreNC>
<GenerateCode>1</GenerateCode>
<BeforeScript></BeforeScript>
<AfterScript></AfterScript>
<Notes></Notes>
<Comments></Comments>
<DataTypeParam1></DataTypeParam1>
<DataTypeParam2></DataTypeParam2>
<KeepForeignKey>0</KeepForeignKey>
<DefaultValue></DefaultValue>
<NotNull>0</NotNull>
<Migrated>1</Migrated>
<Caption>standort_id</Caption>
<Unique>0</Unique>
<OriginalName></OriginalName>
<CheckConstraint></CheckConstraint>
<CheckConstraintName></CheckConstraintName>
<KeyConstraintItems/>
<PKForeignKeys/>
<FKForeignKeys>
<Id>{4E63AC47-CBFB-4ABD-AD3F-03A21B6E0F5B}</Id>
</FKForeignKeys>
<DictType/>
<Domain/>
<DataType>
<Id>{361EF147-269D-4247-8F7C-5A3876A3999A}</Id>
</DataType>
<UserDataType/>
<IndexItems/>
<Default/>
<CheckConstraints/>
<KeyConstraint/>
<ArrDims></ArrDims>
<IsArray>0</IsArray>
</PERAttributePG83>
</Attributes>
<Keys>
<PERKeyConstraintPG83 ObjectType="2010" CSAOName="PERKeyConstraintPG83">
@@ -95244,7 +95244,9 @@ ALTER TABLE tbl_mitarbeiter ALTER COLUMN personalnummer DROP NOT NULL;</Comments
<Id>{361EF147-269D-4247-8F7C-5A3876A3999A}</Id>
</DataType>
<UserDataType/>
<IndexItems/>
<IndexItems>
<Id>{7916B371-3B33-4F6D-AD8A-21C8FB37306A}</Id>
</IndexItems>
<Default/>
<CheckConstraints/>
<KeyConstraint/>
@@ -95640,7 +95642,51 @@ ALTER TABLE tbl_mitarbeiter ALTER COLUMN personalnummer DROP NOT NULL;</Comments
<PK>
<Id>{190E3BB4-7A56-4B9A-983B-F88D9FAEF839}</Id>
</PK>
<Indexes/>
<Indexes>
<PERIndexPG83 ObjectType="2012" CSAOName="PERIndexPG83">
<Id>{7F71BCD1-C975-4E1C-8676-BD84B687BE8A}</Id>
<Name>idx_tbl_standort_firma_id</Name>
<Ordinal>0</Ordinal>
<HistoryID>{5DD27BDA-4D11-42C3-AA71-22E7336E18F7}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<RNOffset>0</RNOffset>
<RNLength>0</RNLength>
<IgnoreNC>0</IgnoreNC>
<GenerateCode>1</GenerateCode>
<BeforeScript></BeforeScript>
<AfterScript></AfterScript>
<Notes></Notes>
<Comments></Comments>
<Unique>0</Unique>
<Caption>idx_tbl_standort_firma_id</Caption>
<Expression></Expression>
<GenerateExpression>0</GenerateExpression>
<IndexItems>
<PERIndexItemPG83 ObjectType="2013" CSAOName="PERIndexItemPG83">
<Id>{7916B371-3B33-4F6D-AD8A-21C8FB37306A}</Id>
<Name>firma_id</Name>
<Ordinal>0</Ordinal>
<HistoryID>{5EC5E949-892E-40A9-93E3-BEF9FAB2E5D1}</HistoryID>
<GlobalOrder>0</GlobalOrder>
<GenerateCode>1</GenerateCode>
<BeforeScript></BeforeScript>
<AfterScript></AfterScript>
<Notes></Notes>
<Comments></Comments>
<SortDescending>0</SortDescending>
<Attribute>
<Id>{76053D89-ADCF-43E1-B763-C15BF2641661}</Id>
</Attribute>
<ForeignKeys/>
</PERIndexItemPG83>
</IndexItems>
<Relations/>
<IxAccess>btree</IxAccess>
<Predicate></Predicate>
<Tablespace/>
<FillFactor></FillFactor>
</PERIndexPG83>
</Indexes>
<CheckConstraints/>
<Category/>
<Triggers/>
+483 -10
View File
@@ -361,6 +361,474 @@ if(!@$db->db_query("SELECT aktiv FROM public.tbl_buchungstyp LIMIT 1;"))
echo 'public.tbl_buchungstyp: Spalte aktiv hinzugefuegt!<br>';
}
//Firmenverwaltung
if(!@$db->db_query("SELECT steuernummer FROM public.tbl_firma LIMIT 1;"))
{
$qry = "
ALTER TABLE public.tbl_firma ADD COLUMN steuernummer varchar(32);
ALTER TABLE public.tbl_firma ADD COLUMN gesperrt boolean DEFAULT false;
ALTER TABLE public.tbl_firma ALTER COLUMN gesperrt SET NOT NULL;
ALTER TABLE public.tbl_firma ADD COLUMN aktiv boolean DEFAULT true;
ALTER TABLE public.tbl_firma ALTER COLUMN aktiv SET NOT NULL;
-- Table public.tbl_standort
CREATE SEQUENCE public.tbl_standort_standort_id_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
DROP VIEW campus.vw_mitarbeiter;
ALTER TABLE public.tbl_standort ADD COLUMN standort_id integer DEFAULT nextval('public.tbl_standort_standort_id_seq');
ALTER TABLE public.tbl_standort RENAME COLUMN standort_kurzbz TO kurzbz;
ALTER TABLE public.tbl_standort ADD COLUMN bezeichnung varchar(256);
ALTER TABLE public.tbl_standort ADD COLUMN insertvon varchar(32);
ALTER TABLE public.tbl_standort ADD COLUMN insertamum timestamp;
ALTER TABLE public.tbl_standort ADD COLUMN updatevon varchar(32);
ALTER TABLE public.tbl_standort ADD COLUMN updateamum timestamp;
ALTER TABLE public.tbl_standort ADD COLUMN ext_id bigint;
ALTER TABLE public.tbl_standort ADD COLUMN firma_id integer;
ALTER TABLE public.tbl_standort ALTER COLUMN adresse_id DROP NOT NULL;
-- Primary key in tbl_standort aendern
ALTER TABLE public.tbl_ort DROP CONSTRAINT standort_ort;
ALTER TABLE public.tbl_mitarbeiter DROP CONSTRAINT standort_mitarbeiter;
ALTER TABLE public.tbl_standort DROP CONSTRAINT pk_tbl_standort;
UPDATE public.tbl_standort SET standort_id= nextval('public.tbl_standort_standort_id_seq');
ALTER TABLE public.tbl_standort ALTER COLUMN standort_id SET NOT NULL;
ALTER TABLE public.tbl_standort ADD CONSTRAINT pk_standort PRIMARY KEY (standort_id);
ALTER TABLE public.tbl_standort ALTER COLUMN kurzbz DROP NOT NULL;
-- vorhandene Standorte als Firmen anlegen
INSERT INTO public.tbl_firmentyp(firmentyp_kurzbz, beschreibung) VALUES('Intern','Intern');
INSERT INTO public.tbl_firma(firmentyp_kurzbz, name, schule, steuernummer, anmerkung, gesperrt, aktiv, ext_id)
SELECT 'Intern', kurzbz, false, null, null, false, true, standort_id FROM public.tbl_standort;
UPDATE public.tbl_standort SET bezeichnung=kurzbz WHERE bezeichnung is null;
UPDATE public.tbl_standort SET firma_id=(SELECT firma_id FROM public.tbl_firma where ext_id=standort_id);
UPDATE public.tbl_firma SET ext_id=null;
-- Standorte zu den Firmen anlegen
INSERT INTO public.tbl_standort(firma_id, adresse_id, kurzbz, bezeichnung)
SELECT firma_id, adresse_id, substring(tbl_firma.name for 16), tbl_firma.name
FROM public.tbl_firma LEFT JOIN public.tbl_adresse USING(firma_id)
WHERE tbl_adresse.person_id is null AND firma_id not in (SELECT firma_id FROM public.tbl_standort);
-- fk zum standort in tbl_mitarbeiter aendern
ALTER TABLE public.tbl_mitarbeiter ADD COLUMN standort_id integer;
UPDATE public.tbl_mitarbeiter SET standort_id=(SELECT standort_id FROM public.tbl_standort where kurzbz=tbl_mitarbeiter.standort_kurzbz);
ALTER TABLE public.tbl_mitarbeiter ADD CONSTRAINT fk_mitarbeiter_standort FOREIGN KEY (standort_id) REFERENCES public.tbl_standort (standort_id) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE public.tbl_mitarbeiter DROP COLUMN standort_kurzbz;
-- fk zum standort in tbl_ort aendern
ALTER TABLE public.tbl_ort ADD COLUMN standort_id integer;
UPDATE public.tbl_ort SET standort_id=(SELECT standort_id FROM public.tbl_standort WHERE kurzbz=tbl_ort.standort_kurzbz);
ALTER TABLE public.tbl_ort ADD CONSTRAINT fk_ort_standort FOREIGN KEY (standort_id) REFERENCES public.tbl_standort (standort_id) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE public.tbl_ort DROP COLUMN standort_kurzbz;
-- Table public.tbl_personfunktionstandort
CREATE SEQUENCE public.tbl_personfunktionstandort_personfunktionstandort_id_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
CREATE TABLE public.tbl_personfunktionstandort
(
personfunktionstandort_id integer DEFAULT nextval('public.tbl_personfunktionstandort_personfunktionstandort_id_seq'),
funktion_kurzbz varchar(16) NOT NULL,
person_id Integer NOT NULL,
position varchar(256),
anrede varchar(128),
standort_id Integer
);
ALTER TABLE public.tbl_personfunktionstandort ALTER COLUMN personfunktionstandort_id SET NOT NULL;
ALTER TABLE public.tbl_personfunktionstandort ADD CONSTRAINT pk_personfunktionstandort PRIMARY KEY (personfunktionstandort_id);
ALTER TABLE public.tbl_personfunktionstandort ADD CONSTRAINT fk_funktion_personfunktionstandort FOREIGN KEY (funktion_kurzbz) REFERENCES public.tbl_funktion (funktion_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE public.tbl_personfunktionstandort ADD CONSTRAINT fk_person_personfunktionstandort FOREIGN KEY (person_id) REFERENCES public.tbl_person (person_id) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE public.tbl_personfunktionstandort ADD CONSTRAINT fk_standort_personfunktionstandort FOREIGN KEY (standort_id) REFERENCES public.tbl_standort (standort_id) ON DELETE RESTRICT ON UPDATE CASCADE;
DROP TABLE public.tbl_personfunktionfirma;
-- Table public.tbl_tag
CREATE TABLE public.tbl_tag
(
tag varchar(128) NOT NULL
);
ALTER TABLE public.tbl_tag ADD CONSTRAINT pk_tag PRIMARY KEY (tag);
ALTER TABLE public.tbl_tag ADD CONSTRAINT tag UNIQUE (tag);
-- Table tbl_firmatag
CREATE TABLE public.tbl_firmatag
(
firma_id Integer NOT NULL,
tag varchar(128) NOT NULL,
insertamum Timestamp,
insertvon varchar(32)
);
ALTER TABLE public.tbl_firmatag ADD CONSTRAINT pk_firmatag PRIMARY KEY (firma_id,tag);
ALTER TABLE public.tbl_firmatag ADD CONSTRAINT fk_firmatag_firma FOREIGN KEY (firma_id) REFERENCES public.tbl_firma (firma_id) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE tbl_firmatag ADD CONSTRAINT fk_tag_firmatag FOREIGN KEY (tag) REFERENCES public.tbl_tag (tag) ON DELETE RESTRICT ON UPDATE CASCADE;
-- Table public.tbl_firma_organisationseinheit
CREATE TABLE public.tbl_firma_organisationseinheit
(
firma_organisationseinheit_id Serial NOT NULL,
firma_id Integer NOT NULL,
oe_kurzbz Character varying(32) NOT NULL,
bezeichnung Character varying(256),
kundennummer Character varying(128),
insertamum Timestamp,
insertvon Character varying(32),
updateamum Timestamp,
updatevon Character varying(32),
ext_id Bigint
);
ALTER TABLE public.tbl_firma_organisationseinheit ADD CONSTRAINT pk_firma_oe PRIMARY KEY (firma_organisationseinheit_id);
ALTER TABLE public.tbl_firma_organisationseinheit ADD CONSTRAINT uk_firma_oe UNIQUE (firma_id, oe_kurzbz);
ALTER TABLE public.tbl_firma_organisationseinheit ADD CONSTRAINT fk_firma_organisationseinheitfirma FOREIGN KEY (firma_id) REFERENCES public.tbl_firma (firma_id) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE public.tbl_firma_organisationseinheit ADD CONSTRAINT fk_organisationseinheit_organisationseinheitfirma FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit (oe_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
-- Lehreinheitmitarbeiter
ALTER TABLE lehre.tbl_lehreinheitmitarbeiter ADD COLUMN standort_id integer;
ALTER TABLE lehre.tbl_lehreinheitmitarbeiter ADD CONSTRAINT fk_standort_lehreinheitmitarbeiter FOREIGN KEY (standort_id) REFERENCES public.tbl_standort (standort_id) ON DELETE RESTRICT ON UPDATE CASCADE;
-- Finanzamt
ALTER TABLE public.tbl_firma ADD COLUMN finanzamt integer;
ALTER TABLE public.tbl_firma ADD CONSTRAINT fk_standort_firma FOREIGN KEY (finanzamt) REFERENCES public.tbl_standort (standort_id) ON DELETE RESTRICT ON UPDATE CASCADE;
-- Kontakt Standort
ALTER TABLE public.tbl_kontakt ADD COLUMN standort_id integer;
ALTER TABLE public.tbl_kontakt ADD CONSTRAINT fk_standort_kontakt FOREIGN KEY (standort_id) REFERENCES public.tbl_standort (standort_id) ON DELETE CASCADE ON UPDATE CASCADE;
-- Berechtigungen
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_personfunktionstandort TO admin;
GRANT SELECT ON public.tbl_personfunktionstandort TO web;
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_standort TO admin;
GRANT SELECT ON public.tbl_standort TO web;
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_firma_organisationseinheit TO admin;
GRANT SELECT ON public.tbl_firma_organisationseinheit TO web;
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_tag TO admin;
GRANT SELECT ON public.tbl_tag TO web;
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_firmatag TO admin;
GRANT SELECT ON public.tbl_firmatag TO web;
GRANT SELECT, UPDATE ON public.tbl_standort_standort_id_seq TO admin;
GRANT SELECT, UPDATE ON public.tbl_standort_standort_id_seq TO web;
GRANT SELECT, UPDATE ON public.tbl_personfunktionstandort_personfunktionstandort_id_seq TO admin;
GRANT SELECT, UPDATE ON public.tbl_personfunktionstandort_personfunktionstandort_id_seq TO admin;
GRANT SELECT, UPDATE ON public.tbl_firma_organisationseinhei_firma_organisationseinheit_id_seq TO admin;
GRANT SELECT, UPDATE ON public.tbl_firma_organisationseinhei_firma_organisationseinheit_id_seq TO web;
-- View wieder anlegen
CREATE OR REPLACE VIEW campus.vw_mitarbeiter as
SELECT tbl_benutzer.uid, tbl_mitarbeiter.ausbildungcode, tbl_mitarbeiter.personalnummer, tbl_mitarbeiter.kurzbz, tbl_mitarbeiter.lektor, tbl_mitarbeiter.fixangestellt, tbl_mitarbeiter.telefonklappe, tbl_benutzer.person_id, tbl_benutzer.alias, tbl_person.geburtsnation, tbl_person.sprache, tbl_person.anrede, tbl_person.titelpost, tbl_person.titelpre, tbl_person.nachname, tbl_person.vorname, tbl_person.vornamen, tbl_person.gebdatum, tbl_person.gebort, tbl_person.gebzeit, tbl_person.foto, tbl_mitarbeiter.anmerkung, tbl_person.homepage, tbl_person.svnr, tbl_person.ersatzkennzeichen, tbl_person.geschlecht, tbl_person.familienstand, tbl_person.anzahlkinder, tbl_mitarbeiter.ort_kurzbz, tbl_benutzer.aktiv, tbl_mitarbeiter.bismelden, tbl_mitarbeiter.standort_id, tbl_mitarbeiter.updateamum, tbl_mitarbeiter.updatevon, tbl_mitarbeiter.insertamum, tbl_mitarbeiter.insertvon, tbl_mitarbeiter.ext_id
FROM tbl_mitarbeiter
JOIN tbl_benutzer ON tbl_mitarbeiter.mitarbeiter_uid::text = tbl_benutzer.uid::text
JOIN tbl_person USING (person_id);
GRANT SELECT ON campus.vw_mitarbeiter TO admin;
GRANT SELECT ON campus.vw_mitarbeiter TO web;
-- Syncronisieren der Daten
-- Firmenkontakte in tbl_kontakt auslagern
-- EMail
INSERT INTO public.tbl_kontakt(standort_id, kontakttyp, kontakt, insertamum, insertvon, updateamum, updatevon)
SELECT standort_id, 'email', email, tbl_firma.insertamum, tbl_firma.insertvon, now(), 'checksystem' FROM
public.tbl_firma JOIN public.tbl_standort USING(firma_id) WHERE email is not null AND email<>'';
-- Telefon
INSERT INTO public.tbl_kontakt(standort_id, kontakttyp, kontakt, insertamum, insertvon, updateamum, updatevon)
SELECT standort_id, 'telefon', telefon, tbl_firma.insertamum, tbl_firma.insertvon, now(), 'checksystem' FROM
public.tbl_firma JOIN public.tbl_standort USING(firma_id) WHERE telefon is not null AND telefon<>'';
-- Fax
INSERT INTO public.tbl_kontakt(standort_id, kontakttyp, kontakt, insertamum, insertvon, updateamum, updatevon)
SELECT standort_id, 'fax', fax, tbl_firma.insertamum, tbl_firma.insertvon, now(), 'checksystem' FROM
public.tbl_firma JOIN public.tbl_standort USING(firma_id) WHERE fax is not null AND fax<>'';
UPDATE public.tbl_kontakt SET standort_id=(SELECT standort_id FROM public.tbl_standort WHERE firma_id=tbl_kontakt.firma_id LIMIT 1) WHERE firma_id IS NOT NULL
-- Spalten entfernen
ALTER TABLE public.tbl_firma DROP COLUMN email;
ALTER TABLE public.tbl_firma DROP COLUMN telefon;
ALTER TABLE public.tbl_firma DROP COLUMN fax;
ALTER TABLE public.tbl_kontakt DROP COLUMN firma_id;
INSERT INTO public.tbl_kontakttyp(kontakttyp, beschreibung) VALUES('homepage','Homepage');
INSERT INTO public.tbl_funktion (funktion_kurzbz, beschreibung, aktiv, fachbereich, semester) VALUES('Ansprechpartner','Ansprechpartner',true,false,false);
INSERT INTO public.tbl_firmentyp (firmentyp_kurzbz, beschreibung) VALUES('Finanzamt','Finanzamt');
CREATE INDEX idx_tbl_standort_firma_id ON public.tbl_standort(firma_id);
";
if(!$db->db_query($qry))
echo '<strong>Firmenverwaltung: '.$db->db_last_error().'</strong><br>';
else
echo 'Tabellen fuer neue Firmenverwaltung hinzugefuegt!<br>';
//Adressen der Firmen Syncronisieren
$qry = "
SELECT
adresse, tbl_firma.insertamum, tbl_firma.insertvon, standort_id
FROM
public.tbl_firma JOIN public.tbl_standort USING(firma_id)
WHERE
tbl_firma.adresse IS NOT NULL
AND tbl_firma.adresse<>''
AND tbl_standort.adresse_id IS NULL";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$qry = "INSERT INTO public.tbl_adresse(strasse, typ, heimatadresse,
zustelladresse, updateamum, updatevon, insertamum, insertvon)
VALUES('".addslashes($row->adresse)."', 'f', false, true, now(), 'checksystem',
".($row->insertamum!=''?"'".addslashes($row->insertamum)."'":'null').",'".addslashes($row->insertvon)."');
UPDATE public.tbl_standort SET adresse_id=currval('public.tbl_adresse_adresse_id_seq') WHERE standort_id='".$row->standort_id."';";
if(!$db->db_query($qry))
{
echo 'Fehler beim Syncronisieren der Adress-Daten:'.$qry;
}
}
}
//Adressfeld entfernen
$qry = "ALTER TABLE public.tbl_firma DROP COLUMN adresse;";
if(!$db->db_query($qry))
{
echo 'Fehler beim Loeschen der Spalte adresse';
}
}
if(!@$db->db_query("SELECT mailverteiler FROM public.tbl_organisationseinheit LIMIT 1;"))
{
$qry = "
ALTER TABLE public.tbl_organisationseinheit ADD COLUMN mailverteiler boolean DEFAULT true;
UPDATE public.tbl_organisationseinheit SET mailverteiler=false;
ALTER TABLE public.tbl_organisationseinheit ALTER COLUMN mailverteiler SET NOT NULL;
-- Gruppe Kurzbz auf 32 Zeichen aendern
DROP VIEW campus.vw_persongruppe;
DROP VIEW lehre.vw_reservierung;
DROP VIEW campus.vw_reservierung;
DROP VIEW lehre.vw_lva_stundenplandev;
DROP VIEW lehre.vw_lva_stundenplan;
DROP VIEW campus.vw_student_lehrveranstaltung;
DROP VIEW campus.vw_lehreinheit;
DROP VIEW lehre.vw_stundenplan;
DROP VIEW lehre.vw_stundenplandev;
DROP VIEW campus.vw_stundenplan;
DROP VIEW lehre.vw_stundenplandev_student_unr;
ALTER TABLE public.tbl_gruppe ALTER COLUMN gruppe_kurzbz TYPE varchar(32);
ALTER TABLE campus.tbl_reservierung ALTER COLUMN gruppe_kurzbz TYPE varchar(32);
ALTER TABLE lehre.tbl_lehreinheitgruppe ALTER COLUMN gruppe_kurzbz TYPE varchar(32);
ALTER TABLE lehre.tbl_stundenplan ALTER COLUMN gruppe_kurzbz TYPE varchar(32);
ALTER TABLE lehre.tbl_stundenplandev ALTER COLUMN gruppe_kurzbz TYPE varchar(32);
ALTER TABLE public.tbl_benutzergruppe ALTER COLUMN gruppe_kurzbz TYPE varchar(32);
CREATE VIEW campus.vw_persongruppe AS
SELECT tbl_benutzer.uid, tbl_benutzergruppe.gruppe_kurzbz, tbl_gruppe.studiengang_kz, tbl_person.nachname, tbl_person.vorname, tbl_person.vornamen, tbl_person.person_id, tbl_person.gebdatum, tbl_person.titelpost, tbl_person.titelpre, tbl_person.staatsbuergerschaft, tbl_person.geburtsnation, tbl_person.sprache, tbl_person.anrede, tbl_person.gebort, tbl_person.gebzeit, tbl_person.foto, tbl_person.homepage, tbl_person.svnr, tbl_person.ersatzkennzeichen, tbl_person.familienstand, tbl_person.geschlecht, tbl_person.anzahlkinder, tbl_benutzer.alias, tbl_person.anmerkung, tbl_person.aktiv AS aktivperson, tbl_gruppe.mailgrp, tbl_gruppe.sichtbar, tbl_benutzer.aktiv AS aktivbenutzer, tbl_gruppe.semester, tbl_gruppe.bezeichnung, tbl_gruppe.beschreibung, tbl_gruppe.generiert, tbl_gruppe.aktiv AS aktivgruppe, tbl_gruppe.sort, tbl_benutzergruppe.updateamum, tbl_benutzergruppe.updatevon, tbl_benutzergruppe.insertamum, tbl_benutzergruppe.insertvon
FROM public.tbl_person
JOIN public.tbl_benutzer USING (person_id)
JOIN public.tbl_benutzergruppe USING (uid)
JOIN public.tbl_gruppe USING (gruppe_kurzbz);
CREATE VIEW lehre.vw_reservierung AS
SELECT tbl_reservierung.reservierung_id, tbl_reservierung.ort_kurzbz, tbl_reservierung.studiengang_kz, tbl_reservierung.uid, tbl_reservierung.stunde, tbl_reservierung.datum, tbl_reservierung.titel, tbl_reservierung.beschreibung, tbl_reservierung.semester, tbl_reservierung.verband, tbl_reservierung.gruppe, tbl_reservierung.gruppe_kurzbz, tbl_studiengang.kurzbz AS stg_kurzbz
FROM campus.tbl_reservierung
JOIN public.tbl_studiengang USING (studiengang_kz);
CREATE VIEW campus.vw_reservierung AS
SELECT tbl_reservierung.reservierung_id, tbl_reservierung.ort_kurzbz, tbl_reservierung.studiengang_kz, tbl_reservierung.uid, tbl_reservierung.stunde, tbl_reservierung.datum, tbl_reservierung.titel, tbl_reservierung.beschreibung, tbl_reservierung.semester, tbl_reservierung.verband, tbl_reservierung.gruppe, tbl_reservierung.gruppe_kurzbz, tbl_studiengang.kurzbz AS stg_kurzbz, tbl_reservierung.insertamum, tbl_reservierung.insertvon
FROM campus.tbl_reservierung
JOIN public.tbl_studiengang USING (studiengang_kz);
CREATE VIEW lehre.vw_lva_stundenplandev AS
SELECT le.lehreinheit_id, le.unr, le.lvnr, tbl_lehrfach.fachbereich_kurzbz, le.lehrfach_id, tbl_lehrfach.kurzbz AS lehrfach, tbl_lehrfach.bezeichnung AS lehrfach_bez, tbl_lehrfach.farbe AS lehrfach_farbe, le.lehrform_kurzbz AS lehrform, lema.mitarbeiter_uid AS lektor_uid, tbl_mitarbeiter.kurzbz AS lektor, tbl_studiengang.studiengang_kz, upper(tbl_studiengang.typ::character varying::text || tbl_studiengang.kurzbz::text) AS studiengang, lvb.semester, lvb.verband, lvb.gruppe, lvb.gruppe_kurzbz, le.raumtyp, le.raumtypalternativ, le.stundenblockung, le.wochenrythmus, lema.semesterstunden, lema.planstunden, le.start_kw, le.anmerkung, le.studiensemester_kurzbz,
( SELECT count(*) AS count FROM lehre.tbl_stundenplandev WHERE tbl_stundenplandev.mitarbeiter_uid::text = lema.mitarbeiter_uid::text AND tbl_stundenplandev.studiengang_kz = lvb.studiengang_kz AND tbl_stundenplandev.semester = lvb.semester AND (tbl_stundenplandev.verband = lvb.verband OR (tbl_stundenplandev.verband IS NULL OR tbl_stundenplandev.verband = ''::bpchar) AND lvb.verband IS NULL) AND (tbl_stundenplandev.gruppe = lvb.gruppe OR (tbl_stundenplandev.gruppe IS NULL OR tbl_stundenplandev.gruppe = ''::bpchar) AND lvb.gruppe IS NULL) AND (tbl_stundenplandev.gruppe_kurzbz::text = lvb.gruppe_kurzbz::text OR tbl_stundenplandev.gruppe_kurzbz IS NULL AND lvb.gruppe_kurzbz IS NULL) AND tbl_stundenplandev.lehreinheit_id = lvb.lehreinheit_id) AS verplant
FROM lehre.tbl_lehreinheit le
JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id)
JOIN lehre.tbl_lehreinheitgruppe lvb USING (lehreinheit_id)
JOIN public.tbl_studiengang ON lvb.studiengang_kz = tbl_studiengang.studiengang_kz
JOIN lehre.tbl_lehrfach USING (lehrfach_id)
JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid);
CREATE VIEW lehre.vw_lva_stundenplan AS
SELECT le.lehreinheit_id, le.unr, le.lvnr, tbl_lehrfach.fachbereich_kurzbz, le.lehrfach_id, tbl_lehrfach.kurzbz AS lehrfach, tbl_lehrfach.bezeichnung AS lehrfach_bez, tbl_lehrfach.farbe AS lehrfach_farbe, le.lehrform_kurzbz AS lehrform, lema.mitarbeiter_uid AS lektor_uid, ma.kurzbz AS lektor, tbl_studiengang.studiengang_kz, tbl_studiengang.kurzbz AS studiengang, lvb.semester, lvb.verband, lvb.gruppe, lvb.gruppe_kurzbz, le.raumtyp, le.raumtypalternativ, le.stundenblockung, le.wochenrythmus, lema.semesterstunden, lema.planstunden, le.start_kw, le.anmerkung, le.studiensemester_kurzbz,
( SELECT count(*) AS count FROM lehre.tbl_stundenplan WHERE tbl_stundenplan.mitarbeiter_uid::text = lema.mitarbeiter_uid::text AND tbl_stundenplan.studiengang_kz = lvb.studiengang_kz AND tbl_stundenplan.semester = lvb.semester AND (tbl_stundenplan.verband = lvb.verband OR (tbl_stundenplan.verband IS NULL OR tbl_stundenplan.verband = ''::bpchar) AND lvb.verband IS NULL) AND (tbl_stundenplan.gruppe = lvb.gruppe OR (tbl_stundenplan.gruppe IS NULL OR tbl_stundenplan.gruppe = ''::bpchar) AND lvb.gruppe IS NULL) AND (tbl_stundenplan.gruppe_kurzbz::text = lvb.gruppe_kurzbz::text OR tbl_stundenplan.gruppe_kurzbz IS NULL AND lvb.gruppe_kurzbz IS NULL) AND tbl_stundenplan.lehreinheit_id = lvb.lehreinheit_id) AS verplant
FROM lehre.tbl_lehreinheit le
JOIN lehre.tbl_lehreinheitgruppe lvb USING (lehreinheit_id)
JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id)
JOIN public.tbl_studiengang USING (studiengang_kz)
JOIN lehre.tbl_lehrfach USING (lehrfach_id)
JOIN public.tbl_mitarbeiter ma USING (mitarbeiter_uid);
CREATE VIEW campus.vw_student_lehrveranstaltung AS
SELECT tbl_benutzergruppe.uid, tbl_lehrveranstaltung.zeugnis, tbl_lehrveranstaltung.sort, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.kurzbz, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.bezeichnung_english, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.sprache, tbl_lehrveranstaltung.ects, tbl_lehrveranstaltung.semesterstunden, tbl_lehrveranstaltung.anmerkung, tbl_lehrveranstaltung.lehre, tbl_lehrveranstaltung.lehreverzeichnis, tbl_lehrveranstaltung.aktiv, tbl_lehrveranstaltung.planfaktor, tbl_lehrveranstaltung.planlektoren, tbl_lehrveranstaltung.planpersonalkosten, tbl_lehrveranstaltung.plankostenprolektor, tbl_lehrveranstaltung.updateamum, tbl_lehrveranstaltung.updatevon, tbl_lehrveranstaltung.insertamum, tbl_lehrveranstaltung.insertvon, tbl_lehrveranstaltung.ext_id, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.studiensemester_kurzbz, tbl_lehreinheit.lehrfach_id, tbl_lehreinheit.lehrform_kurzbz, tbl_lehreinheit.stundenblockung, tbl_lehreinheit.wochenrythmus, tbl_lehreinheit.start_kw, tbl_lehreinheit.raumtyp, tbl_lehreinheit.raumtypalternativ, tbl_lehrveranstaltung.lehrform_kurzbz AS lv_lehrform_kurzbz
FROM lehre.tbl_lehreinheitgruppe, tbl_benutzergruppe, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung
WHERE tbl_lehreinheitgruppe.gruppe_kurzbz::text = tbl_benutzergruppe.gruppe_kurzbz::text AND tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id AND tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitgruppe.lehreinheit_id AND tbl_lehreinheit.studiensemester_kurzbz::text = tbl_benutzergruppe.studiensemester_kurzbz::text
UNION
SELECT tbl_studentlehrverband.student_uid AS uid, tbl_lehrveranstaltung.zeugnis, tbl_lehrveranstaltung.sort, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.kurzbz, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.bezeichnung_english, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.sprache, tbl_lehrveranstaltung.ects, tbl_lehrveranstaltung.semesterstunden, tbl_lehrveranstaltung.anmerkung, tbl_lehrveranstaltung.lehre, tbl_lehrveranstaltung.lehreverzeichnis, tbl_lehrveranstaltung.aktiv, tbl_lehrveranstaltung.planfaktor, tbl_lehrveranstaltung.planlektoren, tbl_lehrveranstaltung.planpersonalkosten, tbl_lehrveranstaltung.plankostenprolektor, tbl_lehrveranstaltung.updateamum, tbl_lehrveranstaltung.updatevon, tbl_lehrveranstaltung.insertamum, tbl_lehrveranstaltung.insertvon, tbl_lehrveranstaltung.ext_id, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.studiensemester_kurzbz, tbl_lehreinheit.lehrfach_id, tbl_lehreinheit.lehrform_kurzbz, tbl_lehreinheit.stundenblockung, tbl_lehreinheit.wochenrythmus, tbl_lehreinheit.start_kw, tbl_lehreinheit.raumtyp, tbl_lehreinheit.raumtypalternativ, tbl_lehrveranstaltung.lehrform_kurzbz AS lv_lehrform_kurzbz
FROM lehre.tbl_lehreinheitgruppe, tbl_studentlehrverband, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung
WHERE tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitgruppe.lehreinheit_id AND tbl_lehreinheit.studiensemester_kurzbz::text = tbl_studentlehrverband.studiensemester_kurzbz::text AND tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id AND tbl_studentlehrverband.studiengang_kz = tbl_lehreinheitgruppe.studiengang_kz AND tbl_studentlehrverband.semester = tbl_lehreinheitgruppe.semester AND (btrim(tbl_studentlehrverband.verband::text) = btrim(tbl_lehreinheitgruppe.verband::text) OR (tbl_lehreinheitgruppe.verband IS NULL OR btrim(tbl_lehreinheitgruppe.verband::text) = ''::text) AND tbl_lehreinheitgruppe.gruppe_kurzbz IS NULL) AND (btrim(tbl_studentlehrverband.gruppe::text) = btrim(tbl_lehreinheitgruppe.gruppe::text) OR (tbl_lehreinheitgruppe.gruppe IS NULL OR btrim(tbl_lehreinheitgruppe.gruppe::text) = ''::text) AND tbl_lehreinheitgruppe.gruppe_kurzbz IS NULL);
CREATE VIEW campus.vw_lehreinheit AS
SELECT tbl_lehrveranstaltung.studiengang_kz AS lv_studiengang_kz, tbl_lehrveranstaltung.semester AS lv_semester, tbl_lehrveranstaltung.kurzbz AS lv_kurzbz, tbl_lehrveranstaltung.bezeichnung AS lv_bezeichnung, tbl_lehrveranstaltung.ects AS lv_ects, tbl_lehrveranstaltung.lehreverzeichnis AS lv_lehreverzeichnis, tbl_lehrveranstaltung.planfaktor AS lv_planfaktor, tbl_lehrveranstaltung.planlektoren AS lv_planlektoren, tbl_lehrveranstaltung.planpersonalkosten AS lv_planpersonalkosten, tbl_lehrveranstaltung.plankostenprolektor AS lv_plankostenprolektor, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrveranstaltung_id, tbl_lehreinheit.studiensemester_kurzbz, tbl_lehreinheit.lehrform_kurzbz, tbl_lehreinheit.stundenblockung, tbl_lehreinheit.wochenrythmus, tbl_lehreinheit.start_kw, tbl_lehreinheit.raumtyp, tbl_lehreinheit.raumtypalternativ, tbl_lehreinheit.lehre, tbl_lehreinheit.unr, tbl_lehreinheit.lvnr, tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz, tbl_lehreinheit.insertamum, tbl_lehreinheit.insertvon, tbl_lehreinheit.updateamum, tbl_lehreinheit.updatevon, tbl_lehreinheit.lehrfach_id, tbl_lehrfach.fachbereich_kurzbz, tbl_lehrfach.kurzbz AS lehrfach, tbl_lehrfach.bezeichnung AS lehrfach_bez, tbl_lehrfach.farbe, tbl_lehrveranstaltung.aktiv, tbl_lehrfach.sprache, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehreinheitmitarbeiter.semesterstunden, tbl_lehrveranstaltung.semesterstunden AS lv_semesterstunden, tbl_lehreinheitmitarbeiter.planstunden, tbl_lehreinheitmitarbeiter.stundensatz, tbl_lehreinheitmitarbeiter.faktor, tbl_lehreinheit.anmerkung, tbl_mitarbeiter.kurzbz AS lektor, tbl_lehreinheitgruppe.studiengang_kz, tbl_lehreinheitgruppe.semester, tbl_lehreinheitgruppe.verband, tbl_lehreinheitgruppe.gruppe, tbl_lehreinheitgruppe.gruppe_kurzbz, tbl_studiengang.kurzbz AS stg_kurzbz, tbl_studiengang.kurzbzlang AS stg_kurzbzlang, tbl_studiengang.bezeichnung AS stg_bez, tbl_studiengang.typ AS stg_typ, tbl_lehreinheitmitarbeiter.anmerkung AS anmerkunglektor, tbl_lehrveranstaltung.lehrform_kurzbz AS lv_lehrform_kurzbz
FROM lehre.tbl_lehreinheit
JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id)
JOIN lehre.tbl_lehrfach USING (lehrfach_id)
JOIN lehre.tbl_lehreinheitmitarbeiter USING (lehreinheit_id)
JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid)
JOIN lehre.tbl_lehreinheitgruppe USING (lehreinheit_id)
JOIN public.tbl_studiengang ON tbl_lehreinheitgruppe.studiengang_kz = tbl_studiengang.studiengang_kz;
CREATE VIEW lehre.vw_stundenplan AS
SELECT tbl_stundenplan.stundenplan_id, tbl_stundenplan.unr, tbl_stundenplan.mitarbeiter_uid AS uid, tbl_stundenplan.lehreinheit_id, tbl_lehreinheit.lehrfach_id, tbl_stundenplan.datum, tbl_stundenplan.stunde, tbl_stundenplan.ort_kurzbz, tbl_stundenplan.studiengang_kz, tbl_stundenplan.semester, tbl_stundenplan.verband, tbl_stundenplan.gruppe, tbl_stundenplan.gruppe_kurzbz, tbl_stundenplan.titel, tbl_stundenplan.anmerkung, tbl_stundenplan.fix, tbl_lehreinheit.lehrveranstaltung_id, tbl_studiengang.kurzbz AS stg_kurzbz, tbl_studiengang.kurzbzlang AS stg_kurzbzlang, tbl_studiengang.bezeichnung AS stg_bezeichnung, tbl_studiengang.typ AS stg_typ, tbl_lehrfach.fachbereich_kurzbz, tbl_lehrfach.kurzbz AS lehrfach, tbl_lehrfach.bezeichnung AS lehrfach_bez, tbl_lehrfach.farbe, tbl_lehreinheit.lehrform_kurzbz AS lehrform, tbl_mitarbeiter.kurzbz AS lektor, tbl_stundenplan.updateamum, tbl_stundenplan.updatevon, tbl_stundenplan.insertamum, tbl_stundenplan.insertvon
FROM lehre.tbl_stundenplan
JOIN public.tbl_studiengang USING (studiengang_kz)
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
JOIN lehre.tbl_lehrfach USING (lehrfach_id)
JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid);
CREATE VIEW lehre.vw_stundenplandev AS
SELECT tbl_stundenplandev.stundenplandev_id, tbl_stundenplandev.unr, tbl_stundenplandev.mitarbeiter_uid AS uid, tbl_stundenplandev.lehreinheit_id, tbl_lehreinheit.lehrfach_id, tbl_stundenplandev.datum, tbl_stundenplandev.stunde, tbl_stundenplandev.ort_kurzbz, tbl_stundenplandev.studiengang_kz, tbl_stundenplandev.semester, tbl_stundenplandev.verband, tbl_stundenplandev.gruppe, tbl_stundenplandev.gruppe_kurzbz, tbl_stundenplandev.titel, tbl_stundenplandev.anmerkung, tbl_stundenplandev.fix, tbl_lehreinheit.lehrveranstaltung_id, tbl_studiengang.kurzbz AS stg_kurzbz, tbl_studiengang.kurzbzlang AS stg_kurzbzlang, tbl_studiengang.bezeichnung AS stg_bezeichnung, tbl_studiengang.typ AS stg_typ, tbl_lehrfach.fachbereich_kurzbz, tbl_lehrfach.kurzbz AS lehrfach, tbl_lehrfach.bezeichnung AS lehrfach_bez, tbl_lehrfach.farbe, tbl_lehreinheit.lehrform_kurzbz AS lehrform, tbl_mitarbeiter.kurzbz AS lektor, tbl_stundenplandev.updateamum, tbl_stundenplandev.updatevon, tbl_stundenplandev.insertamum, tbl_stundenplandev.insertvon
FROM lehre.tbl_stundenplandev
JOIN public.tbl_studiengang USING (studiengang_kz)
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
JOIN lehre.tbl_lehrfach USING (lehrfach_id)
JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid);
CREATE VIEW campus.vw_stundenplan AS
SELECT tbl_stundenplan.stundenplan_id, tbl_stundenplan.unr, tbl_stundenplan.mitarbeiter_uid AS uid, tbl_stundenplan.lehreinheit_id, tbl_lehreinheit.lehrfach_id, tbl_stundenplan.datum, tbl_stundenplan.stunde, tbl_stundenplan.ort_kurzbz, tbl_stundenplan.studiengang_kz, tbl_stundenplan.semester, tbl_stundenplan.verband, tbl_stundenplan.gruppe, tbl_stundenplan.gruppe_kurzbz, tbl_stundenplan.titel, tbl_stundenplan.anmerkung, tbl_stundenplan.fix, tbl_lehreinheit.lehrveranstaltung_id, tbl_studiengang.kurzbz AS stg_kurzbz, tbl_studiengang.kurzbzlang AS stg_kurzbzlang, tbl_studiengang.bezeichnung AS stg_bezeichnung, tbl_studiengang.typ AS stg_typ, tbl_lehrfach.fachbereich_kurzbz, tbl_lehrfach.kurzbz AS lehrfach, tbl_lehrfach.bezeichnung AS lehrfach_bez, tbl_lehrfach.farbe, tbl_lehreinheit.lehrform_kurzbz AS lehrform, tbl_mitarbeiter.kurzbz AS lektor, tbl_stundenplan.updateamum, tbl_stundenplan.updatevon, tbl_stundenplan.insertamum, tbl_stundenplan.insertvon
FROM lehre.tbl_stundenplan
JOIN public.tbl_studiengang USING (studiengang_kz)
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
JOIN lehre.tbl_lehrfach USING (lehrfach_id)
JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid);
CREATE VIEW lehre.vw_stundenplandev_student_unr AS
SELECT sub_stpl_uid.unr, sub_stpl_uid.datum, sub_stpl_uid.stunde, sub_stpl_uid.student_uid
FROM (SELECT stpl.unr, stpl.datum, stpl.stunde, tbl_benutzergruppe.uid AS student_uid
FROM lehre.tbl_stundenplandev stpl
JOIN public.tbl_benutzergruppe USING (gruppe_kurzbz)
WHERE tbl_benutzergruppe.studiensemester_kurzbz::text = ((( SELECT tbl_studiensemester.studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE stpl.datum <= tbl_studiensemester.ende AND stpl.datum >= tbl_studiensemester.start))::text)
GROUP BY stpl.unr, stpl.datum, stpl.stunde, tbl_benutzergruppe.uid
UNION
SELECT stpl.unr, stpl.datum, stpl.stunde, tbl_studentlehrverband.student_uid
FROM lehre.tbl_stundenplandev stpl
JOIN public.tbl_studentlehrverband ON stpl.gruppe_kurzbz IS NULL AND stpl.studiengang_kz = tbl_studentlehrverband.studiengang_kz AND stpl.semester = tbl_studentlehrverband.semester AND (stpl.verband = tbl_studentlehrverband.verband OR stpl.verband = ' '::bpchar AND stpl.verband <> tbl_studentlehrverband.verband) AND (stpl.gruppe = tbl_studentlehrverband.gruppe OR stpl.gruppe = ' '::bpchar AND stpl.gruppe <> tbl_studentlehrverband.gruppe)
WHERE tbl_studentlehrverband.studiensemester_kurzbz::text = ((( SELECT tbl_studiensemester.studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE stpl.datum <= tbl_studiensemester.ende AND stpl.datum >= tbl_studiensemester.start))::text)
GROUP BY stpl.unr, stpl.datum, stpl.stunde, tbl_studentlehrverband.student_uid) sub_stpl_uid
GROUP BY sub_stpl_uid.unr, sub_stpl_uid.datum, sub_stpl_uid.stunde, sub_stpl_uid.student_uid;
GRANT SELECT ON campus.vw_persongruppe TO admin;
GRANT SELECT ON campus.vw_persongruppe TO web;
GRANT SELECT ON lehre.vw_reservierung TO admin;
GRANT SELECT ON lehre.vw_reservierung TO web;
GRANT SELECT ON campus.vw_reservierung TO admin;
GRANT SELECT ON campus.vw_reservierung TO web;
GRANT SELECT ON lehre.vw_lva_stundenplan TO admin;
GRANT SELECT ON lehre.vw_lva_stundenplan TO web;
GRANT SELECT ON lehre.vw_lva_stundenplandev TO admin;
GRANT SELECT ON lehre.vw_lva_stundenplandev TO web;
GRANT SELECT ON campus.vw_student_lehrveranstaltung TO admin;
GRANT SELECT ON campus.vw_student_lehrveranstaltung TO web;
GRANT SELECT ON campus.vw_lehreinheit TO admin;
GRANT SELECT ON campus.vw_lehreinheit TO web;
GRANT SELECT ON lehre.vw_stundenplan TO admin;
GRANT SELECT ON lehre.vw_stundenplan TO web;
GRANT SELECT ON lehre.vw_stundenplandev TO admin;
GRANT SELECT ON lehre.vw_stundenplandev TO web;
GRANT SELECT ON campus.vw_stundenplan TO admin;
GRANT SELECT ON campus.vw_stundenplan TO web;
GRANT SELECT ON lehre.vw_stundenplandev_student_unr TO admin;
GRANT SELECT ON lehre.vw_stundenplandev_student_unr TO web;
";
if(!$db->db_query($qry))
echo '<strong>tbl_organisationseinheit: '.$db->db_last_error().'</strong><br>';
else
echo 'tbl_organisationseinheit: Spalte mailverteiler hinzugefuegt!<br>';
}
if(!@$db->db_query("SELECT sort FROM lehre.tbl_lehrfunktion LIMIT 1;"))
{
$qry = "ALTER TABLE lehre.tbl_lehrfunktion ADD COLUMN sort smallint;";
if(!$db->db_query($qry))
echo '<strong>tbl_lehrfunktion: '.$db->db_last_error().'</strong><br>';
else
echo 'tbl_lehrfunktion: Spalte sort hinzugefuegt!<br>';
}
if(!@$db->db_query("SELECT * FROM system.tbl_cronjob LIMIT 1;"))
{
$qry = "
CREATE TABLE system.tbl_cronjob
(
cronjob_id Serial NOT NULL,
server_kurzbz Character varying(64),
titel Character varying(64),
beschreibung Text,
file Text,
last_execute Timestamp,
aktiv Boolean DEFAULT true NOT NULL,
running Boolean DEFAULT false NOT NULL,
jahr Character varying(6),
monat Character varying(4),
tag Character varying(4),
wochentag Smallint,
stunde Character varying(4),
minute Character varying(4),
standalone Boolean DEFAULT true NOT NULL,
reihenfolge Smallint,
updateamum Timestamp,
updatevon Character varying(32),
insertamum Timestamp,
insertvon Character varying(32),
variablen text
);
ALTER TABLE system.tbl_cronjob ADD CONSTRAINT pk_tbl_cronjob PRIMARY KEY (cronjob_id);
CREATE TABLE system.tbl_server
(
server_kurzbz Character varying(64) NOT NULL,
beschreibung Text
);
GRANT SELECT, INSERT, UPDATE, DELETE ON system.tbl_cronjob TO admin;
GRANT SELECT, INSERT, UPDATE, DELETE ON system.tbl_server TO admin;
GRANT SELECT, UPDATE ON system.tbl_cronjob_cronjob_id_seq TO admin;
";
if(!$db->db_query($qry))
echo '<strong>tbl_cronjob: '.$db->db_last_error().'</strong><br>';
else
echo 'tbl_cronjob: hinzugefuegt!<br>';
}
echo '<br>';
$tabellen=array(
@@ -426,10 +894,10 @@ $tabellen=array(
"lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"),
"lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id"),
"lehre.tbl_lehreinheitgruppe" => array("lehreinheitgruppe_id","lehreinheit_id","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id"),
"lehre.tbl_lehreinheitmitarbeiter" => array("lehreinheit_id","mitarbeiter_uid","lehrfunktion_kurzbz","semesterstunden","planstunden","stundensatz","faktor","anmerkung","bismelden","updateamum","updatevon","insertamum","insertvon","ext_id"),
"lehre.tbl_lehreinheitmitarbeiter" => array("lehreinheit_id","mitarbeiter_uid","lehrfunktion_kurzbz","semesterstunden","planstunden","stundensatz","faktor","anmerkung","bismelden","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id"),
"lehre.tbl_lehrfach" => array("lehrfach_id","studiengang_kz","fachbereich_kurzbz","kurzbz","bezeichnung","farbe","aktiv","semester","sprache","updateamum","updatevon","insertamum","insertvon","ext_id"),
"lehre.tbl_lehrform" => array("lehrform_kurzbz","bezeichnung","verplanen"),
"lehre.tbl_lehrfunktion" => array("lehrfunktion_kurzbz","beschreibung","standardfaktor"),
"lehre.tbl_lehrfunktion" => array("lehrfunktion_kurzbz","beschreibung","standardfaktor","sort"),
"lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz"),
"lehre.tbl_moodle" => array("lehrveranstaltung_id","lehreinheit_id","moodle_id","mdl_course_id","studiensemester_kurzbz","gruppen","insertamum","insertvon"),
"lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe"),
@@ -460,23 +928,25 @@ $tabellen=array(
"public.tbl_dokumentstudiengang" => array("dokument_kurzbz","studiengang_kz","ext_id"),
"public.tbl_erhalter" => array("erhalter_kz","kurzbz","bezeichnung","dvr","logo","zvr"),
"public.tbl_fachbereich" => array("fachbereich_kurzbz","bezeichnung","farbe","studiengang_kz","aktiv","ext_id","oe_kurzbz"),
"public.tbl_firma" => array("firma_id","name","adresse","email","telefon","fax","anmerkung","firmentyp_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id","schule"),
"public.tbl_firma" => array("firma_id","name","anmerkung","firmentyp_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id","schule","finanzamt","steuernummer","gesperrt","aktiv"),
"public.tbl_firma_organisationseinheit" => array("firma_organisationseinheit_id","firma_id","oe_kurzbz","bezeichnung","kundennummer","updateamum","updatevon","insertamum","insertvon","ext_id"),
"public.tbl_firmentyp" => array("firmentyp_kurzbz","beschreibung"),
"public.tbl_firmatag" => array("firma_id","tag","insertamum","insertvon"),
"public.tbl_funktion" => array("funktion_kurzbz","beschreibung","aktiv","fachbereich","semester"),
"public.tbl_gruppe" => array("gruppe_kurzbz","studiengang_kz","semester","bezeichnung","beschreibung","sichtbar","lehre","aktiv","sort","mailgrp","generiert","updateamum","updatevon","insertamum","insertvon","ext_id","orgform_kurzbz"),
"public.tbl_kontakt" => array("kontakt_id","person_id","firma_id","kontakttyp","anmerkung","kontakt","zustellung","updateamum","updatevon","insertamum","insertvon","ext_id"),
"public.tbl_kontakt" => array("kontakt_id","person_id","firma_id","kontakttyp","anmerkung","kontakt","zustellung","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id"),
"public.tbl_kontaktmedium" => array("kontaktmedium_kurzbz","beschreibung"),
"public.tbl_kontakttyp" => array("kontakttyp","beschreibung"),
"public.tbl_konto" => array("buchungsnr","person_id","studiengang_kz","studiensemester_kurzbz","buchungstyp_kurzbz","buchungsnr_verweis","betrag","buchungsdatum","buchungstext","mahnspanne","updateamum","updatevon","insertamum","insertvon","ext_id"),
"public.tbl_lehrverband" => array("studiengang_kz","semester","verband","gruppe","aktiv","bezeichnung","ext_id","orgform_kurzbz"),
"public.tbl_log" => array("log_id","executetime","mitarbeiter_uid","beschreibung","sql","sqlundo"),
"public.tbl_mitarbeiter" => array("mitarbeiter_uid","personalnummer","telefonklappe","kurzbz","lektor","fixangestellt","bismelden","stundensatz","ausbildungcode","ort_kurzbz","standort_kurzbz","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id"),
"public.tbl_ort" => array("ort_kurzbz","bezeichnung","planbezeichnung","max_person","lehre","reservieren","aktiv","lageplan","dislozierung","kosten","ausstattung","updateamum","updatevon","insertamum","insertvon","ext_id","stockwerk","standort_kurzbz","telefonklappe"),
"public.tbl_mitarbeiter" => array("mitarbeiter_uid","personalnummer","telefonklappe","kurzbz","lektor","fixangestellt","bismelden","stundensatz","ausbildungcode","ort_kurzbz","standort_id","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id"),
"public.tbl_ort" => array("ort_kurzbz","bezeichnung","planbezeichnung","max_person","lehre","reservieren","aktiv","lageplan","dislozierung","kosten","ausstattung","updateamum","updatevon","insertamum","insertvon","ext_id","stockwerk","standort_id","telefonklappe"),
"public.tbl_ortraumtyp" => array("ort_kurzbz","hierarchie","raumtyp_kurzbz"),
"public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv"),
"public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler"),
"public.tbl_organisationseinheittyp" => array("organisationseinheittyp_kurzbz", "bezeichnung", "beschreibung"),
"public.tbl_person" => array("person_id","staatsbuergerschaft","geburtsnation","sprache","anrede","titelpost","titelpre","nachname","vorname","vornamen","gebdatum","gebort","gebzeit","foto","anmerkung","homepage","svnr","ersatzkennzeichen","familienstand","geschlecht","anzahlkinder","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","bundesland_code","kompetenzen","kurzbeschreibung"),
"public.tbl_personfunktionfirma" => array("personfunktionfirma_id","funktion_kurzbz","person_id","firma_id","position","anrede"),
"public.tbl_personfunktionstandort" => array("personfunktionstandort_id","funktion_kurzbz","person_id","standort_id","position","anrede"),
"public.tbl_preinteressent" => array("preinteressent_id","person_id","studiensemester_kurzbz","firma_id","erfassungsdatum","einverstaendnis","absagedatum","anmerkung","maturajahr","infozusendung","aufmerksamdurch_kurzbz","kontaktmedium_kurzbz","insertamum","insertvon","updateamum","updatevon"),
"public.tbl_preinteressentstudiengang" => array("studiengang_kz","preinteressent_id","freigabedatum","uebernahmedatum","prioritaet","insertamum","insertvon","updateamum","updatevon"),
"public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id"),
@@ -486,11 +956,12 @@ $tabellen=array(
"public.tbl_status" => array("status_kurzbz","beschreibung","anmerkung","ext_id"),
"public.tbl_semesterwochen" => array("semester","studiengang_kz","wochen"),
"public.tbl_sprache" => array("sprache","locale","flagge"),
"public.tbl_standort" => array("standort_kurzbz","adresse_id"),
"public.tbl_standort" => array("standort_id","adresse_id","kurzbz","bezeichnung","insertvon","insertamum","updatevon","updateamum","ext_id", "firma_id"),
"public.tbl_student" => array("student_uid","matrikelnr","prestudent_id","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"),
"public.tbl_studentlehrverband" => array("student_uid","studiensemester_kurzbz","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"),
"public.tbl_studiengang" => array("studiengang_kz","kurzbz","kurzbzlang","typ","bezeichnung","english","farbe","email","telefon","max_semester","max_verband","max_gruppe","erhalter_kz","bescheid","bescheidbgbl1","bescheidbgbl2","bescheidgz","bescheidvom","orgform_kurzbz","titelbescheidvom","aktiv","ext_id","zusatzinfo_html","moodle","sprache","testtool_sprachwahl","studienplaetze","oe_kurzbz","lgartcode"),
"public.tbl_studiensemester" => array("studiensemester_kurzbz","bezeichnung","start","ende","ext_id"),
"public.tbl_tag" => array("tag"),
"public.tbl_variable" => array("name","uid","wert"),
"public.tbl_vorlage" => array("vorlage_kurzbz","bezeichnung","anmerkung"),
"public.tbl_vorlagestudiengang" => array("vorlage_kurzbz","studiengang_kz","version","text"),
@@ -506,10 +977,12 @@ $tabellen=array(
"testtool.tbl_pruefling_frage" => array("prueflingfrage_id","pruefling_id","frage_id","nummer","begintime","endtime"),
"testtool.tbl_frage_sprache" => array("frage_id","sprache","text","bild","audio","insertamum","insertvon","updateamum","updatevon"),
"testtool.tbl_vorschlag_sprache" => array("vorschlag_id","sprache","text","bild","audio","insertamum","insertvon","updateamum","updatevon"),
"system.tbl_cronjob" => array("cronjob_id","server_kurzbz","titel","beschreibung","file","last_execute","aktiv","running","jahr","monat","tag","wochentag","stunde","minute","standalone","reihenfolge","updateamum", "updatevon","insertamum","insertvon","variablen"),
"system.tbl_benutzerrolle" => array("benutzerberechtigung_id","rolle_kurzbz","berechtigung_kurzbz","uid","funktion_kurzbz","oe_kurzbz","art","studiensemester_kurzbz","start","ende","negativ","updateamum", "updatevon","insertamum","insertvon"),
"system.tbl_berechtigung" => array("berechtigung_kurzbz","beschreibung"),
"system.tbl_rolle" => array("rolle_kurzbz","beschreibung"),
"system.tbl_rolleberechtigung" => array("berechtigung_kurzbz","rolle_kurzbz","art"),
"system.tbl_berechtigung" => array("berechtigung_kurzbz","beschreibung"),
"system.tbl_server" => array("server_kurzbz","beschreibung"),
"wawi.tbl_betriebsmittelperson" => array("betriebsmittelperson_id","betriebsmittel_id","person_id", "anmerkung", "kaution", "ausgegebenam", "retouram","insertamum", "insertvon","updateamum", "updatevon","ext_id"),
"wawi.tbl_betriebsmittel" => array("betriebsmittel_id","betriebsmitteltyp","oe_kurzbz", "ort_kurzbz", "beschreibung", "nummer", "hersteller","seriennummer", "bestellung_id","bestelldetail_id", "afa","verwendung","anmerkung","reservieren","updateamum","updatevon","insertamum","insertvon","ext_id","nummerintern","leasing_bis"),
"wawi.tbl_betriebsmittel_betriebsmittelstatus" => array("betriebsmittelbetriebsmittelstatus_id","betriebsmittel_id","betriebsmittelstatus_kurzbz", "datum", "updateamum", "updatevon", "insertamum", "insertvon","anmerkung"),
+85 -4
View File
@@ -31,6 +31,9 @@
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/organisationseinheit.class.php');
require_once('../../include/gruppe.class.php');
$error_msg='';
?>
@@ -459,17 +462,14 @@ $error_msg='';
and vw_lehreinheit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id
and vw_lehreinheit.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz
and vw_lehreinheit.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz
and lower(trim(vw_lehreinheit.lehrfunktion_kurzbz))='lektor'
and ((tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id
and tbl_moodle.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz)
OR (tbl_lehreinheit.lehreinheit_id=tbl_moodle.lehreinheit_id))
";
$sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN ($sql_query)";
if(!$db->db_query($sql_querys))
if(!$result = $db->db_query($sql_querys))
{
$error_msg.=$db->db_last_error().' '.$sql_querys;
echo '-';
flush();
}
if(!($result = $db->db_query($sql_query)))
@@ -488,7 +488,88 @@ $error_msg='';
flush();
}
// **************************************************************
// Organisationseinheiten-Verteiler
$qry = "SELECT * FROM public.tbl_organisationseinheit WHERE aktiv AND mailverteiler";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$mlist_name=strtoupper($row->oe_kurzbz);
$grp = new gruppe();
if(!$grp->exists($mlist_name))
{
$grp->gruppe_kurzbz = $mlist_name;
$grp->studiengang_kz = '0';
$grp->bezeichnung = $row->oe_kurzbz;
$grp->beschreibung = 'Personen der Organisationseinheit '.$row->bezeichnung;
$grp->semester = '0';
$grp->mailgrp = true;
$grp->sichtbar = true;
$grp->generiert = true;
$grp->aktiv = true;
$grp->lehre = true;
$grp->insertamum = date('Y-m-d H:i:s');
$grp->insertvon = 'mlists_generate';
if(!$grp->save(true, false))
die('Fehler: '.$grp->errormsg);
}
else
{
setGeneriert($mlist_name);
}
$oe = new organisationseinheit();
$childs = $oe->getChilds($row->oe_kurzbz);
// Lektoren holen die nicht mehr in den Verteiler gehoeren
echo '<br>'.$mlist_name.' wird abgeglichen!<BR>';
flush();
$oes='';
foreach ($childs as $oe_kurzbz)
{
if($oes!='')
$oes.=',';
$oes .= "'".addslashes($oe_kurzbz)."'";
}
$sql_query = "SELECT distinct uid FROM public.tbl_benutzer JOIN public.tbl_benutzerfunktion USING(uid)
WHERE oe_kurzbz in($oes)
AND tbl_benutzer.aktiv
AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null)
AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)";
$sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name' AND uid NOT IN ($sql_query)";
if(!$db->db_query($sql_querys))
{
$error_msg.=$db->db_last_error().' '.$sql_querys;
echo '-';
flush();
}
$sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')";
if(!($result_oe = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error().' '.$sql_query;
// Lektoren holen die nicht im Verteiler sind
echo '<BR>';
while($row_oe = $db->db_fetch_object($result_oe))
{
$sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->uid','".$mlist_name."', now(), 'mlists_generate')";
if(!$db->db_query($sql_query))
{
$error_msg.=$db->db_last_error().$sql_query;
exit($error_msg);
}
echo '-';
flush();
}
}
}
echo $error_msg;
?>
+55
View File
@@ -0,0 +1,55 @@
<?php
/* Copyright (C) 2010 Technikum-Wien
*
* 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: Christian Paminger < christian.paminger@technikum-wien.at >
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
/**
* Cronjob.php
*
* Dieses Script muss in der Crontab eingetragen werden. Von hier aus werden dann
* die entsprechenden anderen Scripte aufgerufen.
*/
require_once(dirname(__FILE__).'/../../config/vilesci.config.inc.php');
require_once(dirname(__FILE__).'/../../include/cronjob.class.php');
require_once(dirname(__FILE__).'/../../include/datum.class.php');
$datum = new datum();
$cj = new cronjob();
if(!$cj->getAll(SERVER_NAME,'reihenfolge',true))
die('Fehler beim Laden der Cronjobs');
foreach ($cj->result as $cronjob)
{
$timestamp = $cronjob->getNextExecutionTime();
if($timestamp && mktime()>=$timestamp)
{
//Starten des Jobs
if($cronjob->execute())
{
echo date('d.m.Y H:i:s').' '.$cronjob->titel.'('.$cronjob->cronjob_id.') executed<br>';
}
else
{
echo date('d.m.Y H:i:s').' '.$cronjob->titel.'('.$cronjob->cronjob_id.') <b>failed</b><br>';
}
}
}
?>
+89
View File
@@ -0,0 +1,89 @@
<?php
/* Copyright (C) 2010 Technikum-Wien
*
* 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: Christian Paminger < christian.paminger@technikum-wien.at >
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
/**
* Testjob - schickt ein Mail wenn das Script aufgerufen wird
* Dient zur Pruefung ob die Cronjobs richtig funktionieren
*
* als erster Parameter kann die UID uebergeben werden. Wenn diese übergeben wird, dann wird das
* Mail an diese Adresse gesandt (es sei denn MAIL_DEBUG ist gesetzt)
* Ansonsten wird das Mail an MAIL_AMDIN geschickt.
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/mail.class.php');
require_once('../../include/cronjob.class.php');
//ID des Cronjobs holen
$cj = new cronjob();
$id = $cj->getCronjobID();
//Variableninitialisierung
if($cj->isInitialCall())
{
if($cj->load($id))
{
$variablen['StSem']='SS2010';
$variablen['stg_kz']=array('255','256','257','258');
$cj->variablen = json_encode($variablen);
if($cj->save())
echo 'Variablen initialisiert';
else
echo 'Fehler beim Initialisieren:'.$cj->errormsg;
}
else
echo 'Fehler beim Laden der ID '.$id;
exit;
}
//UID als Kommandozeilenparameter
if(isset($_SERVER['argv']) && isset($_SERVER['argv'][1]) && !strstr($_SERVER['argv'][1],'='))
{
$user = $_SERVER['argv'][1].'@'.DOMAIN;
}
//UID als GET-Parameter
if(isset($_GET['user']))
$user = $_GET['user'].'@'.DOMAIN;
//Default Empfaenger
if(!isset($user))
$user = MAIL_ADMIN;
//Variablen des Jobs laden
$cj->load($id);
$vars = json_decode($cj->variablen, true);
$text = "Dies ist ein Test-Cronjob!\n\n";
$text.="Der Cronjob \"$cj->titel\" hat die ID $id\n";
$text.="Er wurde am ".date('d.m.Y')." um ".date('H:i:s')." Uhr auf dem Server ".SERVER_NAME." gestartet.\n";
$text.="Dieses Mail wurde an $user geschickt";
$text.="\n\nVariablen zu diesem Job Dekodiert:\n".print_r($vars,true);
$text.="\n\nVariablen zu diesem Job Plain:\n".$cj->variablen;
$mail = new mail($user, 'no-reply@'.DOMAIN,'CronJob - Testjob',$text);
if(!$mail->send())
die('Fehler beim Senden des Mails!');
else
echo 'Mail verschickt an: '.$user;
?>
+72 -51
View File
@@ -1,69 +1,79 @@
<?php
$path='../';
if (!is_file($path.'config/vilesci.config.inc.php'))
$path='../../';
if (!is_file($path.'config/vilesci.config.inc.php'))
$path='../../../';
/* Copyright (C) 2010 Technikum-Wien
*
* 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: Christian Paminger < christian.paminger@technikum-wien.at >
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
*/
/**
* Druckt die Inventarpickerl
*/
//Zebra Etiketen 5cm*2.5cm
$nummer=trim((isset($_REQUEST['nummer']) ? str_replace(array('`','´','*','~'),'+',$_REQUEST['nummer']):''));
$nummer=trim((isset($_REQUEST['nummer']) ? str_replace(array('`','','*','~'),'+',$_REQUEST['nummer']):''));
// Formel: Größe in cm * 72 dpi / 2,54 = Maß in Pixel; Maß in Pixel * 2,54 / 72 dpi = Größe in cm
$dpiDefault=96;
// Formel: Groesse in cm * 72 dpi / 2,54 = Masse in Pixel; Masse in Pixel * 2,54 / 72 dpi = Groesse in cm
$dpiDefault=96;
$dpi=trim((isset($_REQUEST['dpi']) ? $_REQUEST['dpi']:$dpiDefault));
if (!is_numeric($dpi))
$dpi=$dpiDefault;
$dpi=(int)$dpi;
$dpi=trim((isset($_REQUEST['dpi']) ? $_REQUEST['dpi']:$dpiDefault));
if (!is_numeric($dpi))
$dpi=$dpiDefault;
$dpi=(int)$dpi;
// GesamtEtikette
$etikette_druck_height=(int)(2.54 * ($dpi/2.54)); // 2.54 - '72'
$etikette_druck_width=(int)(5 * ($dpi/2.54)); // 5cm - '142'
$etikette_druck_height=(int)(2.54 * ($dpi/2.54)); // 2.54 - '72'
$etikette_druck_width=(int)(5 * ($dpi/2.54)); // 5cm - '142'
// Logo 4cm * 1cm
$etikette_logo_height=(int)(1 * ($dpi/2.54)); // 1cm - '28'
$etikette_logo_width=(int)(4 * ($dpi/2.54)); // 4cm - '113'
$etikette_logo_height=(int)(1 * ($dpi/2.54)); // 1cm - '28'
$etikette_logo_width=(int)(4 * ($dpi/2.54)); // 4cm - '113'
// Barcode
$etikette_height=(int)(1 * ($dpi/2.54)); // 1cm - '28'
$etikette_width=(int)((int)(4 * ($dpi/2.54))/100); // 4cm - '113'
$etikette_height=(int)(1 * ($dpi/2.54)); // 1cm - '28'
$etikette_width=(int)((int)(4 * ($dpi/2.54))/100); // 4cm - '113'
$browser=strtolower($_SERVER['HTTP_USER_AGENT']);
$output='css';
if (!strstr($browser,'msie'))
$output='svg';
$browser=strtolower($_SERVER['HTTP_USER_AGENT']);
$output='css';
if (!strstr($browser,'msie'))
$output='svg';
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="0">
<link rel="stylesheet" href="<?php echo $path;?>skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="<?php echo $path;?>include/js/jquery.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="0">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../include/js/jquery.css" rel="stylesheet" type="text/css">
<script src="<?php echo $path;?>include/js/jquery.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery-ui.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery.autocomplete.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery.autocomplete.min.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery-barcode-1.3.3.js" type="text/javascript"></script>
<script src="../../include/js/jquery.js" type="text/javascript"></script>
<script src="../../include/js/jquery-ui.js" type="text/javascript"></script>
<script src="../../include/js/jquery.autocomplete.js" type="text/javascript"></script>
<script src="../../include/js/jquery.autocomplete.min.js" type="text/javascript"></script>
<script src="../../include/js/jquery-barcode-1.3.3.js" type="text/javascript"></script>
<title>Etiketten</title>
<title><?php echo $nummer;?></title>
<style type="text/css" >
body {background: #ffffff;}
div {text-align:left;background: #ffffff;}
div.etikette_kpl {text-align: center;vertical-align: middle;height:<?php echo $etikette_druck_height;?>px;width:<?php echo $etikette_druck_width;?>px;display:inline;background: #FFFFFF;}
table.etikette_kpl {height:<?php echo $etikette_druck_height;?>px;width:<?php echo $etikette_druck_width;?>px;display:inline;background: #FFFFFF; border:1px;}
table.etikette_kpl tr {text-align:left;}
table.etikette_kpl td {text-align:left;white-space: nowrap;}
img.etikette_logo {height:<?php echo $etikette_logo_height;?>px;width:<?php echo $etikette_logo_width;?>px;border:0px;}
div.bcTarget {display:inline;height:<?php echo $etikette_logo_height;?>px;width:<?php echo $etikette_logo_width;?>px;border:0px;}
</style>
</head>
<?php
if (empty($nummer))
{
//onchange="if (this.value.length>0) {setTimeout('document.sendform.submit()',1500);}"
?>
<body onload="window.print();">
</head>
<body>
<h1>Etiketten</h1>
<form target="_blank" name="sendform" action="<?php echo $_SERVER["PHP_SELF"];?>" method="post" enctype="application/x-www-form-urlencoded">
<label for="nummer">Inventarnummer :</label>&nbsp;
<input id="nummer" name="nummer" type="text" size="10" maxlength="30" value="">&nbsp;
@@ -97,8 +107,8 @@
// --------------------------------------------------------------------------------
row[0] = row[0].replace('`', '+');
row[0] = row[0].replace('`', '+');
row[0] = row[0].replace('´', '+');
row[0] = row[0].replace('´', '+');
row[0] = row[0].replace('', '+');
row[0] = row[0].replace('', '+');
row[0] = row[0].replace('*', '+');
row[0] = row[0].replace('*', '+');
row[0] = row[0].replace('-', '+');
@@ -151,12 +161,23 @@ fontSize text 10px font size of the HRI
output text css output type : css, svg or bmp
*/
?>
<body onclick="window.print();">
<style type="text/css" >
body {background-color: #ffffff;}
div {text-align:left;background: #ffffff;}
div.etikette_kpl {text-align: center;vertical-align: middle;height:<?php echo $etikette_druck_height;?>px;width:<?php echo $etikette_druck_width;?>px;display:inline;background: #FFFFFF;}
table.etikette_kpl {height:<?php echo $etikette_druck_height;?>px;width:<?php echo $etikette_druck_width;?>px;display:inline;background: #FFFFFF; border:1px;}
table.etikette_kpl tr {text-align:left;}
table.etikette_kpl td {text-align:left;white-space: nowrap;}
img.etikette_logo {height:<?php echo $etikette_logo_height;?>px;width:<?php echo $etikette_logo_width;?>px;border:0px;}
div.bcTarget {display:inline;height:<?php echo $etikette_logo_height;?>px;width:<?php echo $etikette_logo_width;?>px;border:0px;}
</style>
</head>
<body onload="window.print();">
<div>
<table class="etikette_kpl">
<tr>
<td>
<img class="etikette_logo" src="../../skin/images/technikum_logo.gif">
<img class="etikette_logo" src="../../skin/images/TWLogo_klein.gif">
</td>
</tr>
<tr>
@@ -173,7 +194,7 @@ output text css output type : css, svg or bmp
</table>
</div>
<noscript>
Bitte Javascript ist nicht aktiv ! Bitte aktivieren.
Javascript ist nicht aktiv ! Bitte aktivieren.
</noscript>
</body>
</html>
+24 -32
View File
@@ -22,31 +22,23 @@
*/
// ---------------- Vilesci Include Dateien einbinden
$path='../';
if (!is_file($path.'config/vilesci.config.inc.php'))
$path='../../';
if (!is_file($path.'config/vilesci.config.inc.php'))
$path='../../../';
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/mitarbeiter.class.php');
require_once('../../include/ort.class.php');
require_once('../../include/organisationseinheit.class.php');
require_once('../../include/wawi.class.php');
require_once('../../include/person.class.php');
require_once('../../include/betriebsmittel.class.php');
require_once('../../include/betriebsmittelperson.class.php');
require_once('../../include/betriebsmitteltyp.class.php');
require_once('../../include/betriebsmittelstatus.class.php');
require_once('../../include/betriebsmittel_betriebsmittelstatus.class.php');
include_once($path.'config/vilesci.config.inc.php');
include_once($path.'include/basis_db.class.php');
require_once($path.'include/functions.inc.php');
if (!$uid = get_uid())
die('Keine UID gefunden ! <a href="javascript:history.back()">Zur&uuml;ck</a>');
require_once($path.'include/benutzer.class.php');
require_once($path.'include/benutzerberechtigung.class.php');
require_once($path.'include/mitarbeiter.class.php');
require_once($path.'include/ort.class.php');
require_once($path.'include/organisationseinheit.class.php');
require_once($path.'include/wawi.class.php');
require_once($path.'include/person.class.php');
require_once($path.'include/betriebsmittel.class.php');
require_once($path.'include/betriebsmittelperson.class.php');
require_once($path.'include/betriebsmitteltyp.class.php');
require_once($path.'include/betriebsmittelstatus.class.php');
require_once($path.'include/betriebsmittel_betriebsmittelstatus.class.php');
die('Keine UID gefunden ! <a href="javascript:history.back()">Zur&uuml;ck</a>');
// ------------------------------------------------------------------------------------------
// Initialisierung
@@ -327,14 +319,14 @@
<head>
<title>Inventar - Betriebsmittel - Suche</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="<?php echo $path;?>skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="<?php echo $path;?>include/js/jquery.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="<?php echo $path;?>include/js/tablesort/table.css" type="text/css">
<script src="<?php echo $path;?>include/js/tablesort/table.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery-ui.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery.autocomplete.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery.autocomplete.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../include/js/jquery.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../../include/js/tablesort/table.css" type="text/css">
<script src="../../include/js/tablesort/table.js" type="text/javascript"></script>
<script src="../../include/js/jquery.js" type="text/javascript"></script>
<script src="../../include/js/jquery-ui.js" type="text/javascript"></script>
<script src="../../include/js/jquery.autocomplete.js" type="text/javascript"></script>
<script src="../../include/js/jquery.autocomplete.min.js" type="text/javascript"></script>
<script type="text/javascript" language="JavaScript1.2">
@@ -737,7 +729,7 @@
//Test $order='order';$nummer='nummer';$ort_kurzbz='ort_kurzbz';$betriebsmittelstatus_kurzbz='betriebsmittelstatus_kurzbz';$betriebsmitteltyp='betriebsmitteltyp';$bestellung_id='bestellung_id';$bestelldetail_id='bestelldetail_id';$bestellnr='bestellnr';$hersteller='hersteller';$afa='afa';$jahr_monat='jahr_monat';$firma_id='firma_id';$inventur_jahr='inventur_jahr';$inventur_jahr='inventur_jahr';$beschreibung='beschreibung';$oe_kurzbz='oe_kurzbz';$seriennummer='seriennummer';
$check=$nummer.$ort_kurzbz.$betriebsmittelstatus_kurzbz.$betriebsmitteltyp.$bestellung_id.$bestelldetail_id.$bestellnr.$hersteller.$afa.$jahr_monat.$firma_id.$inventur_jahr.$beschreibung.$oe_kurzbz.$seriennummer.$person_id.$betriebsmittel_id;
$order='tbl_betriebsmittel.nummer'; // Sortierung
$order='tbl_betriebsmittel.nummer, tbl_betriebsmittel_betriebsmittelstatus.datum DESC, tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id DESC'; // Sortierung
$oBetriebsmittel->result=array();
$oBetriebsmittel->errormsg='';
+28 -39
View File
@@ -20,41 +20,30 @@
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
include_once('../../config/vilesci.config.inc.php');
include_once('../../include/basis_db.class.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/mitarbeiter.class.php');
require_once('../../include/ort.class.php');
require_once('../../include/organisationseinheit.class.php');
require_once('../../include/wawi.class.php');
require_once('../../include/betriebsmittel.class.php');
require_once('../../include/betriebsmittelperson.class.php');
require_once('../../include/betriebsmitteltyp.class.php');
require_once('../../include/betriebsmittelstatus.class.php');
require_once('../../include/betriebsmittel_betriebsmittelstatus.class.php');
// ---------------- Vilesci Include Dateien einbinden
$path='../';
if (!is_file($path.'config/vilesci.config.inc.php'))
$path='../../';
if (!is_file($path.'config/vilesci.config.inc.php'))
$path='../../../';
include_once($path.'config/vilesci.config.inc.php');
include_once($path.'include/basis_db.class.php');
require_once($path.'include/functions.inc.php');
if (!$uid = get_uid())
die('Keine UID gefunden ! <a href="javascript:history.back()">Zur&uuml;ck</a>');
require_once($path.'include/benutzerberechtigung.class.php');
$oBenutzerberechtigung = new benutzerberechtigung();
$oBenutzerberechtigung->errormsg='';
$oBenutzerberechtigung->berechtigungen=array();
if (!$oBenutzerberechtigung->getBerechtigungen($uid))
die('Sie haben keine Berechtigung ! <a href="javascript:history.back()">Zur&uuml;ck</a>');
require_once($path.'include/benutzer.class.php');
require_once($path.'include/mitarbeiter.class.php');
require_once($path.'include/ort.class.php');
require_once($path.'include/organisationseinheit.class.php');
require_once($path.'include/wawi.class.php');
require_once($path.'include/betriebsmittel.class.php');
require_once($path.'include/betriebsmittelperson.class.php');
require_once($path.'include/betriebsmitteltyp.class.php');
require_once($path.'include/betriebsmittelstatus.class.php');
require_once($path.'include/betriebsmittel_betriebsmittelstatus.class.php');
// ------------------------------------------------------------------------------------------
// Initialisierung
// ------------------------------------------------------------------------------------------
@@ -227,14 +216,14 @@
<head>
<title>Inventar - AfA</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="<?php echo $path;?>skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="<?php echo $path;?>include/js/jquery.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="<?php echo $path;?>include/js/tablesort/table.css" type="text/css">
<script src="<?php echo $path;?>include/js/tablesort/table.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery-ui.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery.autocomplete.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery.autocomplete.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../include/js/jquery.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../../include/js/tablesort/table.css" type="text/css">
<script src="../../include/js/tablesort/table.js" type="text/javascript"></script>
<script src="../../include/js/jquery.js" type="text/javascript"></script>
<script src="../../include/js/jquery-ui.js" type="text/javascript"></script>
<script src="../../include/js/jquery.autocomplete.js" type="text/javascript"></script>
<script src="../../include/js/jquery.autocomplete.min.js" type="text/javascript"></script>
<script type="text/javascript">
var ajxFile = "<?php echo $_SERVER["PHP_SELF"]; ?>";
@@ -295,7 +284,7 @@
<div>
<table class="navbar">
<tr>
<td><label for="nummer">Inv.nr.</label>&nbsp;
<td><label for="nummer">Inv.nr.</label>&nbsp;
<input onchange="if (this.value.length>0) {setTimeout('document.sendform.submit()',1500);}" id="nummer" name="nummer" type="text" size="10" maxlength="30" value="<?php echo $nummer;?>" />&nbsp;
<script type="text/javascript">
function selectItem(li)
@@ -565,10 +554,10 @@
</div>
<script type="text/javascript">
var isShow = <?php echo ($extend_search && $extend_search!='false'?'true':'false'); ?>;
$(document).ready(function(){ // Prüft, ob das Dokument geladen ist
$(document).ready(function(){ // Prft, ob das Dokument geladen ist
$("div#extend_search_on").click(function(event){ // Bei Klick auf div#
if (isShow == false) {
$("div#ext_search").show("slow"); // div# langsam öffnen
$("div#ext_search").show("slow"); // div# langsam ffnen
isShow = true;
} else {
$("div#ext_search").hide("slow"); // div# langsam verbergen
@@ -599,7 +588,7 @@
//Test $order='order';$nummer='nummer';$ort_kurzbz='ort_kurzbz';$betriebsmittelstatus_kurzbz='betriebsmittelstatus_kurzbz';$betriebsmitteltyp='betriebsmitteltyp';$bestellung_id='bestellung_id';$bestelldetail_id='bestelldetail_id';$bestellnr='bestellnr';$hersteller='hersteller';$afa='afa';$jahr_monat='jahr_monat';$firma_id='firma_id';$afa='afa';$afa='afa';$beschreibung='beschreibung';$oe_kurzbz='oe_kurzbz';$seriennummer='seriennummer';
$check=$nummer.$ort_kurzbz.$betriebsmittelstatus_kurzbz.$betriebsmitteltyp.$bestellung_id.$bestelldetail_id.$bestellnr.$hersteller.$afa.$jahr_monat.$firma_id.$afa.$beschreibung.$oe_kurzbz.$seriennummer;
$order='tbl_betriebsmittel.nummer'; // Sortierung
$order='tbl_betriebsmittel.nummer, tbl_betriebsmittel_betriebsmittelstatus.datum DESC, tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id DESC'; // Sortierung
$oBetriebsmittel->result=array();
$oBetriebsmittel->errormsg='';
@@ -673,11 +662,11 @@ function output_inventar($debug=false,$resultBetriebsmittel=null,$resultBetriebs
// Ort - Inventarstandort
$oOrt = new ort($resultBetriebsmittel[$pos]->ort_kurzbz);
$OrtBezeichnung=(isset($oOrt->bezeichnung) && $oOrt->bezeichnung?$oOrt->ort_kurzbz:'*'.$resultBetriebsmittel[$pos]->ort_kurzbz);
$OrtTitel=(isset($oOrt->bezeichnung) && $oOrt->bezeichnung?$oOrt->ort_kurzbz.' '.$oOrt->bezeichnung.' '.$oOrt->standort_kurzbz:$resultBetriebsmittel[$pos]->ort_kurzbz.' Kontrolle');
$OrtTitel=(isset($oOrt->bezeichnung) && $oOrt->bezeichnung?$oOrt->ort_kurzbz.' '.$oOrt->bezeichnung:$resultBetriebsmittel[$pos]->ort_kurzbz.' Kontrolle');
$htmlstring.='<tr class="'.$classe.'" style="font-size:smaller;">
<td><a href="'.$_SERVER["PHP_SELF"].'?nummer='.$resultBetriebsmittel[$pos]->nummer.'&amp;bestellung_id'.$resultBetriebsmittel[$pos]->bestellung_id.'&amp;bestelldetail_id'.$resultBetriebsmittel[$pos]->bestelldetail_id.'">'.$resultBetriebsmittel[$pos]->nummer.'</a>&nbsp;</td>
<td><a href="'.$_SERVER["PHP_SELF"].'?nummer='.$resultBetriebsmittel[$pos]->nummer.'&amp;bestellung_id='.$resultBetriebsmittel[$pos]->bestellung_id.'&amp;bestelldetail_id='.$resultBetriebsmittel[$pos]->bestelldetail_id.'">'.$resultBetriebsmittel[$pos]->nummer.'</a>&nbsp;</td>
<td title="'.$OrtTitel.'">'.$OrtBezeichnung.'&nbsp;</td>
+38 -60
View File
@@ -20,47 +20,33 @@
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
header( 'Expires: -1' );
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
header( 'Pragma: no-cache' );
header('Content-Type: text/html;charset=UTF-8');
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/person.class.php');
require_once('../../include/mitarbeiter.class.php');
require_once('../../include/ort.class.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/organisationseinheit.class.php');
require_once('../../include/wawi.class.php');
require_once('../../include/betriebsmittel.class.php');
require_once('../../include/betriebsmittelperson.class.php');
require_once('../../include/betriebsmitteltyp.class.php');
require_once('../../include/betriebsmittelstatus.class.php');
require_once('../../include/betriebsmittel_betriebsmittelstatus.class.php');
// ---------------- Vilesci Include Dateien einbinden
$path='../';
if (!is_file($path.'config/vilesci.config.inc.php'))
$path='../../';
if (!is_file($path.'config/vilesci.config.inc.php'))
$path='../../../';
include_once($path.'config/vilesci.config.inc.php');
include_once($path.'include/basis_db.class.php');
if (!$db = new basis_db())
die('Datenbank kann nicht geoeffnet werden. <a href="javascript:history.back()">Zur&uuml;ck</a>');
require_once($path.'include/functions.inc.php');
if (!$uid = get_uid())
if (!$uid = get_uid())
die('Keine UID gefunden ! <a href="javascript:history.back()">Zur&uuml;ck</a>');
require_once($path.'include/benutzerberechtigung.class.php');
require_once($path.'include/benutzer.class.php');
require_once($path.'include/person.class.php');
require_once($path.'include/mitarbeiter.class.php');
require_once($path.'include/ort.class.php');
require_once($path.'include/studiengang.class.php');
require_once($path.'include/organisationseinheit.class.php');
require_once($path.'include/wawi.class.php');
require_once($path.'include/betriebsmittel.class.php');
require_once($path.'include/betriebsmittelperson.class.php');
require_once($path.'include/betriebsmitteltyp.class.php');
require_once($path.'include/betriebsmittelstatus.class.php');
require_once($path.'include/betriebsmittel_betriebsmittelstatus.class.php');
if (!$db = new basis_db())
die('Datenbank kann nicht geoeffnet werden. <a href="javascript:history.back()">Zur&uuml;ck</a>');
// ------------------------------------------------------------------------------------------
@@ -135,7 +121,7 @@ cellSeparator (default value: "|")
$pArt='select';
$pDistinct=true;
$pFields='seriennummer,beschreibung';
$pTable=$oBetriebsmittel->schema_inventar.'.tbl_betriebsmittel';
$pTable='wawi.tbl_betriebsmittel';
$matchcode=addslashes(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($seriennummer)));
$pWhere=" upper(trim(seriennummer)) like upper(trim('".$matchcode."%'))";
$pOrder='seriennummer';
@@ -155,7 +141,7 @@ cellSeparator (default value: "|")
$pArt='select';
$pDistinct=true;
$pFields='hersteller';
$pTable=$oBetriebsmittel->schema_inventar.'.tbl_betriebsmittel';
$pTable='wawi.tbl_betriebsmittel';
$matchcode=addslashes(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($hersteller)));
$pWhere=" upper(trim(hersteller)) like upper(trim('".$matchcode."%'))";
$pOrder='hersteller';
@@ -175,7 +161,7 @@ cellSeparator (default value: "|")
$pArt='select';
$pDistinct=true;
$pFields='nummer,beschreibung';
$pTable=$oBetriebsmittel->schema_inventar.'.tbl_betriebsmittel';
$pTable='wawi.tbl_betriebsmittel';
$matchcode=addslashes(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($nummer)));
$pWhere=" upper(trim(bestellung_id)) like upper(trim('".$matchcode."%'))";
$pOrder='bestellung_id';
@@ -195,7 +181,7 @@ cellSeparator (default value: "|")
$pArt='select';
$pDistinct=true;
$pFields='nummer,beschreibung';
$pTable=$oBetriebsmittel->schema_inventar.'.tbl_betriebsmittel';
$pTable='wawi.tbl_betriebsmittel';
$matchcode=addslashes(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($nummer)));
$pWhere=" upper(trim(nummer)) like upper(trim('".$matchcode."%'))";
$pOrder='nummer';
@@ -215,7 +201,7 @@ cellSeparator (default value: "|")
$pArt='select';
$pDistinct=true;
$pFields='tbl_betriebsmittel.ort_kurzbz,tbl_ort.bezeichnung,tbl_ort.aktiv';
$pTable=$oBetriebsmittel->schema_inventar.'.tbl_betriebsmittel left outer join public.tbl_ort on (tbl_ort.ort_kurzbz=tbl_betriebsmittel.ort_kurzbz) ';
$pTable='wawi.tbl_betriebsmittel left outer join public.tbl_ort on (tbl_ort.ort_kurzbz=tbl_betriebsmittel.ort_kurzbz) ';
$matchcode=addslashes(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($ort_kurzbz)));
$pWhere=" upper(trim(tbl_betriebsmittel.ort_kurzbz)) like upper(trim('".$matchcode."%')) or upper(trim(tbl_ort.bezeichnung)) like upper(trim('%".$matchcode."%'))";
$pOrder='tbl_betriebsmittel.ort_kurzbz';
@@ -302,8 +288,6 @@ cellSeparator (default value: "|")
$pWhere='';
$pOrder='';
$pLimit='';
## echo $pSql;
}
else
{
@@ -330,7 +314,7 @@ cellSeparator (default value: "|")
}
break;
// Organisation - suche
// Organisation - suche
case 'organisationseinheit':
$oe_kurzbz=trim((isset($_REQUEST['q']) ? $_REQUEST['q']:''));
if (is_null($oe_kurzbz) || $oe_kurzbz=='')
@@ -360,7 +344,7 @@ cellSeparator (default value: "|")
}
break;
// Suche
// Suche
case 'wawi_search':
$search=trim((isset($_REQUEST['q']) ? $_REQUEST['q']:''));
if (is_null($search) || $search=='')
@@ -373,7 +357,7 @@ cellSeparator (default value: "|")
}
break;
// Bestellung
// Bestellung
case 'wawi_bestellnr':
$bestellnr=trim((isset($_REQUEST['q']) ? $_REQUEST['q']:''));
if (is_null($bestellnr) || $bestellnr=='')
@@ -395,7 +379,7 @@ cellSeparator (default value: "|")
break;
// Bestellung ID
// Bestellung ID
case 'wawi_bestellung_id':
$bestellung_id=trim((isset($_REQUEST['q']) ? $_REQUEST['q']:''));
if (is_null($bestellung_id) || $bestellung_id=='')
@@ -416,15 +400,13 @@ cellSeparator (default value: "|")
break;
// Bestelldetail ID
// Bestelldetail ID
case 'wawi_bestelldetail_id':
$bestelldetail_id=trim((isset($_REQUEST['q']) ? $_REQUEST['q']:''));
if (is_null($bestellung_id) || $bestellung_id=='' || is_null($bestelldetail_id) || $bestelldetail_id=='')
exit();
if ($oWawi->bestellpositionen($bestellung_id,null,"%$bestelldetail_id"))
{
# var_dump($oWawi->result);
for ($i=0;$i<count($oWawi->result);$i++)
echo html_entity_decode($oWawi->result[$i]->bestelldetail_id).'|'.', '.html_entity_decode($oWawi->result[$i]->beschreibung).', '.html_entity_decode($oWawi->result[$i]->artikelnr).' Preis VE '.html_entity_decode(number_format($oWawi->result[$i]->preisve,2)).', Menge '.html_entity_decode($oWawi->result[$i]->menge).', Pos.summe '.html_entity_decode(number_format($oWawi->result[$i]->summe,2))."\n";
}
@@ -433,13 +415,13 @@ cellSeparator (default value: "|")
if (!$oWawi->bestellpositionen($bestellung_id,null,null,null))
exit($oWawi->errormsg."\n");
# var_dump($oWawi->result);
echo "| *** alle Positionen *** \n";
for ($i=0;$i<count($oWawi->result);$i++)
echo html_entity_decode($oWawi->result[$i]->bestelldetail_id).'|'.', '.html_entity_decode($oWawi->result[$i]->beschreibung).', '.html_entity_decode($oWawi->result[$i]->artikelnr).' Preis VE '.html_entity_decode(number_format($oWawi->result[$i]->preisve,2)).', Menge '.html_entity_decode($oWawi->result[$i]->menge).', Pos.summe '.html_entity_decode(number_format($oWawi->result[$i]->summe,2))."\n";
break;
// Firmen ID
// Firmen ID
case 'wawi_firma_id':
$firma_id=trim((isset($_REQUEST['q']) ? $_REQUEST['q']:''));
if (is_null($firma_id) ||$firma_id=='')
@@ -453,7 +435,7 @@ cellSeparator (default value: "|")
echo html_entity_decode($oWawi->result[$i]->firma_id).'|'.', '.html_entity_decode($oWawi->result[$i]->firmenname).', '.html_entity_decode($oWawi->result[$i]->strasse).' '.html_entity_decode($oWawi->result[$i]->plz).' '.html_entity_decode($oWawi->result[$i]->ort)."\n";
break;
// Firmen Search
// Firmen Search
case 'wawi_firma_search':
$firma_search=trim((isset($_REQUEST['q']) ? $_REQUEST['q']:''));
if (is_null($firma_search) ||$firma_search=='')
@@ -464,7 +446,7 @@ cellSeparator (default value: "|")
echo html_entity_decode($oWawi->result[$i]->firma_id).'|'.', '.html_entity_decode($oWawi->result[$i]->firmenname).', '.html_entity_decode($oWawi->result[$i]->strasse).' '.html_entity_decode($oWawi->result[$i]->plz).' '.html_entity_decode($oWawi->result[$i]->ort)."\n";
break;
// Kostenstelle ID
// Kostenstelle ID
case 'wawi_kostenstelle_id':
$kostenstelle_id=trim((isset($_REQUEST['q']) ? $_REQUEST['q']:''));
if (is_null($kostenstelle_id) || $kostenstelle_id=='')
@@ -479,7 +461,7 @@ cellSeparator (default value: "|")
}
break;
// Kostenstelle Nr
// Kostenstelle Nr
case 'wawi_kostenstelle_nr':
$kostenstelle_nr=trim((isset($_REQUEST['q']) ? $_REQUEST['q']:''));
if (is_null($kostenstelle_nr) || $kostenstelle_nr=='')
@@ -494,7 +476,7 @@ cellSeparator (default value: "|")
}
break;
// Kostenstelle Serch
// Kostenstelle Serch
case 'wawi_kostenstelle_search':
$kostenstelle_search=trim((isset($_REQUEST['q']) ? $_REQUEST['q']:''));
if (is_null($kostenstelle_search) || $kostenstelle_search=='')
@@ -509,7 +491,7 @@ cellSeparator (default value: "|")
}
break;
// Konto ID
// Konto ID
case 'wawi_konto_id':
$konto_id=trim((isset($_REQUEST['q']) ? $_REQUEST['q']:''));
if (is_null($konto_id) || $konto_id=='')
@@ -520,12 +502,10 @@ cellSeparator (default value: "|")
{
echo html_entity_decode($oWawi->result[$i]->konto).'|'.', '.html_entity_decode($oWawi->result[$i]->beschreibung)
."\n";
#.', Stg.:'.html_entity_decode($oWawi->result[$i]->stg_kurzzeichen).' '.html_entity_decode($oWawi->result[$i]->stg_bez).' '
# .' '.($oWawi->result[$i]->stg_aktiv==true || $oWawi->result[$i]->stg_aktiv=='t'?'&nbsp;<img src="../../skin/images/tick.png" alt="aktiv" />':'&nbsp;<img src="../../skin/images/cross.png" alt="nicht aktiv" />')
}
break;
// Konto ID
// Konto ID
case 'wawi_konto_search':
$konto_search=trim((isset($_REQUEST['q']) ? $_REQUEST['q']:''));
if (is_null($konto_search) || $konto_search=='')
@@ -536,12 +516,10 @@ cellSeparator (default value: "|")
{
echo html_entity_decode($oWawi->result[$i]->konto).'|'.', '.html_entity_decode($oWawi->result[$i]->beschreibung)
."\n";
#.', Stg.:'.html_entity_decode($oWawi->result[$i]->stg_kurzzeichen).' '.html_entity_decode($oWawi->result[$i]->stg_bez).' '
# .' '.($oWawi->result[$i]->stg_aktiv==true || $oWawi->result[$i]->stg_aktiv=='t'?'&nbsp;<img src="../../skin/images/tick.png" alt="aktiv" />':'&nbsp;<img src="../../skin/images/cross.png" alt="nicht aktiv" />')
}
break;
// Studiengang ID
// Studiengang ID
case 'wawi_studiengang_id':
$studiengang_id=trim((isset($_REQUEST['q']) ? $_REQUEST['q']:''));
if (is_null($studiengang_id) || $studiengang_id=='')
@@ -558,7 +536,7 @@ cellSeparator (default value: "|")
}
break;
// Studiengang Suche
// Studiengang Suche
case 'wawi_studiengang_search':
$studiengang_search=trim((isset($_REQUEST['q']) ? $_REQUEST['q']:''));
if (is_null($studiengang_search) || $studiengang_search=='')
+24 -41
View File
@@ -20,38 +20,29 @@
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/mitarbeiter.class.php');
require_once('../../include/ort.class.php');
require_once('../../include/organisationseinheit.class.php');
require_once('../../include/wawi.class.php');
require_once('../../include/betriebsmittel.class.php');
require_once('../../include/betriebsmittelperson.class.php');
require_once('../../include/betriebsmitteltyp.class.php');
require_once('../../include/betriebsmittelstatus.class.php');
require_once('../../include/betriebsmittel_betriebsmittelstatus.class.php');
// ---------------- Vilesci Include Dateien einbinden
$path='../';
if (!is_file($path.'config/vilesci.config.inc.php'))
$path='../../';
if (!is_file($path.'config/vilesci.config.inc.php'))
$path='../../../';
include_once($path.'config/vilesci.config.inc.php');
include_once($path.'include/basis_db.class.php');
require_once($path.'include/functions.inc.php');
if (!$uid = get_uid())
die('Keine UID gefunden ! <a href="javascript:history.back()">Zur&uuml;ck</a>');
die('Keine UID gefunden ! <a href="javascript:history.back()">Zur&uuml;ck</a>');
require_once($path.'include/benutzerberechtigung.class.php');
$oBenutzerberechtigung = new benutzerberechtigung();
$oBenutzerberechtigung->errormsg='';
$oBenutzerberechtigung->berechtigungen=array();
if (!$oBenutzerberechtigung->getBerechtigungen($uid))
die('Sie haben keine Berechtigung ! <a href="javascript:history.back()">Zur&uuml;ck</a>');
require_once($path.'include/benutzer.class.php');
require_once($path.'include/mitarbeiter.class.php');
require_once($path.'include/ort.class.php');
require_once($path.'include/organisationseinheit.class.php');
require_once($path.'include/wawi.class.php');
require_once($path.'include/betriebsmittel.class.php');
require_once($path.'include/betriebsmittelperson.class.php');
require_once($path.'include/betriebsmitteltyp.class.php');
require_once($path.'include/betriebsmittelstatus.class.php');
require_once($path.'include/betriebsmittel_betriebsmittelstatus.class.php');
// ------------------------------------------------------------------------------------------
// Initialisierung
// ------------------------------------------------------------------------------------------
@@ -64,7 +55,6 @@
// ------------------------------------------------------------------------------------------
// Parameter Aufruf uebernehmen
// ------------------------------------------------------------------------------------------
##var_dump($_REQUEST);
$nummer=trim((isset($_REQUEST['nummer']) ? $_REQUEST['nummer']:''));
$seriennummer=trim((isset($_REQUEST['seriennummer']) ? $_REQUEST['seriennummer']:''));
@@ -240,13 +230,13 @@
<head>
<title>Inventar - Inventur</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="<?php echo $path;?>skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="<?php echo $path;?>include/js/jquery.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="<?php echo $path;?>include/js/tablesort/table.css" type="text/css">
<script src="<?php echo $path;?>include/js/tablesort/table.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery.autocomplete.js" type="text/javascript"></script>
<script src="<?php echo $path;?>include/js/jquery.autocomplete.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../include/js/jquery.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../../include/js/tablesort/table.css" type="text/css">
<script src="../../include/js/tablesort/table.js" type="text/javascript"></script>
<script src="../../include/js/jquery.js" type="text/javascript"></script>
<script src="../../include/js/jquery.autocomplete.js" type="text/javascript"></script>
<script src="../../include/js/jquery.autocomplete.min.js" type="text/javascript"></script>
<script type="text/javascript">
var ajxFile = "<?php echo $_SERVER["PHP_SELF"]; ?>";
function set_status(output_id,betriebsmittelbetriebsmittelstatus_id,betriebsmittel_id,nummer,bestellung_id,bestelldetail_id,betriebsmittelstatus_kurzbz)
@@ -387,7 +377,6 @@
{
$tmpJahr=$tmpJahr + 1;
$jjjjmm=$tmpJahr.'-00';
# echo '<option '.($inventur_jahr_select==$jjjjmm?' selected="selected" ':'').' value="'.$jjjjmm.'>'.$jjjjmm.'&nbsp;</option>';
echo '<option '.($inventur_jahr_select==($tmpJahr * -1)?' selected="selected" ':'').' value="'.($tmpJahr * -1).'">&nbsp;--'.$tmpJahr.' fehlt --&nbsp;</option>';
echo '<option '.($inventur_jahr_select==$tmpJahr?' selected="selected" ':'').' value="'.$tmpJahr.'">&nbsp;--'.$tmpJahr.' erfolgt --&nbsp;</option>';
}
@@ -563,10 +552,10 @@
</div>
<script type="text/javascript">
var isShow = <?php echo ($extend_search && $extend_search!='false'?'true':'false'); ?>;
$(document).ready(function(){ // Prüft, ob das Dokument geladen ist
$(document).ready(function(){ // Prft, ob das Dokument geladen ist
$("div#extend_search_on").click(function(event){ // Bei Klick auf div#
if (isShow == false) {
$("div#ext_search").show("slow"); // div# langsam öffnen
$("div#ext_search").show("slow"); // div# langsam ffnen
isShow = true;
} else {
$("div#ext_search").hide("slow"); // div# langsam verbergen
@@ -585,7 +574,6 @@
// ----------------------------------------
if ($nummer || $bestellung_id || $bestellnr || $seriennummer)
{
# $inventur_jahr='';
$ort_kurzbz=null;
$oe_kurzbz=null;
$betriebsmitteltyp=null;
@@ -597,7 +585,7 @@
// Eingabe - Plausib
$check=$nummer.$ort_kurzbz.$betriebsmittelstatus_kurzbz.$betriebsmitteltyp.$bestellung_id.$bestelldetail_id.$bestellnr.$hersteller.$inventur_jahr.$firma_id.$beschreibung.$oe_kurzbz;
// Datenabfrage
$order='tbl_betriebsmittel.nummer';
$order='tbl_betriebsmittel.nummer, tbl_betriebsmittel_betriebsmittelstatus.datum DESC, tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id DESC';
if ($check!='' && !$oBetriebsmittel->betriebsmittel_inventar($order,$nummer,$ort_kurzbz,$betriebsmittelstatus_kurzbz,$betriebsmitteltyp,$bestellung_id,$bestelldetail_id,$bestellnr,$hersteller,$afa,$jahr_monat,$firma_id,$inventur_jahr,$beschreibung,$oe_kurzbz))
$errormsg[]=$oBetriebsmittel->errormsg;
$resultBetriebsmittel=$oBetriebsmittel->result;
@@ -747,8 +735,6 @@ function output_inventarposition($debug=false,$resultBetriebsmittel=null,$result
else
$resBetriebsmittel=$resultBetriebsmittel;
#var_dump($resBetriebsmittel);
$htmlstring='';
if (is_null($resBetriebsmittel) || ( !is_object($resBetriebsmittel) && !is_array($resBetriebsmittel) ) || count($resBetriebsmittel)<1)
return $htmlstring;
@@ -968,9 +954,6 @@ function output_inventarposition($debug=false,$resultBetriebsmittel=null,$result
if (!$oBetriebsmittelperson->load_betriebsmittelpersonen($resBetriebsmittel->betriebsmittel_id))
$htmlstring.='<br />'.$oBetriebsmittelperson->errormsg;
#echo $resBetriebsmittel->betriebsmittel_id;
#var_dump($oBetriebsmittelperson);
if (is_array($oBetriebsmittelperson->result) && count($oBetriebsmittelperson->result)>0)
{
$htmlstring.='<fieldset><legend title="Betriebsmittelperson(en)</legend>';
+150 -37
View File
@@ -29,31 +29,130 @@ require_once('../../include/datum.class.php');
require_once('../../include/adresse.class.php');
require_once('../../include/nation.class.php');
require_once('../../include/firma.class.php');
require_once('../../include/standort.class.php');
require_once('../../include/kontakt.class.php');
$user=get_uid();
$datum_obj = new datum();
loadVariables($user);
if(isset($_GET['getfirma']))
{
$firma = new firma();
$firma->searchFirma($_GET['q']);
foreach ($firma->result as $row)
{
echo $row->name.'|'.$row->firma_id."\n";
}
exit;
}
if(isset($_GET['getstandort']))
{
if(isset($_GET['firma_id']) && is_numeric($_GET['firma_id']))
{
$standort = new standort();
$standort->load_firma($_GET['firma_id']);
$arr = array();
foreach($standort->result as $row)
{
array_push($arr,array('kurzbz'=>$row->bezeichnung,'standort_id'=>$row->standort_id));
}
echo json_encode($arr);
}
exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
<script language="Javascript">
function confdel()
{
return confirm('Wollen Sie diesen Datensatz wirklich loeschen?');
}
</script>
<style>
td
{
font-size: small;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../../skin/styles/jquery.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="../../include/js/jquery.js"></script>
<script type="text/javascript" src="../../include/js/jquery-ui.js" ></script>
<script type="text/javascript" src="../../include/js/jquery.autocomplete.js"></script>
<script language="Javascript">
function confdel()
{
return confirm('Wollen Sie diesen Datensatz wirklich loeschen?');
}
$(document).ready(function()
{
$("#firma_ac").autocomplete("kontaktdaten_edit.php?getfirma=true",
{
width: 500,
minChars:2,
matchSubset:1,matchContains:1,
highlight: false,
scroll: true,
formatItem: function(row)
{
return row[0];
},
formatResult: function(row)
{
return row[0];
}
}).result(function(event,row)
{
$("#firma").val(row[1]);
});
$("#firma_kontakt_ac").autocomplete("kontaktdaten_edit.php?getfirma=true",
{
width: 500,
minChars:2,
matchSubset:1,matchContains:1,
highlight: false,
scroll: true,
formatItem: function(row)
{
return row[0];
},
formatResult: function(row)
{
return row[0];
}
}).result(function(event,row)
{
$("#firma_kontakt").val(row[1]);
setstandort();
});
function setstandort()
{
$('#standort_kontakt').children().remove().end();
$.ajax
(
{
type: "GET",
url: 'kontaktdaten_edit.php',
dataType: 'json',
data: "getstandort=true&firma_id=" + $("#firma_kontakt").val(),
success: function(json)
{
var output = '';
for (p in json)
{
output += '<option value=\"' + json[p].standort_id + '\">' + json[p].kurzbz + '</option>\n';
}
$('#standort_kontakt').html(output);
$('#standort_kontakt').result(function(event, data, formatted) {}).focus();
}
}
);
}
});
</script>
<style>
td
{
font-size: small;
}
</style>
</head>
<body>
<?php
@@ -78,7 +177,9 @@ $gemeinde = (isset($_POST['gemeinde'])?$_POST['gemeinde']:'');
$nation = (isset($_POST['nation'])?$_POST['nation']:'');
$heimatadresse = (isset($_POST['heimatadresse'])?true:false);
$zustelladresse = (isset($_POST['zustelladresse'])?true:false);
$standort_id = (isset($_POST['standort_id'])?$_POST['standort_id']:'');
$firma_id = (isset($_POST['firma'])?$_POST['firma']:'');
$firma_ac = (isset($_POST['firma_ac'])?$_POST['firma_ac']:'');
$zustellung = (isset($_POST['zustellung'])?true:false);
$anmerkung = (isset($_POST['anmerkung'])?$_POST['anmerkung']:false);
$kontakt = (isset($_POST['kontakt'])?$_POST['kontakt']:false);
@@ -148,7 +249,10 @@ if(isset($_POST['saveadresse']))
$adresse_obj->typ = $adresstyp;
$adresse_obj->heimatadresse = $heimatadresse;
$adresse_obj->zustelladresse = $zustelladresse;
$adresse_obj->firma_id = $firma_id;
if($firma_ac=='')
$adresse_obj->firma_id = '';
else
$adresse_obj->firma_id = $firma_id;
$adresse_obj->updateamum = date('Y-m-d H:i:s');
$adresse_obj->updatvon = $user;
@@ -192,7 +296,8 @@ if(isset($_POST['savekontakt']))
if(!$error)
{
$kontakt_obj->person_id=$person_id;
$kontakt_obj->firma_id = $firma_id;
//$kontakt_obj->firma_id = $firma_id;
$kontakt_obj->standort_id = $standort_id;
$kontakt_obj->kontakttyp = $kontakttyp;
$kontakt_obj->kontakt = $kontakt;
$kontakt_obj->anmerkung = $anmerkung;
@@ -330,18 +435,12 @@ else
echo "</SELECT></td>";
echo "<td><input type='checkbox' name='heimatadresse' ".($heimatadresse?'checked':'')." /></td>";
echo "<td><input type='checkbox' name='zustelladresse' ".($zustelladresse?'checked':'')." /></td>";
echo "<td><SELECT name='firma' style='width:200px'>";
echo "<OPTION value=''>-- keine Auswahl --</OPTION>";
foreach ($firma_arr as $id=>$kurzbz)
$firma_obj = new firma();
if($firma_id!='')
{
if($id==$firma_id)
$selected='selected';
else
$selected='';
echo "<OPTION value='$id' $selected>$kurzbz</OPTION>";
$firma_obj->load($firma_id);
}
echo "</SELECT></td>";
echo '<td><input type="text" id="firma_ac" name="firma_ac" value="'.$firma_obj->name.'" /><input type="hidden" id="firma" name="firma" value="'.$firma_id.'" /></td>';
echo "<td><input type='submit' name='saveadresse' value='$savebuttonvalue' /></td>";
echo "</table>";
@@ -377,6 +476,7 @@ if(isset($_GET['editkontakt']))
$anmerkung = $kontakt_obj->anmerkung;
$kontakt = $kontakt_obj->kontakt;
$firma_id = $kontakt_obj->firma_id;
$standort_id = $kontakt_obj->standort_id;
$savebuttonvalue='Speichern';
}
else
@@ -390,6 +490,7 @@ else
$zustellung=true;
$anmerkung='';
$firma_id='';
$standort_id='';
}
echo "<input type='hidden' name='kontakt_id' value='".$kontakt_id."' />";
echo '<tr class="liste1">';
@@ -409,18 +510,30 @@ else
echo "<td><input type='text' name='kontakt' value='".$kontakt."' /></td>";
echo "<td><input type='checkbox' name='zustellung' ".($zustellung?'checked':'')." /></td>";
echo "<td><input type='text' name='anmerkung' value='".$anmerkung."' /></td>";
echo "<td><SELECT name='firma'>";
echo "<OPTION value=''>-- keine Auswahl --</OPTION>";
foreach ($firma_arr as $id=>$kurzbz)
$standort = new standort();
$firma_obj = new firma();
if($standort_id!='')
{
if($id==$firma_id)
$selected='selected';
else
$selected='';
echo "<OPTION value='$id' $selected>$kurzbz</OPTION>";
$standort->load($standort_id);
$firma_obj->load($standort->firma_id);
}
echo "</SELECT></td>";
echo '<td><input type="text" id="firma_kontakt_ac" name="firma_kotankt_ac" value="'.$firma_obj->name.'" /><input type="hidden" id="firma_kontakt" name="firma" value="" />
<SELECT id="standort_kontakt" name="standort_id">';
if($standort_id!='')
{
$standort->load_firma($standort->firma_id);
echo "<OPTION value='' >-- keine Auswahl --</OPTION>";
foreach ($standort->result as $row)
{
if($row->standort_id==$standort_id)
$selected='selected="true"';
else
$selected='';
echo '<OPTION value="'.$row->standort_id.'" '.$selected.'>'.$row->kurzbz.'</OPTION>';
}
}
echo '</SELECT></td>';
echo "<td><input type='submit' name='savekontakt' value='$savebuttonvalue' /></td>";
echo "</table>";
-211
View File
@@ -1,211 +0,0 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* 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: Christian Paminger < christian.paminger@technikum-wien.at >
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/person.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/mitarbeiter.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
echo '
<html>
<head>
<title>Lektor Edit</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
</head>
<body class="background_main">';
if (isset($_POST['Save']))
{
if(doSAVE())
echo "<script language='Javascript'>window.location.href='lektor_uebersicht.php?searchstr=".(isset($_POST['uid'])?$_POST['uid']:$_GET['uid'])."';</script>";
}
else if (isset($_GET['new']))
{
doEDIT(null,true);
}
else
{
if (!isset ($_GET['id']))
{
echo "benötige ID für Lektor";
}
doEDIT($db,$_GET['id']);
}
/**
* Lektor speichern/anlegen
*/
function doSAVE()
{
$lektor = new mitarbeiter();
if ($_POST['new']==1)
{
$lektor->new=true;
}
else
{
$lektor->load($_POST['uid']);
$lektor->new=false;
}
// person
$lektor->uid=$_POST['uid'];
$lektor->titel=$_POST['titel'];
$lektor->vorname=$_POST['vorname'];
$lektor->nachname=$_POST['nachname'];
$lektor->gebdatum=$_POST['gebdatum'];
$lektor->gebort=$_POST['gebort'];
//$lektor->gebzeit=$_POST['gebzeit'];
//$lektor->anmerkungen=$_POST['anmerkungen'];
$lektor->aktiv=(isset($_POST['aktiv']) && $_POST['aktiv']=='1'?true:false);
//$lektor->email=$_POST['email'];
$lektor->alias=$_POST['alias'];
$lektor->kurzbz=$_POST['kurzbz'];
$lektor->homepage=$_POST['homepage'];
// mitarbeiter
$lektor->personalnummer=$_POST['personalnummer'];
$lektor->lektor=(isset($_POST['lektor']) && $_POST['lektor']=='1'?true:false);
$lektor->fixangestellt=(isset($_POST['fixangestellt']) && $_POST['fixangestellt']=='t'?true:false);
$lektor->standort_kurzbz=$_POST['standort_kurzbz'];
$lektor->telefonklappe=$_POST['telefonklappe'];
$lektor->ort_kurzbz=$_POST['raumnr'];
//print_r($_POST);
if ($lektor->save())
{
echo "<p>Datensatz gespeichert.</p>";
return true;
}
else
{
echo "<p>".$lektor->errormsg."</p>";
return false;
}
// doEDIT($lektor->uid,false,$msg);
}
/**
* MA bearbeiten/anlegen
* @param string $id optional; wenn nicht angegeben -> neuer datensatz
*/
function doEDIT($db,$id='',$new=false,$msg='')
{
// Mitarbeiterdaten holen
$lektor = new mitarbeiter();
$status_ok=false;
if (!$new)
{
$status_ok=$lektor->load(addslashes($id));
}
if (!$status_ok && !$new)
{
// Laden fehlgeschlagen
echo $lektor->errormsg;
}
else
{
echo '<h2>Lektor/Mitarbeiter '.($new?'Neu':'Edit').'</h1>';
if (strlen($msg)>0)
echo $msg."<br/>";
echo '
<table><tr><td>
<form name="std_edit" action="'.$_SERVER['PHP_SELF'].'" method="post">
<table border="0">
<tr><td>UID</td><td><input type="text" name="uid" value="'.$lektor->uid.'"></td></tr>
<tr><td>Personalnummer</td><td><input type="text" name="personalnummer" value="'.$lektor->personalnummer.'"></td></tr>
<tr><td>Titel</td><td><input type="text" name="titel" value="'.$lektor->titelpre.'"></td></tr>
<tr><td>Vorname</td><td><input type="text" name="vorname" value="'.$lektor->vorname.'"></td></tr>
<tr><td>Nachname</td><td><input type="text" name="nachname" value="'.$lektor->nachname.'"></td></tr>
<tr><td>Lektor</td><td><input type="checkbox" name="lektor" value="1" '.($lektor->lektor?'checked':'').'></td></tr>
<tr><td>Aktiv</td><td><input type="checkbox" name="aktiv" value="1" '.($lektor->aktiv?'checked':'') .'></td></tr>
<tr><td>Geburtsdatum</td><td><input type="text" name="gebdatum" value="'.$lektor->gebdatum.'"> (TT.MM.JJJJ)</td></tr>
<tr><td>Geburtsort</td><td><input type="text" name="gebort" value="'.$lektor->gebort.'"></td></tr>
<tr><td>eMail Alias</td><td><input type="text" name="alias" value="'.$lektor->alias.'"></td></tr>
<tr><td>Homepage</td><td><input type="text" name="homepage" value="'.$lektor->homepage.'"></td></tr>
<tr><td>Kurzbezeichnung</td><td><input type="text" name="kurzbz" value="'.$lektor->kurzbz.'"></td></tr>
<tr><td>Standort</td><td>
<SELECT name="standort_kurzbz">
<OPTION value="" selected>--Kein Standort--</OPTION>';
$qry = "SELECT standort_kurzbz FROM public.tbl_standort ORDER BY standort_kurzbz";
if($result=$db->db_query($qry))
{
while($row=$db->db_fetch_object($result))
echo "<OPTION value='$row->standort_kurzbz' ". ($lektor->standort_kurzbz==$row->standort_kurzbz?'selected':'').">$row->standort_kurzbz</OPTION>";
}
echo '
</SELECT>
</td></tr>
<tr><td>Telefonklappe</td><td><input type="text" name="telefonklappe" value="'.$lektor->telefonklappe.'"></td></tr>
<tr><td>Fix angestellt</td><td><SELECT name="fixangestellt">
<OPTION value="t" '.($lektor->fixangestellt?'selected':'').'>Ja</OPTION>
<OPTION value="f" '.(!$lektor->fixangestellt?'selected':'').'>Nein</OPTION>
</SELECT></td></tr>
<tr><td>Raum Nr:</td><td>
<SELECT name="raumnr">
<OPTION value="" selected>--Kein Raum--</OPTION>';
$qry = "SELECT ort_kurzbz FROM public.tbl_ort WHERE aktiv=true ORDER BY ort_kurzbz";
if($result=$db->db_query($qry))
{
while($row=$db->db_fetch_object($result))
echo "<OPTION value='$row->ort_kurzbz' ". ($lektor->ort_kurzbz===$row->ort_kurzbz?'selected':'').">$row->ort_kurzbz</OPTION>";
}
echo '
</SELECT>
</td></tr>
</table>
<input type="submit" name="Save" value="Speichern">
<input type="hidden" name="id" value="'.$lektor->uid.'">
<input type="hidden" name="new" value="'.($new?'1':'0').'">
</form>
</td>
<td valign="top">';
if($lektor->uid!='')
echo '<a href="../../content/pdfExport.php?xsl=AccountInfo&xml=accountinfoblatt.xml.php&uid='.$lektor->uid.'" >AccountInfoBlatt erstellen</a>';
echo '</td></tr></table>';
}
}
?>
</body>
</html>
+3 -3
View File
@@ -82,7 +82,7 @@ echo '
if(!isset($_GET['searchstr']))
exit;
$qry = "SELECT * FROM campus.vw_mitarbeiter";
$qry = "SELECT vw_mitarbeiter.*, tbl_standort.kurzbz as standort_kurzbz FROM campus.vw_mitarbeiter LEFT JOIN public.tbl_standort USING(standort_id)";
if(!empty($searchstr))
$qry.=" where uid ~* '".addslashes($searchstr)."' OR nachname ~* '".addslashes($searchstr)."' OR vorname ~* '".addslashes($searchstr)."' ";
@@ -130,11 +130,11 @@ if(!isset($_GET['searchstr']))
$email=$row->uid.'@'.DOMAIN;
echo "<td nowrap><a href='mailto:$email'>$email</a></td>";
echo "<td nowrap class='button'><a href='lektor_edit.php?id=".$row->uid."'>Edit</a></td>";
echo "<td nowrap class='button'><a href='personen_details.php?uid=".$row->uid."'>Edit</a></td>";
echo "<td nowrap class='button'>";
if ($row->lektor)
{
echo "<a href='zeitwunsch.php?uid=".$row->uid."&vorname=".rawurlencode($row->vorname)."&nachname=".rawurlencode($row->nachname)."&titel=".rawurlencode($row->titelpre)." class='linkblue'>Zeitwunsch</a>";
echo "<a href='zeitwunsch.php?uid=".$row->uid."' class='linkblue'>Zeitwunsch</a>";
}
echo '</td>';
echo '</tr>';
+31 -31
View File
@@ -39,31 +39,31 @@ if (!$db = new basis_db())
echo '
<html>
<head>
<title>Details</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<script language="javascript">
// ****
// * Liefert einen Timestamp in Sekunden
// * zum anhaengen an eine URL um Caching zu verhindern
// ****
function gettimestamp()
{
var now = new Date();
var ret = now.getHours()*60*60*60;
ret = ret + now.getMinutes()*60*60;
ret = ret + now.getSeconds()*60;
ret = ret + now.getMilliseconds();
return ret;
}
<title>Details</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<script language="javascript">
// ****
// * Liefert einen Timestamp in Sekunden
// * zum anhaengen an eine URL um Caching zu verhindern
// ****
function gettimestamp()
{
var now = new Date();
var ret = now.getHours()*60*60*60;
ret = ret + now.getMinutes()*60*60;
ret = ret + now.getSeconds()*60;
ret = ret + now.getMilliseconds();
return ret;
}
function RefreshImage()
{
path=document.getElementById("personimage").src;
document.getElementById("personimage").src="";
document.getElementById("personimage").src=path+"&"+gettimestamp();
}
</script>
function RefreshImage()
{
path=document.getElementById("personimage").src;
document.getElementById("personimage").src="";
document.getElementById("personimage").src=path+"&"+gettimestamp();
}
</script>
</head>
<body class="background_main">
@@ -116,7 +116,7 @@ $fixangestellt = (isset($_POST['fixangestellt'])?$_POST['fixangestellt']:'');
$stundensatz = (isset($_POST['stundensatz'])?$_POST['stundensatz']:'');
$ausbildungcode = (isset($_POST['ausbildungcode'])?$_POST['ausbildungcode']:'');
$ort_kurzbz = (isset($_POST['ort_kurzbz'])?$_POST['ort_kurzbz']:'');
$standort_kurzbz = (isset($_POST['standort_kurzbz'])?$_POST['standort_kurzbz']:'');
$standort_id = (isset($_POST['standort_id'])?$_POST['standort_id']:'');
$anmerkung = (isset($_POST['anmerkung'])?$_POST['anmerkung']:'');
$bismelden = (isset($_POST['bismelden'])?$_POST['bismelden']:'');
$kurzbeschreibung = (isset($_POST['kurzbeschreibung'])?$_POST['kurzbeschreibung']:'');
@@ -269,7 +269,7 @@ if(isset($_POST['savemitarbeiter']))
$mitarbeiter->stundensatz = $stundensatz;
$mitarbeiter->ausbildungcode = $ausbildungcode;
$mitarbeiter->ort_kurzbz = $ort_kurzbz;
$mitarbeiter->standort_kurzbz = $standort_kurzbz;
$mitarbeiter->standort_id = $standort_id;
$mitarbeiter->anmerkung = $anmerkung;
$mitarbeiter->bismelden = $bismelden;
$mitarbeiter->new = false;
@@ -552,7 +552,7 @@ if(isset($uid) && $uid!='')
$stundensatz = $mitarbeiter->stundensatz;
$ausbildungcode = $mitarbeiter->ausbildungcode;
$ort_kurzbz = $mitarbeiter->ort_kurzbz;
$standort_kurzbz = $mitarbeiter->standort_kurzbz;
$standort_id = $mitarbeiter->standort_id;
$anmerkung = $mitarbeiter->anmerkung;
$bismelden = $mitarbeiter->bismelden;
}
@@ -597,18 +597,18 @@ if(isset($uid) && $uid!='')
echo "</SELECT></td>
<td>Standort</td>
<td><SELECT name='standort_kurzbz'><option value=''>-- keine Auswahl --</option>";
$qry = "SELECT * FROM public.tbl_standort ORDER BY standort_kurzbz";
<td><SELECT name='standort_id'><option value=''>-- keine Auswahl --</option>";
$qry = "SELECT * FROM public.tbl_standort JOIN public.tbl_firma USING(firma_id) WHERE tbl_firma.firmentyp_kurzbz='Intern' ORDER BY tbl_standort.kurzbz";
if($result_standort = $db->db_query($qry))
{
while($row_standort = $db->db_fetch_object($result_standort))
{
if($row_standort->standort_kurzbz == $standort_kurzbz)
if($row_standort->standort_id == $standort_id)
$selected = 'selected';
else
$selected = '';
echo "<option value='$row_standort->standort_kurzbz' $selected>$row_standort->standort_kurzbz</option>";
echo "<option value='$row_standort->standort_id' $selected>$row_standort->kurzbz</option>";
}
}
+401
View File
@@ -0,0 +1,401 @@
<?php
/* Copyright (C) 2010 Technikum-Wien
*
* 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: Christian Paminger < christian.paminger@technikum-wien.at >
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
/**
* Verwaltungsseite fuer Cronjobs
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/globals.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/cronjob.class.php');
require_once('../../include/datum.class.php');
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Cronjob - Verwaltung</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../skin/styles/jquery.css" type="text/css">
<link rel="stylesheet" href="../../include/js/tablesort/table.css" type="text/css">
<script src="../../include/js/tablesort/table.js" type="text/javascript"></script>
<script src="../../include/js/JSONeditor/JSONeditor.js" type="text/javascript"></script>
<script src="../../include/js/jquery.js" type="text/javascript"></script>
<script src="../../include/js/jquery-ui.js" type="text/javascript"></script>
<script type="text/javascript">
function initwarnung()
{
return confirm("Wollen Sie die Variablen wirklich initialisieren? "+
"\nDie bestehenden Variablen werden dabei überschrieben!"+
"\n\nACHTUNG: Wenn das Script keine Initialisierung unterstützt, wird es normal ausgeführt");
}
</script>
</head>
<body>
<h2>Cronjob - Verwaltung</h2>
';
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('basis/cronjob', null, 's'))
die('Sie haben keine Berechtigung fuer diese Seite');
$cronjob_id = (isset($_REQUEST['cronjob_id'])?$_REQUEST['cronjob_id']:'');
$server_kurzbz = (isset($_POST['server_kurzbz'])?$_POST['server_kurzbz']:'');
$titel = (isset($_POST['titel'])?$_POST['titel']:'');
$beschreibung = (isset($_POST['beschreibung'])?$_POST['beschreibung']:'');
$file = (isset($_POST['file'])?$_POST['file']:'');
$aktiv = isset($_POST['aktiv']);
$jahr = (isset($_POST['jahr'])?$_POST['jahr']:'');
$monat = (isset($_POST['monat'])?$_POST['monat']:'');
$tag = (isset($_POST['tag'])?$_POST['tag']:'');
$wochentag = (isset($_POST['wochentag'])?$_POST['wochentag']:'');
$stunde = (isset($_POST['stunde'])?$_POST['stunde']:'');
$minute = (isset($_POST['minute'])?$_POST['minute']:'');
$standalone = isset($_POST['standalone']);
$reihenfolge = (isset($_POST['reihenfolge'])?$_POST['reihenfolge']:'');
$variablen = (isset($_POST['variablen'])?$_POST['variablen']:'');
$datum_obj = new datum();
// Loeschen eines Jobs
if(isset($_GET['cronjob_id']) && isset($_GET['type']) && $_GET['type']=='delete')
{
if(!$rechte->isBerechtigt('basis/cronjob', null, 'suid'))
die('Sie haben keine Berechtigung zum Loeschen der Daten');
//Loeschen eines Cronjobs
$cj = new cronjob();
if(!$cj->delete($_GET['cronjob_id']))
echo 'Fehler beim Loeschen:'.$cj->errormsg;
else
echo 'Cronjob wurde gelöscht!';
}
// Speichern eines Jobs
if(isset($_GET['type']) && $_GET['type']=='save')
{
if(!$rechte->isBerechtigt('basis/cronjob', null, 'suid'))
die('Sie haben keine Berechtigung zum Bearbeiten der Daten');
$cj = new cronjob();
if($cronjob_id!='')
{
if(!$cj->load($cronjob_id))
die('Cronjob konnte nicht geladen werden');
$cj->new = false;
$cj->updateamum = date('Y-m-d H:i:s');
$cj->updatevon = $user;
}
else
{
$cj->new = true;
$cj->insertamum = date('Y-m-d H:i:s');
$cj->insertvon = $user;
}
$cj->server_kurzbz = $server_kurzbz;
$cj->titel = $titel;
$cj->beschreibung = $beschreibung;
$cj->file = $file;
$cj->aktiv = $aktiv;
$cj->jahr = $jahr;
$cj->monat = $monat;
$cj->tag = $tag;
$cj->wochentag = $wochentag;
$cj->stunde = $stunde;
$cj->minute = $minute;
$cj->standalone = $standalone;
$cj->reihenfolge = $reihenfolge;
$cj->variablen = $variablen;
if(!$cj->save())
echo 'Fehler beim Speichern der Daten: '.$cj->errormsg;
else
echo 'Daten erfolgreich gespeichert';
}
// Starten eines Jobs
if(isset($_GET['cronjob_id']) && isset($_GET['type']) && $_GET['type']=='init')
{
if(!$rechte->isBerechtigt('basis/cronjob', null, 'suid'))
die('Sie haben keine Berechtigung fuer diese Aktion');
//Loeschen eines Cronjobs
$cj = new cronjob();
if($cj->load($_GET['cronjob_id']))
{
if($cj->init())
echo 'Job wurde erfolgreich initialisiert';
else
echo 'Fehler beim Initialisieren des Jobs:'.$cj->errormsg;
$_GET['type']='edit';
}
else
{
echo 'Fehler beim Laden des Jobs!';
}
}
// Starten eines Jobs
if(isset($_GET['cronjob_id']) && isset($_GET['type']) && $_GET['type']=='execute')
{
if(!$rechte->isBerechtigt('basis/cronjob', null, 'suid'))
die('Sie haben keine Berechtigung fuer diese Aktion');
//Loeschen eines Cronjobs
$cj = new cronjob();
if($cj->load($_GET['cronjob_id']))
{
if($cj->execute())
echo 'Job wurde erfolgreich ausgefuehrt';
else
echo 'Fehler beim Starten des Jobs:'.$cj->errormsg;
}
else
{
echo 'Fehler beim Laden des Jobs!';
}
}
$cj = new cronjob();
if(!$cj->getAll(null, 'titel'))
die('Fehler beim Laden der Cronjobs');
echo '<br><a href="'.$_SERVER['PHP_SELF'].'?type=new">Neuen Cronjob anlegen</a>';
echo '<br><br>
<table class="liste table-autosort:2 table-stripeclass:alternate table-autostripe">
<thead>
<tr>
<th class="table-sortable:default">ID</th>
<th class="table-sortable:default">Server</th>
<th class="table-sortable:default">Titel</th>
<th class="table-sortable:default">Aktiv</th>
<th class="table-sortable:default">letzter Start</th>
<th class="table-sortable:default">nächster Start</th>
<th colspan="2"></th>
</tr>
</thead>
<tbody>';
foreach ($cj->result as $job)
{
if($next = $job->getNextExecutionTime())
$next = date('d.m.Y H:i:s',$next);
echo "
<tr>
<td>".htmlspecialchars($job->cronjob_id)."</td>
<td>".htmlspecialchars($job->server_kurzbz)."</td>
<td>".htmlspecialchars($job->titel)."</td>
<td>".($job->aktiv?'Ja':'Nein')."</td>
<td>".$datum_obj->formatDatum($job->last_execute,'d.m.Y H:i:s')."</td>
<td>".$next." (<a href=\"".$_SERVER['PHP_SELF']."?cronjob_id=$job->cronjob_id&type=execute\">jetzt starten</a>)</td>
<td><a href=\"".$_SERVER['PHP_SELF']."?cronjob_id=$job->cronjob_id&type=edit\">details</a></td>
<td><a href=\"".$_SERVER['PHP_SELF']."?cronjob_id=$job->cronjob_id&type=delete\">entfernen</a></td>
</tr>";
}
echo '</tbody></table>';
// Neu anlegen eines Jobs
if(isset($_GET['type']) && ($_GET['type']=='edit' || $_GET['type']=='new'))
{
if(!$rechte->isBerechtigt('basis/cronjob', null, 'suid'))
die('Sie haben keine Berechtigung zum Bearbeiten der Daten');
//Formular zum Editieren und neu Anlegen der Daten anzeigen
$cj = new cronjob();
echo '<br><hr><br>';
if($_GET['type']=='edit')
{
if(!isset($_GET['cronjob_id']))
die('Fehlerhafte Parameteruebergabe');
if(!$cj->load($_GET['cronjob_id']))
die('Fehler beim Laden des Eintrages');
$cj->new=false;
echo '<h3>Details zu Cronjob '.$cj->cronjob_id.'</h3>';
}
else
{
echo '<h3>Neuer Cronjob</h3>';
$cj->new=true;
}
echo '<form method="POST" action="'.$_SERVER['PHP_SELF'].'?type=save">';
echo '
<table>
<tr>
<td><label for="titel">Titel</label></td>
<td><input type="text" name="titel" id="titel" maxlength="64" value="'.htmlspecialchars($cj->titel).'"></td>
<td><label for="beschreibung">Beschreibung</label></td>
<td colspan="8"><input type="text" name="beschreibung" id="beschreibung" size="80" value="'.htmlspecialchars($cj->beschreibung).'"></td>
</tr>
<tr>
<td><label for="server_kurzbz">Server</label></td>
<td>
<SELECT name="server_kurzbz" id="server_kurzbz">
<OPTION value="">-- Alle --</OPTION>';
$qry = "SELECT * FROM system.tbl_server ORDER BY server_kurzbz";
$db = new basis_db();
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
if($row->server_kurzbz==$cj->server_kurzbz)
$selected='selected="selected"';
else
$selected='';
echo '<OPTION value="'.$row->server_kurzbz.'" '.$selected.'>'.$row->server_kurzbz.'</OPTION>';
}
}
echo '
</SELECT>
</td>
<td><label for="file">Datei</a></td>
<td colspan="8"><input type="text" size="80" id="file" name="file" value="'.htmlspecialchars($cj->file).'"></td>
</tr>
<tr>
<td><label for="jahr">Jahr</label></td>
<td><input type="text" name="jahr" id="jahr" maxlength="6" size="6" value="'.htmlspecialchars($cj->jahr).'"></td>
<td><label for="monat">Monat</label></td>
<td><input type="text" name="monat" id="monat" maxlength="4" size="4" value="'.htmlspecialchars($cj->monat).'"></td>
<td><label for="tag">Tag</label></td>
<td><input type="text" name="tag" id="tag" maxlength="4" size="4" value="'.htmlspecialchars($cj->tag).'"></td>
<td><label for="wochentag">Wochentag</label></td>
<td>
<SELECT name="wochentag" id="wochentag">
<OPTION value="">-- keine Auswahl --</OPTION>';
foreach($tagbez as $key=>$day)
{
if($key==$cj->wochentag && $cj->wochentag!='')
$selected='selected="selected"';
else
$selected='';
echo '<OPTION value="'.$key.'" '.$selected.'>'.$day.'</OPTION>';
}
echo '
</SELECT>
</td>
<td><label for="stunde">Stunde</label></td>
<td><input type="text" name="stunde" id="stunde" maxlength="4" size="4" value="'.htmlspecialchars($cj->stunde).'"></td>
<td><label for="minute">Minute</label></td>
<td><input type="text" name="minute" id="minute" maxlength="4" size="4" value="'.htmlspecialchars($cj->minute).'"></td>
</tr>
<tr>
<td><label for="aktiv">Aktiv</label></td>
<td><input type="checkbox" name="aktiv" id="aktiv" '.($cj->aktiv?'checked="checked"':'').'></td>
<td><label for="standalone">Standalone</label></td>
<td><input type="checkbox" name="standalone" id="standalone" '.($cj->standalone?'checked="checked"':'').'></td>
<td><label for="reihenfolge">Reihenfolge</label></td>
<td><input type="text" name="reihenfolge" id="reihenfolge" maxlength="4" size="4" value="'.htmlspecialchars($cj->reihenfolge).'"></td>
</tr>
<tr>
<td>letzter Start&nbsp;</td>
<td>'.$datum_obj->formatDatum($cj->last_execute,'d.m.Y H:i:s').'</td>
<td>Running</td>
<td>'.($cj->running?'Ja':'Nein').'</td>
</tr>
<tr>
<td valign="top">
Variablen<br/>';
if($_GET['type']!='new')
echo '<a href="'.$_SERVER['PHP_SELF'].'?cronjob_id='.$cj->cronjob_id.'&type=init" onclick="return initwarnung()">Initialisieren</a>';
echo ' </td>
<td colspan="8">
<textarea id="variablen" name="variablen" cols="80" rows="3" >'.htmlspecialchars($cj->variablen).'</textarea>
</td>
<td colspan="3">
<input type="button" id="opener" value="Variablen-Editor" />
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td></td>
</tr>
<tr>
<td><input type="hidden" name="cronjob_id" value="'.$cj->cronjob_id.'"></td>
<td><input type="submit" name="save" value="Speichern"></td>
</tr>
</table>';
echo '</form>
<div id="dialog" >
<table>
<tr>
<td style="background-color: white; border: 1px solid black" valign="top"><div style="width:150px" id="tree"></div></td>
<td><div style="width:400px" id="jform"></div></td>
</tr>
</table>
</div>
<script>
var myjson=0;
onload=function()
{
myjson = '.($cj->variablen!=''?$cj->variablen:'{}').';
JSONeditor.start(\'tree\',\'jform\',myjson,false,\'../../include/js/JSONeditor/\');
}
$(function()
{
$(\'#dialog\').dialog(
{
autoOpen: false,
width: 600,
modal: true,
show: \'blind\',
hide: \'blind\',
close: function(event, ui)
{
jsonwert=JSON.stringify(JSONeditor.treeBuilder.json);
document.getElementById(\'variablen\').value = jsonwert;
}
});
$(\'#opener\').click(function()
{
$(\'#dialog\').dialog(\'open\');
return false;
});
});
</script>
';
}
echo '
</body>
</html>';
?>
+4 -4
View File
@@ -168,7 +168,7 @@
$htmlstr .= " <td>";
$htmlstr .= " <SELECT name='standort_id'>";
$htmlstr.=" <OPTION value=''>-- keine Auswahl --</OPTION>\n";
$qry = 'SELECT * FROM public.tbl_standort ORDER BY standort_id';
$qry = "SELECT * FROM public.tbl_standort JOIN public.tbl_firma USING(firma_id) WHERE firmentyp_kurzbz='Intern' ORDER BY kurzbz";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
@@ -178,7 +178,7 @@
else
$selected='';
$htmlstr.=" <OPTION value='$row->standort_id' $selected>$row->standort_id</OPTION>\n";
$htmlstr.=" <OPTION value='$row->standort_id' $selected>$row->kurzbz</OPTION>\n";
}
}
$htmlstr .= " </SELECT>";
@@ -227,9 +227,9 @@
$htmlstr .= " <tr>\n";
$htmlstr .= " <td valign='top'>Lageplan</td>\n";
$htmlstr .= " <td><textarea name='lageplan' cols='37' rows='5' onchange='submitable()'>".$lageplan."</textarea></td>\n";
$htmlstr .= " <td>\n</td>\n<td>\n</td>\n";
//$htmlstr .= " <td>\n</td>\n<td>\n</td>\n";
$htmlstr .= " <td valign='top'>Ausstattung</td>\n";
$htmlstr .= " <td><textarea name='ausstattung' cols='37' rows='5' onchange='submitable()'>".$ausstattung."</textarea></td>\n";
$htmlstr .= " <td colspan='2'><textarea name='ausstattung' cols='37' rows='5' onchange='submitable()'>".$ausstattung."</textarea></td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= "</table>\n";
$htmlstr .= "<br>\n";