").append(st.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,a||[e.responseText,t,e])}),this},st.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){st.fn[t]=function(e){return this.on(t,e)}}),st.each(["get","post"],function(e,n){st[n]=function(e,r,i,o){return st.isFunction(r)&&(o=o||i,i=r,r=t),st.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),st.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Dn,type:"GET",isLocal:Fn.test(jn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":In,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":st.parseJSON,"text xml":st.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?H(H(e,st.ajaxSettings),t):H(st.ajaxSettings,e)},ajaxPrefilter:D(Wn),ajaxTransport:D($n),ajax:function(e,n){function r(e,n,r,s){var l,f,v,b,T,N=n;2!==x&&(x=2,u&&clearTimeout(u),i=t,a=s||"",w.readyState=e>0?4:0,r&&(b=M(p,w,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=w.getResponseHeader("Last-Modified"),T&&(st.lastModified[o]=T),T=w.getResponseHeader("etag"),T&&(st.etag[o]=T)),304===e?(l=!0,N="notmodified"):(l=q(p,b),N=l.state,f=l.data,v=l.error,l=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),w.status=e,w.statusText=(n||N)+"",l?g.resolveWith(d,[f,N,w]):g.rejectWith(d,[w,N,v]),w.statusCode(y),y=t,c&&h.trigger(l?"ajaxSuccess":"ajaxError",[w,p,l?f:v]),m.fireWith(d,[w,N]),c&&(h.trigger("ajaxComplete",[w,p]),--st.active||st.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var i,o,a,s,u,l,c,f,p=st.ajaxSetup({},n),d=p.context||p,h=p.context&&(d.nodeType||d.jquery)?st(d):st.event,g=st.Deferred(),m=st.Callbacks("once memory"),y=p.statusCode||{},v={},b={},x=0,T="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!s)for(s={};t=_n.exec(a);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=b[n]=b[n]||e,v[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)y[t]=[y[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||T;return i&&i.abort(t),r(0,t),this}};if(g.promise(w).complete=m.add,w.success=w.done,w.error=w.fail,p.url=((e||p.url||Dn)+"").replace(Mn,"").replace(Bn,jn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=st.trim(p.dataType||"*").toLowerCase().match(lt)||[""],null==p.crossDomain&&(l=Pn.exec(p.url.toLowerCase()),p.crossDomain=!(!l||l[1]===jn[1]&&l[2]===jn[2]&&(l[3]||("http:"===l[1]?80:443))==(jn[3]||("http:"===jn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=st.param(p.data,p.traditional)),L(Wn,p,n,w),2===x)return w;c=p.global,c&&0===st.active++&&st.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!On.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(Hn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=qn.test(o)?o.replace(qn,"$1_="+Ln++):o+(Hn.test(o)?"&":"?")+"_="+Ln++)),p.ifModified&&(st.lastModified[o]&&w.setRequestHeader("If-Modified-Since",st.lastModified[o]),st.etag[o]&&w.setRequestHeader("If-None-Match",st.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&w.setRequestHeader("Content-Type",p.contentType),w.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+In+"; q=0.01":""):p.accepts["*"]);for(f in p.headers)w.setRequestHeader(f,p.headers[f]);if(p.beforeSend&&(p.beforeSend.call(d,w,p)===!1||2===x))return w.abort();T="abort";for(f in{success:1,error:1,complete:1})w[f](p[f]);if(i=L($n,p,n,w)){w.readyState=1,c&&h.trigger("ajaxSend",[w,p]),p.async&&p.timeout>0&&(u=setTimeout(function(){w.abort("timeout")},p.timeout));try{x=1,i.send(v,r)}catch(N){if(!(2>x))throw N;r(-1,N)}}else r(-1,"No Transport");return w},getScript:function(e,n){return st.get(e,t,n,"script")},getJSON:function(e,t,n){return st.get(e,t,n,"json")}}),st.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return st.globalEval(e),e}}}),st.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),st.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=V.head||st("head")[0]||V.documentElement;return{send:function(t,i){n=V.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Xn=[],Un=/(=)\?(?=&|$)|\?\?/;st.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xn.pop()||st.expando+"_"+Ln++;return this[e]=!0,e}}),st.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Un.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Un.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=st.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Un,"$1"+o):n.jsonp!==!1&&(n.url+=(Hn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||st.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Xn.push(o)),s&&st.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Vn,Yn,Jn=0,Gn=e.ActiveXObject&&function(){var e;for(e in Vn)Vn[e](t,!0)};st.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&_()||F()}:_,Yn=st.ajaxSettings.xhr(),st.support.cors=!!Yn&&"withCredentials"in Yn,Yn=st.support.ajax=!!Yn,Yn&&st.ajaxTransport(function(n){if(!n.crossDomain||st.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,f,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=st.noop,Gn&&delete Vn[a]),i)4!==u.readyState&&u.abort();else{f={},s=u.status,p=u.responseXML,c=u.getAllResponseHeaders(),p&&p.documentElement&&(f.xml=p),"string"==typeof u.responseText&&(f.text=u.responseText);try{l=u.statusText}catch(d){l=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=f.text?200:404}}catch(h){i||o(-1,h)}f&&o(s,l,f,c)},n.async?4===u.readyState?setTimeout(r):(a=++Jn,Gn&&(Vn||(Vn={},st(e).unload(Gn)),Vn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Qn,Kn,Zn=/^(?:toggle|show|hide)$/,er=RegExp("^(?:([+-])=|)("+ut+")([a-z%]*)$","i"),tr=/queueHooks$/,nr=[W],rr={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=er.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(st.cssNumber[e]?"":"px"),"px"!==r&&s){s=st.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,st.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};st.Animation=st.extend(P,{tweener:function(e,t){st.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],rr[n]=rr[n]||[],rr[n].unshift(t)},prefilter:function(e,t){t?nr.unshift(e):nr.push(e)}}),st.Tween=$,$.prototype={constructor:$,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(st.cssNumber[n]?"":"px")},cur:function(){var e=$.propHooks[this.prop];return e&&e.get?e.get(this):$.propHooks._default.get(this)},run:function(e){var t,n=$.propHooks[this.prop];return this.pos=t=this.options.duration?st.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):$.propHooks._default.set(this),this}},$.prototype.init.prototype=$.prototype,$.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=st.css(e.elem,e.prop,"auto"),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){st.fx.step[e.prop]?st.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[st.cssProps[e.prop]]||st.cssHooks[e.prop])?st.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},$.propHooks.scrollTop=$.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},st.each(["toggle","show","hide"],function(e,t){var n=st.fn[t];st.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(I(t,!0),e,r,i)}}),st.fn.extend({fadeTo:function(e,t,n,r){return this.filter(w).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=st.isEmptyObject(e),o=st.speed(t,n,r),a=function(){var t=P(this,st.extend({},e),o);a.finish=function(){t.stop(!0)},(i||st._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=st.timers,a=st._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&tr.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&st.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=st._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=st.timers,a=r?r.length:0;for(n.finish=!0,st.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),st.each({slideDown:I("show"),slideUp:I("hide"),slideToggle:I("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){st.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),st.speed=function(e,t,n){var r=e&&"object"==typeof e?st.extend({},e):{complete:n||!n&&t||st.isFunction(e)&&e,duration:e,easing:n&&t||t&&!st.isFunction(t)&&t};return r.duration=st.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in st.fx.speeds?st.fx.speeds[r.duration]:st.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){st.isFunction(r.old)&&r.old.call(this),r.queue&&st.dequeue(this,r.queue)},r},st.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},st.timers=[],st.fx=$.prototype.init,st.fx.tick=function(){var e,n=st.timers,r=0;for(Qn=st.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||st.fx.stop(),Qn=t},st.fx.timer=function(e){e()&&st.timers.push(e)&&st.fx.start()},st.fx.interval=13,st.fx.start=function(){Kn||(Kn=setInterval(st.fx.tick,st.fx.interval))},st.fx.stop=function(){clearInterval(Kn),Kn=null},st.fx.speeds={slow:600,fast:200,_default:400},st.fx.step={},st.expr&&st.expr.filters&&(st.expr.filters.animated=function(e){return st.grep(st.timers,function(t){return e===t.elem}).length}),st.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){st.offset.setOffset(this,e,t)});var n,r,i={top:0,left:0},o=this[0],a=o&&o.ownerDocument;if(a)return n=a.documentElement,st.contains(n,o)?(o.getBoundingClientRect!==t&&(i=o.getBoundingClientRect()),r=z(a),{top:i.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:i.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):i},st.offset={setOffset:function(e,t,n){var r=st.css(e,"position");"static"===r&&(e.style.position="relative");var i,o,a=st(e),s=a.offset(),u=st.css(e,"top"),l=st.css(e,"left"),c=("absolute"===r||"fixed"===r)&&st.inArray("auto",[u,l])>-1,f={},p={};c?(p=a.position(),i=p.top,o=p.left):(i=parseFloat(u)||0,o=parseFloat(l)||0),st.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(f.top=t.top-s.top+i),null!=t.left&&(f.left=t.left-s.left+o),"using"in t?t.using.call(e,f):a.css(f)}},st.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===st.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),st.nodeName(e[0],"html")||(n=e.offset()),n.top+=st.css(e[0],"borderTopWidth",!0),n.left+=st.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-st.css(r,"marginTop",!0),left:t.left-n.left-st.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||V.documentElement;e&&!st.nodeName(e,"html")&&"static"===st.css(e,"position");)e=e.offsetParent;return e||V.documentElement})}}),st.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);st.fn[e]=function(i){return st.access(this,function(e,i,o){var a=z(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?st(a).scrollLeft():o,r?o:st(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}}),st.each({Height:"height",Width:"width"},function(e,n){st.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){st.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return st.access(this,function(n,r,i){var o;return st.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?st.css(n,r,s):st.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=st,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return st})})(window);
-//@ sourceMappingURL=jquery.min.map
/*! jQuery UI - v1.9.2 - 2013-01-21
* http://jqueryui.com
diff --git a/include/lehreinheitmitarbeiter.class.php b/include/lehreinheitmitarbeiter.class.php
index 8b40888df..75c03decb 100644
--- a/include/lehreinheitmitarbeiter.class.php
+++ b/include/lehreinheitmitarbeiter.class.php
@@ -471,7 +471,7 @@ class lehreinheitmitarbeiter extends basis_db
*/
public function getLehreinheiten($mitarbeiter_uid, $studiensemester_kurzbz)
{
- $qry = 'SELECT DISTINCT lehreinheit_id, lv_bezeichnung, lv_kurzbz, unr, lv_lehrform_kurzbz '
+ $qry = 'SELECT DISTINCT lehreinheit_id, lv_bezeichnung, lv_kurzbz, unr, lv_lehrform_kurzbz, stg_kurzbzlang, lv_semester '
. 'FROM campus.vw_lehreinheit '
. 'WHERE mitarbeiter_uid = ' . $this->db_add_param($mitarbeiter_uid)
. ' AND studiensemester_kurzbz = ' . $this->db_add_param($studiensemester_kurzbz)
diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php
index 9444c8146..4bc864065 100644
--- a/include/lehrveranstaltung.class.php
+++ b/include/lehrveranstaltung.class.php
@@ -22,6 +22,7 @@
*/
require_once(dirname(__FILE__) . '/basis_db.class.php');
require_once(dirname(__FILE__) . '/functions.inc.php');
+require_once(dirname(__FILE__) . '/studiengang.class.php');
class lehrveranstaltung extends basis_db
{
@@ -2151,5 +2152,45 @@ class lehrveranstaltung extends basis_db
return false;
}
}
+
+ /**
+ * Gibt alle Organisationseinheiten der Studiengänge zurück, mit denen
+ * die Lehrveranstaltung über Studienpläne verknüpft ist
+ * @return boolean|array false im Fehlerfall, sonst ein Array
+ */
+ public function getAllOe()
+ {
+ $oe = array();
+
+ $qry = 'SELECT DISTINCT oe_kurzbz
+ FROM lehre.tbl_studienplan_lehrveranstaltung
+ JOIN lehre.tbl_studienplan USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung USING(studienordnung_id)
+ JOIN public.tbl_studiengang USING(studiengang_kz)
+ WHERE lehrveranstaltung_id = '.$this->db_add_param($this->lehrveranstaltung_id);
+
+ if($result = $this->db_query($qry))
+ {
+ while ($row = $this->db_fetch_object($result))
+ {
+ $oe[] = $row->oe_kurzbz;
+ }
+ }
+ else
+ {
+ $this->errormsg = "Fehler beim Laden der Daten";
+ return false;
+ }
+
+ // oe_kurzbz des Studiengangs der LVA hinzufügen
+ $stg = new studiengang($this->studiengang_kz);
+
+ if(!in_array($stg->oe_kurzbz, $oe))
+ {
+ $oe[] = $this->oe_kurzbz;
+ }
+
+ return $oe;
+ }
}
?>
diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php
index 2c325ea99..79d7f667e 100644
--- a/include/mitarbeiter.class.php
+++ b/include/mitarbeiter.class.php
@@ -1,1201 +1,1208 @@
-,
- * Andreas Oesterreicher and
- * Rudolf Hangl .
- */
-require_once(dirname(__FILE__).'/person.class.php');
-require_once(dirname(__FILE__).'/benutzer.class.php');
-require_once(dirname(__FILE__).'/functions.inc.php');
-
-class mitarbeiter extends benutzer
-{
- public $new;
- public $errormsg;
- public $result=array();
-
- //Tabellenspalten
- public $ausbildungcode; //integer
- public $personalnummer; //serial
- public $kurzbz; //varchar(8)
- public $lektor; //boolean
- public $fixangestellt; //boolean
- public $standort_id; //varchar(16)
- public $telefonklappe; //varchar(25)
- public $ort_kurzbz; //varchar(8)
- public $ext_id_mitarbeiter; //bigint
- public $stundensatz;
- public $anmerkung;
- public $bismelden;
- public $kleriker;
- public $vorgesetzte=array();
- public $untergebene=array();
-
- /**
- * Konstruktor - laedt optional einen Mitarbeiter
- * @param $uid Mitarbeiter der geladen werden soll (default=null)
- */
- public function __construct($uid=null)
- {
- parent::__construct();
-
- //Mitarbeiter laden
- if($uid!=null)
- $this->load($uid);
- }
-
- /**
- * Laedt einen Mitarbeiter
- *
- * @param $uid
- * @return true wenn ok, sonst false
- */
- public function load($uid)
- {
- if(!benutzer::load($uid))
- return false;
-
- $qry = "SELECT * FROM public.tbl_mitarbeiter LEFT JOIN campus.tbl_resturlaub USING(mitarbeiter_uid)
- WHERE mitarbeiter_uid=".$this->db_add_param($uid).";";
-
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $this->ausbildungcode = $row->ausbildungcode;
- $this->personalnummer = $row->personalnummer;
- $this->kurzbz = $row->kurzbz;
- $this->lektor = $this->db_parse_bool($row->lektor);
- $this->fixangestellt = $this->db_parse_bool($row->fixangestellt);
- $this->standort_id = $row->standort_id;
- $this->telefonklappe = $row->telefonklappe;
- $this->ort_kurzbz = $row->ort_kurzbz;
- $this->stundensatz = $row->stundensatz;
- $this->anmerkung = $row->anmerkung;
- $this->ext_id_mitarbeiter = $row->ext_id;
- $this->bismelden = $this->db_parse_bool($row->bismelden);
- $this->kleriker = $this->db_parse_bool($row->kleriker);
-
- $this->urlaubstageprojahr = $row->urlaubstageprojahr;
- $this->resturlaubstage = $row->resturlaubstage;
- return true;
- }
- else
- {
- $this->errormsg = "Kein Eintrag gefunden fuer den Benutzer\n";
- return false;
- }
- }
- else
- {
- $this->errormsg = "Fehler beim Laden der Daten\n";
- return false;
- }
- }
-
- /**
- * ueberprueft die Variablen auf Gueltigkeit
- * @return true wenn gueltig, false im Fehlerfall
- */
- protected function validate()
- {
- //if(mb_strlen($this->uid)>16)
- //{
- // $this->errormsg = "ID darf nicht laenger als 16 Zeichen sein\n";
- // return false;
- //}
- if($this->uid=='')
- {
- $this->errormsg = "UID muss eingegeben werden ".$this->personalnummer."\n";
- return false;
- }
- if($this->ausbildungcode!='' && !is_numeric($this->ausbildungcode))
- {
- $this->errormsg = "Ausbildungscode ist ungueltig\n";
- return false;
- }
- if($this->personalnummer!='' && !is_numeric($this->personalnummer))
- {
- $this->errormsg = "Personalnummer muss eine gueltige Zahl sein\n";
- return false;
- }
- if(mb_strlen($this->kurzbz)>8)
- {
- $this->errormsg = "kurzbz darf nicht laenger als 8 Zeichen sein\n";
- return false;
- }
- if(mb_strlen($this->ort_kurzbz)>16)
- {
- $this->errormsg = "Ort_kurzbz darf nicht laenger als 16 Zeichen sein\n";
- return false;
- }
- if(!is_bool($this->lektor))
- {
- $this->errormsg = "Lektor muss boolean sein ";
- return false;
- }
- if(!is_bool($this->fixangestellt))
- {
- $this->errormsg = "fixangestellt muss boolean sein\n";
- return false;
- }
- if(mb_strlen($this->telefonklappe)>25)
- {
- $this->errormsg = "telefonklappe darf nicht laenger als 25 Zeichen sein\n";
- return false;
- }
- if(mb_strlen($this->updatevon)>32)
- {
- $this->errormsg = "updatevon darf nicht laenger als 32 Zeichen sein\n";
- return false;
- }
-
- return true;
- }
-
-
- /**
- * Speichert die Mitarbeiterdaten in die Datenbank
- * @return true wenn ok, false im Fehlerfall
- */
- public function save($new=null, $savebenutzer=true)
- {
- //Variablen checken
- if(!$this->validate())
- return false;
-
- $this->db_query('BEGIN;');
-
- if($new==null)
- $new = $this->new;
-
- if($savebenutzer)
- {
- //Basisdaten speichern
- if(!benutzer::save())
- {
- $this->db_query('ROLLBACK;');
- return false;
- }
- }
-
- if($new)
- {
- if($this->personalnummer=='')
- {
- do
- {
- //Wenn keine Personalnummer angegeben wurde, dann die naechste freie Suchen
- $qry = "SELECT nextval('public.tbl_mitarbeiter_personalnummer_seq') as id;";
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $personalnummer = $row->id;
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln der Personalnummer';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln der Personalnummer';
- return false;
- }
-
- //Da die Personalnummer auch direkt uebergeben werden kann, ist es moeglich, dass die Personalnummer
- //aus dem Serial schon vergeben ist. Deshalb wird zur Sicherheit nochmal ueberprueft ob die Nr
- //noch frei ist.
- $qry = "SELECT personalnummer FROM public.tbl_mitarbeiter WHERE personalnummer=".$this->db_add_param($personalnummer, FHC_INTEGER).';';
- if($this->db_query($qry))
- {
- if($this->db_num_rows()==0)
- $this->personalnummer = $personalnummer;
- }
-
- } while($this->personalnummer=='');
- }
- else
- {
- //Pruefen ob Personalnummer eine gueltige Zahl ist
- if(!is_numeric($this->personalnummer))
- {
- $this->errormsg = 'Personalnummer muss eine gueltige Zahl sein';
- return false;
- }
-
- //Preufen ob die Personalnummer schon vergeben ist
- $qry = "SELECT personalnummer FROM public.tbl_mitarbeiter WHERE personalnummer=".$this->db_add_param($this->personalnummer, FHC_INTEGER).';';
- if($this->db_query($qry))
- {
- if($this->db_num_rows()!=0)
- {
- $this->errormsg = 'Personalnummer ist bereits vergeben!';
- return false;
- }
- }
- }
- //Neuen Datensatz anlegen
- $qry = "INSERT INTO public.tbl_mitarbeiter(mitarbeiter_uid, ausbildungcode, personalnummer, kurzbz, lektor, ort_kurzbz,
- fixangestellt, standort_id, telefonklappe, anmerkung, stundensatz, updateamum, updatevon, insertamum, insertvon, ext_id, bismelden,kleriker)
-
- VALUES(".$this->db_add_param($this->uid).",".
- $this->db_add_param($this->ausbildungcode, FHC_INTEGER).",".
- $this->db_add_param($this->personalnummer, FHC_INTEGER).",".
- $this->db_add_param($this->kurzbz).','.
- $this->db_add_param($this->lektor, FHC_BOOLEAN).','.
- $this->db_add_param($this->ort_kurzbz).','.
- $this->db_add_param($this->fixangestellt,FHC_BOOLEAN).','.
- $this->db_add_param($this->standort_id, FHC_INTEGER).','.
- $this->db_add_param($this->telefonklappe).','.
- $this->db_add_param($this->anmerkung).','.
- $this->db_add_param($this->stundensatz).','.
- $this->db_add_param($this->updateamum).','.
- $this->db_add_param($this->updatevon).', '.
- $this->db_add_param($this->insertamum).','.
- $this->db_add_param($this->insertvon).', '.
- $this->db_add_param($this->ext_id_mitarbeiter, FHC_INTEGER).','.
- $this->db_add_param($this->bismelden, FHC_BOOLEAN).','.
- $this->db_add_param($this->kleriker, FHC_BOOLEAN).');';
- }
- else
- {
- //Bestehenden Datensatz updaten
- $qry = 'UPDATE public.tbl_mitarbeiter SET'.
- ' ausbildungcode='.$this->db_add_param($this->ausbildungcode, FHC_INTEGER).','.
- " personalnummer=".$this->db_add_param($this->personalnummer, FHC_INTEGER).",". //TODO: in Produktivversion nicht angeben
- ' kurzbz='.$this->db_add_param($this->kurzbz).','.
- ' lektor='.$this->db_add_param($this->lektor, FHC_BOOLEAN).','.
- ' fixangestellt='.$this->db_add_param($this->fixangestellt, FHC_BOOLEAN).','.
- ' bismelden='.$this->db_add_param($this->bismelden, FHC_BOOLEAN).','.
- ' kleriker='.$this->db_add_param($this->kleriker, FHC_BOOLEAN).','.
- ' standort_id='.$this->db_add_param($this->standort_id, FHC_INTEGER).','.
- ' telefonklappe='.$this->db_add_param($this->telefonklappe).','.
- ' ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).','.
- ' anmerkung='.$this->db_add_param($this->anmerkung).','.
- ' stundensatz='.$this->db_add_param($this->stundensatz).','.
- ' updateamum='.$this->db_add_param($this->updateamum).','.
- ' updatevon='.$this->db_add_param($this->updatevon).','.
- ' ext_id='.$this->db_add_param($this->ext_id_mitarbeiter, FHC_INTEGER).
- " WHERE mitarbeiter_uid=".$this->db_add_param($this->uid).";";
- }
-
- if($this->db_query($qry))
- {
- $this->db_query('COMMIT;');
- //Log schreiben
- return true;
- }
- else
- {
- $this->db_query('ROLLBACK;');
- $this->errormsg = "Fehler beim Speichern des Mitarbeiter-Datensatzes";
- return false;
- }
- }
-
- /**
- * gibt array mit allen Mitarbeitern zurueck
- * @return array mit Mitarbeitern
- */
- public function getMitarbeiter($lektor=true,$fixangestellt=null,$stg_kz=null)
- {
- $sql_query='SELECT DISTINCT campus.vw_mitarbeiter.uid, titelpre, titelpost, vorname, vornamen, nachname, gebdatum, gebort, gebzeit, anmerkung, aktiv,
- homepage, campus.vw_mitarbeiter.updateamum, campus.vw_mitarbeiter.updatevon, personalnummer, kurzbz, lektor, fixangestellt, standort_id, telefonklappe FROM campus.vw_mitarbeiter
- LEFT OUTER JOIN public.tbl_benutzerfunktion USING (uid)
- WHERE TRUE';
-
- if (!is_null($lektor))
- {
- $sql_query.=' AND';
- if (!$lektor)
- $sql_query.=' NOT';
- $sql_query.=' lektor';
- }
-
- if (!is_null($fixangestellt))
- {
- $sql_query.=' AND';
- if (!$fixangestellt)
- $sql_query.=' NOT';
- $sql_query.=' fixangestellt';
- }
-
- if (!is_null($stg_kz))
- {
- $stg = new studiengang($stg_kz);
- $sql_query.=" AND oe_kurzbz=".$this->db_add_param($stg->oe_kurzbz);
- }
-
- $sql_query.=' ORDER BY nachname, vornamen, kurzbz;';
-
- if(!$this->db_query($sql_query))
- {
- $this->errormsg=$this->db_last_error();
- return false;
- }
- $num_rows=$this->db_num_rows();
- $result=array();
- for($i=0;$i<$num_rows;$i++)
- {
- $row=$this->db_fetch_object(null,$i);
- $l=new mitarbeiter();
- // Personendaten
- $l->uid=$row->uid;
- $l->titelpre=$row->titelpre;
- $l->titelpost=$row->titelpost;
- $l->vorname=$row->vorname;
- $l->vornamen=$row->vornamen;
- $l->nachname=$row->nachname;
- $l->gebdatum=$row->gebdatum;
- $l->gebort=$row->gebort;
- $l->gebzeit=$row->gebzeit;
- //$l->foto=$row->foto;
- $l->anmerkung=$row->anmerkung;
- $l->aktiv= $this->db_parse_bool($row->aktiv);
- $l->homepage=$row->homepage;
- $l->updateamum=$row->updateamum;
- $l->updatevon=$row->updatevon;
- // Lektorendaten
- $l->personalnummer=$row->personalnummer;
- $l->kurzbz=$row->kurzbz;
- $l->lektor= $this->db_parse_bool($row->lektor);
- $l->fixangestellt= $this->db_parse_bool($row->fixangestellt);
- $l->standort_id = $row->standort_id;
- $l->telefonklappe=$row->telefonklappe;
-
- // Lektor in Array speichern
- $result[]=$l;
- }
- return $result;
- }
-
- /**
- * Liefert Mitarbeiter, die eine Funktion in den uebergebenen Studiengaengen haben.
- * Optional datum_von und datum_bis fuer die Funktion ansonsten now()
- *
- * @param $lektor
- * @param $fixangestellt
- * @param $stge Array mit Studiengaengen
- * @param $fkt_kurzbz
- * @param $order
- * @param $datum_von
- * @param $datum_bis
- * @return boolean
- */
- public function getMitarbeiterStg($lektor=true,$fixangestellt, $stge, $fkt_kurzbz, $order='studiengang_kz, nachname, vorname, kurzbz', $datum_von='', $datum_bis='')
- {
- $sql_query='SELECT DISTINCT campus.vw_mitarbeiter.*, studiengang_kz FROM campus.vw_mitarbeiter
- JOIN public.tbl_benutzerfunktion USING (uid) JOIN public.tbl_studiengang USING(oe_kurzbz)
- WHERE true';
- if(!is_null($lektor))
- {
- $sql_query.=' AND';
- if (!$lektor)
- $sql_query.=' NOT';
- $sql_query.=' lektor';
- }
-
- if ($fixangestellt!=null)
- {
- $sql_query.=' AND';
- if (!$fixangestellt)
- $sql_query.=' NOT';
- $sql_query.=' fixangestellt';
- }
- if($fkt_kurzbz!='')
- {
- $sql_query.=" AND funktion_kurzbz=".$this->db_add_param($fkt_kurzbz);
- }
- if(!is_null($datum_von))
- {
- if($datum_von=='')
- $sql_query.=" AND (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now())";
- else
- $sql_query.=" AND (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=".$this->db_add_param($datum_von).")";
- }
- if(!is_null($datum_bis))
- {
- if($datum_bis=='')
- $sql_query.=" AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now())";
- else
- $sql_query.=" AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=".$this->db_add_param($datum_bis).")";
- }
- if ($stge!=null)
- {
- $in='';
- foreach ($stge as $stg)
- {
- $in.=','.$this->db_add_param($stg, FHC_INTEGER);
- if($stg==0)
- {
- $in='';
- break;
- }
- }
- if($in!='')
- $sql_query.=' AND studiengang_kz in (-1'.$in.')';
- }
- $sql_query.=' ORDER BY '.$order.';';
- //echo $sql_query;
-
- if(!$this->db_query($sql_query))
- {
- $this->errormsg=$this->db_last_error();
- return false;
- }
-
- $num_rows=$this->db_num_rows();
- $result=array();
- for($i=0;$i<$num_rows;$i++)
- {
- $row=$this->db_fetch_object(null,$i);
- $l=new mitarbeiter();
- // Personendaten
- $l->uid=$row->uid;
- $l->titelpre=$row->titelpre;
- $l->titelpost=$row->titelpost;
- $l->vorname=$row->vorname;
- $l->vornamen=$row->vornamen;
- $l->nachname=$row->nachname;
- $l->gebdatum=$row->gebdatum;
- $l->gebort=$row->gebort;
- $l->gebzeit=$row->gebzeit;
- $l->foto=$row->foto;
- $l->anmerkung=$row->anmerkung;
- $l->aktiv= $this->db_parse_bool($row->aktiv);
- //$l->bismelden=$row->bismelden=='t'?true:false;
- $l->homepage=$row->homepage;
- $l->updateamum=$row->updateamum;
- $l->updatevon=$row->updatevon;
- // Lektorendaten
- $l->personalnummer=$row->personalnummer;
- $l->kurzbz=$row->kurzbz;
- $l->lektor= $this->db_parse_bool($row->lektor);
- $l->fixangestellt= $this->db_parse_bool($row->fixangestellt);
- $l->standort_id = $row->standort_id;
- $l->telefonklappe=$row->telefonklappe;
- $l->studiengang_kz = $row->studiengang_kz;
- //$l->ort_kurzbz=$row->ort_kurzbz;
- // Lektor in Array speichern
- $result[]=$l;
- }
- return $result;
- }
-
- /**
- * Liefert die Mitarbeiter, die im angegebenen Intervall eine Zeitsperre eingetragen haben.
- * UID optional um nur einen bestimmten Mitarbeiter abzufragen.
- *
- * @param $von
- * @param $bis
- * @param $uid Optional
- * @return boolean
- */
- public function getMitarbeiterZeitsperre($von,$bis,$uid=null)
- {
- $sql_query="SELECT DISTINCT nachname, vorname, uid,titelpre, titelpost, vornamen
- FROM campus.vw_mitarbeiter JOIN campus.tbl_zeitsperre ON (uid=mitarbeiter_uid)
- WHERE ((".$this->db_add_param($von)."<=bisdatum AND ".$this->db_add_param($bis).">=bisdatum) OR (".$this->db_add_param($bis).">=vondatum AND ".$this->db_add_param($von)."<=vondatum))";
- if($uid!=null)
- $sql_query .= " AND mitarbeiter_uid=".$this->db_add_param($uid);
-
- $sql_query .= " ORDER BY nachname;";
-
- if(!$this->db_query($sql_query))
- {
- $this->errormsg=$this->db_last_error();
- return false;
- }
-
- $num_rows=$this->db_num_rows();
- $result=array();
- for($i=0;$i<$num_rows;$i++)
- {
- $row=$this->db_fetch_object(null,$i);
- $l=new mitarbeiter();
- // Personendaten
- $l->uid=$row->uid;
- $l->titelpre=$row->titelpre;
- $l->titelpost=$row->titelpost;
- $l->vorname=$row->vorname;
- $l->vornamen=$row->vornamen;
- $l->nachname=$row->nachname;
-
- // Lektor in Array speichern
- $result[]=$l;
- }
- return $result;
- }
-
- /**
- * Laedt alle Mitarbeiter einer Lehreinheit
- * @param lehreinheit_id
- * @return true wenn ok, false wenn Fehler
- */
- public function getMitarbeiterFromLehreinheit($lehreinheit_id)
- {
- if(!is_numeric($lehreinheit_id))
- {
- $this->errormsg = 'Lehreinheit_id ist ungueltig';
- return false;
- }
-
- $qry = "SELECT uid, vorname, vornamen, nachname, titelpre, titelpost, kurzbz FROM lehre.tbl_lehreinheitmitarbeiter JOIN campus.vw_mitarbeiter ON(mitarbeiter_uid=uid)
- WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER).';';
-
- if($this->db_query($qry))
- {
- while($row = $this->db_fetch_object())
- {
- $obj = new mitarbeiter();
-
- $obj->uid = $row->uid;
- $obj->vorname = $row->vorname;
- $obj->nachname = $row->nachname;
- $obj->titelpre = $row->titelpre;
- $obj->titelpost = $row->titelpost;
- $obj->kurzbz = $row->kurzbz;
- $obj->vornamen = $row->vornamen;
-
- $this->result[] = $obj;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Laedt alle Mitarbeiter einer Lehrveranstaltung
- * @param lehrveranstaltung_id
- * @return true wenn ok, false wenn Fehler
- */
- public function getMitarbeiterFromLehrveranstaltung($lehrveranstaltung_id)
- {
- if(!is_numeric($lehrveranstaltung_id))
- {
- $this->errormsg = 'Lehrveranstaltung_id ist ungueltig';
- return false;
- }
-
- $qry = "SELECT uid, vorname, vornamen, nachname, titelpre, titelpost, kurzbz FROM lehre.tbl_lehreinheitmitarbeiter, campus.vw_mitarbeiter, lehre.tbl_lehreinheit
- WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." AND mitarbeiter_uid=uid AND tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id;";
-
- if($this->db_query($qry))
- {
- while($row = $this->db_fetch_object())
- {
- $obj = new mitarbeiter();
-
- $obj->uid = $row->uid;
- $obj->vorname = $row->vorname;
- $obj->nachname = $row->nachname;
- $obj->titelpre = $row->titelpre;
- $obj->titelpost = $row->titelpost;
- $obj->kurzbz = $row->kurzbz;
- $obj->vornamen = $row->vornamen;
-
- $this->result[] = $obj;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Laedt das Personal
- *
- * @param $fix wenn true werden nur fixangestellte geladen
- * @param $stgl wenn true werden nur studiengangsleiter geladen
- * @param $fbl wenn true werden nur fachbereichsleiter geladen
- * @param $aktiv wenn true werden nur aktive geladen, wenn false dann nur inaktve, wenn null dann alle
- * @param $karenziert wenn true werden alle geladen die karenziert sind
- * @param $verwendung wenn true werden alle geladen die eine BIS-Verwendung eingetragen haben
- * @return boolean
- */
- public function getPersonal($fix, $stgl, $fbl, $aktiv, $karenziert, $verwendung)
- {
- $qry = "SELECT distinct on(mitarbeiter_uid) *, tbl_benutzer.aktiv as aktiv, tbl_mitarbeiter.insertamum, tbl_mitarbeiter.insertvon, tbl_mitarbeiter.updateamum, tbl_mitarbeiter.updatevon FROM ((public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)) JOIN public.tbl_person USING(person_id)) LEFT JOIN public.tbl_benutzerfunktion USING(uid) LEFT JOIN campus.tbl_resturlaub USING(mitarbeiter_uid) WHERE true";
-
- if($fix=='true')
- $qry .= " AND fixangestellt=true";
- if($fix=='false')
- $qry .= " AND fixangestellt=false";
- if($stgl)
- {
- $qry .= " AND funktion_kurzbz='Leitung' AND EXISTS(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz)
- AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND
- (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())";
- }
- if($fbl)
- {
- $qry .= " AND funktion_kurzbz='Leitung' AND EXISTS(SELECT fachbereich_kurzbz FROM public.tbl_fachbereich fb WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz AND fb.aktiv)
- AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND
- (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())";
- }
- if($aktiv=='true')
- $qry .= " AND tbl_benutzer.aktiv=true";
- if($aktiv=='false')
- $qry .= " AND tbl_benutzer.aktiv=false";
- if($karenziert)
- $qry .= " AND uid IN (SELECT mitarbeiter_uid FROM bis.tbl_bisverwendung WHERE beschausmasscode='5' AND (ende>now() OR ende is null))"; //beginn<(SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='$studiensemester_kurzbz') AND ende<(SELECT ende FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='$studiensemester_kurzbz')
- if($verwendung=='true')
- {
- $qry.=" AND EXISTS(SELECT * FROM bis.tbl_bisverwendung WHERE (ende>now() or ende is null) AND tbl_bisverwendung.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid)";
- }
- if($verwendung=='false')
- {
- $qry.=" AND NOT EXISTS(SELECT * FROM bis.tbl_bisverwendung WHERE (ende>now() or ende is null) AND tbl_bisverwendung.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid)";
- }
-
- $qry.=';';
- if($this->db_query($qry))
- {
- while($row = $this->db_fetch_object())
- {
- $obj = new mitarbeiter();
-
- $obj->person_id = $row->person_id;
- $obj->staatsbuergerschaft = $row->staatsbuergerschaft;
- $obj->geburtsnation = $row->geburtsnation;
- $obj->sprache = $row->sprache;
- $obj->anrede = $row->anrede;
- $obj->titelpost = $row->titelpost;
- $obj->titelpre = $row->titelpre;
- $obj->nachname = $row->nachname;
- $obj->vorname = $row->vorname;
- $obj->vornamen = $row->vornamen;
- $obj->gebdatum = $row->gebdatum;
- $obj->gebort = $row->gebort;
- $obj->gebzeit = $row->gebzeit;
- $obj->anmerkung = $row->anmerkung;
- $obj->homepage = $row->homepage;
- $obj->svnr = $row->svnr;
- $obj->ersatzkennzeichen = $row->ersatzkennzeichen;
- $obj->familienstand = $row->familienstand;
- $obj->geschlecht = $row->geschlecht;
- $obj->anzahlkinder = $row->anzahlkinder;
- $obj->bnaktiv = $this->db_parse_bool($row->aktiv);
- $obj->uid = $row->uid;
- $obj->personalnummer = $row->personalnummer;
- $obj->telefonklappe = $row->telefonklappe;
- $obj->kurzbz = $row->kurzbz;
- $obj->lektor = $this->db_parse_bool($row->lektor);
- $obj->fixangestellt = $this->db_parse_bool($row->fixangestellt);
- $obj->bismelden = $this->db_parse_bool($row->bismelden);
- $obj->stundensatz = $row->stundensatz;
- $obj->ausbildungcode = $row->ausbildungcode;
- $obj->ort_kurzbz = $row->ort_kurzbz;
- $obj->standort_id = $row->standort_id;
- $obj->anmerkung = $row->anmerkung;
- $obj->alias = $row->alias;
- $obj->insertamum = $row->insertamum;
- $obj->insertvon = $row->insertvon;
- $obj->updateamum = $row->updateamum;
- $obj->updatevon = $row->updatevon;
-
- $obj->urlaubstageprojahr = $row->urlaubstageprojahr;
- $obj->resturlaubstage = $row->resturlaubstage;
-
- $this->result[] = $obj;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Prueft ob die Kurzbz bereits existiert
- */
- public function kurzbz_exists($kurzbz)
- {
- $qry = "SELECT * FROM public.tbl_mitarbeiter WHERE kurzbz=".$this->db_add_param($kurzbz).';';
-
- if($this->db_query($qry))
- {
- if($this->db_num_rows()>0)
- {
- $this->errormsg = '';
- return true;
- }
- else
- {
- $this->errormsg = '';
- return false;
- }
-
- }
- else
- {
- $this->errormsg = 'Fehler bei DatenbankAbfrage';
- return false;
- }
-
- }
-
- /**
- * Laedt die Mitarbeiter deren
- * Nachname oder uid mit $filter beginnt
- */
- public function getMitarbeiterFilter($filter)
- {
- $qry = "SELECT * FROM campus.vw_mitarbeiter WHERE lower(nachname) ~* lower(".$this->db_add_param($filter).") OR uid ~* ".$this->db_add_param($filter).';';
- if($this->db_query($qry))
- {
- while($row = $this->db_fetch_object())
- {
- $obj = new mitarbeiter();
-
- $obj->uid = $row->uid;
- $obj->vorname = $row->vorname;
- $obj->nachname = $row->nachname;
- $obj->titelpre = $row->titelpre;
- $obj->titelpost = $row->titelpost;
- $obj->kurzbz = $row->kurzbz;
- $obj->vornamen = $row->vornamen;
-
- $this->result[] = $obj;
- }
-
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Sucht die Mitarbeiter deren
- * Nachname, Vorname, UID $filter enthaelt
- * @param $filter
- */
- public function search($filter, $limit=null, $aktiv=true)
- {
- $qry = "SELECT vorname, nachname, titelpre, titelpost, kurzbz, vornamen, uid
- FROM campus.vw_mitarbeiter
- WHERE
- lower(nachname) like lower('%".$this->db_escape($filter)."%')
- OR lower(uid) like lower('%".$this->db_escape($filter)."%')
- OR lower(vorname) like lower('%".$this->db_escape($filter)."%')
- OR lower(vorname || ' ' || nachname) like lower('%".$this->db_escape($filter)."%')
- OR lower(nachname || ' ' || vorname) like lower('%".$this->db_escape($filter)."%')
- ORDER BY nachname, vorname";
-
- if(!is_null($limit) && is_numeric($limit))
- $qry.=" LIMIT ".$limit;
-
- //echo $qry;
- if($this->db_query($qry))
- {
- while($row = $this->db_fetch_object())
- {
- $obj = new mitarbeiter();
-
- $obj->uid = $row->uid;
- $obj->vorname = $row->vorname;
- $obj->nachname = $row->nachname;
- $obj->titelpre = $row->titelpre;
- $obj->titelpost = $row->titelpost;
- $obj->kurzbz = $row->kurzbz;
- $obj->vornamen = $row->vornamen;
-
- $this->result[] = $obj;
- }
-
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Liefert die Personen die den Suchkriterien entsprechen
- *
- * @param $filter
- * @return boolean
- */
- public function searchPersonal($filter)
- {
- $qry = "SELECT
- distinct on(mitarbeiter_uid) *, tbl_benutzer.aktiv as aktiv, tbl_mitarbeiter.insertamum,
- tbl_mitarbeiter.insertvon, tbl_mitarbeiter.updateamum, tbl_mitarbeiter.updatevon, tbl_person.svnr
- FROM ((public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)) JOIN public.tbl_person USING(person_id)) LEFT JOIN campus.tbl_resturlaub USING(mitarbeiter_uid)
- WHERE lower(COALESCE(nachname,'') ||' '|| COALESCE(vorname,'')) ~* lower(".$this->db_add_param($filter).") OR
- lower(COALESCE(vorname,'') ||' '|| COALESCE(nachname,'')) ~* lower(".$this->db_add_param($filter).") OR
- uid ~* ".$this->db_add_param($filter)." ";
- if(is_numeric($filter))
- $qry.="OR personalnummer = ".$this->db_add_param($filter)." OR svnr = ".$this->db_add_param($filter).";";
-
- if($this->db_query($qry))
- {
- while($row = $this->db_fetch_object())
- {
- $obj = new mitarbeiter();
-
- $obj->person_id = $row->person_id;
- $obj->staatsbuergerschaft = $row->staatsbuergerschaft;
- $obj->geburtsnation = $row->geburtsnation;
- $obj->sprache = $row->sprache;
- $obj->anrede = $row->anrede;
- $obj->titelpost = $row->titelpost;
- $obj->titelpre = $row->titelpre;
- $obj->nachname = $row->nachname;
- $obj->vorname = $row->vorname;
- $obj->vornamen = $row->vornamen;
- $obj->gebdatum = $row->gebdatum;
- $obj->gebort = $row->gebort;
- $obj->gebzeit = $row->gebzeit;
- $obj->anmerkung = $row->anmerkung;
- $obj->homepage = $row->homepage;
- $obj->svnr = $row->svnr;
- $obj->ersatzkennzeichen = $row->ersatzkennzeichen;
- $obj->familienstand = $row->familienstand;
- $obj->geschlecht = $row->geschlecht;
- $obj->anzahlkinder = $row->anzahlkinder;
- $obj->bnaktiv = $this->db_parse_bool($row->aktiv);
- $obj->uid = $row->uid;
- $obj->personalnummer = $row->personalnummer;
- $obj->telefonklappe = $row->telefonklappe;
- $obj->kurzbz = $row->kurzbz;
- $obj->lektor = $this->db_parse_bool($row->lektor);
- $obj->fixangestellt = $this->db_parse_bool($row->fixangestellt);
- $obj->bismelden = $this->db_parse_bool($row->bismelden);
- $obj->stundensatz = $row->stundensatz;
- $obj->ausbildungcode = $row->ausbildungcode;
- $obj->ort_kurzbz = $row->ort_kurzbz;
- $obj->standort_id = $row->standort_id;
- $obj->anmerkung = $row->anmerkung;
- $obj->alias = $row->alias;
- $obj->insertamum = $row->insertamum;
- $obj->insertvon = $row->insertvon;
- $obj->updateamum = $row->updateamum;
- $obj->updatevon = $row->updatevon;
-
- $obj->urlaubstageprojahr = $row->urlaubstageprojahr;
- $obj->resturlaubstage = $row->resturlaubstage;
-
- $this->result[] = $obj;
- }
- return false;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * gibt array mit allen Mitarbeitern zurueck
- * @return array mit Mitarbeitern
- */
- public function getMitarbeiterOrganisationseinheit($oe_kurzbz)
- {
- $sql_query="SELECT DISTINCT campus.vw_mitarbeiter.uid, titelpre, titelpost, vorname, vornamen, nachname, gebdatum, gebort, gebzeit, anmerkung, aktiv,
- homepage, vw_mitarbeiter.updateamum, vw_mitarbeiter.updatevon, personalnummer, kurzbz, lektor, fixangestellt, standort_id, telefonklappe FROM campus.vw_mitarbeiter
- JOIN public.tbl_benutzerfunktion USING (uid)
- WHERE funktion_kurzbz='oezuordnung' AND oe_kurzbz=".$this->db_add_param($oe_kurzbz)." AND
- (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND
- (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())
- ORDER BY nachname, vorname";
-
- if($this->db_query($sql_query))
- {
- $num_rows=$this->db_num_rows();
- $result=array();
- for($i=0;$i<$num_rows;$i++)
- {
- $row=$this->db_fetch_object(null,$i);
- $l=new mitarbeiter();
- // Personendaten
- $l->uid=$row->uid;
- $l->titelpre=$row->titelpre;
- $l->titelpost=$row->titelpost;
- $l->vorname=$row->vorname;
- $l->vornamen=$row->vornamen;
- $l->nachname=$row->nachname;
- $l->gebdatum=$row->gebdatum;
- $l->gebort=$row->gebort;
- $l->gebzeit=$row->gebzeit;
- //$l->foto=$row->foto;
- $l->anmerkung=$row->anmerkung;
- $l->aktiv= $this->db_parse_bool($row->aktiv);
- $l->homepage=$row->homepage;
- $l->updateamum=$row->updateamum;
- $l->updatevon=$row->updatevon;
- // Lektorendaten
- $l->personalnummer=$row->personalnummer;
- $l->kurzbz=$row->kurzbz;
- $l->lektor= $this->db_parse_bool($row->lektor);
- $l->fixangestellt=$this->db_parse_bool($row->fixangestellt);
- $l->standort_id = $row->standort_id;
- $l->telefonklappe=$row->telefonklappe;
-
- // Lektor in Array speichern
- $result[]=$l;
- }
- return $result;
- }
- else
- {
- $this->errormsg="Fehler beim Laden der Daten";
- return false;
- }
- }
-
- /**
- * Gibt ein Array mit den UIDs der Vorgesetzten zurück
- * @return uid
- */
- public function getVorgesetzte($uid=null)
- {
- $return=false;
- if (is_null($uid))
- $uid=$this->uid;
-
- $qry = "SELECT
- uid as vorgesetzter
- FROM
- public.tbl_benutzerfunktion
- WHERE
- funktion_kurzbz='Leitung' AND
- (datum_von is null OR datum_von<=now()) AND
- (datum_bis is null OR datum_bis>=now()) AND
- oe_kurzbz in (SELECT oe_kurzbz
- FROM public.tbl_benutzerfunktion
- WHERE
- funktion_kurzbz='oezuordnung' AND uid=".$this->db_add_param($uid)." AND
- (datum_von is null OR datum_von<=now()) AND
- (datum_bis is null OR datum_bis>=now())
- );";
-
-
- if($this->db_query($qry))
- {
- while($row = $this->db_fetch_object())
- {
- if ($row->vorgesetzter!='')
- {
- $this->vorgesetzte[]=$row->vorgesetzter;
- $return=true;
- }
- }
-
- $this->vorgesetzte = array_unique($this->vorgesetzte);
- }
- else
- {
- $this->errormsg = 'Fehler bei einer Datenbankabfrage!';
- }
- return $return;
- }
-
- /**
- * Gibt ein Array mit den UIDs der Untergebenen zurueck
- */
- public function getUntergebene($uid=null)
- {
- if (is_null($uid))
- $uid=$this->uid;
-
- // Organisationseinheiten holen von denen die Person die Leitung hat
- $qry = "SELECT * FROM public.tbl_benutzerfunktion
- WHERE funktion_kurzbz='Leitung' AND uid=".$this->db_add_param($uid)." AND
- (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND
- (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())";
-
- if($this->db_query($qry))
- {
- $oe='';
- while($row = $this->db_fetch_object())
- {
- if($oe!='')
- $oe.=',';
- $oe.=$this->db_add_param($row->oe_kurzbz);
- }
- }
-
- //Alle Personen holen die dieser Organisationseinheit untergeordnet sind
- $qry = "SELECT distinct uid FROM public.tbl_benutzerfunktion WHERE ((funktion_kurzbz='oezuordnung' AND (false ";
-
- if($oe!='')
- $qry.=" OR oe_kurzbz in($oe)";
-
- $qry.=")) ";
-
- if($oe!='')
- $qry.=" OR (funktion_kurzbz='ass' AND oe_kurzbz in($oe))";
-
- $qry.= ") AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND
- (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now());";
-
- if($this->db_query($qry))
- {
- while($row = $this->db_fetch_object())
- {
- $this->untergebene[]=$row->uid;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln der Untergebenen';
- return false;
- }
-
- }
-
- /**
- *
- * @param $filter Buchstabe mit dem der Mitarbeiter beginnt
- * @param $fixangestellt false wenn externer mitarbeiter
- * @param $studSemArray Array mit Studiensemestern in denen der externe Lektor zumindest in einem Unterrichtet haben soll
- * @return boolean
- */
- public function getMitarbeiterForZutrittskarte($filter, $fixangestellt=true, $studSemArray)
- {
- $qry = "SELECT
- vorname,nachname,gebdatum,uid,personalnummer,person_id
- FROM
- campus.vw_mitarbeiter
- WHERE
- aktiv='true'";
- if($filter!='')
- $qry.=" AND UPPER(SUBSTRING(nachname,1,1))=".$this->db_add_param($filter,FHC_STRING);
-
- if($fixangestellt)
- $qry.=" AND fixangestellt";
- else
- $qry.=" AND NOT fixangestellt AND EXISTS
- (SELECT * FROM lehre.tbl_lehreinheitmitarbeiter
- JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
- WHERE tbl_lehreinheitmitarbeiter.mitarbeiter_uid=uid
- AND tbl_lehreinheit.studiensemester_kurzbz in (".$this->implode4SQL($studSemArray).")) ";
- $qry.=" ORDER BY nachname, vorname";
- if($result = $this->db_query($qry))
- {
- while($row = $this->db_fetch_object($result))
- {
- $mi = new mitarbeiter();
-
- $mi->vorname = $row->vorname;
- $mi->nachname = $row->nachname;
- $mi->gebdatum = $row->gebdatum;
- $mi->uid = $row->uid;
- $mi->personalnummer = $row->personalnummer;
- $mi->person_id = $row->person_id;
-
- $this->result[] = $mi;
- }
- return true;
- }
- else
- {
- $this->errormsg = "Fehler bei der Abfrage aufgetreten";
- return false;
- }
- }
-
-
- /**
- * Gibt alle Mitarbeiter während des Meldezeitraumes zurück
- * @param type $meldungBeginn Start des Meldezeitraumes
- * @param type $meldungEnde Ende des Meldezeitraumes
- * @return boolean
- */
- public function getMitarbeiterforMeldung($meldungBeginn, $meldungEnde)
- {
-
- $qry='SELECT DISTINCT ON (UID) *
- FROM
- public.tbl_mitarbeiter
- JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)
- JOIN public.tbl_person USING(person_id)
- JOIN bis.tbl_bisverwendung USING(mitarbeiter_uid)
- JOIN bis.tbl_beschaeftigungsausmass USING(beschausmasscode)
- WHERE
- bismelden
- AND personalnummer>0
- AND (tbl_bisverwendung.ende is NULL OR tbl_bisverwendung.ende>'.$this->db_add_param($meldungBeginn).')
- ORDER BY uid, nachname,vorname
- ';
-
- if($result = $this->db_query($qry))
- {
- while($row = $this->db_fetch_object($result))
- {
- $l=new mitarbeiter();
- // Personendaten
- $l->uid=$row->uid;
- $l->titelpre=$row->titelpre;
- $l->titelpost=$row->titelpost;
- $l->vorname=$row->vorname;
- $l->vornamen=$row->vornamen;
- $l->nachname=$row->nachname;
- $l->gebdatum=$row->gebdatum;
- $l->gebort=$row->gebort;
- $l->gebzeit=$row->gebzeit;
- $l->geschlecht=$row->geschlecht;
- //$l->foto=$row->foto;
- $l->anmerkung=$row->anmerkung;
- $l->aktiv= $this->db_parse_bool($row->aktiv);
- $l->homepage=$row->homepage;
- $l->updateamum=$row->updateamum;
- $l->updatevon=$row->updatevon;
- // Lektorendaten
- $l->personalnummer=$row->personalnummer;
- $l->kurzbz=$row->kurzbz;
- $l->lektor= $this->db_parse_bool($row->lektor);
- $l->fixangestellt= $this->db_parse_bool($row->fixangestellt);
- $l->standort_id = $row->standort_id;
- $l->telefonklappe=$row->telefonklappe;
- $l->ausbildungcode=$row->ausbildungcode;
- $l->ba1code=$row->ba1code;
- $l->ba2code=$row->ba2code;
- $l->verwendung_code=$row->verwendung_code;
- $l->beschäftigungsausmass = $row->max;
- $l->vertragsstunden = $row->vertragsstunden;
-
- // Lektor in Array speichern
- array_push($this->result, $l);
- }
- return true;
- }
- return false;
- }
-}
-?>
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+require_once(dirname(__FILE__).'/person.class.php');
+require_once(dirname(__FILE__).'/benutzer.class.php');
+require_once(dirname(__FILE__).'/functions.inc.php');
+
+class mitarbeiter extends benutzer
+{
+ public $new;
+ public $errormsg;
+ public $result=array();
+
+ //Tabellenspalten
+ public $ausbildungcode; //integer
+ public $personalnummer; //serial
+ public $kurzbz; //varchar(8)
+ public $lektor; //boolean
+ public $fixangestellt; //boolean
+ public $standort_id; //varchar(16)
+ public $telefonklappe; //varchar(25)
+ public $ort_kurzbz; //varchar(8)
+ public $ext_id_mitarbeiter; //bigint
+ public $stundensatz;
+ public $anmerkung;
+ public $bismelden;
+ public $kleriker;
+ public $vorgesetzte=array();
+ public $untergebene=array();
+
+ /**
+ * Konstruktor - laedt optional einen Mitarbeiter
+ * @param $uid Mitarbeiter der geladen werden soll (default=null)
+ */
+ public function __construct($uid=null)
+ {
+ parent::__construct();
+
+ //Mitarbeiter laden
+ if($uid!=null)
+ $this->load($uid);
+ }
+
+ /**
+ * Laedt einen Mitarbeiter
+ *
+ * @param $uid
+ * @return true wenn ok, sonst false
+ */
+ public function load($uid)
+ {
+ if(!benutzer::load($uid))
+ return false;
+
+ $qry = "SELECT * FROM public.tbl_mitarbeiter LEFT JOIN campus.tbl_resturlaub USING(mitarbeiter_uid)
+ WHERE mitarbeiter_uid=".$this->db_add_param($uid).";";
+
+ if($this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object())
+ {
+ $this->ausbildungcode = $row->ausbildungcode;
+ $this->personalnummer = $row->personalnummer;
+ $this->kurzbz = $row->kurzbz;
+ $this->lektor = $this->db_parse_bool($row->lektor);
+ $this->fixangestellt = $this->db_parse_bool($row->fixangestellt);
+ $this->standort_id = $row->standort_id;
+ $this->telefonklappe = $row->telefonklappe;
+ $this->ort_kurzbz = $row->ort_kurzbz;
+ $this->stundensatz = $row->stundensatz;
+ $this->anmerkung = $row->anmerkung;
+ $this->ext_id_mitarbeiter = $row->ext_id;
+ $this->bismelden = $this->db_parse_bool($row->bismelden);
+ $this->kleriker = $this->db_parse_bool($row->kleriker);
+
+ $this->urlaubstageprojahr = $row->urlaubstageprojahr;
+ $this->resturlaubstage = $row->resturlaubstage;
+ return true;
+ }
+ else
+ {
+ $this->errormsg = "Kein Eintrag gefunden fuer den Benutzer\n";
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = "Fehler beim Laden der Daten\n";
+ return false;
+ }
+ }
+
+ /**
+ * ueberprueft die Variablen auf Gueltigkeit
+ * @return true wenn gueltig, false im Fehlerfall
+ */
+ protected function validate()
+ {
+ //if(mb_strlen($this->uid)>16)
+ //{
+ // $this->errormsg = "ID darf nicht laenger als 16 Zeichen sein\n";
+ // return false;
+ //}
+ if($this->uid=='')
+ {
+ $this->errormsg = "UID muss eingegeben werden ".$this->personalnummer."\n";
+ return false;
+ }
+ if($this->ausbildungcode!='' && !is_numeric($this->ausbildungcode))
+ {
+ $this->errormsg = "Ausbildungscode ist ungueltig\n";
+ return false;
+ }
+ if($this->personalnummer!='' && !is_numeric($this->personalnummer))
+ {
+ $this->errormsg = "Personalnummer muss eine gueltige Zahl sein\n";
+ return false;
+ }
+ if(mb_strlen($this->kurzbz)>8)
+ {
+ $this->errormsg = "kurzbz darf nicht laenger als 8 Zeichen sein\n";
+ return false;
+ }
+ if(mb_strlen($this->ort_kurzbz)>16)
+ {
+ $this->errormsg = "Ort_kurzbz darf nicht laenger als 16 Zeichen sein\n";
+ return false;
+ }
+ if(!is_bool($this->lektor))
+ {
+ $this->errormsg = "Lektor muss boolean sein ";
+ return false;
+ }
+ if(!is_bool($this->fixangestellt))
+ {
+ $this->errormsg = "fixangestellt muss boolean sein\n";
+ return false;
+ }
+ if(mb_strlen($this->telefonklappe)>25)
+ {
+ $this->errormsg = "telefonklappe darf nicht laenger als 25 Zeichen sein\n";
+ return false;
+ }
+ if(mb_strlen($this->updatevon)>32)
+ {
+ $this->errormsg = "updatevon darf nicht laenger als 32 Zeichen sein\n";
+ return false;
+ }
+
+ return true;
+ }
+
+
+ /**
+ * Speichert die Mitarbeiterdaten in die Datenbank
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function save($new=null, $savebenutzer=true)
+ {
+ //Variablen checken
+ if(!$this->validate())
+ return false;
+
+ $this->db_query('BEGIN;');
+
+ if($new==null)
+ $new = $this->new;
+
+ if($savebenutzer)
+ {
+ //Basisdaten speichern
+ if(!benutzer::save())
+ {
+ $this->db_query('ROLLBACK;');
+ return false;
+ }
+ }
+
+ if($new)
+ {
+ if(defined('FAS_PERSONALNUMMER_GENERATE_NULL') && FAS_PERSONALNUMMER_GENERATE_NULL)
+ {
+ $this->personalnummer = NULL;
+ }
+ else
+ {
+ if($this->personalnummer=='')
+ {
+ do
+ {
+ //Wenn keine Personalnummer angegeben wurde, dann die naechste freie Suchen
+ $qry = "SELECT nextval('public.tbl_mitarbeiter_personalnummer_seq') as id;";
+ if($this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object())
+ {
+ $personalnummer = $row->id;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Ermitteln der Personalnummer';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Ermitteln der Personalnummer';
+ return false;
+ }
+
+ //Da die Personalnummer auch direkt uebergeben werden kann, ist es moeglich, dass die Personalnummer
+ //aus dem Serial schon vergeben ist. Deshalb wird zur Sicherheit nochmal ueberprueft ob die Nr
+ //noch frei ist.
+ $qry = "SELECT personalnummer FROM public.tbl_mitarbeiter WHERE personalnummer=".$this->db_add_param($personalnummer, FHC_INTEGER).';';
+ if($this->db_query($qry))
+ {
+ if($this->db_num_rows()==0)
+ $this->personalnummer = $personalnummer;
+ }
+
+ } while($this->personalnummer=='');
+ }
+ else
+ {
+ //Pruefen ob Personalnummer eine gueltige Zahl ist
+ if(!is_numeric($this->personalnummer))
+ {
+ $this->errormsg = 'Personalnummer muss eine gueltige Zahl sein';
+ return false;
+ }
+
+ //Preufen ob die Personalnummer schon vergeben ist
+ $qry = "SELECT personalnummer FROM public.tbl_mitarbeiter WHERE personalnummer=".$this->db_add_param($this->personalnummer, FHC_INTEGER).';';
+ if($this->db_query($qry))
+ {
+ if($this->db_num_rows()!=0)
+ {
+ $this->errormsg = 'Personalnummer ist bereits vergeben!';
+ return false;
+ }
+ }
+ }
+ }
+ //Neuen Datensatz anlegen
+ $qry = "INSERT INTO public.tbl_mitarbeiter(mitarbeiter_uid, ausbildungcode, personalnummer, kurzbz, lektor, ort_kurzbz,
+ fixangestellt, standort_id, telefonklappe, anmerkung, stundensatz, updateamum, updatevon, insertamum, insertvon, ext_id, bismelden,kleriker)
+
+ VALUES(".$this->db_add_param($this->uid).",".
+ $this->db_add_param($this->ausbildungcode, FHC_INTEGER).",".
+ $this->db_add_param($this->personalnummer, FHC_INTEGER).",".
+ $this->db_add_param($this->kurzbz).','.
+ $this->db_add_param($this->lektor, FHC_BOOLEAN).','.
+ $this->db_add_param($this->ort_kurzbz).','.
+ $this->db_add_param($this->fixangestellt,FHC_BOOLEAN).','.
+ $this->db_add_param($this->standort_id, FHC_INTEGER).','.
+ $this->db_add_param($this->telefonklappe).','.
+ $this->db_add_param($this->anmerkung).','.
+ $this->db_add_param($this->stundensatz).','.
+ $this->db_add_param($this->updateamum).','.
+ $this->db_add_param($this->updatevon).', '.
+ $this->db_add_param($this->insertamum).','.
+ $this->db_add_param($this->insertvon).', '.
+ $this->db_add_param($this->ext_id_mitarbeiter, FHC_INTEGER).','.
+ $this->db_add_param($this->bismelden, FHC_BOOLEAN).','.
+ $this->db_add_param($this->kleriker, FHC_BOOLEAN).');';
+ }
+ else
+ {
+ //Bestehenden Datensatz updaten
+ $qry = 'UPDATE public.tbl_mitarbeiter SET'.
+ ' ausbildungcode='.$this->db_add_param($this->ausbildungcode, FHC_INTEGER).','.
+ " personalnummer=".$this->db_add_param($this->personalnummer, FHC_INTEGER).",". //TODO: in Produktivversion nicht angeben
+ ' kurzbz='.$this->db_add_param($this->kurzbz).','.
+ ' lektor='.$this->db_add_param($this->lektor, FHC_BOOLEAN).','.
+ ' fixangestellt='.$this->db_add_param($this->fixangestellt, FHC_BOOLEAN).','.
+ ' bismelden='.$this->db_add_param($this->bismelden, FHC_BOOLEAN).','.
+ ' kleriker='.$this->db_add_param($this->kleriker, FHC_BOOLEAN).','.
+ ' standort_id='.$this->db_add_param($this->standort_id, FHC_INTEGER).','.
+ ' telefonklappe='.$this->db_add_param($this->telefonklappe).','.
+ ' ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).','.
+ ' anmerkung='.$this->db_add_param($this->anmerkung).','.
+ ' stundensatz='.$this->db_add_param($this->stundensatz).','.
+ ' updateamum='.$this->db_add_param($this->updateamum).','.
+ ' updatevon='.$this->db_add_param($this->updatevon).','.
+ ' ext_id='.$this->db_add_param($this->ext_id_mitarbeiter, FHC_INTEGER).
+ " WHERE mitarbeiter_uid=".$this->db_add_param($this->uid).";";
+ }
+
+ if($this->db_query($qry))
+ {
+ $this->db_query('COMMIT;');
+ //Log schreiben
+ return true;
+ }
+ else
+ {
+ $this->db_query('ROLLBACK;');
+ $this->errormsg = "Fehler beim Speichern des Mitarbeiter-Datensatzes";
+ return false;
+ }
+ }
+
+ /**
+ * gibt array mit allen Mitarbeitern zurueck
+ * @return array mit Mitarbeitern
+ */
+ public function getMitarbeiter($lektor=true,$fixangestellt=null,$stg_kz=null)
+ {
+ $sql_query='SELECT DISTINCT campus.vw_mitarbeiter.uid, titelpre, titelpost, vorname, vornamen, nachname, gebdatum, gebort, gebzeit, anmerkung, aktiv,
+ homepage, campus.vw_mitarbeiter.updateamum, campus.vw_mitarbeiter.updatevon, personalnummer, kurzbz, lektor, fixangestellt, standort_id, telefonklappe FROM campus.vw_mitarbeiter
+ LEFT OUTER JOIN public.tbl_benutzerfunktion USING (uid)
+ WHERE TRUE';
+
+ if (!is_null($lektor))
+ {
+ $sql_query.=' AND';
+ if (!$lektor)
+ $sql_query.=' NOT';
+ $sql_query.=' lektor';
+ }
+
+ if (!is_null($fixangestellt))
+ {
+ $sql_query.=' AND';
+ if (!$fixangestellt)
+ $sql_query.=' NOT';
+ $sql_query.=' fixangestellt';
+ }
+
+ if (!is_null($stg_kz))
+ {
+ $stg = new studiengang($stg_kz);
+ $sql_query.=" AND oe_kurzbz=".$this->db_add_param($stg->oe_kurzbz);
+ }
+
+ $sql_query.=' ORDER BY nachname, vornamen, kurzbz;';
+
+ if(!$this->db_query($sql_query))
+ {
+ $this->errormsg=$this->db_last_error();
+ return false;
+ }
+ $num_rows=$this->db_num_rows();
+ $result=array();
+ for($i=0;$i<$num_rows;$i++)
+ {
+ $row=$this->db_fetch_object(null,$i);
+ $l=new mitarbeiter();
+ // Personendaten
+ $l->uid=$row->uid;
+ $l->titelpre=$row->titelpre;
+ $l->titelpost=$row->titelpost;
+ $l->vorname=$row->vorname;
+ $l->vornamen=$row->vornamen;
+ $l->nachname=$row->nachname;
+ $l->gebdatum=$row->gebdatum;
+ $l->gebort=$row->gebort;
+ $l->gebzeit=$row->gebzeit;
+ //$l->foto=$row->foto;
+ $l->anmerkung=$row->anmerkung;
+ $l->aktiv= $this->db_parse_bool($row->aktiv);
+ $l->homepage=$row->homepage;
+ $l->updateamum=$row->updateamum;
+ $l->updatevon=$row->updatevon;
+ // Lektorendaten
+ $l->personalnummer=$row->personalnummer;
+ $l->kurzbz=$row->kurzbz;
+ $l->lektor= $this->db_parse_bool($row->lektor);
+ $l->fixangestellt= $this->db_parse_bool($row->fixangestellt);
+ $l->standort_id = $row->standort_id;
+ $l->telefonklappe=$row->telefonklappe;
+
+ // Lektor in Array speichern
+ $result[]=$l;
+ }
+ return $result;
+ }
+
+ /**
+ * Liefert Mitarbeiter, die eine Funktion in den uebergebenen Studiengaengen haben.
+ * Optional datum_von und datum_bis fuer die Funktion ansonsten now()
+ *
+ * @param $lektor
+ * @param $fixangestellt
+ * @param $stge Array mit Studiengaengen
+ * @param $fkt_kurzbz
+ * @param $order
+ * @param $datum_von
+ * @param $datum_bis
+ * @return boolean
+ */
+ public function getMitarbeiterStg($lektor=true,$fixangestellt, $stge, $fkt_kurzbz, $order='studiengang_kz, nachname, vorname, kurzbz', $datum_von='', $datum_bis='')
+ {
+ $sql_query='SELECT DISTINCT campus.vw_mitarbeiter.*, studiengang_kz FROM campus.vw_mitarbeiter
+ JOIN public.tbl_benutzerfunktion USING (uid) JOIN public.tbl_studiengang USING(oe_kurzbz)
+ WHERE true';
+ if(!is_null($lektor))
+ {
+ $sql_query.=' AND';
+ if (!$lektor)
+ $sql_query.=' NOT';
+ $sql_query.=' lektor';
+ }
+
+ if ($fixangestellt!=null)
+ {
+ $sql_query.=' AND';
+ if (!$fixangestellt)
+ $sql_query.=' NOT';
+ $sql_query.=' fixangestellt';
+ }
+ if($fkt_kurzbz!='')
+ {
+ $sql_query.=" AND funktion_kurzbz=".$this->db_add_param($fkt_kurzbz);
+ }
+ if(!is_null($datum_von))
+ {
+ if($datum_von=='')
+ $sql_query.=" AND (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now())";
+ else
+ $sql_query.=" AND (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=".$this->db_add_param($datum_von).")";
+ }
+ if(!is_null($datum_bis))
+ {
+ if($datum_bis=='')
+ $sql_query.=" AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now())";
+ else
+ $sql_query.=" AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=".$this->db_add_param($datum_bis).")";
+ }
+ if ($stge!=null)
+ {
+ $in='';
+ foreach ($stge as $stg)
+ {
+ $in.=','.$this->db_add_param($stg, FHC_INTEGER);
+ if($stg==0)
+ {
+ $in='';
+ break;
+ }
+ }
+ if($in!='')
+ $sql_query.=' AND studiengang_kz in (-1'.$in.')';
+ }
+ $sql_query.=' ORDER BY '.$order.';';
+ //echo $sql_query;
+
+ if(!$this->db_query($sql_query))
+ {
+ $this->errormsg=$this->db_last_error();
+ return false;
+ }
+
+ $num_rows=$this->db_num_rows();
+ $result=array();
+ for($i=0;$i<$num_rows;$i++)
+ {
+ $row=$this->db_fetch_object(null,$i);
+ $l=new mitarbeiter();
+ // Personendaten
+ $l->uid=$row->uid;
+ $l->titelpre=$row->titelpre;
+ $l->titelpost=$row->titelpost;
+ $l->vorname=$row->vorname;
+ $l->vornamen=$row->vornamen;
+ $l->nachname=$row->nachname;
+ $l->gebdatum=$row->gebdatum;
+ $l->gebort=$row->gebort;
+ $l->gebzeit=$row->gebzeit;
+ $l->foto=$row->foto;
+ $l->anmerkung=$row->anmerkung;
+ $l->aktiv= $this->db_parse_bool($row->aktiv);
+ //$l->bismelden=$row->bismelden=='t'?true:false;
+ $l->homepage=$row->homepage;
+ $l->updateamum=$row->updateamum;
+ $l->updatevon=$row->updatevon;
+ // Lektorendaten
+ $l->personalnummer=$row->personalnummer;
+ $l->kurzbz=$row->kurzbz;
+ $l->lektor= $this->db_parse_bool($row->lektor);
+ $l->fixangestellt= $this->db_parse_bool($row->fixangestellt);
+ $l->standort_id = $row->standort_id;
+ $l->telefonklappe=$row->telefonklappe;
+ $l->studiengang_kz = $row->studiengang_kz;
+ //$l->ort_kurzbz=$row->ort_kurzbz;
+ // Lektor in Array speichern
+ $result[]=$l;
+ }
+ return $result;
+ }
+
+ /**
+ * Liefert die Mitarbeiter, die im angegebenen Intervall eine Zeitsperre eingetragen haben.
+ * UID optional um nur einen bestimmten Mitarbeiter abzufragen.
+ *
+ * @param $von
+ * @param $bis
+ * @param $uid Optional
+ * @return boolean
+ */
+ public function getMitarbeiterZeitsperre($von,$bis,$uid=null)
+ {
+ $sql_query="SELECT DISTINCT nachname, vorname, uid,titelpre, titelpost, vornamen
+ FROM campus.vw_mitarbeiter JOIN campus.tbl_zeitsperre ON (uid=mitarbeiter_uid)
+ WHERE ((".$this->db_add_param($von)."<=bisdatum AND ".$this->db_add_param($bis).">=bisdatum) OR (".$this->db_add_param($bis).">=vondatum AND ".$this->db_add_param($von)."<=vondatum))";
+ if($uid!=null)
+ $sql_query .= " AND mitarbeiter_uid=".$this->db_add_param($uid);
+
+ $sql_query .= " ORDER BY nachname;";
+
+ if(!$this->db_query($sql_query))
+ {
+ $this->errormsg=$this->db_last_error();
+ return false;
+ }
+
+ $num_rows=$this->db_num_rows();
+ $result=array();
+ for($i=0;$i<$num_rows;$i++)
+ {
+ $row=$this->db_fetch_object(null,$i);
+ $l=new mitarbeiter();
+ // Personendaten
+ $l->uid=$row->uid;
+ $l->titelpre=$row->titelpre;
+ $l->titelpost=$row->titelpost;
+ $l->vorname=$row->vorname;
+ $l->vornamen=$row->vornamen;
+ $l->nachname=$row->nachname;
+
+ // Lektor in Array speichern
+ $result[]=$l;
+ }
+ return $result;
+ }
+
+ /**
+ * Laedt alle Mitarbeiter einer Lehreinheit
+ * @param lehreinheit_id
+ * @return true wenn ok, false wenn Fehler
+ */
+ public function getMitarbeiterFromLehreinheit($lehreinheit_id)
+ {
+ if(!is_numeric($lehreinheit_id))
+ {
+ $this->errormsg = 'Lehreinheit_id ist ungueltig';
+ return false;
+ }
+
+ $qry = "SELECT uid, vorname, vornamen, nachname, titelpre, titelpost, kurzbz FROM lehre.tbl_lehreinheitmitarbeiter JOIN campus.vw_mitarbeiter ON(mitarbeiter_uid=uid)
+ WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER).';';
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new mitarbeiter();
+
+ $obj->uid = $row->uid;
+ $obj->vorname = $row->vorname;
+ $obj->nachname = $row->nachname;
+ $obj->titelpre = $row->titelpre;
+ $obj->titelpost = $row->titelpost;
+ $obj->kurzbz = $row->kurzbz;
+ $obj->vornamen = $row->vornamen;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Laedt alle Mitarbeiter einer Lehrveranstaltung
+ * @param lehrveranstaltung_id
+ * @return true wenn ok, false wenn Fehler
+ */
+ public function getMitarbeiterFromLehrveranstaltung($lehrveranstaltung_id)
+ {
+ if(!is_numeric($lehrveranstaltung_id))
+ {
+ $this->errormsg = 'Lehrveranstaltung_id ist ungueltig';
+ return false;
+ }
+
+ $qry = "SELECT uid, vorname, vornamen, nachname, titelpre, titelpost, kurzbz FROM lehre.tbl_lehreinheitmitarbeiter, campus.vw_mitarbeiter, lehre.tbl_lehreinheit
+ WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." AND mitarbeiter_uid=uid AND tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id;";
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new mitarbeiter();
+
+ $obj->uid = $row->uid;
+ $obj->vorname = $row->vorname;
+ $obj->nachname = $row->nachname;
+ $obj->titelpre = $row->titelpre;
+ $obj->titelpost = $row->titelpost;
+ $obj->kurzbz = $row->kurzbz;
+ $obj->vornamen = $row->vornamen;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Laedt das Personal
+ *
+ * @param $fix wenn true werden nur fixangestellte geladen
+ * @param $stgl wenn true werden nur studiengangsleiter geladen
+ * @param $fbl wenn true werden nur fachbereichsleiter geladen
+ * @param $aktiv wenn true werden nur aktive geladen, wenn false dann nur inaktve, wenn null dann alle
+ * @param $karenziert wenn true werden alle geladen die karenziert sind
+ * @param $verwendung wenn true werden alle geladen die eine BIS-Verwendung eingetragen haben
+ * @return boolean
+ */
+ public function getPersonal($fix, $stgl, $fbl, $aktiv, $karenziert, $verwendung)
+ {
+ $qry = "SELECT distinct on(mitarbeiter_uid) *, tbl_benutzer.aktiv as aktiv, tbl_mitarbeiter.insertamum, tbl_mitarbeiter.insertvon, tbl_mitarbeiter.updateamum, tbl_mitarbeiter.updatevon FROM ((public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)) JOIN public.tbl_person USING(person_id)) LEFT JOIN public.tbl_benutzerfunktion USING(uid) LEFT JOIN campus.tbl_resturlaub USING(mitarbeiter_uid) WHERE true";
+
+ if($fix=='true')
+ $qry .= " AND fixangestellt=true";
+ if($fix=='false')
+ $qry .= " AND fixangestellt=false";
+ if($stgl)
+ {
+ $qry .= " AND funktion_kurzbz='Leitung' AND EXISTS(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz)
+ AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND
+ (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())";
+ }
+ if($fbl)
+ {
+ $qry .= " AND funktion_kurzbz='Leitung' AND EXISTS(SELECT fachbereich_kurzbz FROM public.tbl_fachbereich fb WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz AND fb.aktiv)
+ AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND
+ (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())";
+ }
+ if($aktiv=='true')
+ $qry .= " AND tbl_benutzer.aktiv=true";
+ if($aktiv=='false')
+ $qry .= " AND tbl_benutzer.aktiv=false";
+ if($karenziert)
+ $qry .= " AND uid IN (SELECT mitarbeiter_uid FROM bis.tbl_bisverwendung WHERE beschausmasscode='5' AND (ende>now() OR ende is null))"; //beginn<(SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='$studiensemester_kurzbz') AND ende<(SELECT ende FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='$studiensemester_kurzbz')
+ if($verwendung=='true')
+ {
+ $qry.=" AND EXISTS(SELECT * FROM bis.tbl_bisverwendung WHERE (ende>now() or ende is null) AND tbl_bisverwendung.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid)";
+ }
+ if($verwendung=='false')
+ {
+ $qry.=" AND NOT EXISTS(SELECT * FROM bis.tbl_bisverwendung WHERE (ende>now() or ende is null) AND tbl_bisverwendung.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid)";
+ }
+
+ $qry.=';';
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new mitarbeiter();
+
+ $obj->person_id = $row->person_id;
+ $obj->staatsbuergerschaft = $row->staatsbuergerschaft;
+ $obj->geburtsnation = $row->geburtsnation;
+ $obj->sprache = $row->sprache;
+ $obj->anrede = $row->anrede;
+ $obj->titelpost = $row->titelpost;
+ $obj->titelpre = $row->titelpre;
+ $obj->nachname = $row->nachname;
+ $obj->vorname = $row->vorname;
+ $obj->vornamen = $row->vornamen;
+ $obj->gebdatum = $row->gebdatum;
+ $obj->gebort = $row->gebort;
+ $obj->gebzeit = $row->gebzeit;
+ $obj->anmerkung = $row->anmerkung;
+ $obj->homepage = $row->homepage;
+ $obj->svnr = $row->svnr;
+ $obj->ersatzkennzeichen = $row->ersatzkennzeichen;
+ $obj->familienstand = $row->familienstand;
+ $obj->geschlecht = $row->geschlecht;
+ $obj->anzahlkinder = $row->anzahlkinder;
+ $obj->bnaktiv = $this->db_parse_bool($row->aktiv);
+ $obj->uid = $row->uid;
+ $obj->personalnummer = $row->personalnummer;
+ $obj->telefonklappe = $row->telefonklappe;
+ $obj->kurzbz = $row->kurzbz;
+ $obj->lektor = $this->db_parse_bool($row->lektor);
+ $obj->fixangestellt = $this->db_parse_bool($row->fixangestellt);
+ $obj->bismelden = $this->db_parse_bool($row->bismelden);
+ $obj->stundensatz = $row->stundensatz;
+ $obj->ausbildungcode = $row->ausbildungcode;
+ $obj->ort_kurzbz = $row->ort_kurzbz;
+ $obj->standort_id = $row->standort_id;
+ $obj->anmerkung = $row->anmerkung;
+ $obj->alias = $row->alias;
+ $obj->insertamum = $row->insertamum;
+ $obj->insertvon = $row->insertvon;
+ $obj->updateamum = $row->updateamum;
+ $obj->updatevon = $row->updatevon;
+
+ $obj->urlaubstageprojahr = $row->urlaubstageprojahr;
+ $obj->resturlaubstage = $row->resturlaubstage;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Prueft ob die Kurzbz bereits existiert
+ */
+ public function kurzbz_exists($kurzbz)
+ {
+ $qry = "SELECT * FROM public.tbl_mitarbeiter WHERE kurzbz=".$this->db_add_param($kurzbz).';';
+
+ if($this->db_query($qry))
+ {
+ if($this->db_num_rows()>0)
+ {
+ $this->errormsg = '';
+ return true;
+ }
+ else
+ {
+ $this->errormsg = '';
+ return false;
+ }
+
+ }
+ else
+ {
+ $this->errormsg = 'Fehler bei DatenbankAbfrage';
+ return false;
+ }
+
+ }
+
+ /**
+ * Laedt die Mitarbeiter deren
+ * Nachname oder uid mit $filter beginnt
+ */
+ public function getMitarbeiterFilter($filter)
+ {
+ $qry = "SELECT * FROM campus.vw_mitarbeiter WHERE lower(nachname) ~* lower(".$this->db_add_param($filter).") OR uid ~* ".$this->db_add_param($filter).';';
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new mitarbeiter();
+
+ $obj->uid = $row->uid;
+ $obj->vorname = $row->vorname;
+ $obj->nachname = $row->nachname;
+ $obj->titelpre = $row->titelpre;
+ $obj->titelpost = $row->titelpost;
+ $obj->kurzbz = $row->kurzbz;
+ $obj->vornamen = $row->vornamen;
+
+ $this->result[] = $obj;
+ }
+
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Sucht die Mitarbeiter deren
+ * Nachname, Vorname, UID $filter enthaelt
+ * @param $filter
+ */
+ public function search($filter, $limit=null, $aktiv=true)
+ {
+ $qry = "SELECT vorname, nachname, titelpre, titelpost, kurzbz, vornamen, uid
+ FROM campus.vw_mitarbeiter
+ WHERE
+ lower(nachname) like lower('%".$this->db_escape($filter)."%')
+ OR lower(uid) like lower('%".$this->db_escape($filter)."%')
+ OR lower(vorname) like lower('%".$this->db_escape($filter)."%')
+ OR lower(vorname || ' ' || nachname) like lower('%".$this->db_escape($filter)."%')
+ OR lower(nachname || ' ' || vorname) like lower('%".$this->db_escape($filter)."%')
+ ORDER BY nachname, vorname";
+
+ if(!is_null($limit) && is_numeric($limit))
+ $qry.=" LIMIT ".$limit;
+
+ //echo $qry;
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new mitarbeiter();
+
+ $obj->uid = $row->uid;
+ $obj->vorname = $row->vorname;
+ $obj->nachname = $row->nachname;
+ $obj->titelpre = $row->titelpre;
+ $obj->titelpost = $row->titelpost;
+ $obj->kurzbz = $row->kurzbz;
+ $obj->vornamen = $row->vornamen;
+
+ $this->result[] = $obj;
+ }
+
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Liefert die Personen die den Suchkriterien entsprechen
+ *
+ * @param $filter
+ * @return boolean
+ */
+ public function searchPersonal($filter)
+ {
+ $qry = "SELECT
+ distinct on(mitarbeiter_uid) *, tbl_benutzer.aktiv as aktiv, tbl_mitarbeiter.insertamum,
+ tbl_mitarbeiter.insertvon, tbl_mitarbeiter.updateamum, tbl_mitarbeiter.updatevon, tbl_person.svnr
+ FROM ((public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)) JOIN public.tbl_person USING(person_id)) LEFT JOIN campus.tbl_resturlaub USING(mitarbeiter_uid)
+ WHERE lower(COALESCE(nachname,'') ||' '|| COALESCE(vorname,'')) ~* lower(".$this->db_add_param($filter).") OR
+ lower(COALESCE(vorname,'') ||' '|| COALESCE(nachname,'')) ~* lower(".$this->db_add_param($filter).") OR
+ uid ~* ".$this->db_add_param($filter)." ";
+ if(is_numeric($filter))
+ $qry.="OR personalnummer = ".$this->db_add_param($filter)." OR svnr = ".$this->db_add_param($filter).";";
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new mitarbeiter();
+
+ $obj->person_id = $row->person_id;
+ $obj->staatsbuergerschaft = $row->staatsbuergerschaft;
+ $obj->geburtsnation = $row->geburtsnation;
+ $obj->sprache = $row->sprache;
+ $obj->anrede = $row->anrede;
+ $obj->titelpost = $row->titelpost;
+ $obj->titelpre = $row->titelpre;
+ $obj->nachname = $row->nachname;
+ $obj->vorname = $row->vorname;
+ $obj->vornamen = $row->vornamen;
+ $obj->gebdatum = $row->gebdatum;
+ $obj->gebort = $row->gebort;
+ $obj->gebzeit = $row->gebzeit;
+ $obj->anmerkung = $row->anmerkung;
+ $obj->homepage = $row->homepage;
+ $obj->svnr = $row->svnr;
+ $obj->ersatzkennzeichen = $row->ersatzkennzeichen;
+ $obj->familienstand = $row->familienstand;
+ $obj->geschlecht = $row->geschlecht;
+ $obj->anzahlkinder = $row->anzahlkinder;
+ $obj->bnaktiv = $this->db_parse_bool($row->aktiv);
+ $obj->uid = $row->uid;
+ $obj->personalnummer = $row->personalnummer;
+ $obj->telefonklappe = $row->telefonklappe;
+ $obj->kurzbz = $row->kurzbz;
+ $obj->lektor = $this->db_parse_bool($row->lektor);
+ $obj->fixangestellt = $this->db_parse_bool($row->fixangestellt);
+ $obj->bismelden = $this->db_parse_bool($row->bismelden);
+ $obj->stundensatz = $row->stundensatz;
+ $obj->ausbildungcode = $row->ausbildungcode;
+ $obj->ort_kurzbz = $row->ort_kurzbz;
+ $obj->standort_id = $row->standort_id;
+ $obj->anmerkung = $row->anmerkung;
+ $obj->alias = $row->alias;
+ $obj->insertamum = $row->insertamum;
+ $obj->insertvon = $row->insertvon;
+ $obj->updateamum = $row->updateamum;
+ $obj->updatevon = $row->updatevon;
+
+ $obj->urlaubstageprojahr = $row->urlaubstageprojahr;
+ $obj->resturlaubstage = $row->resturlaubstage;
+
+ $this->result[] = $obj;
+ }
+ return false;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * gibt array mit allen Mitarbeitern zurueck
+ * @return array mit Mitarbeitern
+ */
+ public function getMitarbeiterOrganisationseinheit($oe_kurzbz)
+ {
+ $sql_query="SELECT DISTINCT campus.vw_mitarbeiter.uid, titelpre, titelpost, vorname, vornamen, nachname, gebdatum, gebort, gebzeit, anmerkung, aktiv,
+ homepage, vw_mitarbeiter.updateamum, vw_mitarbeiter.updatevon, personalnummer, kurzbz, lektor, fixangestellt, standort_id, telefonklappe FROM campus.vw_mitarbeiter
+ JOIN public.tbl_benutzerfunktion USING (uid)
+ WHERE funktion_kurzbz='oezuordnung' AND oe_kurzbz=".$this->db_add_param($oe_kurzbz)." AND
+ (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND
+ (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())
+ ORDER BY nachname, vorname";
+
+ if($this->db_query($sql_query))
+ {
+ $num_rows=$this->db_num_rows();
+ $result=array();
+ for($i=0;$i<$num_rows;$i++)
+ {
+ $row=$this->db_fetch_object(null,$i);
+ $l=new mitarbeiter();
+ // Personendaten
+ $l->uid=$row->uid;
+ $l->titelpre=$row->titelpre;
+ $l->titelpost=$row->titelpost;
+ $l->vorname=$row->vorname;
+ $l->vornamen=$row->vornamen;
+ $l->nachname=$row->nachname;
+ $l->gebdatum=$row->gebdatum;
+ $l->gebort=$row->gebort;
+ $l->gebzeit=$row->gebzeit;
+ //$l->foto=$row->foto;
+ $l->anmerkung=$row->anmerkung;
+ $l->aktiv= $this->db_parse_bool($row->aktiv);
+ $l->homepage=$row->homepage;
+ $l->updateamum=$row->updateamum;
+ $l->updatevon=$row->updatevon;
+ // Lektorendaten
+ $l->personalnummer=$row->personalnummer;
+ $l->kurzbz=$row->kurzbz;
+ $l->lektor= $this->db_parse_bool($row->lektor);
+ $l->fixangestellt=$this->db_parse_bool($row->fixangestellt);
+ $l->standort_id = $row->standort_id;
+ $l->telefonklappe=$row->telefonklappe;
+
+ // Lektor in Array speichern
+ $result[]=$l;
+ }
+ return $result;
+ }
+ else
+ {
+ $this->errormsg="Fehler beim Laden der Daten";
+ return false;
+ }
+ }
+
+ /**
+ * Gibt ein Array mit den UIDs der Vorgesetzten zurück
+ * @return uid
+ */
+ public function getVorgesetzte($uid=null)
+ {
+ $return=false;
+ if (is_null($uid))
+ $uid=$this->uid;
+
+ $qry = "SELECT
+ uid as vorgesetzter
+ FROM
+ public.tbl_benutzerfunktion
+ WHERE
+ funktion_kurzbz='Leitung' AND
+ (datum_von is null OR datum_von<=now()) AND
+ (datum_bis is null OR datum_bis>=now()) AND
+ oe_kurzbz in (SELECT oe_kurzbz
+ FROM public.tbl_benutzerfunktion
+ WHERE
+ funktion_kurzbz='oezuordnung' AND uid=".$this->db_add_param($uid)." AND
+ (datum_von is null OR datum_von<=now()) AND
+ (datum_bis is null OR datum_bis>=now())
+ );";
+
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ if ($row->vorgesetzter!='')
+ {
+ $this->vorgesetzte[]=$row->vorgesetzter;
+ $return=true;
+ }
+ }
+
+ $this->vorgesetzte = array_unique($this->vorgesetzte);
+ }
+ else
+ {
+ $this->errormsg = 'Fehler bei einer Datenbankabfrage!';
+ }
+ return $return;
+ }
+
+ /**
+ * Gibt ein Array mit den UIDs der Untergebenen zurueck
+ */
+ public function getUntergebene($uid=null)
+ {
+ if (is_null($uid))
+ $uid=$this->uid;
+
+ // Organisationseinheiten holen von denen die Person die Leitung hat
+ $qry = "SELECT * FROM public.tbl_benutzerfunktion
+ WHERE funktion_kurzbz='Leitung' AND uid=".$this->db_add_param($uid)." AND
+ (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND
+ (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())";
+
+ if($this->db_query($qry))
+ {
+ $oe='';
+ while($row = $this->db_fetch_object())
+ {
+ if($oe!='')
+ $oe.=',';
+ $oe.=$this->db_add_param($row->oe_kurzbz);
+ }
+ }
+
+ //Alle Personen holen die dieser Organisationseinheit untergeordnet sind
+ $qry = "SELECT distinct uid FROM public.tbl_benutzerfunktion WHERE ((funktion_kurzbz='oezuordnung' AND (false ";
+
+ if($oe!='')
+ $qry.=" OR oe_kurzbz in($oe)";
+
+ $qry.=")) ";
+
+ if($oe!='')
+ $qry.=" OR (funktion_kurzbz='ass' AND oe_kurzbz in($oe))";
+
+ $qry.= ") AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND
+ (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now());";
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $this->untergebene[]=$row->uid;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Ermitteln der Untergebenen';
+ return false;
+ }
+
+ }
+
+ /**
+ *
+ * @param $filter Buchstabe mit dem der Mitarbeiter beginnt
+ * @param $fixangestellt false wenn externer mitarbeiter
+ * @param $studSemArray Array mit Studiensemestern in denen der externe Lektor zumindest in einem Unterrichtet haben soll
+ * @return boolean
+ */
+ public function getMitarbeiterForZutrittskarte($filter, $fixangestellt=true, $studSemArray)
+ {
+ $qry = "SELECT
+ vorname,nachname,gebdatum,uid,personalnummer,person_id
+ FROM
+ campus.vw_mitarbeiter
+ WHERE
+ aktiv='true'";
+ if($filter!='')
+ $qry.=" AND UPPER(SUBSTRING(nachname,1,1))=".$this->db_add_param($filter,FHC_STRING);
+
+ if($fixangestellt)
+ $qry.=" AND fixangestellt";
+ else
+ $qry.=" AND NOT fixangestellt AND EXISTS
+ (SELECT * FROM lehre.tbl_lehreinheitmitarbeiter
+ JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
+ WHERE tbl_lehreinheitmitarbeiter.mitarbeiter_uid=uid
+ AND tbl_lehreinheit.studiensemester_kurzbz in (".$this->implode4SQL($studSemArray).")) ";
+ $qry.=" ORDER BY nachname, vorname";
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ $mi = new mitarbeiter();
+
+ $mi->vorname = $row->vorname;
+ $mi->nachname = $row->nachname;
+ $mi->gebdatum = $row->gebdatum;
+ $mi->uid = $row->uid;
+ $mi->personalnummer = $row->personalnummer;
+ $mi->person_id = $row->person_id;
+
+ $this->result[] = $mi;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = "Fehler bei der Abfrage aufgetreten";
+ return false;
+ }
+ }
+
+
+ /**
+ * Gibt alle Mitarbeiter während des Meldezeitraumes zurück
+ * @param type $meldungBeginn Start des Meldezeitraumes
+ * @param type $meldungEnde Ende des Meldezeitraumes
+ * @return boolean
+ */
+ public function getMitarbeiterforMeldung($meldungBeginn, $meldungEnde)
+ {
+
+ $qry='SELECT DISTINCT ON (UID) *
+ FROM
+ public.tbl_mitarbeiter
+ JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)
+ JOIN public.tbl_person USING(person_id)
+ JOIN bis.tbl_bisverwendung USING(mitarbeiter_uid)
+ JOIN bis.tbl_beschaeftigungsausmass USING(beschausmasscode)
+ WHERE
+ bismelden
+ AND personalnummer>0
+ AND (tbl_bisverwendung.ende is NULL OR tbl_bisverwendung.ende>'.$this->db_add_param($meldungBeginn).')
+ ORDER BY uid, nachname,vorname
+ ';
+
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ $l=new mitarbeiter();
+ // Personendaten
+ $l->uid=$row->uid;
+ $l->titelpre=$row->titelpre;
+ $l->titelpost=$row->titelpost;
+ $l->vorname=$row->vorname;
+ $l->vornamen=$row->vornamen;
+ $l->nachname=$row->nachname;
+ $l->gebdatum=$row->gebdatum;
+ $l->gebort=$row->gebort;
+ $l->gebzeit=$row->gebzeit;
+ $l->geschlecht=$row->geschlecht;
+ //$l->foto=$row->foto;
+ $l->anmerkung=$row->anmerkung;
+ $l->aktiv= $this->db_parse_bool($row->aktiv);
+ $l->homepage=$row->homepage;
+ $l->updateamum=$row->updateamum;
+ $l->updatevon=$row->updatevon;
+ // Lektorendaten
+ $l->personalnummer=$row->personalnummer;
+ $l->kurzbz=$row->kurzbz;
+ $l->lektor= $this->db_parse_bool($row->lektor);
+ $l->fixangestellt= $this->db_parse_bool($row->fixangestellt);
+ $l->standort_id = $row->standort_id;
+ $l->telefonklappe=$row->telefonklappe;
+ $l->ausbildungcode=$row->ausbildungcode;
+ $l->ba1code=$row->ba1code;
+ $l->ba2code=$row->ba2code;
+ $l->verwendung_code=$row->verwendung_code;
+ $l->beschäftigungsausmass = $row->max;
+ $l->vertragsstunden = $row->vertragsstunden;
+
+ // Lektor in Array speichern
+ array_push($this->result, $l);
+ }
+ return true;
+ }
+ return false;
+ }
+}
+?>
diff --git a/include/organisationseinheit.class.php b/include/organisationseinheit.class.php
index e0122208c..2364c28bd 100644
--- a/include/organisationseinheit.class.php
+++ b/include/organisationseinheit.class.php
@@ -556,15 +556,23 @@ class organisationseinheit extends basis_db
/**
* Sucht nach einer Organisationseinheit
- * @param type $oetyp_kurzbz
+ * @param type $searchItem
* @return boolean true, wenn ok; false, im Fehlerfall
*/
public function search($searchItem)
{
$qry = 'SELECT * FROM public.tbl_organisationseinheit WHERE
- (LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') OR
- LOWER(organisationseinheittyp_kurzbz) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\'))
- ORDER BY organisationseinheittyp_kurzbz, bezeichnung;';
+ (
+ LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
+ OR
+ LOWER(organisationseinheittyp_kurzbz) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
+ )';
+ foreach($searchItem as $value)
+ {
+ $qry.=' OR (oe_kurzbz='.$this->db_add_param($value).')
+ OR (bezeichnung='.$this->db_add_param($value).')';
+ }
+ $qry.= 'ORDER BY organisationseinheittyp_kurzbz, bezeichnung;';
if($this->db_query($qry))
{
diff --git a/include/person.class.php b/include/person.class.php
index 9f85afc1f..89405fac3 100644
--- a/include/person.class.php
+++ b/include/person.class.php
@@ -28,7 +28,7 @@ require_once(dirname(__FILE__).'/datum.class.php');
class person extends basis_db
{
public $errormsg; // string
- public $new; // boolean
+ public $new=true; // boolean
public $personen = array(); // person Objekt
public $done=false; // boolean
@@ -51,12 +51,12 @@ class person extends basis_db
public $ersatzkennzeichen; // char(10)
public $familienstand; // char(1)
public $anzahlkinder; // smalint
- public $aktiv; // boolean
+ public $aktiv=true; // boolean
public $insertamum; // timestamp
public $insertvon; // varchar(16)
public $updateamum; // timestamp
public $updatevon; // varchar(16)
- public $geschlecht; // varchar(1)
+ public $geschlecht='u'; // varchar(1) - Default: undefined
public $staatsbuergerschaft;// varchar(3)
public $geburtsnation; // varchar(3);
public $ext_id; // bigint
@@ -137,7 +137,7 @@ class person extends basis_db
$this->errormsg = "Es ist kein Personendatensatz mit dieser ID vorhanden";
return false;
}
-
+ $this->new=false;
return true;
}
else
@@ -867,5 +867,69 @@ class person extends basis_db
return $fullname;
}
- }
+ /**
+ * Laedt Personendaten eines Benutzers
+ * @param $uid
+ */
+ function getPersonFromBenutzer($uid)
+ {
+ $qry = "SELECT
+ *
+ FROM
+ public.tbl_person
+ JOIN public.tbl_benutzer USING(person_id)
+ WHERE
+ uid=".$this->db_add_param($uid, FHC_STRING);
+
+ if($this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object())
+ {
+ $this->person_id = $row->person_id;
+ $this->staatsbuergerschaft = $row->staatsbuergerschaft;
+ $this->geburtsnation = $row->geburtsnation;
+ $this->sprache = $row->sprache;
+ $this->anrede = $row->anrede;
+ $this->titelpost = $row->titelpost;
+ $this->titelpre = $row->titelpre;
+ $this->nachname = $row->nachname;
+ $this->vorname = $row->vorname;
+ $this->vornamen = $row->vornamen;
+ $this->gebdatum = $row->gebdatum;
+ $this->gebort = $row->gebort;
+ $this->gebzeit = $row->gebzeit;
+ $this->foto = $row->foto;
+ $this->anmerkungen = $row->anmerkung;
+ $this->homepage = $row->homepage;
+ $this->svnr = $row->svnr;
+ $this->ersatzkennzeichen = $row->ersatzkennzeichen;
+ $this->familienstand = $row->familienstand;
+ $this->geschlecht = $row->geschlecht;
+ $this->anzahlkinder = $row->anzahlkinder;
+ $this->aktiv = $this->db_parse_bool($row->aktiv);
+ $this->updateamum = $row->updateamum;
+ $this->updatevon = $row->updatevon;
+ $this->insertamum = $row->insertamum;
+ $this->insertvon = $row->insertvon;
+ $this->ext_id = $row->ext_id;
+ $this->kurzbeschreibung = $row->kurzbeschreibung;
+ $this->zugangscode = $row->zugangscode;
+ $this->foto_sperre = $this->db_parse_bool($row->foto_sperre);
+ $this->matr_nr = $row->matr_nr;
+ $this->uid = $row->uid;
+ $this->aktiv = $this->db_parse_bool($row->aktiv);;
+ $this->alias = $row->alias;
+ $this->updateaktivvon = $row->updateaktivvon;
+ $this->updateaktivam = $row->updateaktivam;
+ $this->aktivierungscode = $row->aktivierungscode;
+ }
+ else
+ {
+ $this->errormsg = 'Keine Personendaten zu dieser UID gefunden';
+ return false;
+ }
+ }
+ }
+
+}
?>
diff --git a/include/phrasen.class.php b/include/phrasen.class.php
index 70b438916..964908dcd 100644
--- a/include/phrasen.class.php
+++ b/include/phrasen.class.php
@@ -66,6 +66,18 @@ class phrasen extends basis_db
if(file_exists($filename))
include($filename);
+ $addons = new addon();
+
+ foreach($addons->aktive_addons as $addon)
+ {
+ $addon_locale_filename = dirname(__FILE__).'/../addons/'.$addon.'/locale/'.$sprache->locale.'/'.$module.'.php';
+
+ if(file_exists($addon_locale_filename))
+ {
+ include($addon_locale_filename);
+ }
+ }
+
$sprache = new sprache();
$sprache->load($this->sprache);
//Anzeigesprache laden
@@ -73,17 +85,16 @@ class phrasen extends basis_db
if(file_exists($filename))
include($filename);
-
- $addons = new addon();
-
- foreach($addons->aktive_addons as $addon)
- {
- $addon_locale_filename = dirname(__FILE__).'/../addons/'.$addon.'/locale/'.$sprache->locale.'/'.$module.'.php';
-
- if(file_exists($addon_locale_filename))
- {
- include($addon_locale_filename);
- }
+
+
+ foreach($addons->aktive_addons as $addon)
+ {
+ $addon_locale_filename = dirname(__FILE__).'/../addons/'.$addon.'/locale/'.$sprache->locale.'/'.$module.'.php';
+
+ if(file_exists($addon_locale_filename))
+ {
+ include($addon_locale_filename);
+ }
}
$this->loadedModules[]=$module;
}
@@ -120,4 +131,4 @@ class phrasen extends basis_db
return vsprintf($string, $value);
}
}
-?>
\ No newline at end of file
+?>
diff --git a/include/prestudent.class.php b/include/prestudent.class.php
index 5e3761e31..74fbce853 100644
--- a/include/prestudent.class.php
+++ b/include/prestudent.class.php
@@ -403,11 +403,11 @@ class prestudent extends person
$ps->zgv_code = $row->zgv_code;
$ps->zgvort = $row->zgvort;
$ps->zgvdatum = $row->zgvdatum;
- $ps->zgvnation = $row->zgvnation;
+ //$ps->zgvnation = $row->zgvnation;
$ps->zgvmas_code = $row->zgvmas_code;
$ps->zgvmaort = $row->zgvmaort;
$ps->zgvmadatum = $row->zgvmadatum;
- $ps->zgvmanation = $row->zgvmanation;
+ //$ps->zgvmanation = $row->zgvmanation;
$ps->aufnahmeschluessel = $row->aufnahmeschluessel;
$ps->facheinschlberuf = $this->db_parse_bool($row->facheinschlberuf);
$ps->anmeldungreihungstest = $row->anmeldungreihungstest;
@@ -1660,30 +1660,39 @@ class prestudent extends person
}
}
- public function getSemesterZuUid($uid) {
+ /**
+ * Laedt die Studiensemester eines Studenten
+ * @param $uid
+ * @return array mit Studiensemestern
+ */
+ public function getSemesterZuUid($uid)
+ {
- $qry = 'SELECT studiensemester_kurzbz, bezeichnung '
- . 'FROM public.tbl_prestudentstatus '
- . 'JOIN public.tbl_prestudent '
- . 'USING (prestudent_id) '
- . 'JOIN public.tbl_student '
- . 'USING (prestudent_id) '
- . 'JOIN public.tbl_studiensemester '
- . 'USING (studiensemester_kurzbz) '
- . 'WHERE status_kurzbz IN ('
- . $this->db_add_param("Student") . ', '
- . $this->db_add_param("Diplomand") . ', '
- . $this->db_add_param("Incoming") . ')'
- . ' AND student_uid = ' . $this->db_add_param($uid)
- . ' ORDER BY ausbildungssemester';
+ $qry = "SELECT
+ tbl_studiensemester.studiensemester_kurzbz, tbl_studiensemester.bezeichnung
+ FROM
+ public.tbl_prestudentstatus
+ JOIN public.tbl_prestudent USING (prestudent_id)
+ JOIN public.tbl_student USING (prestudent_id)
+ JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
+ WHERE
+ status_kurzbz IN ('Student', 'Diplomand','Incoming')
+ AND student_uid = ". $this->db_add_param($uid)."
+ ORDER BY ausbildungssemester";
- $result = $this->db_query($qry);
- $semester = array();
+ if($result = $this->db_query($qry))
+ {
+ $semester = array();
- while($row = $this->db_fetch_object($result)) {
- $semester[$row->studiensemester_kurzbz] = $row->bezeichnung;
+ while($row = $this->db_fetch_object($result))
+ $semester[$row->studiensemester_kurzbz] = $row->bezeichnung;
+
+ return $semester;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
}
-
- return $semester;
}
}
diff --git a/include/studiengang.class.php b/include/studiengang.class.php
index 301904ae7..27e6992dd 100644
--- a/include/studiengang.class.php
+++ b/include/studiengang.class.php
@@ -710,4 +710,67 @@ class studiengang extends basis_db
return false;
}
}
+
+ /**
+ * Sucht nach einem Studiengang
+ * @param type $searchItem
+ * @return boolean true, wenn ok; false, im Fehlerfall
+ */
+ public function search($searchItem)
+ {
+ $qry = 'SELECT * FROM public.tbl_studiengang WHERE
+ LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') OR
+ LOWER(english) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
+ ORDER BY typ,bezeichnung;';
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new studiengang();
+
+ $obj->studiengang_kz = $row->studiengang_kz;
+ $obj->kurzbz = $row->kurzbz;
+ $obj->kurzbzlang = $row->kurzbzlang;
+ $obj->bezeichnung = $row->bezeichnung;
+ $obj->english = $row->english;
+ $obj->typ = $row->typ;
+ $obj->farbe = $row->farbe;
+ $obj->email = $row->email;
+ $obj->max_semester = $row->max_semester;
+ $obj->max_verband = $row->max_verband;
+ $obj->max_gruppe = $row->max_gruppe;
+ $obj->erhalter_kz = $row->erhalter_kz;
+ $obj->bescheid = $row->bescheid;
+ $obj->bescheidbgbl1 = $row->bescheidbgbl1;
+ $obj->bescheidbgbl2 = $row->bescheidbgbl2;
+ $obj->bescheidgz = $row->bescheidgz;
+ $obj->bescheidvom = $row->bescheidvom;
+ $obj->ext_id = $row->ext_id;
+ $obj->kuerzel = mb_strtoupper($row->typ . $row->kurzbz);
+ $obj->orgform_kurzbz = $row->orgform_kurzbz;
+ $obj->zusatzinfo_html = $row->zusatzinfo_html;
+ $obj->sprache = $row->sprache;
+ $obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
+ $obj->studienplaetze = $row->studienplaetze;
+ $obj->oe_kurzbz = $row->oe_kurzbz;
+ $obj->lgartcode = $row->lgartcode;
+ $obj->telefon = $row->telefon;
+ $obj->titelbescheidvom = $row->titelbescheidvom;
+ $obj->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung);
+ $obj->moodle = $this->db_parse_bool($row->moodle);
+ $obj->mischform = $this->db_parse_bool($row->mischform);
+ $obj->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
+ $obj->aktiv = $this->db_parse_bool($row->aktiv);
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden des Studiengangs';
+ return false;
+ }
+ }
}
diff --git a/include/stundenplan.class.php b/include/stundenplan.class.php
index 266571b9e..4e2ce85fc 100644
--- a/include/stundenplan.class.php
+++ b/include/stundenplan.class.php
@@ -262,9 +262,9 @@ class stundenplan extends basis_db
public function getStunden($lehreinheit_id)
{
- $qry = 'SELECT count(*) AS stunden '
+ $qry = 'SELECT count(*) as stunden FROM (SELECT lehreinheit_id, datum, stunde '
. 'FROM lehre.tbl_stundenplan '
- . 'WHERE lehreinheit_id = ' . $this->db_add_param($lehreinheit_id);
+ . 'WHERE lehreinheit_id = ' . $this->db_add_param($lehreinheit_id).' GROUP by lehreinheit_id, datum, stunde) as a';
$result = $this->db_query($qry);
diff --git a/include/zeitsperre.class.php b/include/zeitsperre.class.php
index 01516a590..5f43008b5 100755
--- a/include/zeitsperre.class.php
+++ b/include/zeitsperre.class.php
@@ -480,9 +480,9 @@ class zeitsperre extends basis_db
unset($this->result);
$this->result=array();
- $qry = "select datum::date, freigabevon, zeitsperretyp_kurzbz
- from (SELECT generate_series(vondatum::timestamp, bisdatum::timestamp, '1 day') as datum, freigabevon, mitarbeiter_uid, zeitsperretyp_kurzbz FROM campus.tbl_zeitsperre ) a
- where a.mitarbeiter_uid = ".$this->db_add_param($uid)." and datum>(now() - interval '50 Days') and zeitsperretyp_kurzbz in ('Krank','Urlaub')";
+ $qry = "select datum::date, freigabevon, zeitsperretyp_kurzbz
+ from (SELECT generate_series(vondatum::timestamp, bisdatum::timestamp, '1 day') as datum, freigabevon, mitarbeiter_uid, zeitsperretyp_kurzbz FROM campus.tbl_zeitsperre where vonstunde is null and bisstunde is null) a
+ where a.mitarbeiter_uid = ".$this->db_add_param($uid)." and datum>(now() - interval '50 Days') and zeitsperretyp_kurzbz in ('Krank','Urlaub', 'ZA', 'DienstV')";
diff --git a/locale/de-AT/anwesenheitsliste.php b/locale/de-AT/anwesenheitsliste.php
index 721a369fc..ad74d174b 100644
--- a/locale/de-AT/anwesenheitsliste.php
+++ b/locale/de-AT/anwesenheitsliste.php
@@ -7,4 +7,12 @@ $this->phrasen['anwesenheitsliste/keineStudentenVorhanden']='Derzeit sind in die
$this->phrasen['anwesenheitsliste/erstellenDerListeKlicken']='Zum Erstellen der Liste klicken Sie bitte auf die gewünschte Gruppe!';
$this->phrasen['anwesenheitsliste/gesamtliste']='Gesamtliste';
$this->phrasen['anwesenheitsliste/fehlerhafteParameteruebergabe']='Fehlerhafte Parameteruebergabe. Bitte versuchen Sie es erneut';
-?>
\ No newline at end of file
+
+$this->phrasen['anwesenheitsliste/anwesenheit']='Anwesenheit';
+$this->phrasen['anwesenheitsliste/leAbgeschlossen']='LE abgeschlossen';
+$this->phrasen['anwesenheitsliste/fehlstunden']='Fehlstunden';
+$this->phrasen['anwesenheitsliste/keineLVsGefunden']='Es konnten keine Lehrveranstaltungen gefunden werden';
+$this->phrasen['anwesenheitsliste/waehleLV']='Bitte wählen Sie eine Lehrveranstaltung aus';
+$this->phrasen['anwesenheitsliste/keineStundenvorhanden']='Derzeit sind keine Stunden eingetragen';
+$this->phrasen['anwesenheitsliste/keineEintraegeGefunden']='Es wurden keine Einträge gefunden';
+?>
diff --git a/locale/de-AT/bewerbung.php b/locale/de-AT/bewerbung.php
deleted file mode 100755
index 91216acbd..000000000
--- a/locale/de-AT/bewerbung.php
+++ /dev/null
@@ -1,51 +0,0 @@
-phrasen['bewerbung/welcome']='Willkommen bei der Online Bewerbung';
-$this->phrasen['bewerbung/registration']='Registration';
-$this->phrasen['bewerbung/registrieren']='Registrieren';
-$this->phrasen['bewerbung/registrierenOderZugangscode']='Hier registrieren oder Zugangscode eingeben';
-$this->phrasen['bewerbung/einleitungstext']='Für eine Bewerbung füllen Sie bitte das Formular vollständig aus und klicken Sie anschließend auf "Registrieren".
- Danach haben Sie noch die Möglichkeit, weitere Daten einzugeben und Dokumente hochzuladen, bevor Sie Ihre Bewerbung abschicken.'; //noch zu übersetzen
-$this->phrasen['bewerbung/login']='Login';
-$this->phrasen['bewerbung/zugangscode']='Zugangscode';
-$this->phrasen['bewerbung/fallsVorhanden']='(falls vorhanden)';
-$this->phrasen['bewerbung/mailtextHtml']='Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.';
-$this->phrasen['bewerbung/mailtext']='Sehr geehrteR Herr/Frau %1$s %2$s.
- Vielen Dank für Ihr Interesse an einem Studiengang der '.CAMPUS_NAME.'.
- Um sich für einen Studiengang zu bewerben verwenden Sie bitte folgenden Link und Zugangscode:
- Mit freundlichen Grüßen,
- '.CAMPUS_NAME;
-$this->phrasen['bewerbung/zugangsdatenFalsch']='Der eingegebene Zugangscode ist falsch oder Sie haben sich noch nicht registriert.';
-$this->phrasen['bewerbung/fehlerBeimSenden']='Beim senden der E-Mail ist ein Fehler aufgetreten.';
-$this->phrasen['bewerbung/zurueckZurAnmeldung']='Zurück zur Anmeldung.';
-$this->phrasen['bewerbung/sicherheitscodeFalsch']='Der eingegebene Sicherheitscode war falsch.';
-$this->phrasen['bewerbung/geplanterStudienbeginn']='Geplanter Studienbeginn';
-$this->phrasen['bewerbung/bitteWaehlen']='Bitte wählen...';
-$this->phrasen['bewerbung/studienrichtung']='Gewünschte Studienrichtung(en)';
-$this->phrasen['bewerbung/bitteStudienrichtungWaehlen']='Bitte mindestend eine Studienrichtung auswählen.';
-$this->phrasen['bewerbung/bitteVornameAngeben']='Bitte geben Sie Ihren Vornamen ein.';
-$this->phrasen['bewerbung/bitteNachnameAngeben']='Bitte geben Sie Ihren Nachnamen ein.';
-$this->phrasen['bewerbung/bitteGeburtsdatumEintragen']='Bitte tragen Sie Ihr Geburtsdatum ein.';
-$this->phrasen['bewerbung/bitteGeschlechtWaehlen']='Bitte geben Sie Ihr Geschlecht ein.';
-$this->phrasen['bewerbung/bitteEmailAngeben']='Bitte geben Sie eine gültige eMail-Adresse ein.';
-$this->phrasen['bewerbung/bitteStudienbeginnWaehlen']='Bitte wählen Sie den gewünschten Studienbeginn.';
-$this->phrasen['bewerbung/captcha']='Geben Sie bitte hier die Zeichen aus der Grafik ein (Spamschutz).';
-$this->phrasen['bewerbung/andereGrafik']='Andere Grafik';
-$this->phrasen['bewerbung/datumFormat']='TT.MM.JJJJ';
-$this->phrasen['bewerbung/egal']='egal';
-$this->phrasen['bewerbung/orgform']='Organisationsform';
-$this->phrasen['bewerbung/orgform/berufsbegleitend']='Berufsbegleitend';
-$this->phrasen['bewerbung/orgform/vollzeit']='Vollzeit';
-$this->phrasen['bewerbung/orgform/distance']='Fernstudium';
-$this->phrasen['bewerbung/sprache']='Sprache';
-$this->phrasen['bewerbung/sprache/deutsch']='Deutsch';
-$this->phrasen['bewerbung/sprache/englisch']='Englisch';
-$this->phrasen['bewerbung/topprio']='Oberste Priorität';
-$this->phrasen['bewerbung/alternative']='Alternative';
-$this->phrasen['bewerbung/priowaehlen']='Primären und alternative Variante auswählen';
-$this->phrasen['bewerbung/ok']='OK';
-$this->phrasen['bewerbung/abbrechen']='Abbrechen';
-$this->phrasen['bewerbung/prioBeschreibungstext'] = 'Bitte wählen Sie die Organisationsform und Sprache. Für den Fall dass es keine Plätze mehr gibt können Sie auch eine Alternative auswählen.';
-$this->phrasen['bewerbung/prioUeberschrifttopprio'] = 'Oberste Priorität';
-$this->phrasen['bewerbung/prioUeberschriftalternative'] = 'Alternative';
diff --git a/locale/de-AT/global.php b/locale/de-AT/global.php
index a7299ef4c..b777d7513 100755
--- a/locale/de-AT/global.php
+++ b/locale/de-AT/global.php
@@ -9,6 +9,7 @@ $this->phrasen['global/studiengangsleitung']='Studiengangsleitung';
$this->phrasen['global/lehrveranstaltung']='Lehrveranstaltung';
$this->phrasen['global/lehreinheit']='Lehreinheit';
$this->phrasen['global/organisationseinheit']='Organisationseinheit';
+$this->phrasen['global/organisationseinheiten']='Organisationseinheiten';
$this->phrasen['global/fhtw']='Fachhochschule Technikum Wien';
$this->phrasen['global/fhTechnikumWien']='FH Technikum Wien';
diff --git a/locale/de-AT/lvaliste.php b/locale/de-AT/lvaliste.php
index 377072373..46b7e3750 100755
--- a/locale/de-AT/lvaliste.php
+++ b/locale/de-AT/lvaliste.php
@@ -1,7 +1,5 @@
phrasen['lvaliste/titel']='Lehrveranstaltungsübersicht';
-$this->phrasen['lvaliste/anwesenheit']='Anwesenheit';
-$this->phrasen['lvaliste/anwesenheit/studenten']='Anwesenheit der Studenten';
$this->phrasen['lvaliste/hilfeText']='Erklärung\n\nStg-Sem: Studiengang-Semester\nGruppen: Teilnehmende Gruppen\nBlock: Blockung (1->Einzelstunden; 2->Doppelstunden; ...)\nWR: Wochenrhythmus (1->jede Woche; 2->jede 2. Woche; ...)\nStd: gesamte Semesterstunden\nKW: Kalenderwoche in der die Lehrveranstaltung startet';
$this->phrasen['lvaliste/hilfeAnzeigen']='Hilfe anzeigen';
diff --git a/locale/de-AT/menu.php b/locale/de-AT/menu.php
index e376a55b1..24083d2a2 100755
--- a/locale/de-AT/menu.php
+++ b/locale/de-AT/menu.php
@@ -7,5 +7,6 @@ $this->phrasen['menu/organisationseinheit']='Zeitsperren nach Organisationseinhe
$this->phrasen['menu/assistenz']='Zeitsperren aller AssistentInnen';
$this->phrasen['menu/lektoren']='Lektoren';
$this->phrasen['menu/urlaubAlle']='Alle';
-$this->phrasen['menu/suchePersonOrtDokumentInhalt']='Suche Person / Ort / Dokument / Inhalt / Durchwahl';
+$this->phrasen['menu/suchePersonOrtDokumentInhalt']='Suche Person / OE / Ort / Dokument / Inhalt / DW';
+$this->phrasen['menu/suchePersonOrtDokumentInhaltLang']='Suche Person / Organisationseinheit / Ort / Dokument / Inhalt / Durchwahl';
?>
diff --git a/locale/en-US/anwesenheitsliste.php b/locale/en-US/anwesenheitsliste.php
index 2a042a6bc..08f6d2987 100644
--- a/locale/en-US/anwesenheitsliste.php
+++ b/locale/en-US/anwesenheitsliste.php
@@ -7,4 +7,12 @@ $this->phrasen['anwesenheitsliste/keineStudentenVorhanden']='There are currently
$this->phrasen['anwesenheitsliste/erstellenDerListeKlicken']='To create the list, please click on the desired group!';
$this->phrasen['anwesenheitsliste/gesamtliste']='Complete List';
$this->phrasen['anwesenheitsliste/fehlerhafteParameteruebergabe']='Incorrect parameter transfer. Please try again.';
-?>
\ No newline at end of file
+
+$this->phrasen['anwesenheitsliste/anwesenheit']='Attendance List';
+$this->phrasen['anwesenheitsliste/leAbgeschlossen']='LE completed';
+$this->phrasen['anwesenheitsliste/fehlstunden']='Fehlstunden';
+$this->phrasen['anwesenheitsliste/keineLVsGefunden']='Es konnten keine Lehrveranstaltungen gefunden werden';
+$this->phrasen['anwesenheitsliste/waehleLV']='Bitte wählen Sie eine Lehrveranstaltung aus';
+$this->phrasen['anwesenheitsliste/keineStundenvorhanden']='Derzeit sind keine Stunden eingetragen';
+$this->phrasen['anwesenheitsliste/keineEintraegeGefunden']='Es wurden keine Einträge gefunden';
+?>
diff --git a/locale/en-US/bewerbung.php b/locale/en-US/bewerbung.php
deleted file mode 100644
index c843a5c46..000000000
--- a/locale/en-US/bewerbung.php
+++ /dev/null
@@ -1,50 +0,0 @@
-phrasen['bewerbung/welcome']='Welcome to the online application for degree-programs of the '.CAMPUS_NAME; //Nur gefühlsmäßig übersetzt
-$this->phrasen['bewerbung/registration']='Registration';
-$this->phrasen['bewerbung/registrieren']='Register';
-$this->phrasen['bewerbung/registrierenOderZugangscode']='Register here or enter access code';
-$this->phrasen['bewerbung/einleitungstext']='Für eine Bewerbung füllen Sie bitte das Formular vollständig aus und klicken Sie anschließend auf "Registrieren".
- Danach haben Sie noch die Möglichkeit, weitere Daten einzugeben und Dokumente hochzuladen, bevor Sie Ihre Bewerbung abschicken.'; //noch zu übersetzen
-$this->phrasen['bewerbung/login']='Login';
-$this->phrasen['bewerbung/zugangscode']='Access Code';
-$this->phrasen['bewerbung/fallsVorhanden']='(if existing)';//Nur gefühlsmäßig übersetzt
-$this->phrasen['bewerbung/mailtextHtml']='Please show this message as HTML to see the complete link.';//Nur gefühlsmäßig übersetzt
-$this->phrasen['bewerbung/mailtext']='Dear Mr/Mrs %1$s %2$s.
- Thank you for your interest on a degree program of the '.CAMPUS_NAME.'.
- To apply for a degree program please use the following link and access code:
';
+ }
+ catch(SoapFault $fault)
+ {
+ echo "SOAP Fault: (faultcode: ".$fault->faultcode.", faultstring: ".$fault->faultstring.")", E_USER_ERROR;
+ }
+
+}
+
+?>
+
+
diff --git a/system/checksystem.php b/system/checksystem.php
index 246a0faa2..22897eef4 100644
--- a/system/checksystem.php
+++ b/system/checksystem.php
@@ -2874,7 +2874,7 @@ if($result = @$db->db_query("SELECT * FROM information_schema.table_constraints
}
// Fehlende Foreign Keys fuer ZGV Nation und Ausstellungsstaat auf ZGVNation kopieren
-if(!$result = @$db->db_query("SELECT bezeichnung_kurzbz FROM lehre.tbl_lehrform"))
+if(!$result = @$db->db_query("SELECT bezeichnung_kurz FROM lehre.tbl_lehrform"))
{
$qry = 'ALTER TABLE lehre.tbl_lehrform ADD COLUMN bezeichnung_kurz varchar(32)[];
ALTER TABLE lehre.tbl_lehrform ADD COLUMN bezeichnung_lang varchar(256)[];
diff --git a/system/vorlage_zip/AusbVerEng.odt b/system/vorlage_zip/AusbVerEng.odt
index 7c79dd1a6..55af9812f 100644
Binary files a/system/vorlage_zip/AusbVerEng.odt and b/system/vorlage_zip/AusbVerEng.odt differ
diff --git a/system/vorlage_zip/Ausbildungsver.odt b/system/vorlage_zip/Ausbildungsver.odt
index d69b733a1..4e1a2c3e7 100644
Binary files a/system/vorlage_zip/Ausbildungsver.odt and b/system/vorlage_zip/Ausbildungsver.odt differ
diff --git a/system/xsl/AusbVerEngHead_9005_2.xsl b/system/xsl/AusbVerEngHead_9005_2.xsl
new file mode 100644
index 000000000..2cd2e0fd7
--- /dev/null
+++ b/system/xsl/AusbVerEngHead_9005_2.xsl
@@ -0,0 +1,956 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ausbildungsvertrag (Training Contract)
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+ -Studiengang (Degree Program) ()
+
+
+
+
+
+
+ Ausbildungsvertrag (Training Contract)
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+ -Studiengang (Degree Program) ()
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/system/xsl/AusbVerEng_0_2.xsl b/system/xsl/AusbVerEng_0_2.xsl
new file mode 100644
index 000000000..31d00541d
--- /dev/null
+++ b/system/xsl/AusbVerEng_0_2.xsl
@@ -0,0 +1,1621 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ausbildungsvertrag
+
+
+
+ Dieser Vertrag regelt das Rechtsverhältnis zwischen
+
+ dem Verein Fachhochschule Technikum Wien,
+ 1060 Wien, Mariahilfer Straße 37-39 (kurz „Erhalter“ genannt) einerseits
+ und
+
+
+
+ Training Contract
+
+
+
+
+ This contract governs the legal relationship between
+
+ the University of Applied Sciences Technikum Wien Association, 1060 Vienna, Mariahilferstraße 37-39 (referred to as "operator") on the one hand and
+
+
+
+
+
+
+
+ Familienname (Surname):
+
+ Vorname (First Name):
+
+ Akademischer Titel (Academic degree):
+
+
+ Adresse (Address):
+ ;
+
+
+
+
+
+
+ Geburtsdatum (Date of birth):
+
+
+ Sozialversicherungsnr.
+
+
+
+ 1
+
+
+
+
+
+ Gemäß § 3 Absatz 1 des Bildungsdokumentationsgesetzes (BGBl. I Nr. 12/2002 idgF) und der Bildungsdokumentationsverordnung-Fachhochschulen (BGBl. II Nr. 29/2004 idgF) hat der Erhalter die Sozialversicherungsnummer zu erfassen und gemäß § 7 Absatz 2 im Wege der Agentur für Qualitätssicherung und Akkreditierung Austria an das zuständige Bundesministerium und die Bundesanstalt Statistik Österreich zu übermitteln.
+
+
+
+
+
+
+
+
+
+ :
+
+
+
+ (Social security number)
+
+
+
+ 2
+
+
+
+
+
+ Pursuant to § 3 section 1 of the Education Documentation Act (Federal Law Gazette I No. 12/2002 as amended) and the Education Documentation Regulation for Universities of Applied Sciences (Federal Law Gazette II No. 29/2004 as amended), the operator shall record the social security number pursuant to § 7 paragraph 2 and shall transfer it via the Agency for Quality Assurance and Accreditation Austria to the competent Ministry and Statistics Austria.
+
+
+
+
+
+
+
+
+ :
+
+
+ Personenkennz. (Personal identifier):
+
+
+
+
+ (kurz „Studentin“ bzw. „Student“ genannt)
+
+ (referred to as "student")
+ on the other,
+
+
+ andererseits,
+
+
+
+
+
+
+
+ im Rahmen des -Studienganges
+ „“
+
+ , StgKz ,
+ in der Organisationsform eines
+
+
+
+ berufsbegleitenden Studiums.
+
+
+ Vollzeitstudiums.
+
+
+ Fernstudiums.
+
+
+
+
+ within the degree program
+ „“, program abbrev. , in the organizational form of a
+
+
+
+ part-time course.
+
+
+ full-time course.
+
+
+ distance learning course.
+
+
+
+
+
+
+ 1. Ausbildungsort
+
+
+ Studienort sind die Räumlichkeiten der FH Technikum Wien, 1200 Wien, Höchstädtplatz und 1210 Wien, Giefinggasse. Bei Bedarf kann der Erhalter einen anderen Studienort festlegen.
+
+
+ 2. Vertragsgrundlage
+
+
+ Die Ausbildung erfolgt auf der Grundlage des Fachhochschul-Studiengesetzes, BGBl. Nr. 340/1993 idgF, des Hochschul-Qualitätssicherungsgesetzes, BGBl. Nr. 74/2011 idgF, des Akkreditierungsbescheides des Board der AQ Austria vom 9.5.2012, GZ FH12020016 idgF und des Fördervertrags mit dem Bundesministerium für Wissenschaft und Forschung idgF.
+
+
+
+
+ 3. Ausbildungsdauer
+
+
+
+ Die Ausbildungsdauer beträgt Semester.
+
+ Nachgewiesene erworbene Kenntnisse können auf einzelne Lehrveranstaltungen angerechnet werden bzw. zum Erlass einer Lehrveranstaltung oder des Berufspraktikums führen. Hierzu bedarf es eines Antrages der Studentin bzw. des Studenten und der nachfolgenden Feststellung der inhaltlichen und umfänglichen Gleichwertigkeit durch die Studiengangsleitung.
+
+
+
+
+ 1. Place of Training
+
+
+
+
+ Places of training are the premises of the UAS Technikum Wien, 1200 Vienna, Höchstädt-platz and 1210 Vienna, Giefinggasse. If necessary, the operator may specify a different place of study.
+
+
+
+ 2. Contractual Basis
+
+
+
+
+ The training is based on the University of Applied Sciences Studies Act, Federal Law Gazette No. 340/1993 as amended, the Higher Education Quality Assurance Act, Federal Law Gazette I No. 74/2011 as amended, the notification of accreditation by the Board of AQ Austria from 9.5.2012, GZ FH12020016 as amended and the subsidy agreement with the Federal Ministry for Science and Research as amended.
+
+
+
+ 3. Duration of Training
+
+
+
+
+
+ The training period lasts semesters.
+
+
+ Demonstration of knowledge acquired can be accredited to individual courses or lead to exemption from a course or internship. This requires an application by the student and the subsequent establishment by the Program Director of the content and extent of equivalence.
+
+
+
+ 4. Ausbildungsabschluss
+
+
+
+
+ Die Ausbildung endet mit der positiven Absolvierung der das jeweilige Studium abschließenden kommissionellen Prüfung. Nach dem Abschluss der vorgeschriebenen Prüfungen wird der akademische Grad Bachelor/Master of Science in Engineering (BSc/MSc) durch das FH-Kollegium verliehen.
+
+
+ 5. Rechte und Pflichten des Erhalters
+
+
+
+
+
+
+
+
+
+ 5.1 Rechte
+
+
+
+
+
+ Der Erhalter führt eine periodische Überprüfung des Studiums im Hinblick auf Relevanz und Aktualität durch und ist im Einvernehmen mit dem FH-Kollegium berechtigt, daraus Änderungen des akkreditierten Studienganges abzuleiten.
+
+
+ Der Erhalter ist berechtigt, die Daten der/des Studierenden an den FH Technikum Wien Alumni Club zu übermitteln. Der Alumni Club ist der AbsolventInnenverein der FH Technikum Wien. Er hat zum Ziel, AbsolventInnen, Studierende und Lehrende miteinander zu vernetzen sowie AbsolventInnen laufend über Aktivitäten an der FH Technikum Wien zu informieren. Einer Zusendung von Informationen durch den Alumni Club kann jederzeit widersprochen werden.
+
+
+
+
+ 5.2 Pflichten
+
+
+
+
+
+
+
+
+
+
+ Der Erhalter ist verpflichtet, all jene Voraussetzungen zu bieten, damit das Studium innerhalb der Ausbildungsdauer (Pkt. 3) erfolgreich abgeschlossen werden kann.
+
+
+
+
+
+ 4. Formal Completion of Training
+
+
+
+
+ The training ends with the positive completion of the final examination before a committee for the respective course. After completion of the required examinations, the academic degree Bachelor / Master of Science in Engineering (BSc / MSc) is awarded by the University of Applied Sciences Council.
+
+
+
+ 5. Rights and Duties of the Operator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5.1 Rights
+
+
+
+
+
+
+
+
+
+ The operator performs a periodic review of the course in terms of relevance and topicality, and is authorized, in consultation with the University of Applied Sciences Council, to deduce from this changes in the accredited degree program.
+
+
+ The operator is entitled to communicate a student’s data to the UAS Technikum Wien Alumni Club. The Alumni Club is the graduate association of the UAS Technikum Wien. Its goal is to provide links between graduates, students and lecturers as well as to keep graduates informed of the activities at the UAS Technikum Wien. A mailing of information from the Alumni Club can be vetoed at any time.
+
+
+
+
+
+
+ 5.2 Duties
+
+
+
+
+
+
+
+
+
+ The operator undertakes to provide all the necessary conditions for the study to be successfully completed within the duration of training (point 3).
+
+
+
+
+
+ Die Voraussetzungen zur Erfüllung dieser Verpflichtung sind Gegenstand des akkreditierten Studienganges idgF, der Satzung der FH Technikum Wien idgF und der Hausordnung idgF.
+
+
+ Der Erhalter ist weiters verpflichtet, das Studium auf der Grundlage höchster Qualitätsansprüche hinsichtlich der Erreichung der Ausbildungsziele zu gestalten und allfällige Änderungen des akkreditierten Studienganges bekannt zu geben.
+
+
+ Der Erhalter verpflichtet sich zur sorgfaltsgemäßen Verwendung der personenbezogenen Daten der Studierenden. Die Daten werden nur im Rahmen der gesetzlichen und vertraglichen Verpflichtungen sowie des Studienbetriebes verwendet und nicht an nicht berechtigte Dritte weitergegeben.
+
+
+
+
+
+
+ The conditions for the fulfillment of this obligation are the subject of the accredited study program as amended, the Statutes of the UAS Technikum Wien as amended, and the House Rules as amended.
+
+
+ The operator also undertakes to design the study on the basis of the highest possible quality standards as regards the achievement of the educational goals and to make known any changes to the accredited degree program.
+
+
+ The operator is committed to use the personal data of the students carefully. The data is only to be used within the operator’s legal and contractual obligations as well as its program of studies and is not to be handed on to unauthorized third parties.
+
+
+
+
+
+ 6. Rechte und Pflichten der Studierenden
+
+
+
+
+
+
+
+
+ 6.1 Rechte
+
+
+
+
+
+
+
+
+ Die Studentin bzw. der Student hat das Recht auf
+
+
+ einen Studienbetrieb gemäß den im akkreditierten Studiengang idgF und in der Satzung der FH Technikum Wien idgF festgelegten Bedingungen;
+
+
+ ein Zeugnis über die im laufenden Semester abgelegten Prüfungen;
+
+
+ Unterbrechung der Ausbildung aus nachgewiesenen zwingenden persönlichen, gesundheitlichen oder beruflichen Gründen.
+
+
+
+
+
+ 6.2 Pflichten
+
+ 6.2.1 Studienbeitrag
+ Die Studentin bzw. der Student ist verpflichtet, zwei Wochen vor Beginn jedes Semesters (StudienanfängerInnen: bis 20. August vor Studienbeginn) einen Studienbeitrag gemäß Fachhochschul-Studiengesetz (BGBl. Nr. 340/1993 idgF) in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Dies gilt auch in Semestern mit DiplomandInnenenstatus o.ä. Im Falle einer Erhöhung des gesetzlichen Studienbeitrags-satzes erhöht sich der angeführte Betrag entsprechend. Bei Nichtantritt des Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag.
+
+
+
+
+
+
+ 6. Rights and Duties of the Students
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6.1 Rights
+
+
+
+
+
+
+
+ The student has the right to
+
+
+ a course of study according to the conditions specified in the accredited degree program as amended and in the Statutes of the UAS Technikum Wien as amended;
+
+
+ a certificate showing the examinations successfully passed in the current semester;
+
+
+ interrupt the training due to proof of compelling personal, health or professional reasons.
+
+
+
+
+
+ 6.2 Duties
+
+ 6.2.1 Tuition Fees
+ Two weeks before the beginning of each semester (new students: up to August 20 before taking up studies) the student undertakes to pay tuition fees according to the University of Applied Sciences Studies Act (Federal Law Gazette No 340/1993 as amended) currently to the sum of € 363.36 net payable per semester. This also applies in semesters with graduand status etc. In the event of an increase in the legal tuition fees rate, the amount quoted will increase accordingly. For non-commencement or termination of the study at the beginning or during the semester, the tuition fee is forfeited.
+
+ 6.2.2 Studierendenbeitrag („ÖH-Beitrag“)
+ Gemäß § 4 Abs. 10 des Fachhochschul-Studiengesetzes (BGBl. Nr. 340/1993 idgF und der Bundesministeriengesetz-Novelle 2007, BGBl. I Nr. 6/2007) gehören ordentliche und außerordentliche Studierende an Fachhochschul-Studiengängen der Österreichischen HochschülerInnenschaft (ÖH) gemäß Hochschülerinnen- und Hochschülerschaftsgesetz (HSG 2014) an. Daraus resultiert die Verpflichtung der Studentin oder des Studenten zur Entrichtung des ÖH-Beitrags. Dies gilt auch in Semestern mit DiplomandInnenstatus. Der Studierendenbeitrag kann jährlich durch die ÖH indexiert werden; die genaue Höhe des Studierendenbeitrags wird von der ÖH jährlich für das folgende Studienjahr bekannt gegeben.
+ Die Einhebung des Betrags erfolgt durch die Fachhochschule. Der Erhalter überweist in Folge die eingezahlten Beträge der Studierenden ohne Abzüge an die ÖH. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung.
+
+ 6.2.3 Kaution
+ Im Zuge der Einschreibung ist der Nachweis über die einbezahlte Kaution zu erbringen.
+ Die Kaution beträgt € 150,–.
+ Bei Nichtantritt des Studiums oder Abbruch während des ersten oder zweiten Semesters verfällt die Kaution.
+ Bei aufrechtem Inskriptionsverhältnis zu Beginn des zweiten Semesters wird die Kaution auf den Unkostenbeitrag (siehe nächster Punkt) des ersten und zweiten Semesters angerechnet.
+
+
+ 6.2.2 Student fee ("Austrian Student Union fee")
+ Pursuant to § 4 section 10 of the Universities of Applied Sciences Studies Act (Federal Law Gazette No 340/1993 as amended and the Federal Ministries Act - 2007 amendment, Federal Law Gazette I No. 6/2007), internal and external students at universities of applied sciences degree programs are members of the Austrian Students Union in accordance with the Students Act (HSG 2014).This results in the student being obliged to pay the Austrian Student Union fee. This also applies in semesters with graduand status. The student fee can be annually indexed by the Austrian Students ' Union; the exact amount of the student fee for the following year is announced annually by the Austrian Students' Union.
+ The amount is levied by the University of Applied Sciences. The operator then transfers the amounts paid by the students without deductions to the Students' Union. Payment of the student fee is a pre-requisite for admission to the course or for its continuation.
+
+
+
+ 6.2.3 Deposit
+ During the process of registration, proof of deposit paid must be provided.
+ The deposit is € 150,–.
+ For non-commencement of studies or termination during the first or second semester, the deposit shall be forfeited.
+ If, by the beginning of the second semester, registration has been completed correctly the deposit will be credited to the contribution towards expenses (see next point) for the first and second semester.
+
+
+ 6.2.4 Unkostenbeitrag
+ Pro Semester ist ein Unkostenbeitrag zu entrichten, wobei es sich nicht um einen Pauschalbetrag handelt. Der Unkostenbeitrag stellt eine Abgeltung für über das Normalmaß hinausgehende Serviceleistungen der FH dar, z.B. Freifächer, Beratung/Info Auslands-studium, Sponsionsfeiern, Vorträge / Job-börse, Mensa etc.
+
+ Die Höhe des Unkostenbeitrages beträgt derzeit € 75,– pro Semester. Eine allfällige Anpassung wird durch Aushang bekannt gemacht.
+ Der Unkostenbeitrag ist
+
+
+ im
+
+
+ ab dem
+
+
+ 3. Semester gleichzeitig mit der Studiengebühr vor Beginn des Semesters zu entrichten.
+
+ Bei Vertragsauflösung vor Studienabschluss aus Gründen, die die Studentin bzw. der Student zu vertreten hat, oder auf deren bzw. dessen Wunsch, wird der Unkostenbeitrag zur Abdeckung der dem Erhalter erwachsenen administrativen Zusatzkosten einbehalten.
+
+ 6.2.5 Lehr- und Lernbehelfe
+ Die Anschaffung unterrichtsbezogener Literatur und individueller Lernbehelfe ist durch den Unkostenbeitrag nicht abgedeckt. Eventuelle zusätzliche Kosten, die sich beispielsweise durch die studiengangsbezogene, gemeinsame Anschaffung von Lehr- bzw. Lernbehelfen (Skripten, CDs, Bücher, Projektmaterialien, Kopierpapier etc.) oder durch Exkursionen ergeben, werden von jedem Studiengang individuell eingehoben.
+
+
+ 6.2.4 Contribution towards Expenses
+ A contribution towards expenses, which is not a lump sum, is payable per semester. The contribution towards expenses represents compensation for the services provided by the UAS that go beyond the normal level, such as electives, counseling/ information about studying abroad, graduation ceremonies, lectures/job market, cafeteria, etc.
+
+ The amount of the contribution is currently € 75,– per semester. Any possible adjustment is posted on the noticeboard.
+
+
+
+ In
+
+
+ From
+
+
+ the 3rd semester the contribution towards expenses must be paid together with the tuition fees before the start of the semester.
+
+ If the contract is cancelled before graduation for reasons that are the fault of the student, or on their wishes, the contribution towards expenses shall be deducted to cover the additional administrative costs borne by the operator.
+
+ 6.2.5 Teaching Aids and Learning Tools
+ The acquisition of teaching-related literature and individual learning tools is not covered by the contribution towards expenses. Any additional costs, which arise for example from the course-related, joint purchase of teaching and / or learning materials (scripts, CDs, books, project materials, copying paper, etc.) or result from field trips, are levied by each individual degree program.
+
+
+
+ 6.2.6 Beibringung persönlicher Daten
+
+ Die Studentin bzw. der Student ist verpflichtet, persönliche Daten beizubringen, die auf Grund eines Gesetzes, einer Verordnung oder eines Bescheides vom Erhalter erfasst werden müssen oder zur Erfüllung des Ausbildungsvertrages bzw. für den Studienbetrieb unerlässlich sind.
+
+
+ 6.2.7 Aktualisierung eigener Daten und Bezug von Informationen
+ Die Studentin bzw. der Student hat unaufgefordert dafür zu sorgen, dass die von ihr/ihm beigebrachten Daten aktuell sind. Änderungen sind der Studiengangsassistenz unverzüglich schriftlich mitzuteilen. Darüber hinaus trifft sie/ihn die Pflicht, sich von studienbezogenen Informationen, die ihr/ihm an die vom Erhalter zur Verfügung gestellte Emailadresse zugestellt werden, in geeigneter Weise Kenntnis zu verschaffen.)
+
+ 6.2.6 Providing Personal Data
+ The student is obliged to produce personal data which must be registered because of a law, regulation or a decision by the operator, or is essential fort he fulfilling of the training contract or fort he program of studies.
+
+
+
+ 6.2.7 Updating personal data and the retrieval of information
+ Without being reminded, the student must ensure that the data provided by them is up-to-date. Changes are to be immediately communicated to the administrative assistant in writing. Furthermore, it is the students’ responsibility to make themselves suitably aware of information relating to their studies which has been sent to them at the email address provided for them by the operator.
+
+
+
+
+
+ 6.2.8 Verwertungsrechte
+
+ Sofern nicht im Einzelfall andere Regelungen zwischen dem Erhalter und der Studentin oder dem Studenten getroffen wurden, ist die Studentin oder der Student verpflichtet, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen auf dessen schriftliche Anfrage hin anzubieten.
+
+ 6.2.9 Aufzeichnungen und Mitschnitte
+ Es ist der/dem Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, StudiVZ etc, aber auch auf Youtube usw. oder durch sonstige für diese Zwecke geeignete Kommunikations-mittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben.
+ Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat.
+
+
+
+ 6.2.10 Geheimhaltungspflicht
+
+
+ Die Studentin bzw. der Student ist zur Geheimhaltung von Forschungs- und Entwicklungsaktivitäten und -ergebnissen gegenüber Dritten verpflichtet.
+
+
+ 6.2.8 Exploitation Rights
+ Unless other arrangements have been agreed between the operator and the student at an individual level, on written request, the student undertakes to offer the operator the rights to research and development results.
+
+
+
+ 6.2.9 Recordings
+ It is expressly forbidden for the student to record lectures in part or in total (e.g. by using film and / or sound recordings or other audio-visual means suitable for this purpose). In addition, any form of making the aforementioned recordings publically available (wired or wireless) for example in social networks such as Facebook, StudiVZ etc, but also on Youtube, etc., or by other means of communication designed for these purposes is strictly prohibited. These regulations shall apply correspondingly to scripts, other learning aids and examination data.
+ The only exception is a recording exclusively for the purpose of learning, study and research and for personal use, provided that the lecturer has expressly granted his / her prior written consent.
+
+
+
+
+
+
+ 6.2.10 Confidentiality
+ The student is required to maintain confidentiality towards third parties of research and development activities and results.
+
+
+
+ 6.2.11 Unfallmeldung
+ Im Falle eines Unfalles mit körperlicher Verletzung des/der Studierenden im Zusammenhang mit dem Studium ist die/der Studierende verpflichtet, innerhalb von drei Tagen eine Meldung am Studiengangssekretariat einzubringen. Dies betrifft auch Wegunfälle zur oder von der FH.
+
+
+ 7. Beendigung des Vertrages
+
+
+ 7.1 Auflösung im beiderseitigen Einvernehmen
+
+
+ Im beiderseitigen Einvernehmen ist die Auflösung des Ausbildungsvertrages jederzeit ohne Angabe von Gründen möglich. Die einvernehmliche Auflösung bedarf der Schriftform.
+
+
+
+ 7.2 Kündigung durch die Studentin bzw. den Studenten
+
+ Die Studentin bzw. der Student kann den Ausbildungsvertrag schriftlich jeweils zum Ende eines Semesters kündigen.
+
+
+ 7.3 Ausschluss durch den Erhalter
+
+ Der Erhalter kann die Studentin bzw. den Studenten aus wichtigem Grund mit sofortiger Wirkung vom weiteren Studium ausschließen, und zwar beispielsweise wegen
+
+
+ nicht genügender Leistung im Sinne der Prüfungsordnung;
+
+
+ mehrmaligem unentschuldigten Verletzen der Anwesenheitspflicht ;
+
+
+ wiederholtem Nichteinhalten von Prüfungsterminen und Abgabeterminen für Seminararbeiten, Projektarbeiten etc.;
+
+
+ schwerwiegender bzw. wiederholter Verstöße gegen die Hausordnung;
+
+
+
+
+ 6.2.11 Accident Report
+ In the event of an accident with bodily injury to a student in connection with his / her studies, he / she is obliged to bring a report to the administrative assistant of the degree program within three days. This also applies to accidents on the way to or from the UAS.
+
+
+
+
+ 7. Termination of the contract
+
+
+
+ 7.1 Annulment by Mutual Agreement
+
+
+ By mutual consent, the annulment of the training contract is possible at any time, without notice and for any reason. The amicable annulment must be put down in writing.
+
+
+
+ 7.2 Termination by the Student
+
+
+
+
+ The student may terminate the training contract in writing at the end of each semester.
+
+
+ 7.3 Expulsion by the Operator
+
+ The operator may exclude the student from further study with immediate effect for good cause, for example because of
+
+
+
+ insufficient achievement for the purposes of the examination regulations;
+
+
+ repeated unexcused violation of the compulsory attendance regulation;
+
+
+ repeated non-compliance with examination dates and deadlines for seminar papers, project work etc.;
+
+
+ serious or repeated violation of the house rules;
+
+
+
+
+
+
+ persönlichem Verhalten, das zu einer Beeinträchtigung des Images und/oder Betriebes des Studienganges, der Fach-hochschule bzw. des Erhalters oder von Personen führt, die für die Fachhochschule bzw. den Erhalter tätig sind;
+
+
+ Verletzung der Verpflichtung, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen anzubieten (siehe Pkt. 6.2.8);
+
+
+ Verletzung der Geheimhaltungspflicht (siehe Pkt. 6.2.10);
+
+
+ strafgerichtlicher Verurteilung (wobei die Art des Deliktes und der Grad der Schuld berücksichtigt werden);
+
+
+ Nichterfüllung finanzieller Verpflichtungen trotz Mahnung (z.B. Unkostenbeitrag, Studienbeitrag etc.);
+
+
+ Weigerung zur Beibringung von Daten (siehe Pkt. 6.2.6)
+
+
+ Plagiieren im Rahmen wissenschaftlicher Arbeiten
+
+
+
+ Der Ausschluss kann mündlich erklärt werden. Mit Ausspruch des Ausschlusses endet der Ausbildungsvertrag, es sei denn, es wird ausdrücklich auf einen anderen Endtermin hingewiesen. Eine schriftliche Bestätigung des Ausschlusses wird innerhalb von zwei Wochen nach dessen Ausspruch per Post an die bekannt gegebene Adresse abgeschickt oder auf andere geeignete Weise übermittelt.
+ Gleichzeitig mit dem Ausspruch des Ausschlusses kann auch ein Hausverbot verhängt werden.
+
+
+ 7.4 Erlöschen
+
+ Der Ausbildungsvertrag erlischt mit der Verleihung des akademischen Grades.
+
+
+
+ personal behavior, which leads to an adverse effect on the image and / or operation of the course, the university or the operator or on persons who are working for the university or the operator;
+
+
+
+ breach of the obligation to offer the operator the rights to research and development results (see Section 6.2.8);
+
+
+
+ breach of confidentiality (see Section 6.2.10);
+
+
+ a criminal conviction (whereby the nature of the offence and the level of culpability are taken into account);
+
+
+ non-fulfilment of the financial obligations, despite a reminder (e.g. contribution towards expenses, tuition fees , etc.);
+
+
+ refusal to provide any data (see section 6.2.6);
+
+
+ plagiarism in academic work.
+
+
+
+
+ The expulsion can be explained verbally. Once notice of the expulsion has been given the training contract ends unless another deadline is explicitly made clear. Within two weeks of notice being given, written confirmation of the expulsion is mailed by post to the address provided or transmitted in any other appropriate manner.
+ Simultaneously with notice of expulsion being given an exclusion order from entering the building may also be imposed.
+
+
+
+ 7.4 Expiry
+
+ This contract expires with the award of the degree.
+
+
+
+ 8. Ergänzende Vereinbarungen
+
+
+
+ Das gesamte Studienprogramm wird in englischer Sprache angeboten. Die Studentin bzw. der Student erklärt, die englische Sprache in Wort und Schrift in dem für eine akademische Ausbildung erforderlichen Ausmaß zu beherrschen.
+
+
+ Studierende des Studiengangs sind verpflichtet, eine EDV-Ausstattung zu beschaffen und zu unterhalten, die es ermöglicht, an den Fernlehrelementen teilzunehmen. Die gesamten Kosten der Anschaffung und des Betriebs (inkl. Kosten für Internet und e-mail) trägt der Student bzw. die Studentin.
+
+
+
+
+
+
+ 9.
+
+
+ 8.
+
+
+ Unwirksamkeit von Vertrags-bestimmungen, Vertragslücke
+
+
+ Sollten einzelne Bestimmungen dieses Vertrages unwirksam oder nichtig sein oder werden, so berührt dies die Gültigkeit der übrigen Bestimmungen dieses Vertrages nicht.
+ Die Vertragsparteien verpflichten sich, unwirksame oder nichtige Bestimmungen durch neue Bestimmungen zu ersetzen, die dem in den unwirksamen oder nichtigen Bestimmungen enthaltenen Regelungsgehalt in rechtlich zulässiger Weise gerecht werden. Zur Ausfüllung einer allfälligen Lücke verpflichten sich die Vertragsparteien, auf die Etablierung angemessener Regelungen in diesem Vertrag hinzuwirken, die dem am nächsten kommen, was sie nach dem Sinn und Zweck des Vertrages bestimmt hätten, wenn der Punkt von ihnen bedacht worden wäre.
+
+
+
+
+ 8. Supplementary Agreements
+
+
+
+ The entire degree program is offered in English. The student declares he / she masters the
+ English language in word and in writing to the extent necessary for an academic degree program.
+
+
+
+
+ Students in the program are required to obtain and maintain computer equipment which allows them to participate in the distance learning elements. The total cost of acquisition and operation (including costs for Internet and e-mail) shall be borne by the student.
+
+
+
+
+
+
+
+
+
+ 9.
+
+
+ 8.
+
+
+
+ Invalidity of Contractual Provisions, Contractual Gap
+
+
+ If any provision of this agreement should be or become invalid or void, this shall not affect the validity of the remaining provisions of this agreement.
+ The parties undertake to replace the invalid or void provisions with new provisions that meet the content of the rules contained in the invalid or void provisions in a legally permissible manner. To fill a possible gap, the parties undertake to work towards the establishment of appropriate regulations in this contract, which come closest to what they would have determined in terms of meaning and purpose of the contract, if the point had been considered by them.
+
+
+
+
+
+
+ 10.
+
+
+ 9.
+
+
+ Ausfertigungen, Gebühren, Gerichtsstand
+
+
+ Die Ausfertigung dieses Vertrages erfolgt in zweifacher Ausführung. Ein Original verbleibt im zuständigen Administrationsbüro des Fachhochschul-Studienganges. Eine Ausfertigung wird der Studentin bzw. dem Studenten übergeben.
+
+ Die englische Übersetzung des deutschsprachigen Vertrages dient nur als Referenz. Rechtsgültigkeit hat ausschließlich der deutsche Vertrag.
+
+ Der Ausbildungsvertrag ist gebührenfrei.
+ Gerichtsstand ist Wien, Innere Stadt.
+
+
+
+
+
+
+
+ 10.
+
+
+ 9.
+
+
+
+ Copies, Fees, Place of Jurisdiction
+
+
+ This contract is provided in duplicate. An original remains with the competent administrations office of the University of Applied Sciences’ Degree Program. A copy is given to the student.
+
+
+ The English translation of the German contract is intended as a reference only. Only the German version of this contract is legally valid in a Court of Law.
+
+ The training contract is free of charge.
+ Place of Jurisdiction is Vienna, Inner City.
+
+
+
+
+
+
+ Wien (Vienna),
+ Ort, Datum (City, Date)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Die Studentin/der Student /ggf. gesetzliche VertreterInnen
+
+
+ (The student /
+
+
+
+ if necessary legal representatives)
+
+
+
+
+
+
+ Für die FH Technikum Wien
+
+
+ (For the UAS Technikum Wien)
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/system/xsl/AusbVerEng_9005_1.xsl b/system/xsl/AusbVerEng_9005_1.xsl
new file mode 100644
index 000000000..65e892038
--- /dev/null
+++ b/system/xsl/AusbVerEng_9005_1.xsl
@@ -0,0 +1,1654 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ausbildungsvertrag
+ außerordentliches Studium (Besuch einzelner Lehrveranstaltungen eines Studiengangs)
+
+
+ Dieser Vertrag regelt das Rechtsverhältnis zwischen
+
+ dem Verein Fachhochschule Technikum Wien,
+ 1060 Wien, Mariahilfer Straße 37-39 (kurz „Erhalter“ genannt) einerseits
+ und
+
+
+
+ Training Contract
+
+ for external students (attending individual courses of a degree program)
+
+
+ This contract governs the legal relationship between
+
+ the University of Applied Sciences Technikum Wien Association, 1060 Vienna, Mariahilferstraße 37-39 (referred to as "operator") on the one hand and
+
+
+
+
+
+ Familienname (Surname):
+
+ Vorname (First Name):
+
+ Akademischer Titel (Academic degree):
+
+
+ Adresse (Address):
+ ;
+
+
+
+
+
+
+ Geburtsdatum (Date of birth):
+
+
+ Sozialversicherungsnr.
+
+
+
+ 1
+
+
+
+
+
+ Gemäß § 3 Absatz 1 des Bildungsdokumentationsgesetzes (BGBl. I Nr. 12/2002 idgF) und der Bildungsdokumentationsverordnung-Fachhochschulen (BGBl. II Nr. 29/2004 idgF) hat der Erhalter die Sozialversicherungsnummer zu erfassen und gemäß § 7 Absatz 2 im Wege der Agentur für Qualitätssicherung und Akkreditierung Austria an das zuständige Bundesministerium und die Bundesanstalt Statistik Österreich zu übermitteln.
+
+
+
+
+
+
+
+
+
+ :
+
+
+
+ (Social security number)
+
+
+
+ 2
+
+
+
+
+
+ Pursuant to § 3 section 1 of the Education Documentation Act (Federal Law Gazette I No. 12/2002 as amended) and the Education Documentation Regulation for Universities of Applied Sciences (Federal Law Gazette II No. 29/2004 as amended), the operator shall record the social security number pursuant to § 7 paragraph 2 and shall transfer it via the Agency for Quality Assurance and Accreditation Austria to the competent Ministry and Statistics Austria.
+
+
+
+
+
+
+
+
+ :
+
+
+ Personenkennz. (Personal identifier):
+
+
+
+
+ (kurz „ao. Studentin“ bzw. „ao. Student“ genannt)
+ (referred to as "external student")
+
+
+ andererseits,
+ on the other,
+
+
+
+
+
+
+ im Rahmen des außerordentlichen Studiums bzw. des Besuchs einzelner Lehrveranstaltungen des -Studienganges
+ „“
+ , StgKz ,
+ in der Organisationsform eines
+
+
+
+ berufsbegleitenden Studiums.
+
+
+ Vollzeitstudiums.
+
+
+ Fernstudiums.
+
+
+
+
+
+ as part of an external course of study or attending individual courses of the degree program
+ „“, program abbrev. , in the organizational form of a
+
+
+
+ part-time course.
+
+
+ full-time course.
+
+
+ distance learning course.
+
+
+
+
+
+
+ 1. Ausbildungsort
+
+
+ Studienort sind die Räumlichkeiten der FH Technikum Wien, 1200 Wien, Höchstädtplatz und 1210 Wien, Giefinggasse. Bei Bedarf kann der Erhalter einen anderen Studienort festlegen.
+
+
+ 2. Vertragsgrundlage
+
+
+ Die Ausbildung erfolgt auf der Grundlage von § 4 Abs. 2 und 3 des Fachhochschul-Studiengesetzes, BGBl. Nr. 340/1993 idgF, des Hochschul-Qualitätssicherungsgesetzes, BGBl. I Nr. 74/2011 idgF, und des Akkreditierungsbescheides des Board der AQ Austria vom 9.5.2012, GZ FH12020016 idgF.
+
+
+
+
+ 3. Ausbildungsdauer
+
+
+
+ Die Ausbildungsdauer des außerordentlichen Studiums ist durch die Dauer der Lehrveranstaltung/en, zu der bzw. denen die ao. Studentin bzw. der ao. Student zugelassen ist, definiert.
+
+
+
+
+ 1. Place of Training
+
+
+
+
+ Places of training are the premises of the UAS Technikum Wien, 1200 Vienna, Höchstädt-platz and 1210 Vienna, Giefinggasse. If necessary, the operator may specify a different place of study.
+
+
+
+ 2. Contractual Basis
+
+
+
+
+ The training is based on § 4 paras. 2 and 3 of the University of Applied Sciences Studies Act, Federal Law Gazette No. 340/1993 as amended, the Higher Education Quality Assurance Act, Federal Law Gazette I No. 74/2011 as amended and the notification of accreditation by the Board of AQ Austria from 9.5.2012, GZ FH12020016 as amended.
+
+
+
+ 3. Duration of Training
+
+
+
+
+ The duration of the external course of study is defined by the duration of the courses that the external student is allowed to attend.
+
+
+
+ 4. Ausbildungsabschluss
+
+
+
+
+ Das außerordentliche Studium endet mit der positiven Absolvierung der in den jeweiligen Lehrveranstaltungen vorgesehenen Leistungsanforderungen. Nach dem positiven Abschluss wird der für die jeweilige Lehrveranstaltung vorgesehene Leistungs-nachweis ausgestellt.
+
+
+ 5. Rechte und Pflichten des Erhalters
+
+
+
+
+
+
+
+
+
+ 5.1 Rechte
+
+
+
+
+
+ Der Erhalter führt eine periodische Überprüfung des Studiums im Hinblick auf Relevanz und Aktualität durch und ist im Einvernehmen mit dem FH-Kollegium berechtigt, daraus Änderungen des akkreditierten Studienganges abzuleiten.
+
+ Der Erhalter ist berechtigt, die Daten der/des Studierenden an den FH Technikum Wien Alumni Club zu übermitteln. Der Alumni Club ist der AbsolventInnenverein der FH Technikum Wien. Er hat zum Ziel, AbsolventInnen, Studierende und Lehrende miteinander zu vernetzen sowie AbsolventInnen laufend über Aktivitäten an der FH Technikum Wien zu informieren. Einer Zusendung von Informationen durch den Alumni Club kann jederzeit widersprochen werden.
+
+
+
+ 5.2 Pflichten
+
+
+
+
+
+
+
+
+
+
+ Der Erhalter ist verpflichtet, all jene Voraussetzungen zu bieten, damit das Studium innerhalb der Ausbildungsdauer (Pkt. 3) erfolgreich abgeschlossen werden kann.
+
+
+
+
+
+ 4. Formal Completion of Training
+
+
+
+
+ The external course of study ends when the course requirements defined in the respective courses have been successfully completed. In the event of a course being successfully completed the respective performance record provided will be issued.
+
+
+
+
+ 5. Rights and Duties of the Operator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5.1 Rights
+
+
+
+
+
+
+
+
+ The operator performs a periodic review of the course in terms of relevance and topicality, and is authorized, in consultation with the University of Applied Sciences Council, to deduce from this changes in the accredited degree program.
+
+ The operator is entitled to communicate a student’s data to the UAS Technikum Wien Alumni Club. The Alumni Club is the graduate association of the UAS Technikum Wien. Its goal is to provide links between graduates, students and lecturers as well as to keep graduates informed of the activities at the UAS Technikum Wien. A mailing of information from the Alumni Club can be vetoed at any time.
+
+
+
+
+
+ 5.2 Duties
+
+
+
+
+
+
+
+
+
+ The operator undertakes to provide all the necessary conditions for the study to be successfully completed within the duration of training (point 3).
+
+
+
+
+
+
+
+ Die Voraussetzungen zur Erfüllung dieser Verpflichtung sind Gegenstand des akkreditierten Studienganges idgF, der Satzung der FH Technikum Wien idgF und der Hausordnung idgF.
+
+
+ Der Erhalter ist weiters verpflichtet, das Studium auf der Grundlage höchster Qualitätsansprüche hinsichtlich der Erreichung der Ausbildungsziele zu gestalten und allfällige Änderungen des akkreditierten Studienganges bekannt zu geben.
+
+
+ Der Erhalter verpflichtet sich zur sorgfaltsgemäßen Verwendung der personenbezogenen Daten der Studierenden. Die Daten werden nur im Rahmen der gesetzlichen und vertraglichen Verpflichtungen sowie des Studienbetriebes verwendet und nicht an nicht berechtigte Dritte weitergegeben.
+
+
+
+
+
+
+ The conditions for the fulfillment of this obligation are the subject of the accredited study program as amended, the Statutes of the UAS Technikum Wien as amended, and the House Rules as amended.
+
+
+ The operator also undertakes to design the study on the basis of the highest possible quality standards as regards the achievement of the educational goals and to make known any changes to the accredited degree program.
+
+
+ The operator is committed to use the personal data of the students carefully. The data is only to be used within the operator’s legal and contractual obligations as well as its program of studies and is not to be handed on to unauthorized third parties.
+
+
+
+
+
+ 6. Rechte und Pflichten der Studierenden
+
+
+
+
+
+
+
+
+ 6.1 Rechte
+
+
+
+
+
+
+
+
+ Die ao. Studentin bzw. der ao. Student hat das Recht auf
+
+
+ einen Lehrveranstaltungsbetrieb gemäß den im akkreditierten Studiengang idgF und in der Satzung der FH Technikum Wien idgF festgelegten Bedingungen;
+
+
+
+ ein Zeugnis über die im laufenden Semester abgelegten Prüfungen.
+
+
+
+
+
+ 6.2 Pflichten
+
+ 6.2.1 Studienbeitrag
+
+ Die ao. Studentin bzw. der ao. ist verpflichtet, zwei Wochen vor Beginn jedes Semesters einen Studienbeitrag gemäß Fachhochschul-Studiengesetz (BGBl. Nr. 340/1993 idgF) in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Im Falle einer Erhöhung des gesetzlichen Studienbeitrags-satzes erhöht sich der angeführte Betrag entsprechend. Bei Nichtantritt des Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag.
+
+ 6.2.2 Studierendenbeitrag („ÖH-Beitrag“)
+
+ Gemäß § 4 Abs. 10 des Fachhochschul-Studiengesetzes (BGBl. Nr. 340/1993 idgF) gehören ordentliche und außerordentliche Studierende der Österreichischen Hochschülerinnen- und Hochschülerschaft (ÖH) gemäß Hochschülerinnen- und Hochschülerschaftsgesetz 2014 - HSG 2014, BGBl. I Nr. 45/2014, an. Daraus resultiert die Verpflichtung der Studentin oder des Studenten zur Entrichtung des ÖH-Beitrags.
+
+
+
+
+
+
+
+ 6. Rights and Duties of the Students
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6.1 Rights
+
+
+
+
+
+
+
+ The external student has the right to
+
+
+ attend a course being run in accordance with the conditions laid down in the accredited degree program as amended and in the statute of the UAS Technikum Wien as amended
+
+
+
+ a certificate showing the examinations successfully passed in the current semester.
+
+
+
+
+
+ 6.2 Duties
+
+ 6.2.1 Tuition Fees
+ Two weeks before the beginning of each semester the external student undertakes to pay tuition fees according to the University of Applied Sciences Studies Act (Federal Law Gazette No 340/1993 as amended) currently to the sum of € 363.36 net payable per semester. In the event of an increase in the legal tuition fees rate, the amount quoted will increase accordingly. For non-commencement or termination of the study at the beginning or during the semester, the tuition fee is forfeited.
+
+ 6.2.2 Student fee ("Austrian Student Union fee")
+ Pursuant to § 4 section 10 of the Universities of Applied Sciences Studies Act (Federal Law Gazette No 340/1993 as amended and the Federal Ministries Act - 2007 amendment, Federal Law Gazette I No. 6/2007), internal and external students at universities of applied sciences degree programs are members of the Austrian Students Union in accordance with the Students Act (HSG 2014).This results in the student being obliged to pay the Austrian Student Union fee. This also applies in semesters with graduand status.
+
+
+
+ Der Studierendenbeitrag kann jährlich durch die ÖH indexiert werden; die genaue Höhe des Studierendenbeitrags wird von der ÖH jährlich für das folgende Studienjahr bekannt gegeben. Die Einhebung des Betrags erfolgt durch die Fachhochschule. Der Erhalter überweist in Folge die eingezahlten Beträge der Studierenden ohne Abzüge an die ÖH. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung.
+
+
+ 6.2.3 Unkostenbeitrag
+ Pro Semester ist ein Unkostenbeitrag zu entrichten, wobei es sich nicht um einen Pauschalbetrag handelt. Der Unkostenbeitrag stellt eine Abgeltung für über das Normalmaß hinausgehende Serviceleistungen der FH dar, z.B. Freifächer, Vorträge / Job-börse, Mensa etc.
+
+ Die Höhe des Unkostenbeitrages beträgt derzeit € 75,– pro Semester. Eine allfällige Anpassung wird durch Aushang bekannt gemacht.
+ Der Unkostenbeitrag ist gleichzeitig mit der Studiengebühr vor Beginn des Semesters zu entrichten.
+
+ Bei Vertragsauflösung vor Studienabschluss aus Gründen, die die ao. Studentin bzw. der ao. Student zu vertreten hat, oder auf deren bzw. dessen Wunsch, wird der Unkostenbeitrag zur Abdeckung der dem Erhalter erwachsenen administrativen Zusatzkosten einbehalten.
+
+
+ The student fee can be annually indexed by the Austrian Students' Union; the exact amount of the student fee for the following year is announced annually by the Austrian Students' Union.
+
+ The amount is levied by the University of Applied Sciences. The operator then transfers the amounts paid by the students without deductions to the Students' Union. Payment of the student fee is a pre-requisite for admission to the course or for its continuation.
+
+
+ 6.2.3 Contribution towards Expenses
+ A contribution towards expenses, which is not a lump sum, is payable per semester. The contribution towards expenses represents compensation for the services provided by the UAS that go beyond the normal level, such as electives, lectures/job market, cafeteria, etc.
+
+
+ The amount of the contribution is currently € 75,– per semester. Any possible adjustment is posted on the noticeboard.
+ The contribution towards expenses must be paid together with the tuition fees before the start of the semester.
+
+ If the contract is cancelled before graduation for reasons that are the fault of the external student, or on their wishes, the contribution towards expenses shall be deducted to cover the additional administrative costs borne by the operator.
+
+ 6.2.4 Lehr- und Lernbehelfe
+ Die Anschaffung unterrichtsbezogener Literatur und individueller Lernbehelfe ist durch den Unkostenbeitrag nicht abgedeckt. Eventuelle zusätzliche Kosten, die sich beispielsweise durch die studiengangsbezogene, gemeinsame Anschaffung von Lehr- bzw. Lernbehelfen (Skripten, CDs, Bücher, Projektmaterialien, Kopierpapier etc.) oder durch Exkursionen ergeben, werden von jedem Studiengang individuell eingehoben.
+
+ 6.2.5 Beibringung persönlicher Daten
+ Die ao. Studentin bzw. der ao. Student ist verpflichtet, persönliche Daten beizubringen, die auf Grund eines Gesetzes, einer Verordnung oder eines Bescheides vom Erhalter erfasst werden müssen oder zur Erfüllung des Ausbildungsvertrages bzw. für den Studienbetrieb unerlässlich sind.
+
+
+ 6.2.6 Aktualisierung eigener Daten und Bezug von Informationen
+ Die ao. Studentin bzw. der ao. Student hat unaufgefordert dafür zu sorgen, dass die von ihr/ihm beigebrachten Daten aktuell sind. Änderungen sind der Studiengangsassistenz unverzüglich schriftlich mitzuteilen. Darüber hinaus trifft sie/ihn die Pflicht, sich von studienbezogenen Informationen, die ihr/ihm an die vom Erhalter zur Verfügung gestellte Emailadresse zugestellt werden, in geeigneter Weise Kenntnis zu verschaffen.)
+
+
+ 6.2.7
+ Verwertungsrechte
+
+ Sofern nicht im Einzelfall andere Regelungen zwischen dem Erhalter und der ao. Studentin oder dem ao. Studenten getroffen wurden, ist die ao. Studentin oder der ao. Student verpflichtet, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen auf dessen schriftliche Anfrage hin anzubieten.
+
+
+ 6.2.4 Teaching Aids and Learning Tools
+ The acquisition of teaching-related literature and individual learning tools is not covered by the contribution towards expenses. Any additional costs, which arise for example from the course-related, joint purchase of teaching and / or learning materials (scripts, CDs, books, project materials, copying paper, etc.) or result from field trips, are levied by each individual degree program.
+
+
+
+ 6.2.5 Providing Personal Data
+ The external student is obliged to produce personal data which must be registered because of a law, regulation or a decision by the operator, or is essential fort he fulfilling of the training contract or fort he program of studies.
+
+
+ 6.2.6 Updating personal data and the retrieval of information
+ Without being reminded, the external student must ensure that the data provided by them is up-to-date. Changes are to be immediately communicated to the administrative assistant in writing. Furthermore, it is the students’ responsibility to make themselves suitably aware of information relating to their studies which has been sent to them at the email address provided for them by the operator.
+
+
+
+ 6.2.7 Exploitation Rights
+ Unless other arrangements have been agreed between the operator and the external student at an individual level, on written request, the student undertakes to offer the operator the rights to research and development results.
+
+
+
+ 6.2.8 Aufzeichnungen und Mitschnitte
+ Es ist der/dem ao. Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, StudiVZ etc, aber auch auf Youtube usw. oder durch sonstige für diese Zwecke geeignete Kommunikations-mittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben.
+ Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat.
+
+
+ 6.2.9 Geheimhaltungspflicht
+
+ Die ao. Studentin bzw. der ao. Student ist zur Geheimhaltung von Forschungs- und Entwicklungsaktivitäten und -ergebnissen gegenüber Dritten verpflichtet.
+
+ 6.2.10 Unfallmeldung
+ Im Falle eines Unfalles mit körperlicher Verletzung des/der ao. Studierenden im Zusammenhang mit dem Studium ist die/der Studierende verpflichtet, innerhalb von drei Tagen eine Meldung am Studiengangssekretariat einzubringen. Dies betrifft auch Wegunfälle zur oder von der FH.
+
+ 6.2.8 Recordings
+ It is expressly forbidden for the external student to record lectures in part or in total (e.g. by using film and / or sound recordings or other audio-visual means suitable for this purpose). In addition, any form of making the aforementioned recordings publically available (wired or wireless) for example in social networks such as Facebook, StudiVZ etc, but also on Youtube, etc., or by other means of communication designed for these purposes is strictly prohibited. These regulations shall apply correspondingly to scripts, other learning aids and examination data.
+ The only exception is a recording exclusively for the purpose of learning, study and research and for personal use, provided that the lecturer has expressly granted his / her prior written consent.
+
+
+
+
+
+ 6.2.9 Confidentiality
+ The external student is required to maintain confidentiality towards third parties of research and development activities and results.
+
+
+ 6.2.10 Accident Report
+ In the event of an accident with bodily injury to an external student in connection with his / her studies, he / she is obliged to bring a report to the administrative assistant of the degree program within three days. This also applies to accidents on the way to or from the UAS.
+
+
+ 7. Beendigung des Vertrages
+
+
+ 7.1 Auflösung im beiderseitigen Einvernehmen
+
+ Im beiderseitigen Einvernehmen ist die Auflösung des Ausbildungsvertrages jederzeit ohne Angabe von Gründen möglich. Die einvernehmliche Auflösung bedarf der Schriftform.
+
+
+ 7.2 Kündigung durch die Studentin bzw. den Studenten
+
+ Die ao. Studentin bzw. der ao. Student kann den Ausbildungsvertrag schriftlich jeweils zum Ende eines Semesters kündigen.
+
+
+ 7.3 Ausschluss durch den Erhalter
+
+ Der Erhalter kann die ao. Studentin bzw. den ao. Studenten aus wichtigem Grund mit sofortiger Wirkung vom weiteren Studium ausschließen, und zwar beispielsweise wegen
+
+
+ nicht genügender Leistung im Sinne der Prüfungsordnung;
+
+
+ mehrmaligem unentschuldigten Verletzen der Anwesenheitspflicht ;
+
+
+ wiederholtem Nichteinhalten von Prüfungsterminen und Abgabeterminen für Seminararbeiten, Projektarbeiten etc.;
+
+
+ schwerwiegender bzw. wiederholter Verstöße gegen die Hausordnung;
+
+
+ persönlichem Verhalten, das zu einer Beeinträchtigung des Images und/oder Betriebes des Studienganges, der Fach-hochschule bzw. des Erhalters oder von Personen führt, die für die Fachhochschule bzw. den Erhalter tätig sind;
+
+
+ Verletzung der Verpflichtung, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen anzubieten (siehe Pkt. 6.2.7);
+
+
+
+
+
+
+ 7. Termination of the contract
+
+
+
+ 7.1 Annulment by Mutual Agreement
+
+
+ By mutual consent, the annulment of the training contract is possible at any time, without notice and for any reason. The amicable annulment must be put down in writing.
+
+
+
+ 7.2 Termination by the Student
+
+
+
+
+ The external student may terminate the training contract in writing at the end of each semester.
+
+
+ 7.3 Expulsion by the Operator
+
+ The operator may exclude the external student from further study with immediate effect for good cause, for example because of
+
+
+
+ insufficient achievement for the purposes of the examination regulations;
+
+
+ repeated unexcused violation of the compulsory attendance regulation;
+
+
+ repeated non-compliance with examination dates and deadlines for seminar papers, project work etc.;
+
+
+ serious or repeated violation of the house rules;
+
+
+ personal behavior, which leads to an adverse effect on the image and / or operation of the course, the university or the operator or on persons who are working for the university or the operator;
+
+
+ breach of the obligation to offer the operator the rights to research and development results (see Section 6.2.7);
+
+
+
+
+
+
+ Verletzung der Geheimhaltungspflicht (siehe Pkt. 6.2.9);
+
+
+ strafgerichtlicher Verurteilung (wobei die Art des Deliktes und der Grad der Schuld berücksichtigt werden);
+
+
+ Nichterfüllung finanzieller Verpflichtungen trotz Mahnung (z.B. Unkostenbeitrag, Studienbeitrag etc.);
+
+
+ Weigerung zur Beibringung von Daten (siehe Pkt. 6.2.6)
+
+
+ Plagiieren im Rahmen wissenschaftlicher Arbeiten
+
+
+
+
+ Besucht die ao. Studentin bzw. der ao. Student nur eine Lehrveranstaltung, so ist damit zugleich der Ausschluss vom ao. Studium verbunden.
+
+
+ Der Ausschluss kann mündlich erklärt werden. Mit Ausspruch des Ausschlusses endet der Ausbildungsvertrag, es sei denn, es wird ausdrücklich auf einen anderen Endtermin hingewiesen. Eine schriftliche Bestätigung des Ausschlusses wird innerhalb von zwei Wochen nach dessen Ausspruch per Post an die bekannt gegebene Adresse abgeschickt oder auf andere geeignete Weise übermittelt.
+ Gleichzeitig mit dem Ausspruch des Ausschlusses kann auch ein Hausverbot verhängt werden.
+
+
+ 7.4 Erlöschen
+
+ Der Ausbildungsvertrag erlischt mit der Beendigung der besuchten Lehrveranstaltungen durch die Ausstellung eines Zeugnisses oder einer Teilnahmebestätigung. Im Fall des Besuchs mehrerer Lehrveranstaltungen während eines Semesters gibt die Lehrveranstaltung mit der spätesten Ausstellung des Zeugnisses oder der Teilnahmebestätigung den Ausschlag.
+
+
+
+ breach of confidentiality (see Section 6.2.9);
+
+
+ a criminal conviction (whereby the nature of the offence and the level of culpability are taken into account);
+
+
+ non-fulfilment of the financial obligations, despite a reminder (e.g. contribution towards expenses, tuition fees , etc.);
+
+
+ refusal to provide any data (see section 6.2.6);
+
+
+ plagiarism in academic work.
+
+
+
+
+
+
+ If external students attend only one course, they are simultaneously excluded from an external course of study.
+
+
+
+ The expulsion can be explained verbally. Once notice of the expulsion has been given the training contract ends unless another deadline is explicitly made clear. Within two weeks of notice being given, written confirmation of the expulsion is mailed by post to the address provided or transmitted in any other appropriate manner.
+ Simultaneously with notice of expulsion being given an exclusion order from entering the building may also be imposed.
+
+
+
+ 7.4 Expiry
+
+
+ XXX.
+
+
+
+ 8. Ergänzende Vereinbarungen
+
+
+
+ Das gesamte Studienprogramm wird in englischer Sprache angeboten. Die ao. Studentin bzw. der ao. Student erklärt, die englische Sprache in Wort und Schrift in dem für eine akademische Ausbildung erforderlichen Ausmaß zu beherrschen.
+
+
+ Ao. Studierende des Studiengangs sind verpflichtet, eine EDV-Ausstattung zu beschaffen und zu unterhalten, die es ermöglicht, an den Fernlehrelementen teilzunehmen. Die gesamten Kosten der Anschaffung und des Betriebs (inkl. Kosten für Internet und e-mail) trägt der ao. Student bzw. die ao. Studentin.
+
+
+
+
+
+
+ 9.
+
+
+ 8.
+
+
+ Unwirksamkeit von Vertrags-bestimmungen, Vertragslücke
+
+
+ Sollten einzelne Bestimmungen dieses Vertrages unwirksam oder nichtig sein oder werden, so berührt dies die Gültigkeit der übrigen Bestimmungen dieses Vertrages nicht.
+ Die Vertragsparteien verpflichten sich, unwirksame oder nichtige Bestimmungen durch neue Bestimmungen zu ersetzen, die dem in den unwirksamen oder nichtigen Bestimmungen enthaltenen Regelungsgehalt in rechtlich zulässiger Weise gerecht werden. Zur Ausfüllung einer allfälligen Lücke verpflichten sich die Vertragsparteien, auf die Etablierung angemessener Regelungen in diesem Vertrag hinzuwirken, die dem am nächsten kommen, was sie nach dem Sinn und Zweck des Vertrages bestimmt hätten, wenn der Punkt von ihnen bedacht worden wäre.
+
+
+
+
+
+
+
+
+ 8. Supplementary Agreements
+
+
+
+ The entire degree program is offered in English. The external student declares he / she masters the
+ English language in word and in writing to the extent necessary for an academic degree program.
+
+
+
+ External students in the program are required to obtain and maintain computer equipment which allows them to participate in the distance learning elements. The total cost of acquisition and operation (including costs for Internet and e-mail) shall be borne by the external student.
+
+
+
+
+
+
+
+ 9.
+
+
+ 8.
+
+
+
+ Invalidity of Contractual Provisions, Contractual Gap
+
+
+ If any provision of this agreement should be or become invalid or void, this shall not affect the validity of the remaining provisions of this agreement.
+ The parties undertake to replace the invalid or void provisions with new provisions that meet the content of the rules contained in the invalid or void provisions in a legally permissible manner. To fill a possible gap, the parties undertake to work towards the establishment of appropriate regulations in this contract, which come closest to what they would have determined in terms of meaning and purpose of the contract, if the point had been considered by them.
+
+
+
+
+
+
+ 10.
+
+
+ 9.
+
+
+ Ausfertigungen, Gebühren, Gerichtsstand
+
+
+ Die Ausfertigung dieses Vertrages erfolgt in zweifacher Ausführung. Ein Original verbleibt im zuständigen Administrationsbüro des Fachhochschul-Studienganges. Eine Ausfertigung wird der ao. Studentin bzw. dem ao. Studenten übergeben.
+
+ Die englische Übersetzung des deutschsprachigen Vertrages dient nur als Referenz. Rechtsgültigkeit hat ausschließlich der deutsche Vertrag.
+
+ Der Ausbildungsvertrag ist gebührenfrei.
+ Gerichtsstand ist Wien, Innere Stadt.
+
+
+
+
+
+
+
+ 10.
+
+
+ 9.
+
+
+
+ Copies, Fees, Place of Jurisdiction
+
+
+ This contract is provided in duplicate. An original remains with the competent administrations office of the University of Applied Sciences’ Degree Program. A copy is given to the external student.
+
+
+ The English translation of the German contract is intended as a reference only. Only the German version of this contract is legally valid in a Court of Law.
+
+ The training contract is free of charge.
+ Place of Jurisdiction is Vienna, Inner City.
+
+
+
+
+
+
+ Wien (Vienna),
+ Ort, Datum (City, Date)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Die ao. Studentin/der ao. Student /ggf. gesetzliche VertreterInnen
+
+
+ (The external student /
+
+
+
+ if necessary legal representatives)
+
+
+
+
+
+
+ Für die FH Technikum Wien
+
+
+ (For the UAS Technikum Wien)
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/system/xsl/AusbildStatus_0_2.xsl b/system/xsl/AusbildStatus_0_2.xsl
new file mode 100644
index 000000000..ed14bcd31
--- /dev/null
+++ b/system/xsl/AusbildStatus_0_2.xsl
@@ -0,0 +1,778 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ausbildungsvertrag6
+
+
+ -Studiengang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ausbildungsvertrag1
+
+
+ -Studiengang
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/system/xsl/AusbildStatusAO_0_1.xsl b/system/xsl/AusbildStatus_9005_1.xsl
old mode 100755
new mode 100644
similarity index 100%
rename from system/xsl/AusbildStatusAO_0_1.xsl
rename to system/xsl/AusbildStatus_9005_1.xsl
diff --git a/system/xsl/AusbildStatus_9005_2.xsl b/system/xsl/AusbildStatus_9005_2.xsl
new file mode 100644
index 000000000..bdebec659
--- /dev/null
+++ b/system/xsl/AusbildStatus_9005_2.xsl
@@ -0,0 +1,770 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ausbildungsvertrag6
+
+
+ Außerordentliches Studium / Besuch einzelner Lehrveranstaltungen eines Studiengangs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ausbildungsvertrag1
+
+
+ Außerordentliches Studium / Besuch einzelner Lehrveranstaltungen eines Studiengangs
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/system/xsl/Ausbildungsver_0_2.xsl b/system/xsl/Ausbildungsver_0_2.xsl
new file mode 100644
index 000000000..d651551da
--- /dev/null
+++ b/system/xsl/Ausbildungsver_0_2.xsl
@@ -0,0 +1,687 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ausbildungsvertrag
+
+ Dieser Vertrag regelt das Rechtsverhältnis zwischen
+ dem Verein Fachhochschule Technikum Wien, 1060 Wien, Mariahilfer Straße 37-39 (kurz „Erhalter“ genannt) einerseits und
+
+ Familienname:
+ Vorname:
+ Akademische/r Titel:
+ Adresse: ;
+ Geburtsdatum:
+
+ Sozialversicherungsnummer:
+
+
+
+ 1
+
+
+
+
+
+ Gemäß § 3 Absatz 1 des Bildungsdokumentationsgesetzes (BGBl. I Nr. 12/2002 idgF) und der Bildungsdokumentationsverordnung-Fachhochschulen (BGBl. II Nr. 29/2004 idgF) hat der Erhalter die Sozialversicherungsnummer zu erfassen und gemäß § 7 Absatz 2 im Wege der Agentur für Qualitätssicherung und Akkreditierung Austria an das zuständige Bundesministerium und die Bundesanstalt Statistik Österreich zu übermitteln.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personenkennzeichen:
+
+ (kurz „Studentin“ bzw. „Student“ genannt) andererseits im Rahmen des Studienganges „“, StgKz , in der Organisationsform eines
+
+
+ berufsbegleitenden Studiums.
+
+
+ Vollzeitstudiums.
+
+
+ Fernstudiums.
+
+
+
+
+
+
+
+
+ Ausbildungsort
+
+
+
+
+ Studienort sind die Räumlichkeiten der FH Technikum Wien, 1200 Wien, Höchstädtplatz und 1210 Wien, Giefinggasse. Bei Bedarf kann der Erhalter einen anderen Studienort festlegen.
+
+
+
+
+
+ Vertragsgrundlage
+
+
+
+
+ Die Ausbildung erfolgt auf der Grundlage des Fachhochschul-Studiengesetzes, BGBl. Nr. 340/1993 idgF, des Hochschul-Qualitätssicherungsgesetzes, BGBl. I Nr. 74/2011 idgF, des Akkreditierungsbescheides des Board der AQ Austria vom 9.5.2012, GZ FH12020016 idgF und des Fördervertrags mit dem Bundesministerium für Wissenschaft und Forschung idgF.
+
+
+
+
+
+ Ausbildungsdauer
+
+
+
+
+ Die Ausbildungsdauer beträgt Semester.
+
+ Nachgewiesene erworbene Kenntnisse können auf einzelne Lehrveranstaltungen angerechnet werden bzw. zum Erlass einer Lehrveranstaltung oder des Berufspraktikums führen. Hierzu bedarf es eines Antrages der Studentin bzw. des Studenten und der nachfolgenden Feststellung der inhaltlichen und umfänglichen Gleichwertigkeit durch die Studiengangsleitung.
+
+
+
+
+
+ Ausbildungsabschluss
+
+
+
+
+ Die Ausbildung endet mit der positiven Absolvierung der das jeweilige Studium abschließenden kommissionellen Prüfung. Nach dem Abschluss der vorgeschriebenen Prüfungen wird der akademische Grad of Science in Engineering () durch das FH-Kollegium verliehen.
+
+
+
+
+
+ Rechte und Pflichten des Erhalters
+
+
+
+
+ 5.1 Rechte
+ Der Erhalter führt eine periodische Überprüfung des Studiums im Hinblick auf Relevanz und Aktualität durch und ist im Einvernehmen mit dem FH-Kollegium berechtigt, daraus Änderungen des akkreditierten Studienganges abzuleiten.
+
+ Der Erhalter ist berechtigt, die Daten der/des Studierenden an den FH Technikum Wien Alumni Club zu übermitteln. Der Alumni Club ist der AbsolventInnenverein der FH Technikum Wien. Er hat zum Ziel, AbsolventInnen, Studierende und Lehrende miteinander zu vernetzen sowie AbsolventInnen laufend über Aktivitäten an der FH Technikum Wien zu informieren. Einer Zusendung von Informationen durch den Alumni Club kann jederzeit widersprochen werden.
+
+
+
+
+
+ 5.2 Pflichten
+
+
+ Der Erhalter ist verpflichtet, all jene Voraussetzungen zu bieten, damit das Studium innerhalb der Ausbildungsdauer (Pkt. 3) erfolgreich abgeschlossen werden kann. Die Voraussetzungen zur Erfüllung dieser Verpflichtung sind Gegenstand des akkreditierten Studienganges idgF, der Satzung der FH Technikum Wien idgF und der Hausordnung idgF.
+
+
+ Der Erhalter ist weiters verpflichtet, das Studium auf der Grundlage höchster Qualitätsansprüche hinsichtlich der Erreichung der Ausbildungsziele zu gestalten und allfällige Änderungen des akkreditierten Studienganges bekannt zu geben.
+
+
+ Der Erhalter verpflichtet sich zur sorgfaltsgemäßen Verwendung der personenbezogenen Daten der Studierenden. Die Daten werden nur im Rahmen der gesetzlichen und vertraglichen Verpflichtungen sowie des Studienbetriebes verwendet und nicht an nicht berechtigte Dritte weitergegeben.
+
+
+
+
+
+
+
+ Rechte und Pflichten der Studierenden
+
+
+
+
+ 6.1 Rechte
+ Die Studentin bzw. der Student hat das Recht auf
+
+
+ einen Studienbetrieb gemäß den im akkreditierten Studiengang idgF und in der Satzung der FH Technikum Wien idgF festgelegten Bedingungen;
+
+
+ ein Zeugnis über die im laufenden Semester abgelegten Prüfungen;
+
+
+
+ Unterbrechung der Ausbildung aus nachgewiesenen zwingenden persönlichen, gesundheitlichen oder beruflichen
+ Gründen.
+
+
+
+
+ 6.2 Pflichten
+ 6.2.1 Studienbeitrag
+ Die Studentin bzw. der Student ist verpflichtet, zwei Wochen vor Beginn jedes Semesters (StudienanfängerInnen: bis 20. August vor Studienbeginn) einen Studienbeitrag gemäß Fachhochschul-Studiengesetz (BGBl. Nr. 340/1993 idgF) in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Dies gilt auch in Semestern mit DiplomandInnenstatus o.ä. Im Falle einer Erhöhung des gesetzlichen Studienbeitragssatzes erhöht sich der angeführte Betrag entsprechend. Bei Nichtantritt des Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag.
+ 6.2.2 Studierendenbeitrag („ÖH-Beitrag“)
+ Gemäß § 4 Abs. 10 des Fachhochschul-Studiengesetzes (BGBl. Nr. 340/1993 idgF und der Bundesministeriengesetz-Novelle 2007, BGBl. I Nr. 6/2007) gehören ordentliche und außerordentliche Studierende an Fachhochschul-Studiengängen der Österreichischen HochschülerInnenschaft (ÖH) gemäß Hochschülerinnen- und Hochschülerschaftsgesetz (HSG 2014) an. Daraus resultiert die Verpflichtung der Studentin oder des Studenten zur Entrichtung des ÖH-Beitrags. Dies gilt auch in Semestern mit DiplomandInnenstatus. Der Studierendenbeitrag kann jährlich durch die ÖH indexiert werden; die genaue Höhe des Studierendenbeitrags wird von der ÖH jährlich für das folgende Studienjahr bekannt gegeben.
+ Die Einhebung des Betrags erfolgt durch die Fachhochschule. Der Erhalter überweist in Folge die eingezahlten Beträge der Studierenden ohne Abzüge an die ÖH. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung.
+ 6.2.3 Kaution
+ Im Zuge der Einschreibung ist der Nachweis über die einbezahlte Kaution zu erbringen.
+ Die Kaution beträgt € 150,–.
+ Bei Nichtantritt des Studiums oder Abbruch während des ersten oder zweiten Semesters verfällt die Kaution.
+ Bei aufrechtem Inskriptionsverhältnis zu Beginn des zweiten Semesters wird die Kaution auf den Unkostenbeitrag (siehe nächster Punkt) des ersten und zweiten Semesters angerechnet.
+ 6.2.4 Unkostenbeitrag
+ Pro Semester ist ein Unkostenbeitrag zu entrichten, wobei es sich nicht um einen Pauschalbetrag handelt. Der Unkostenbeitrag stellt eine Abgeltung für über das Normalmaß hinausgehende Serviceleistungen der FH dar, z.B. Freifächer, Beratung/Info Auslandsstudium, Sponsionsfeiern, Vorträge / Jobbörse, Mensa etc.
+ Die Höhe des Unkostenbeitrages beträgt derzeit € 75,– pro Semester. Eine allfällige Anpassung wird durch Aushang bekannt gemacht.
+ Der Unkostenbeitrag ist
+
+
+ im
+
+
+ ab dem
+
+
+3. Semester gleichzeitig mit der Studiengebühr vor Beginn des Semesters zu entrichten.
+ Bei Vertragsauflösung vor Studienabschluss aus Gründen, die die Studentin bzw. der Student zu vertreten hat, oder auf deren bzw. dessen Wunsch, wird der Unkostenbeitrag zur Abdeckung der dem Erhalter erwachsenen administrativen Zusatzkosten einbehalten.
+ 6.2.5 Lehr- und Lernbehelfe
+ Die Anschaffung unterrichtsbezogener Literatur und individueller Lernbehelfe ist durch den Unkostenbeitrag nicht abgedeckt. Eventuelle zusätzliche Kosten, die sich beispielsweise durch die studiengangsbezogene, gemeinsame Anschaffung von Lehr- bzw. Lernbehelfen (Skripten, CDs, Bücher, Projektmaterialien, Kopierpapier etc.) oder durch Exkursionen ergeben, werden von jedem Studiengang individuell eingehoben.
+ 6.2.6 Beibringung persönlicher Daten
+ Die Studentin bzw. der Student ist verpflichtet, persönliche Daten beizubringen, die auf Grund eines Gesetzes, einer Verordnung oder eines Bescheides vom Erhalter erfasst werden müssen oder zur Erfüllung des Ausbildungsvertrages bzw für den Studienbetrieb unerlässlich sind.
+ 6.2.7 Aktualisierung eigener Daten und Bezug von Informationen
+ Die Studentin bzw. der Student hat unaufgefordert dafür zu sorgen, dass die von ihr/ihm beigebrachten Daten aktuell sind. Änderungen sind der Studiengangsassistenz unverzüglich schriftlich mitzuteilen. Darüber hinaus trifft sie/ihn die Pflicht, sich von studienbezogenen Informationen, die ihr/ihm an die vom Erhalter zur Verfügung gestellte Emailadresse zugestellt werden, in geeigneter Weise Kenntnis zu verschaffen.)
+ 6.2.8 Verwertungsrechte
+ Sofern nicht im Einzelfall andere Regelungen zwischen dem Erhalter und der Studentin oder dem Studenten getroffen wurden, ist die Studentin oder der Student verpflichtet, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen auf dessen schriftliche Anfrage hin anzubieten.
+ 6.2.9 Aufzeichnungen und Mitschnitte
+ Es ist der/dem Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, StudiVZ etc, aber auch auf Youtube usw. oder durch sonstige für diese Zwecke geeignete Kommunikationsmittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben.
+ Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat.
+ 6.2.10 Geheimhaltungspflicht
+ Die Studentin bzw. der Student ist zur Geheimhaltung von Forschungs- und Entwicklungsaktivitäten und -ergebnissen gegenüber Dritten verpflichtet.
+
+ 6.2.11 Unfallmeldung
+ Im Falle eines Unfalles mit körperlicher Verletzung des/der Studierenden im Zusammenhang mit dem Studium ist die/der Studierende verpflichtet, innerhalb von drei Tagen eine Meldung am Studiengangssekretariat einzubringen. Dies betrifft auch Wegunfälle zur oder von der FH.
+
+
+
+
+
+ Beendigung des Vertrages
+
+
+
+
+ 7.1 Auflösung im beiderseitigen Einvernehmen
+ Im beiderseitigen Einvernehmen ist die Auflösung des Ausbildungsvertrages jederzeit ohne Angabe von Gründen möglich. Die einvernehmliche Auflösung bedarf der Schriftform.
+
+ 7.2 Kündigung durch die Studentin bzw. den Studenten
+ Die Studentin bzw. der Student kann den Ausbildungsvertrag schriftlich jeweils zum Ende eines Semesters kündigen.
+
+ 7.3 Ausschluss durch den Erhalter
+ Der Erhalter kann die Studentin bzw. den Studenten aus wichtigem Grund mit sofortiger Wirkung vom weiteren Studium ausschließen, und zwar beispielsweise wegen
+
+
+ nicht genügender Leistung im Sinne der Prüfungsordnung;
+
+
+ mehrmaligem unentschuldigten Verletzen der Anwesenheitspflicht ;
+
+
+ wiederholtem Nichteinhalten von Prüfungsterminen und Abgabeterminen für Seminararbeiten, Projektarbeiten etc.;
+
+
+ schwerwiegender bzw. wiederholter Verstöße gegen die Hausordnung;
+
+
+ persönlichem Verhalten, das zu einer Beeinträchtigung des Images und/oder Betriebes des Studienganges, der Fachhochschule bzw. des Erhalters oder von Personen führt, die für die Fachhochschule bzw. den Erhalter tätig sind;
+
+
+ Verletzung der Verpflichtung, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen anzubieten (siehe Pkt. 6.2.8);
+
+
+ Verletzung der Geheimhaltungspflicht (siehe Pkt. 6.2.10);
+
+
+ strafgerichtlicher Verurteilung (wobei die Art des Deliktes und der Grad der Schuld berücksichtigt werden);
+
+
+ Nichterfüllung finanzieller Verpflichtungen trotz Mahnung (z.B. Unkostenbeitrag, Studienbeitrag etc.);
+
+
+ Weigerung zur Beibringung von Daten (siehe Pkt. 6.2.6)
+
+
+ Plagiieren im Rahmen wissenschaftlicher Arbeiten
+
+
+
+ Der Ausschluss kann mündlich erklärt werden. Mit Ausspruch des Ausschlusses endet der Ausbildungsvertrag, es sei denn, es wird ausdrücklich auf einen anderen Endtermin hingewiesen. Eine schriftliche Bestätigung des Ausschlusses wird innerhalb von zwei Wochen nach dessen Ausspruch per Post an die bekannt gegebene Adresse abgeschickt oder auf andere geeignete Weise übermittelt.
+ Gleichzeitig mit dem Ausspruch des Ausschlusses kann auch ein Hausverbot verhängt werden.
+
+ 7.4 Erlöschen
+ Der Ausbildungsvertrag erlischt mit der Verleihung des akademischen Grades.
+
+
+
+
+
+
+
+ Ergänzende Vereinbarungen
+
+
+
+
+
+ Das gesamte Studienprogramm wird in englischer Sprache angeboten. Die Studentin bzw. der Student erklärt, die englische Sprache in Wort und Schrift in dem für eine akademische Ausbildung erforderlichen Ausmaß zu beherrschen.
+
+
+ Studierende des Studiengangs sind verpflichtet, eine EDV-Ausstattung zu beschaffen und zu unterhalten, die es ermöglicht, an den Fernlehrelementen teilzunehmen. Die gesamten Kosten der Anschaffung und des Betriebs (inkl. Kosten für Internet und e-mail) trägt der Student bzw. die Studentin.
+
+
+
+
+
+
+
+
+ Unwirksamkeit von Vertragsbestimmungen, Vertragslücke
+
+
+
+
+ Sollten einzelne Bestimmungen dieses Vertrages unwirksam oder nichtig sein oder werden, so berührt dies die Gültigkeit der übrigen Bestimmungen dieses Vertrages nicht.
+ Die Vertragsparteien verpflichten sich, unwirksame oder nichtige Bestimmungen durch neue Bestimmungen zu ersetzen, die dem in den unwirksamen oder nichtigen Bestimmungen enthaltenen Regelungsgehalt in rechtlich zulässiger Weise gerecht werden. Zur Ausfüllung einer allfälligen Lücke verpflichten sich die Vertragsparteien, auf die Etablierung angemessener Regelungen in diesem Vertrag hinzuwirken, die dem am nächsten kommen, was sie nach dem Sinn und Zweck des Vertrages bestimmt hätten, wenn der Punkt von ihnen bedacht worden wäre.
+
+
+
+
+
+
+ Ausfertigungen, Gebühren, Gerichtsstand
+
+
+
+
+ Die Ausfertigung dieses Vertrages erfolgt in zweifacher Ausführung. Ein Original verbleibt im zuständigen Administrationsbüro des Fachhochschul-Studienganges. Eine Ausfertigung wird der Studentin bzw. dem Studenten übergeben.
+ Der Ausbildungsvertrag ist gebührenfrei.
+ Gerichtsstand ist Wien, Innere Stadt.
+
+
+
+
+ Wien,
+
+
+
+
+
+
+ Ort, Datum
+
+
+
+
+
+ Ort, Datum
+
+
+
+
+
+
+
+
+ Die Studentin/der Studentggf. gesetzliche VertreterInnen
+
+
+
+
+
+ Für die FH Technikum Wien
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/system/xsl/AusbildungsverAO_0_1.xsl b/system/xsl/Ausbildungsver_9005_1.xsl
old mode 100755
new mode 100644
similarity index 100%
rename from system/xsl/AusbildungsverAO_0_1.xsl
rename to system/xsl/Ausbildungsver_9005_1.xsl
diff --git a/system/xsl/Ausbildungsver_9005_2.xsl b/system/xsl/Ausbildungsver_9005_2.xsl
new file mode 100644
index 000000000..12a362cd9
--- /dev/null
+++ b/system/xsl/Ausbildungsver_9005_2.xsl
@@ -0,0 +1,656 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ausbildungsvertrag außerordentliches Studium (Besuch einzelner Lehrveranstaltungen eines Studiengangs)
+
+ Dieser Vertrag regelt das Rechtsverhältnis zwischen
+ dem Verein Fachhochschule Technikum Wien, 1060 Wien, Mariahilfer Straße 37-39 (kurz „Erhalter“ genannt) einerseits und
+
+ Familienname:
+ Vorname:
+ Akademische/r Titel:
+ Adresse: ;
+ Geburtsdatum:
+
+ Sozialversicherungsnummer:
+
+
+
+ 1
+
+
+
+
+
+ Gemäß § 3 Absatz 1 des Bildungsdokumentationsgesetzes (BGBl. I Nr. 12/2002 idgF) und der Bildungsdokumentationsverordnung-Fachhochschulen (BGBl. II Nr. 29/2004 idgF) hat der Erhalter die Sozialversicherungsnummer zu erfassen und gemäß § 7 Absatz 2 im Wege der Agentur für Qualitätssicherung und Akkreditierung Austria an das zuständige Bundesministerium und die Bundesanstalt Statistik Österreich zu übermitteln.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personenkennzeichen:
+
+ (kurz „ao. Studentin“ bzw. „ao. Student“ genannt) andererseits im Rahmen des außerordentlichen Studiums bzw. des Besuchs einzelner Lehrveranstaltungen des Studienganges „“, StgKz , in der Organisationsform eines
+
+
+ berufsbegleitenden Studiums.
+
+
+ Vollzeitstudiums.
+
+
+ Fernstudiums.
+
+
+
+ Die konkreten Lehrveranstaltungen des außerordentlichen Studiums sind in der Information über die Zulassung zum außerordentlichen Studium angeführt.
+
+
+
+
+
+ Ausbildungsort
+
+
+
+
+ Studienort sind die Räumlichkeiten der FH Technikum Wien, 1200 Wien, Höchstädtplatz und 1210 Wien, Giefinggasse. Bei Bedarf kann der Erhalter einen anderen Studienort festlegen.
+
+
+
+
+ Vertragsgrundlage
+
+
+
+
+ Die Ausbildung erfolgt auf der Grundlage von § 4 Abs. 2 und 3 des Fachhochschul-Studiengesetzes, BGBl. Nr. 340/1993 idgF, des Hochschul-Qualitätssicherungsgesetzes, BGBl. I Nr. 74/2011 idgF und des Akkreditierungsbescheides des Board der AQ Austria vom 9.5.2012, GZ FH12020016 idgF.
+
+
+
+
+ Ausbildungsdauer
+
+
+
+
+ Die Ausbildungsdauer des außerordentlichen Studiums ist durch die Dauer der Lehrveranstaltung/en, zu der bzw. denen die ao. Studentin bzw. der ao. Student zugelassen ist, definiert.
+
+
+
+
+ Ausbildungsabschluss
+
+
+
+
+ Das außerordentliche Studium endet mit der positiven Absolvierung der in den jeweiligen Lehrveranstaltungen vorgesehenen Leistungsanforderungen. Nach dem positiven Abschluss wird der für die jeweilige Lehrveranstaltung vorgesehene Leistungsnachweis ausgestellt.
+
+
+
+
+
+ Rechte und Pflichten des Erhalters
+
+
+
+
+ 5.1 Rechte
+ Der Erhalter führt eine periodische Überprüfung des die Lehrveranstaltungen anbietenden Studiengangs im Hinblick auf Relevanz und Aktualität durch und ist im Einvernehmen mit dem FH-Kollegium berechtigt, daraus Änderungen im Lehrangebot des Studienganges abzuleiten.
+
+ Der Erhalter ist berechtigt, die Daten der/des Studierenden an den FH Technikum Wien Alumni Club zu übermitteln. Der Alumni Club ist der AbsolventInnenverein der FH Technikum Wien. Er hat zum Ziel, AbsolventInnen, Studierende und Lehrende miteinander zu vernetzen sowie AbsolventInnen laufend über Aktivitäten an der FH Technikum Wien zu informieren. Einer Zusendung von Informationen durch den Alumni Club kann jederzeit widersprochen werden.
+
+
+
+
+
+ 5.2 Pflichten
+
+
+ Der Erhalter ist verpflichtet, all jene Voraussetzungen zu bieten, damit die besuchten Lehrveranstaltungen in der vorgesehenen Zeit erfolgreich abgeschlossen werden können. Die Voraussetzungen zur Erfüllung dieser Verpflichtung sind Gegenstand des akkreditierten Studienganges idgF, der Satzung der FH Technikum Wien idgF und der Hausordnung idgF.
+
+
+ Der Erhalter ist weiters verpflichtet, die Lehrveranstaltungen auf der Grundlage höchster Qualitätsansprüche hinsichtlich der Erreichung der Ausbildungsziele zu gestalten und allfällige Änderungen des akkreditierten Studienganges bekannt zu geben.
+
+
+ Der Erhalter verpflichtet sich zur sorgfaltsgemäßen Verwendung der personenbezogenen Daten der ao. Studierenden. Die Daten werden nur im Rahmen der gesetzlichen und vertraglichen Verpflichtungen sowie des Studienbetriebes verwendet und nicht an nicht berechtigte Dritte weitergegeben.
+
+
+
+
+
+
+
+ Rechte und Pflichten der Studierenden
+
+
+
+
+ 6.1 Rechte
+ Die ao. Studentin bzw. der ao. Student hat das Recht auf
+
+
+ einen Lehrveranstaltungsbetrieb gemäß den im akkreditierten Studiengang idgF und in der Satzung der FH Technikum Wien idgF festgelegten Bedingungen;
+
+
+ ein Zeugnis über die im laufenden Semester abgelegten Prüfungen.
+
+
+
+ 6.2 Pflichten
+ 6.2.1 Studienbeitrag
+ Die ao. Studentin bzw. der ao. Student ist verpflichtet, vor Beginn jedes Semesters bis zum jeweils bekannt gegebenen Termin einen Studienbeitrag gemäß Fachhochschul-Studiengesetz (BGBl. Nr. 340/1993 idgF) in der Höhe von derzeit € 363,36 netto pro Semester zu entrichten. Im Falle einer Erhöhung des gesetzlichen Studienbeitragssatzes erhöht sich der angeführte Betrag entsprechend. Bei Nichtantritt des ao. Studiums oder Abbruch zu Beginn oder während des Semesters verfällt der Studienbeitrag.
+ 6.2.2 Studierendenbeitrag („ÖH-Beitrag“)
+ Gemäß § 4 Abs. 10 des Fachhochschul-Studiengesetzes (BGBl. Nr. 340/1993 idgF) gehören ordentliche und außerordentliche Studierende der Österreichischen Hochschülerinnen- und Hochschülerschaft (ÖH) gemäß Hochschülerinnen- und Hochschülerschaftsgesetz 2014 - HSG 2014, BGBl. I Nr. 45/2014, an. Daraus resultiert die Verpflichtung der ao. Studentin oder des ao. Studenten zur Entrichtung des ÖH-Beitrags. Der Studierendenbeitrag kann jährlich durch die ÖH indexiert werden; die genaue Höhe des Studierendenbeitrags wird von der ÖH jährlich für das folgende Studienjahr bekannt gegeben. Die Einhebung des Betrags erfolgt durch die Fachhochschule. Der Erhalter überweist in Folge die eingezahlten Beträge der ao. Studierenden ohne Abzüge an die ÖH. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum Studium bzw. für dessen Fortsetzung.
+ 6.2.3 Unkostenbeitrag
+ Pro Semester ist ein Unkostenbeitrag zu entrichten. Die Höhe des Unkostenbeitrages beträgt € 75,– pro Semester. Eine allfällige Anpassung wird durch Aushang bekannt gemacht. Der Unkostenbeitrag ist gleichzeitig mit der Studiengebühr vor Beginn des Semesters zu entrichten. Bei Vertragsauflösung vor dem Ende der besuchten Lehrveranstaltungen aus Gründen, die die ao. Studentin bzw. der ao. Student zu vertreten hat, oder auf deren bzw. dessen Wunsch, wird der Unkostenbeitrag zur Abdeckung der dem Erhalter erwachsenen administrativen Zusatzkosten einbehalten.
+ 6.2.4 Lehr- und Lernbehelfe
+ Die Anschaffung unterrichtsbezogener Literatur und individueller Lernbehelfe ist durch den Unkostenbeitrag nicht abgedeckt. Eventuelle zusätzliche Kosten, die sich beispielsweise durch die lehrveranstaltungsbezogene, gemeinsame Anschaffung von Lehr- bzw. Lernbehelfen (Skripten, CDs, Bücher, Projektmaterialien, Kopierpapier etc.) oder durch Exkursionen ergeben, werden von jedem Studiengang individuell eingehoben.
+ 6.2.5 Beibringung persönlicher Daten
+ Die ao. Studentin bzw. der ao. Student ist verpflichtet, persönliche Daten beizubringen, die auf Grund eines Gesetzes, einer Verordnung oder eines Bescheides vom Erhalter erfasst werden müssen oder zur Erfüllung des Ausbildungsvertrages bzw für den Studienbetrieb unerlässlich sind.
+ 6.2.6 Aktualisierung eigener Daten und Bezug von Informationen
+ Die ao. Studentin bzw. der ao. Student hat unaufgefordert dafür zu sorgen, dass die von ihr/ihm beigebrachten Daten aktuell sind. Änderungen sind der Studiengangsassistenz unverzüglich schriftlich mitzuteilen. Darüber hinaus trifft sie/ihn die Pflicht, sich von studienbezogenen Informationen, die ihr/ihm an die vom Erhalter zur Verfügung gestellte Emailadresse zugestellt werden, in geeigneter Weise Kenntnis zu verschaffen.)
+ 6.2.7 Verwertungsrechte
+ Sofern nicht im Einzelfall andere Regelungen zwischen dem Erhalter und der ao. Studentin oder dem ao. Studenten getroffen wurden, ist die ao. Studentin oder der ao. Student verpflichtet, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen auf dessen schriftliche Anfrage hin anzubieten.
+ 6.2.8 Aufzeichnungen und Mitschnitte
+ Es ist der/dem ao. Studierenden ausdrücklich untersagt, Lehrveranstaltungen als Ganzes oder nur Teile davon aufzuzeichnen und/oder mitzuschneiden (z.B. durch Film- und/oder Tonaufnahmen oder sonstige hierfür geeignete audiovisuelle Mittel). Darüber hinaus ist jede Form der öffentlichen Zurverfügungstellung (drahtlos oder drahtgebunden) der vorgenannten Aufnahmen z.B. in sozialen Netzwerken wie Facebook, StudiVZ etc, aber auch auf Youtube usw. oder durch sonstige für diese Zwecke geeignete Kommunikationsmittel untersagt. Diese Regelungen gelten sinngemäß auch für Skripten, sonstige Lernbehelfe und Prüfungsangaben.
+ Ausgenommen hiervon ist eine Aufzeichnung zu ausschließlichen Lern-, Studien- und Forschungszwecken und zum privaten Gebrauch, sofern hierfür der Vortragende vorab ausdrücklich seine schriftliche Zustimmung erteilt hat.
+ 6.2.9 Geheimhaltungspflicht
+ Die ao. Studentin bzw. der ao. Student ist zur Geheimhaltung von Forschungs- und Entwicklungsaktivitäten und -ergebnissen gegenüber Dritten verpflichtet.
+ 6.2.10 Unfallmeldung
+ Im Falle eines Unfalles mit körperlicher Verletzung des/der ao. Studierenden im Zusammenhang mit dem ao. Studium ist die/der ao. Studierende verpflichtet, innerhalb von drei Tagen eine Meldung am Studiengangssekretariat einzubringen. Dies betrifft auch Wegunfälle zur oder von der FH.
+
+
+
+
+
+ Beendigung des Vertrages
+
+
+
+
+ 7.1 Auflösung im beiderseitigen Einvernehmen
+ Im beiderseitigen Einvernehmen ist die Auflösung des Ausbildungsvertrages jederzeit ohne Angabe von Gründen möglich. Die einvernehmliche Auflösung bedarf der Schriftform.
+
+ 7.2 Kündigung durch die ao. Studentin bzw. den ao. Studenten
+ Die ao. Studentin bzw. der ao. Student kann den Ausbildungsvertrag schriftlich jeweils zum Ende eines Semesters kündigen.
+
+ 7.3 Ausschluss durch den Erhalter
+ Der Erhalter kann die ao. Studentin bzw. den ao. Studenten aus wichtigem Grund mit sofortiger Wirkung vom weiteren Besuch einer bestimmten Lehrveranstaltung ausschließen, und zwar beispielsweise wegen
+
+
+ nicht genügender Leistung im Sinne der Prüfungsordnung;
+
+
+ mehrmaligem unentschuldigten Verletzen der Anwesenheitspflicht ;
+
+
+ wiederholtem Nichteinhalten von Prüfungsterminen und Abgabeterminen für Seminararbeiten, Projektarbeiten etc.;
+
+
+ schwerwiegender bzw. wiederholter Verstöße gegen die Hausordnung;
+
+
+ persönlichem Verhalten, das zu einer Beeinträchtigung des Images und/oder Betriebes des Studienganges, der Fachhochschule bzw. des Erhalters oder von Personen führt, die für die Fachhochschule bzw. den Erhalter tätig sind;
+
+
+ Verletzung der Verpflichtung, dem Erhalter die Rechte an Forschungs- und Entwicklungsergebnissen anzubieten (siehe Pkt. 6.2.7);
+
+
+ Verletzung der Geheimhaltungspflicht (siehe Pkt. 6.2.9);
+
+
+ strafgerichtlicher Verurteilung (wobei die Art des Deliktes und der Grad der Schuld berücksichtigt werden);
+
+
+ Nichterfüllung finanzieller Verpflichtungen trotz Mahnung (z.B. Unkostenbeitrag, Studienbeitrag etc.);
+
+
+ Weigerung zur Beibringung von Daten (siehe Pkt. 6.2.6)
+
+
+ Plagiieren im Rahmen wissenschaftlicher Arbeiten
+
+
+
+ Besucht die ao. Studentin bzw. der ao. Student nur eine Lehrveranstaltung, so ist damit zugleich der Ausschluss vom ao. Studium verbunden.
+ Der Ausschluss kann mündlich erklärt werden. Mit Ausspruch des Ausschlusses vom ao. Studium endet der Ausbildungsvertrag, es sei denn, es wird ausdrücklich auf einen anderen Endtermin hingewiesen. Eine schriftliche Bestätigung des Ausschlusses wird innerhalb von zwei Wochen nach dessen Ausspruch per Post an die bekannt gegebene Adresse abgeschickt oder auf andere geeignete Weise übermittelt. Gleichzeitig mit dem Ausspruch des Ausschlusses kann auch ein Hausverbot verhängt werden.
+
+ 7.4 Erlöschen
+ Der Ausbildungsvertrag erlischt mit der Beendigung der besuchten Lehrveranstaltungen durch die Ausstellung eines Zeugnisses oder einer Teilnahmebestätigung. Im Fall des Besuchs mehrerer Lehrveranstaltungen während eines Semesters gibt die Lehrveranstaltung mit der spätesten Ausstellung des Zeugnisses oder der Teilnahmebestätigung den Ausschlag.
+
+
+
+
+
+
+
+ Ergänzende Vereinbarungen
+
+
+
+
+
+ Das gesamte Studienprogramm wird in englischer Sprache angeboten. Die ao. Studentin bzw. der ao. Student erklärt, die englische Sprache in Wort und Schrift in dem für eine akademische Ausbildung erforderlichen Ausmaß zu beherrschen.
+
+ Ao. Studierende des Studiengangs sind verpflichtet, eine EDV-Ausstattung zu beschaffen und zu unterhalten, die es ermöglicht, an den Fernlehrelementen teilzunehmen. Die gesamten Kosten der Anschaffung und des Betriebs (inkl. Kosten für Internet und e-mail) trägt der ao. Student bzw. die ao. Studentin.
+
+
+
+
+
+
+
+ Unwirksamkeit von Vertragsbestimmungen, Vertragslücke
+
+
+
+
+ Sollten einzelne Bestimmungen dieses Vertrages unwirksam oder nichtig sein oder werden, so berührt dies die Gültigkeit der übrigen Bestimmungen dieses Vertrages nicht.
+ Die Vertragsparteien verpflichten sich, unwirksame oder nichtige Bestimmungen durch neue Bestimmungen zu ersetzen, die dem in den unwirksamen oder nichtigen Bestimmungen enthaltenen Regelungsgehalt in rechtlich zulässiger Weise gerecht werden. Zur Ausfüllung einer allfälligen Lücke verpflichten sich die Vertragsparteien, auf die Etablierung angemessener Regelungen in diesem Vertrag hinzuwirken, die dem am nächsten kommen, was sie nach dem Sinn und Zweck des Vertrages bestimmt hätten, wenn der Punkt von ihnen bedacht worden wäre.
+
+
+
+
+
+
+ Ausfertigungen, Gebühren, Gerichtsstand
+
+
+
+
+ Die Ausfertigung dieses Vertrages erfolgt in zweifacher Ausführung. Ein Original verbleibt im zuständigen Administrationsbüro des Fachhochschul-Studienganges. Eine Ausfertigung wird der ao. Studentin bzw. dem ao. Studenten übergeben.
+ Der Ausbildungsvertrag ist gebührenfrei.
+ Gerichtsstand ist Wien, Innere Stadt.
+
+
+
+
+ Wien,
+
+
+
+
+
+
+ Ort, Datum
+
+
+
+
+
+ Ort, Datum
+
+
+
+
+
+
+
+
+ Die ao. Studentin/der ao. Studentggf. gesetzliche VertreterInnen
+
+
+
+
+
+ Für die FH Technikum Wien
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/system/xsl/diplomaSupp_-5_v2.xsl b/system/xsl/diplomaSupp_-5_v2.xsl
new file mode 100644
index 000000000..b5684e3ef
--- /dev/null
+++ b/system/xsl/diplomaSupp_-5_v2.xsl
@@ -0,0 +1,1867 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Transcript of Records
+
+
+ Lehrgang zur Weiterbildung
+
+
+
+
+
+
+
+
+ Certificate Program for Further Education
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mit dem Dokument wird das Ziel verfolgt, Daten zu erfassen, um die internationale "Transparenz" und die angemessene akademische und berufliche Anerkennung von Qualifikationen (Diplomen, Abschlüssen, Zeugnissen usw.) zu verbessern. Es bietet eine Beschreibung über Art, Niveau, Kontext, Inhalt und Status eines Studiums, den die im Original-Befähigungs-nachweis, dem der Anhang beigefügt ist, genannte Person absolviert und erfolgreich abgeschlossen hat. Der Anhang sollte keinerlei Werturteile, Aussagen über Gleichwertigkeit mit anderen Qualifikationen oder Vorschläge bezüglich der Anerkennung enthalten.
+
+
+ The purpose of the document is to provide data to improve the international transparency and fair academic and professional recognition of qualifications (diplomas, degrees, certificates, etc.). It is designed to provide a description of the nature, level, context, content and status of the studies that were pursued and successfully completed by the individual named on the original qualification to which this supplement is appended. It should be free from any value judgments, equivalence statements or suggestions about recognition.
+
+
+
+
+
+
+
+
+
+
+ 1.
+
+
+ Angaben zur Person des Qualifikationsinhabers/der Qualifikationsinhaberin
+ Information identifying the holder of the qualification
+
+
+
+
+
+
+ 1.1
+
+
+
+
+ Familienname(n)
+
+
+ Family Name(s)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.2
+
+
+
+
+ Vorname(n)
+
+
+ Given Name(s)
+
+
+
+
+
+
+
+
+
+ 1.3
+
+
+
+
+ Geburtsdatum (TT.MM.JJJJ)
+
+
+ Date of birth (DD.MM.YYYY)
+
+
+
+
+
+
+
+
+
+
+
+ 1.4
+
+
+
+
+ Personenkennzeichen
+
+
+ Student identification number
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2.
+
+
+ Angaben zur Qualifikation
+ Information identifying the qualification
+
+
+
+
+
+
+ 2.1
+
+
+
+
+ Name der Qualifikation
+
+
+ Name of qualification
+
+
+
+
+ Akademische/r Social Media Manager/in
+
+
+ Academic Social Media Manager
+
+
+
+
+
+
+ 2.2
+
+
+
+
+ Hauptstudierfach oder -fächer für die Qualifikation
+
+
+ Main field(s) of study for the qualification
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2.3
+
+
+
+
+ Name und Status der Organisation, die die Qualifikation verliehen hat
+
+
+ Name and status of awarding institution
+
+
+
+
+
+ Fachhochschule Technikum Wien, Verleihung des Status „Fachhochschule" im November 2000
+
+
+
+
+
+ University of Applied Sciences Technikum Wien, status University of Applied Science
+
+ conferred November 2000
+
+
+
+
+
+
+ 2.4
+
+
+
+
+
+ Name und Status der Einrichtung, die das Studium durchführte
+
+
+
+
+
+ Name and status of institution administering studies
+
+
+
+
+
+
+ Fachhochschule Technikum Wien, Verleihung des Status „Fachhochschule" im November 2000
+
+
+
+ University of Applied Sciences Technikum Wien, status University of Applied Science conferred November 2000
+
+
+
+
+
+
+
+
+ 2.5
+
+
+
+
+ Im Unterricht / in den Prüfungen verwendete Sprachen
+
+
+ Language(s) of instruction / examination
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2.6
+
+
+
+
+ Regelstudienzeit und ECTS credits
+
+
+ Official length of program and ECTS credits
+
+
+
+
+ 2 Semester | 1 Jahr | 60 ECTS
+
+
+ 2 semester(s) | 1 year(s) | 60 ECTS
+
+
+
+
+
+
+ 2.7
+
+
+
+
+ Studienart / Mode of Study
+
+
+
+
+ Weiterbildung / Further Education
+
+
+
+
+
+
+
+
+
+ 2.8
+
+
+
+
+ Informationsquellen für ergänzende Angaben
+
+
+ Further information sources
+
+
+
+
+ www.technikum-wien.at
+
+
+ www.lllacademy.at
+
+
+
+
+
+ Abgeschlossene Lehrveranstaltungen / Completed subjects
+
+
+ Im Rahmen des Weiterbildungslehrganges der FH Technikum Wien wurden die folgenden Lehrveranstaltungen erfolgreich abgeschlossen:
+
+ Within the Further Education program provided by the University of Applied Science Technikum Wien examinations in the following subjects were passed:
+
+
+
+
+
+
+
+
+
+
+ Date
+
+
+ Course
+
+
+ Type1
+
+
+ SP/W2
+
+
+ ECTS credits
+
+
+ Grade³
+
+
+
+
+
+ Total
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+ ¹ Type: Laboratory, Labor (LAB); Lecture, Vorlesung (VO); Integrated Course, Integrierte Lehrveranstaltung (ILV); Seminar (SE), Tutorial, Tutorium (TUT); Project, Projekt (PRJ); Exercise, Üebung (UE); Distance Learning, Fernstudium (FL); Other, Andere (SO)
+ ² 1 Semester period per week = 45 minutes; 1 Semesterwochenstunde = 45 Minuten
+ ³ Grading Scheme: excellent / Sehr gut (1), good / Gut (2), satisfactory / Befriedigend (3), Sufficient / Genügend (4), Unsatisfactory / Nicht genügend (5), not graded / Nicht beurteilt (nb), Credit based on previous experience/work / Angrechnet (ar), successfully completed / erfolgreich teilgenommen (ea), not successfully completed / nicht erfolgreich teilgenommen (nea), Participated with success / mit Erfolg teilgenommen (met), participated / teilgenommen (tg)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Vienna,
+ Place / Ort, Datum / Date
+
+
+
+
+
+ LehrgangsleiterIn / Program Director
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Σ
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vilesci/personen/anwesenheit.php b/vilesci/personen/anwesenheit.php
index 8457e6dba..71559d19a 100644
--- a/vilesci/personen/anwesenheit.php
+++ b/vilesci/personen/anwesenheit.php
@@ -30,6 +30,8 @@ require_once('../../include/datum.class.php');
require_once('../../include/lehreinheit.class.php');
require_once('../../include/lehrveranstaltung.class.php');
require_once('../../include/anwesenheit.class.php');
+require_once('../../include/studiensemester.class.php');
+require_once('../../include/lehreinheitmitarbeiter.class.php');
if (!$uid = get_uid())
die('Keine UID gefunden!');
@@ -43,12 +45,74 @@ $datum_obj = new datum();
if(!$rechte->isBerechtigt('basis/person', null, 'suid'))
die('Sie haben keine Berechtigung für diese Seite');
-
if(isset($_REQUEST['work']))
$work = $_REQUEST['work'];
else
$work='';
+if($work=='getTermine')
+{
+ $stg = $_POST['stg'];
+ $sem = $_POST['sem'];
+ $stsem = $_POST['stsem'];
+ $lv = $_POST['lv'];
+
+ // Daten der Lehreinheiten ermitteln
+ $qry = "SELECT
+ le.lehreinheit_id, sp.ort_kurzbz, datum
+ FROM
+ lehre.tbl_lehreinheit le
+ JOIN lehre.tbl_lehrveranstaltung lv ON lv.lehrveranstaltung_id = le.lehrveranstaltung_id
+ JOIN lehre.tbl_stundenplan sp ON (sp.lehreinheit_id=le.lehreinheit_id)
+ WHERE lv.studiengang_kz = " . $db->db_add_param($stg)."
+ AND lv.lehrveranstaltung_id = " . $db->db_add_param($lv)."
+ AND lv.semester = " . $db->db_add_param($sem)."
+ AND le.studiensemester_kurzbz=".$db->db_add_param($stsem)." ORDER BY datum, stunde";
+
+ $data = array();
+ $lektoren=array();
+ if($result = $db->db_query($qry))
+ {
+ while($row = $db->db_fetch_object($result))
+ {
+ $paddedLehreinheitId = str_pad($row->lehreinheit_id, 6, "0", STR_PAD_LEFT);
+ $id = date('ymd', strtotime($row->datum)) . $paddedLehreinheitId;
+
+ if(!isset($lektoren[$row->lehreinheit_id]))
+ {
+ $le_obj = new lehreinheitmitarbeiter();
+ $le_obj->getLehreinheitmitarbeiter($row->lehreinheit_id);
+ $lektoren[$row->lehreinheit_id]='';
+ foreach($le_obj->lehreinheitmitarbeiter as $row_lem)
+ {
+ $lektoren[$row->lehreinheit_id].=$row_lem->mitarbeiter_uid.' ';
+ }
+ }
+
+ $data[$id]=$datum_obj->formatDatum($row->datum,'d.m.Y').' '.$lektoren[$row->lehreinheit_id];
+ }
+ }
+ echo json_encode($data);
+ exit;
+}
+if($work=='getLVs')
+{
+ $stg = $_POST['stg'];
+ $sem = $_POST['sem'];
+ $stsem = $_POST['stsem'];
+
+ $lv = new lehrveranstaltung();
+ $lv->load_lva_le($stg, $stsem, $sem);
+
+ $data = array();
+ foreach($lv->lehrveranstaltungen as $row)
+ {
+ $data[$row->lehrveranstaltung_id]=$row->bezeichnung;
+ }
+ echo json_encode($data);
+ exit;
+}
+
echo '
@@ -72,7 +136,7 @@ echo '
{
$("#t1").tablesorter(
{
- sortList: [[4,1]],
+ sortList: [[4,0]],
widgets: ["zebra"]
});
});
@@ -276,7 +340,142 @@ if($work=='')
Bitte scannen Sie den Lehreinheiten Barcode
- ';
+
+ ';
+
+
+ $studiengang_kz='';
+ $semester='';
+ $studiensemester_kurzbz='';
+ $lv_id='';
+
+ echo '
+
-
\ No newline at end of file
+
diff --git a/vilesci/stammdaten/reihungstest_administration.php b/vilesci/stammdaten/reihungstest_administration.php
index 173117f84..1be182555 100644
--- a/vilesci/stammdaten/reihungstest_administration.php
+++ b/vilesci/stammdaten/reihungstest_administration.php
@@ -31,6 +31,7 @@ require_once('../../include/pruefling.class.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/reihungstest.class.php');
require_once('../../include/studiensemester.class.php');
+require_once('../../include/log.class.php');
// Studiengang lesen
$s=new studiengang();
@@ -149,6 +150,7 @@ if(isset($_POST['personzuteilen']))
}
//Links
echo ' Auswertung |
+ Fragenadministration |
Fragenkatalog ';
//Anzeigen der kommenden Reihungstesttermine:
@@ -194,7 +196,7 @@ if(isset($_GET['action']) && $_GET['action']=='showreihungstests')
}
}
-// Antworten eines Gebietes einer Person löschen
+// Antworten eines Gebietes einer Person löschen und einen Logfile-Eintrag mit Undo-Befehl erstellen
$ps=new prestudent();
$datum=date('Y-m-d');
$ps->getPrestudentRT($datum,true);
@@ -266,7 +268,58 @@ if(isset($_POST['deleteteilgebiet']))
$pruefling->getPruefling($_POST['prestudent']);
if($pruefling->pruefling_id=='')
die('Pruefling wurde nicht gefunden');
-
+
+ //UNDO Befehl zusammenbauen und Log schreiben
+ $undo='';
+ $db->db_query('BEGIN;');
+
+ $qry = "SELECT * FROM testtool.tbl_pruefling_frage WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id, FHC_INTEGER)." AND
+ frage_id IN (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($_POST['gebiet']).");
+ ";
+
+ if($db->db_query($qry))
+ {
+ while($row = $db->db_fetch_object())
+ {
+ $undo.=" INSERT INTO testtool.tbl_pruefling_frage(prueflingfrage_id,pruefling_id,frage_id,nummer,begintime,endtime) VALUES (".
+ $db->db_add_param($row->prueflingfrage_id, FHC_INTEGER).', '.
+ $db->db_add_param($row->pruefling_id, FHC_INTEGER).', '.
+ $db->db_add_param($row->frage_id, FHC_INTEGER).', '.
+ $db->db_add_param($row->nummer, FHC_INTEGER).', '.
+ $db->db_add_param($row->begintime).', '.
+ $db->db_add_param($row->endtime).');';
+ }
+ }
+ else
+ {
+ $db->errormsg = 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_pruefling_frage';
+ $db->db_query('ROLLBACK');
+ return false;
+ }
+
+ $qry = "SELECT * FROM testtool.tbl_antwort
+ WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id)." AND
+ vorschlag_id IN (SELECT vorschlag_id FROM testtool.tbl_vorschlag WHERE frage_id IN
+ (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($_POST['gebiet'])."));
+ ";
+
+ if($db->db_query($qry))
+ {
+ while($row = $db->db_fetch_object())
+ {
+ $undo.=" INSERT INTO testtool.tbl_antwort(antwort_id,pruefling_id,vorschlag_id) VALUES (".
+ $db->db_add_param($row->antwort_id, FHC_INTEGER).', '.
+ $db->db_add_param($row->pruefling_id, FHC_INTEGER).', '.
+ $db->db_add_param($row->vorschlag_id, FHC_INTEGER).');';
+ }
+ }
+ else
+ {
+ $db->errormsg = 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_antwort';
+ $db->db_query('ROLLBACK');
+ return false;
+ }
+ //Gebiet loeschen
$qry = "DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=".$db->db_add_param($pruefling->pruefling_id, FHC_INTEGER)." AND
frage_id IN (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($_POST['gebiet']).");
@@ -274,18 +327,42 @@ if(isset($_POST['deleteteilgebiet']))
WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id)." AND
vorschlag_id IN (SELECT vorschlag_id FROM testtool.tbl_vorschlag WHERE frage_id IN
(SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($_POST['gebiet'])."));";
+
if($result = $db->db_query($qry))
{
+ //Log schreiben
+ $log = new log();
+
+ $log->new = true;
+ $log->sql = $qry;
+ $log->sqlundo = $undo;
+ $log->executetime = date('Y-m-d H:i:s');
+ $log->mitarbeiter_uid = $user;
+ $log->beschreibung = "Testtool-Antworten-Gebiet ".$_POST['gebiet']." von Prestudent ".$_POST['prestudent']." geloescht";
+
+ if(!$log->save())
+ {
+ $db->errormsg = 'Fehler beim Schreiben des Log-Eintrages';
+ $db->db_query('ROLLBACK');
+ return false;
+ }
+
+ $db->db_query('COMMIT;');
echo ''.$db->db_affected_rows($result).' Antworten wurden gelöscht';
}
else
- echo 'Fehler beim Löschen der Daten';
+ {
+ $db->errormsg = 'Fehler beim Loeschen der Daten';
+ $db->db_query('ROLLBACK');
+ }
}
else
echo 'Wählen Sie bitte ein Gebiet, dessen Antworten Sie löschen wollen';
}
echo '';
+
+// Alle Antworten aller Gebiete einer Person löschen und einen Logfile-Eintrag mit Undo-Befehl erstellen
if(isset($_POST['delete_all']))
{
if(isset($_POST['prestudent']) && isset($_POST['gebiet']) &&
@@ -296,16 +373,83 @@ if(isset($_POST['delete_all']))
if($pruefling->pruefling_id=='')
die('Pruefling wurde nicht gefunden');
+ //UNDO Befehl zusammenbauen und Log schreiben
+ $undo='';
+ $db->db_query('BEGIN;');
+
+ $qry = "SELECT * FROM testtool.tbl_pruefling_frage where pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";
+ ";
+
+ if($db->db_query($qry))
+ {
+ while($row = $db->db_fetch_object())
+ {
+ $undo.=" INSERT INTO testtool.tbl_pruefling_frage(prueflingfrage_id,pruefling_id,frage_id,nummer,begintime,endtime) VALUES (".
+ $db->db_add_param($row->prueflingfrage_id, FHC_INTEGER).', '.
+ $db->db_add_param($row->pruefling_id, FHC_INTEGER).', '.
+ $db->db_add_param($row->frage_id, FHC_INTEGER).', '.
+ $db->db_add_param($row->nummer, FHC_INTEGER).', '.
+ $db->db_add_param($row->begintime).', '.
+ $db->db_add_param($row->endtime).');';
+ }
+ }
+ else
+ {
+ $db->errormsg = 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_pruefling_frage';
+ $db->db_query('ROLLBACK');
+ return false;
+ }
+
+ $qry = "SELECT * FROM testtool.tbl_antwort WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";
+ ";
+
+ if($db->db_query($qry))
+ {
+ while($row = $db->db_fetch_object())
+ {
+ $undo.=" INSERT INTO testtool.tbl_antwort(antwort_id,pruefling_id,vorschlag_id) VALUES (".
+ $db->db_add_param($row->antwort_id, FHC_INTEGER).', '.
+ $db->db_add_param($row->pruefling_id, FHC_INTEGER).', '.
+ $db->db_add_param($row->vorschlag_id, FHC_INTEGER).');';
+ }
+ }
+ else
+ {
+ $db->errormsg = 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_antwort';
+ $db->db_query('ROLLBACK');
+ return false;
+ }
+ //Gebiet loeschen
$qry = "DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";
DELETE FROM testtool.tbl_antwort WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";";
-
-
+
if($result = $db->db_query($qry))
{
+ //Log schreiben
+ $log = new log();
+
+ $log->new = true;
+ $log->sql = $qry;
+ $log->sqlundo = $undo;
+ $log->executetime = date('Y-m-d H:i:s');
+ $log->mitarbeiter_uid = $user;
+ $log->beschreibung = "Testtool-Antworten aller Gebiete von Prestudent ".$_POST['prestudent']." geloescht";
+
+ if(!$log->save())
+ {
+ $db->errormsg = 'Fehler beim Schreiben des Log-Eintrages';
+ $db->db_query('ROLLBACK');
+ return false;
+ }
+
+ $db->db_query('COMMIT;');
echo ' Alle '.$db->db_affected_rows($result).' Antworten wurden gelöscht';
}
else
- echo 'Fehler beim Löschen der Daten';
+ {
+ $db->errormsg = 'Fehler beim Loeschen der Daten';
+ $db->db_query('ROLLBACK');
+ }
}
else
echo 'Um alle Antworten eines Prüflings zu löschen, wählen Sie im DropDown bitte "Alle Gebiete" aus';
diff --git a/wawi/rechnung.php b/wawi/rechnung.php
index a9dd5a7b4..aa89820ad 100644
--- a/wawi/rechnung.php
+++ b/wawi/rechnung.php
@@ -660,11 +660,11 @@ if($aktion=='update')
$selected='';
$anzahl=0;
+ $anzahl = $rechnung->count($row->bestellung_id);
if(!$row->freigegeben)
$class='rechnung_nichtfreigegeben';
else
{
- $anzahl = $rechnung->count($row->bestellung_id);
if($anzahl>0)
$class='rechnung_freigegebenvorhanden';
else
@@ -998,4 +998,4 @@ function getBetragRow($i, $rechnungsbetrag_id='', $bezeichnung='', $betrag='', $
}
?>
-