diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php index c55ce8e10..c042c2e0a 100644 --- a/application/models/education/Lehrveranstaltung_model.php +++ b/application/models/education/Lehrveranstaltung_model.php @@ -22,7 +22,6 @@ class Lehrveranstaltung_model extends DB_Model */ public function getLehrveranstaltungGroupNames($studiensemester_kurzbz, $ausbildungssemester = null, $studiengang_kz = null, $lehrveranstaltung_ids = null) { - $this->load->model('system/studiensemester_model', 'StudiensemesterModel'); $this->load->model('organisation/studiengang_model', 'StudiengangModel'); $studiengang_kz_arr = array(); @@ -60,6 +59,7 @@ class Lehrveranstaltung_model extends DB_Model } else { + $this->load->model('organisation/studiensemester_model', 'StudiensemesterModel'); foreach ($studiengang_kz_arr as $studiengang_kz_item) { $result = $this->StudiensemesterModel->getAusbildungssemesterByStudiensemesterAndStudiengang($studiensemester_kurzbz, $studiengang_kz_item); @@ -88,7 +88,7 @@ class Lehrveranstaltung_model extends DB_Model $query = " - SELECT lehrveranstaltung_id, ? || '_' || kuerzel || '_' || lvpostfix AS lvgroupname + SELECT lehrveranstaltung_id, ? || '_' || kuerzel || '_' || replace(lvpostfix, ' ', '-') AS lvgroupname FROM( SELECT DISTINCT ON (kuerzel, lvpostfix) lehrveranstaltung_id, diff --git a/application/models/person/Benutzerfunktion_model.php b/application/models/person/Benutzerfunktion_model.php index 6a15df107..e6f030e7f 100644 --- a/application/models/person/Benutzerfunktion_model.php +++ b/application/models/person/Benutzerfunktion_model.php @@ -25,8 +25,10 @@ class Benutzerfunktion_model extends DB_Model /** * Gets all Benutzer for a given OE and specified Benutzerfunktionen - * @param $oe_kurzbz * @param $funktion_kurzbz string with one benutzerfunktionname or array with one or more + * @param $oe_kurzbz + * @param bool $activeoeonly if true, retrieve only active Organisationseinheiten + * @param bool $activebenonly if true, retrieve only active Benutzer * @return array|null */ public function getBenutzerFunktionen($funktion_kurzbz, $oe_kurzbz = null, $activeoeonly = false, $activebenonly = false) @@ -41,7 +43,7 @@ class Benutzerfunktion_model extends DB_Model if ($activebenonly === true) $query .= " JOIN public.tbl_benutzer USING(uid)"; - $query .= "WHERE (datum_von <= NOW() OR datum_von IS NULL) AND (datum_bis >= NOW() OR datum_bis IS NULL)"; + $query .= " WHERE (datum_von <= NOW() OR datum_von IS NULL) AND (datum_bis >= NOW() OR datum_bis IS NULL)"; if (is_string($funktion_kurzbz)) { diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index 5ccffac99..b7654310e 100755 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -33,6 +33,7 @@ require_once('../../../include/mitarbeiter.class.php'); require_once('../../../include/mail.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); require_once('../../../include/phrasen.class.php'); +require_once('../../../include/zeitaufzeichnung.class.php'); $sprache = getSprache(); $p = new phrasen($sprache); @@ -44,6 +45,8 @@ $uid = get_uid(); $PHP_SELF = $_SERVER['PHP_SELF']; +$typen_arr = array("Urlaub", "PflegeU", "ZA", "Krank", "DienstF", "DienstV"); + if(isset($_GET['type'])) $type=$_GET['type']; @@ -65,6 +68,17 @@ if(isset($_GET['uid'])) $datum_obj = new datum(); $ma= new mitarbeiter(); +// definiert bis zu welchem Datum die Eintragung nicht mehr möglich ist +$zasperre = new zeitaufzeichnung(); +if ($sperrdat = $zasperre->getEintragungGesperrtBisForUser($uid)) + $gesperrt_bis = $sperrdat; +else if (defined('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS') && CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS != '') + $gesperrt_bis = CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS; +else + $gesperrt_bis = '2015-08-31'; + +//echo $gesperrt_bis; + //Stundentabelleholen if(! $result_stunde=$db->db_query("SELECT * FROM lehre.tbl_stunde ORDER BY stunde")) die($db->db_last_error()); @@ -268,6 +282,8 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ { $error=false; $error_msg=''; + + //von-datum pruefen if(isset($_POST['vondatum']) && !$datum_obj->checkDatum($_POST['vondatum'])) { @@ -290,6 +306,7 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ if (@checkdate($date[1], $date[0], $date[2])) { $vondatum=$date[2].$date[1].$date[0]; + $vondatum_iso = $date[2].'-'.$date[1].'-'.$date[0]; } else { @@ -327,7 +344,12 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ $error_msg .= $p->t('zeitsperre/vonDatumGroesserAlsBisDatum').'! '; } - + //von-datum pruefen TODO + if($vondatum_iso < $gesperrt_bis && in_array($_POST['zeitsperretyp_kurzbz'],$typen_arr)) + { + $error=true; + $error_msg .= $p->t('zeitsperre/vorSperrdatum'); + } $zeitsperre = new zeitsperre(); @@ -448,7 +470,11 @@ if(isset($_GET['type']) && $_GET['type']=='delete_sperre') //besitzer dieses datensatzes ist if($zeit->mitarbeiter_uid==$uid) { - if($zeit->delete($_GET['id'])) + if ($zeit->vondatum < $gesperrt_bis && in_array($zeit->zeitsperretyp_kurzbz,$typen_arr)) + { + echo "".$p->t('zeitsperre/vorSperrdatum').""; + } + else if($zeit->delete($_GET['id'])) { echo $p->t('global/erfolgreichgelöscht'); } @@ -473,6 +499,7 @@ if($result = $db->db_query($qry)) $erreichbarkeit_arr[$row->erreichbarkeit_kurzbz]=$row->beschreibung; } } + //liste aller zeitsperren ausgeben if(count($zeit->result)>0) { @@ -499,9 +526,13 @@ if(count($zeit->result)>0) ".($row->freigabeamum!=''?'Ja':'').""; if ($row->zeitsperretyp_kurzbz == 'DienstV') $content_table .= ' '; + else if ($row->vondatum < $gesperrt_bis AND in_array($row->zeitsperretyp_kurzbz,$typen_arr)) + $content_table .= ' '; else $content_table.="".$p->t('zeitsperre/edit').""; - if($row->freigabeamum=='' || $row->zeitsperretyp_kurzbz!='Urlaub') + if ($row->vondatum < $gesperrt_bis AND in_array($row->zeitsperretyp_kurzbz,$typen_arr)) + $content_table .= ' '; + else if($row->freigabeamum=='' || $row->zeitsperretyp_kurzbz!='Urlaub') { $content_table.="\n".$p->t('zeitsperre/loeschen').""; } diff --git a/cis/private/tools/ampelverwaltung.php b/cis/private/tools/ampelverwaltung.php index 20c91b8b5..c3135b71e 100644 --- a/cis/private/tools/ampelverwaltung.php +++ b/cis/private/tools/ampelverwaltung.php @@ -112,7 +112,10 @@ list( getUserAmpelData($user); //sort ampeln -$user_ampel_arr = sortUserAmpelData($user_ampel_arr); +if (!empty($user_ampel_arr)) +{ + $user_ampel_arr = sortUserAmpelData($user_ampel_arr); +} //filter ampeln for popup (if at least one mandatory, which is neither expired nor before vorlaufzeit) if ($is_popup) @@ -224,20 +227,27 @@ function getUserAmpelData($user) function sortUserAmpelData($user_ampel_arr) { //first: sort deadline + $deadline_arr = array(); foreach ($user_ampel_arr as $key => $val) - $deadline[$key] = $val['deadline']; + { + $deadline_arr[$key] = $val['deadline']; + } - array_multisort($deadline, SORT_DESC, $user_ampel_arr); - + array_multisort($deadline_arr, SORT_DESC, $user_ampel_arr); + //second: sort inactive after active $active_ampel_arr = array(); $inactive_ampel_arr = array(); foreach ($user_ampel_arr as $user_ampel) { if ($user_ampel['active']) + { $active_ampel_arr[] = $user_ampel; + } else + { $inactive_ampel_arr[] = $user_ampel; + } } return $user_ampel_arr = array_merge($active_ampel_arr, $inactive_ampel_arr); } diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 1f7788270..59715d4fa 100755 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -987,7 +987,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) '; - if ($za_simple == 0) + if ($za_simple == 0 || $anzprojekte > 0) { echo ' diff --git a/cms/tinymce_dms.php b/cms/tinymce_dms.php index eb10e5a4d..c54fcc385 100644 --- a/cms/tinymce_dms.php +++ b/cms/tinymce_dms.php @@ -330,7 +330,7 @@ if (isset($_POST['fileupload'])) if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { $dms = new dms(); - + if(!$dms->setPermission($uploadfile)) echo $dms->errormsg; @@ -1616,7 +1616,7 @@ function drawChangeKategorie($dms_id, $page = NULL, $dpp = NULL) if ($kategorienResult->kategorie_kurzbz == $dms->kategorie_kurzbz) $selected = 'selected'; - echo ''; + echo ''; } echo ' diff --git a/composer.json b/composer.json index 0b1b06750..f8e26e736 100644 --- a/composer.json +++ b/composer.json @@ -267,6 +267,8 @@ "ml/json-ld": "1.*", "mottie/tablesorter": "^2.29", + "nategood/httpful": "^0.2.20", + "netcarver/textile": "^3.5", "nicolaskruchten/pivottable": "^2.15.0", diff --git a/composer.lock b/composer.lock index 0e505abcd..a160578ea 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "0a7b99cf08f40f15cad6397a2097d834", - "content-hash": "4065f6ebe38d16462908ebbdac8adf7d", + "hash": "e5e3e110545316baa4087a8e1a283a7c", + "content-hash": "e191f9af8e2103de78eaa130122ec72b", "packages": [ { "name": "BlackrockDigital/startbootstrap-sb-admin-2", @@ -1159,6 +1159,56 @@ ], "time": "2018-07-10 13:32:19" }, + { + "name": "nategood/httpful", + "version": "0.2.20", + "source": { + "type": "git", + "url": "https://github.com/nategood/httpful.git", + "reference": "c1cd4d46a4b281229032cf39d4dd852f9887c0f6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nategood/httpful/zipball/c1cd4d46a4b281229032cf39d4dd852f9887c0f6", + "reference": "c1cd4d46a4b281229032cf39d4dd852f9887c0f6", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "type": "library", + "autoload": { + "psr-0": { + "Httpful": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nate Good", + "email": "me@nategood.com", + "homepage": "http://nategood.com" + } + ], + "description": "A Readable, Chainable, REST friendly, PHP HTTP Client", + "homepage": "http://github.com/nategood/httpful", + "keywords": [ + "api", + "curl", + "http", + "requests", + "rest", + "restful" + ], + "time": "2015-10-26 16:11:30" + }, { "name": "netcarver/textile", "version": "v3.6.0", diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index 7a6c082b4..ad71d1ad4 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -4529,9 +4529,13 @@ function StudentAnrechnungNeu() var col = tree.columns ? tree.columns["student-treecol-studiengang_kz"] : "student-treecol-studiengang_kz"; var stg_kz = tree.view.getCellText(tree.currentIndex,col); + // Prestudent-ID ermitteln + var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id"; + var prestudentId = tree.view.getCellText(tree.currentIndex,col); + //Lehrveranstaltung Drop Down laden var LVDropDown = document.getElementById('student-anrechnungen-menulist-lehrveranstaltung'); - url="rdf/lehrveranstaltung.rdf.php?stg_kz="+stg_kz+"&"+gettimestamp(); + url="rdf/lehrveranstaltung_studienplan.rdf.php?&prestudent="+prestudentId+"&"+gettimestamp(); //Alte DS entfernen var oldDatasources = LVDropDown.database.GetDataSources(); diff --git a/include/benutzerberechtigung.class.php b/include/benutzerberechtigung.class.php index a615729f4..69d4947bf 100644 --- a/include/benutzerberechtigung.class.php +++ b/include/benutzerberechtigung.class.php @@ -421,6 +421,22 @@ class benutzerberechtigung extends basis_db UNION + SELECT + benutzerberechtigung_id, tbl_benutzerfunktion.uid, tbl_benutzerrolle.funktion_kurzbz, + tbl_benutzerrolle.rolle_kurzbz, tbl_rolleberechtigung.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_rolleberechtigung.art art1, + tbl_benutzerfunktion.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start, + tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon, + tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung + FROM + system.tbl_benutzerrolle + JOIN public.tbl_benutzerfunktion USING(funktion_kurzbz) + JOIN system.tbl_rolleberechtigung ON(tbl_benutzerrolle.rolle_kurzbz=tbl_rolleberechtigung.rolle_kurzbz) + WHERE tbl_benutzerfunktion.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()) + + UNION + SELECT benutzerberechtigung_id, '', tbl_benutzerrolle.funktion_kurzbz, tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1, diff --git a/include/functions.inc.php b/include/functions.inc.php index be021b6f5..6f6c5cc3b 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -1097,42 +1097,4 @@ function PersonLog($person_id, $logtype_kurzbz, $logdata, $taetigkeit_kurzbz, $a $personlog = new personlog(); $personlog->log($person_id, $logtype_kurzbz, $logdata, $taetigkeit_kurzbz, $app, $oe_kurzbz, $user); } - -/** - * Sendet einen Request an den CaseTime Server um die Daten dort zu speichern - */ -function getCaseTimeErrors($uid) -{ - $ch = curl_init(); - - $url = CASETIME_SERVER.'/sync/get_zeitfehler'; - - $params = 'sachb='.$uid; - - curl_setopt($ch, CURLOPT_URL, $url.'?'.$params ); //Url together with parameters - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Return data instead printing directly in Browser - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT , 7); //Timeout after 7 seconds - curl_setopt($ch, CURLOPT_USERAGENT , "FH-Complete CaseTime Addon"); - curl_setopt($ch, CURLOPT_HEADER, 0); - - $result = curl_exec($ch); - - if(curl_errno($ch)) - { - return 'Curl error: ' . curl_error($ch); - curl_close($ch); - } - else - { - curl_close($ch); - $data = json_decode($result); - - if(isset($data->STATUS) && $data->STATUS=='OK') - { - return $data->RESULT; - } - else - return false; - } -} ?> diff --git a/include/mail.class.php b/include/mail.class.php index b0285c11b..45f2fbc30 100644 --- a/include/mail.class.php +++ b/include/mail.class.php @@ -23,8 +23,8 @@ /** * Klasse Mail * @create 2008-11-20 - * - * Versendet ein Mail als Text, Html, CC und BCC Empfaenger, + * + * Versendet ein Mail als Text, Html, CC und BCC Empfaenger, * Replyto und Attachments */ @@ -40,7 +40,7 @@ class mail public $htmlContent; public $attachments; public $errormsg; - + /** * MAIL - Konstruktor * $to Empfaenger @@ -73,18 +73,18 @@ class mail $this->BCC_recievers = ($this->BCC_recievers!=''?MAIL_DEBUG:''); $this->replyTo = ($this->replyTo!=''?MAIL_DEBUG:''); } - + $mime_boundary_alternative = 'ALT+'.md5(time()); $mime_boundary_mixed = 'MIXD+'.md5(time()); $eol="\n"; - + if(defined('MAIL_FROM') && MAIL_FROM!='') $this->sender = MAIL_FROM; // Header $header = ''; $header .= "From: {$this->sender}".$eol; - + if (!empty($this->CC_recievers)) $header .= "CC: {$this->CC_recievers}".$eol; if (!empty($this->BCC_recievers)) @@ -94,11 +94,13 @@ class mail if (!empty($this->replyTo)) $header .= "Return-Path: {$this->replyTo}".$eol; - $header .= 'X-Mailer: FHComplete V1'.$eol; + $header .= 'X-Mailer: FHComplete V1'.$eol; $header .= 'Mime-Version: 1.0'.$eol; + $header .= 'Precedence: bulk'.$eol; + $header .= 'Auto-Submitted: auto-generated'.$eol; $header .= "Content-Type: multipart/related; boundary=\"$mime_boundary_mixed\"".$eol; $header .= "Content-Transfer-Encoding: 8bit".$eol; - + // Body $mailbody = ""; $mailbody .= $eol; @@ -112,8 +114,8 @@ class mail $mailbody .= $this->textContent[0]; $mailbody .= $eol; $mailbody .= $eol; - - if (!empty($this->htmlContent[0])) + + if (!empty($this->htmlContent[0])) { $mailbody .= "--$mime_boundary_alternative".$eol; $mailbody .= "Content-Type: text/html; charset={$this->htmlContent[1]}".$eol; @@ -126,17 +128,17 @@ class mail $mailbody .= "--{$mime_boundary_alternative}--".$eol; $mailbody .= $eol; $mailbody .= "--$mime_boundary_mixed"; - + // Attachments Plain - if (is_array($this->attachmentsplain) && (count($this->attachmentsplain) > 0)) + if (is_array($this->attachmentsplain) && (count($this->attachmentsplain) > 0)) { - foreach ($this->attachmentsplain as $attachment) + foreach ($this->attachmentsplain as $attachment) { $dispo = 'attachment'; $mailbody .= $eol; $mailbody .= "Content-Disposition: $dispo; filename={$attachment[2]}".$eol; $mailbody .= "Content-Type: {$attachment[1]}; name={$attachment[2]}".$eol; - + $mailbody .= 'Content-Transfer-Encoding: '.$attachment[3].$eol; $mailbody .= $eol; $mailbody .= $attachment[0]; @@ -144,17 +146,17 @@ class mail $mailbody .= "--$mime_boundary_mixed"; } } - + // Attachments Binary - if (is_array($this->attachments) && (count($this->attachments) > 0)) + if (is_array($this->attachments) && (count($this->attachments) > 0)) { - foreach ($this->attachments as $attachment) + foreach ($this->attachments as $attachment) { $dispo = empty($attachment[3]) ? 'attachment' : 'inline'; $mailbody .= $eol; $mailbody .= "Content-Disposition: $dispo; filename={$attachment[2]}".$eol; - $mailbody .= "Content-Type: {$attachment[1]}; name={$attachment[2]}".$eol; - if (!empty($attachment[3])) + $mailbody .= "Content-Type: {$attachment[1]}; name={$attachment[2]}".$eol; + if (!empty($attachment[3])) { $mailbody .= "Content-ID: <{$attachment[3]}>".$eol; } @@ -166,15 +168,15 @@ class mail } } $mailbody .= "--".$eol; - + // Subject Encoding setzen $subject = "=?UTF-8?B?".base64_encode($this->subject)."?="; - + // Senden if(mail($this->to, $subject, $mailbody, $header)) return true; - else - return false; + else + return false; } /** @@ -187,7 +189,7 @@ class mail $this->textContent[2] = $encoding; return true; } - + /** * Setzt den HTMLText fuer ein Mail */ @@ -198,7 +200,7 @@ class mail $this->htmlContent[2] = $encoding; if (empty($this->textContent[0])) $this->setTextContent(strip_tags($html), $charset, $encoding); - + return true; } @@ -211,27 +213,27 @@ class mail */ public function addAttachmentBinary($file, $type, $name, $ContentID = "") { - if (!file_exists($file)) + if (!file_exists($file)) { $this->errormsg = 'Attachment wurde nicht gefunden'; return false; } - + $handle = fopen($file,'rb'); - if (!$handle) + if (!$handle) { $this->errormsg = 'Fehler beim Oeffnen der Datei'; return false; } - + $file_content = fread($handle,filesize($file)); @fclose($handle); - + $attachment_string = chunk_split(base64_encode($file_content)); $this->attachments[] = Array($attachment_string, $type, $name, $ContentID); return true; } - + /** * Fuegt ein Bild zum Mail hinzu * $image image-URL @@ -242,16 +244,16 @@ class mail public function addEmbeddedImage ($image, $type, $name = '', $ContentID) { $image_string = file_get_contents($image); - if (!$image_string) + if (!$image_string) { $this->errormsg = 'Fehler beim Einlesen der Datei'; return false; } - + $image_b64 = chunk_split(base64_encode($image_string), 76, "\n"); $this->attachments[] = Array($image_b64, $type, $name, $ContentID); } - + /** * Fuegt ein Attachment zum Mail hinzu * $content @@ -272,14 +274,14 @@ class mail $this->replyTo = $repl; return true; } - + /** * Setzt die CC Empfaenger */ public function setCCRecievers($rcvs) { $this->CC_recievers = ''; - if (is_array($rcvs)) + if (is_array($rcvs)) { foreach ($rcvs as $rcv) $this->CC_recievers .= ",$rcv"; @@ -291,14 +293,14 @@ class mail } return true; } - + /** * Setzt die BCC Empfaenger */ public function setBCCRecievers($rcvs) { $this->BCC_recievers = ''; - if (is_array($rcvs)) + if (is_array($rcvs)) { foreach ($rcvs as $rcv) $this->BCC_recievers .= ",$rcv"; diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php index a5922c433..eb5498581 100644 --- a/include/mitarbeiter.class.php +++ b/include/mitarbeiter.class.php @@ -1090,7 +1090,7 @@ class mitarbeiter extends benutzer } /** - * Gibt ein Array mit den UIDs der Untergebenen zurueck + * Gibt ein Array mit den UIDs der aktiv beschäftigten Untergebenen zurueck */ public function getUntergebene($uid=null) { @@ -1115,7 +1115,15 @@ class mitarbeiter extends benutzer } //Alle Personen holen die dieser Organisationseinheit untergeordnet sind - $qry = "SELECT distinct uid FROM public.tbl_benutzerfunktion WHERE ((funktion_kurzbz='oezuordnung' AND (false "; + $qry = " + SELECT distinct + uid + FROM + public.tbl_benutzerfunktion + JOIN + public.tbl_benutzer + USING (uid) + WHERE ((funktion_kurzbz='oezuordnung' AND (false "; if($oe!='') $qry.=" OR oe_kurzbz in($oe)"; @@ -1125,8 +1133,13 @@ class mitarbeiter extends benutzer 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());"; + $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()) + AND + tbl_benutzer.aktiv = 'true';"; if($this->db_query($qry)) { diff --git a/include/zeitaufzeichnung.class.php b/include/zeitaufzeichnung.class.php index a713db0f0..6a58a23cf 100755 --- a/include/zeitaufzeichnung.class.php +++ b/include/zeitaufzeichnung.class.php @@ -754,7 +754,7 @@ or not exists //check if addon casetime is installed $qrytable = " SELECT EXISTS( - SELECT * + SELECT 1 FROM information_schema.tables WHERE table_schema = 'addon' AND @@ -763,7 +763,7 @@ or not exists "; $res = $this->db_query($qrytable); - if ($this->db_fetch_row($res)[0]===true) + if ($this->db_fetch_row($res)[0] == 't') { //check if sent timesheets for the UID exist $where = "uid=".$this->db_add_param($user); diff --git a/locale/de-AT/zeitsperre.php b/locale/de-AT/zeitsperre.php old mode 100644 new mode 100755 index 48727cc1b..4801f10ec --- a/locale/de-AT/zeitsperre.php +++ b/locale/de-AT/zeitsperre.php @@ -42,4 +42,5 @@ $this->phrasen['zeitsperre/legendeErreichbarkeit']='E...Erreichbarkeit (n=nicht $this->phrasen['zeitsperre/legendeVertretung']='V...Vertretung'; $this->phrasen['zeitsperre/legendeDurchwahl']='(123)...Durchwahl'; $this->phrasen['zeitsperre/vertretungNichtKorrekt']='Die angegebene Vertretung kann nicht gefunden werden. Bitte prüfen Sie die Vertretung und versuchen Sie es erneut.'; +$this->phrasen['zeitsperre/vorSperrdatum']='Datum liegt vor dem Sperrdatum der Zeitliste'; ?> diff --git a/locale/en-US/zeitsperre.php b/locale/en-US/zeitsperre.php old mode 100644 new mode 100755 index 024865d0e..d6adad2ac --- a/locale/en-US/zeitsperre.php +++ b/locale/en-US/zeitsperre.php @@ -42,4 +42,5 @@ $this->phrasen['zeitsperre/legendeErreichbarkeit']='A...Availability (n=not avai $this->phrasen['zeitsperre/legendeVertretung']='S...Substitute'; $this->phrasen['zeitsperre/legendeDurchwahl']='(123)...Extension'; $this->phrasen['zeitsperre/vertretungNichtKorrekt']='The selected substitute is invalid. Please check the substitute an try again.'; +$this->phrasen['zeitsperre/vorSperrdatum']='Date is before last open timesheet date'; ?> diff --git a/rdf/lehrauftrag.xml.php b/rdf/lehrauftrag.xml.php index c268ca8d7..9d0ac32a4 100644 --- a/rdf/lehrauftrag.xml.php +++ b/rdf/lehrauftrag.xml.php @@ -68,7 +68,7 @@ else $xml = ''; $stg_arr = array(); $studiengang = new studiengang(); -$studiengang->getAll(); +$studiengang->getAll(null, false); foreach ($studiengang->result as $row) $stg_arr[$row->studiengang_kz] = $row->kuerzel; diff --git a/rdf/lehrveranstaltung_studienplan.rdf.php b/rdf/lehrveranstaltung_studienplan.rdf.php new file mode 100644 index 000000000..726adc647 --- /dev/null +++ b/rdf/lehrveranstaltung_studienplan.rdf.php @@ -0,0 +1,91 @@ + + */ + +// header fuer no cache +header("Cache-Control: no-cache"); +header("Cache-Control: post-check=0, pre-check=0",false); +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Pragma: no-cache"); +// content type setzen +header("Content-type: application/xhtml+xml"); +// xml +echo ''; +// DAO +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/lehrveranstaltung.class.php'); +require_once('../include/prestudent.class.php'); + +$uid=get_uid(); + +$error_msg=''; +$error_msg.=loadVariables($uid); + +if (isset($_GET['prestudent'])) + $prestudent_id = $_GET['prestudent']; +else + die('prestudent is not set!'); + +$lehrveranstaltung=new lehrveranstaltung(); +$prestudent = new Prestudent(); + +$prestudent->getLastStatus($prestudent_id); +$lehrveranstaltung->loadLehrveranstaltungStudienplan($prestudent->studienplan_id); + +$rdf_url='http://www.technikum-wien.at/lehrveranstaltung/'; + +echo ' + + + +'; + +foreach ($lehrveranstaltung->lehrveranstaltungen as $row) +{ + echo' + + lehrveranstaltung_id.']]> + kurzbz.']]> + bezeichnung.']]> + bezeichnung_english.']]> + studiengang_kz.']]> + semester.']]> + sprache.']]> + ects.']]> + semesterstunden.']]> + anmerkung.']]> + lehre?'Ja':'Nein').']]> + lehreverzeichnis.']]> + aktiv?'Ja':'Nein').']]> + planfaktor.']]> + planlektoren.']]> + planpersonalkosten.']]> + plankostenprolektor.']]> + lehrform_kurzbz.']]> + orgform_kurzbz.']]> + oe_kurzbz.']]> + + '; +} +?> + + diff --git a/rdf/zeugnis.rdf.php b/rdf/zeugnis.rdf.php index 6e76765eb..d7cfff1ea 100644 --- a/rdf/zeugnis.rdf.php +++ b/rdf/zeugnis.rdf.php @@ -138,7 +138,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND - tbl_prestudentstatus.status_kurzbz not in('Incoming','Aufgenommener','Bewerber','Wartender', 'Interessent') + tbl_prestudentstatus.status_kurzbz not in('Incoming','Aufgenommener','Bewerber','Wartender', 'Interessent', 'Abgewiesener') ORDER BY DATUM DESC LIMIT 1"; if($result_sem = $db->db_query($qry)) { diff --git a/system/account_deaktivierung_mail.php b/system/account_deaktivierung_mail.php index 0d065008b..8fbb49c31 100644 --- a/system/account_deaktivierung_mail.php +++ b/system/account_deaktivierung_mail.php @@ -58,7 +58,7 @@ if($result = $db->db_query($qry)) $message .= " - Ihr Home-Verzeichnis (inkl. aller Dateien) gelöscht werden.\n"; $message .= "\n"; $message .= "Falls es sich bei der Deaktivierung um einen Irrtum handelt, würden wir Sie bitten, sich umgehend mit den KollegInnen in der Personalabteilung in Verbindung zu setzen: "; - $message .= "Frau Maria Meyer-Mölleringhof, meyermoe@technikum-wien.at\n"; + $message .= "Frau Natalie König, natalie.koenig@technikum-wien.at\n"; $message .= "\n"; $message .= "Mit freundlichen Grüßen\n"; $message .= "\n"; @@ -90,9 +90,9 @@ if($result = $db->db_query($qry)) $message .= "\n"; $message .= "Falls Sie weiterhin über Neuigkeiten an der FH Technikum Wien informiert werden wollen, können Sie unter www.technikum-wien.at/newsletter den kostenlosen Newsletter abonnieren.\n"; } - + $to = $row->uid.'@'.DOMAIN; - + $mail = new mail($to,'no-reply@'.DOMAIN,'Ihr Datensatz wurde deaktiviert! '.$row->uid, $message); $mail->send(); $text.= "Warnung zur Accountloeschung wurde an $row->uid verschickt\n"; @@ -159,7 +159,7 @@ if($result = $db->db_query($qry)) if($mail->send()) $text.="Abbrecher Infomail an $to verschickt\n"; else - $text.="Fehler beim Versenden des Abbrecher Infomails an $to !\n"; + $text.="Fehler beim Versenden des Abbrecher Infomails an $to !\n"; } } @@ -187,7 +187,7 @@ if($result = $db->db_query($qry)) $message .= "1200 Wien \n"; $message .= "\n"; $message .= "Falls Sie weiterhin über Neuigkeiten an der FH Technikum Wien informiert werden wollen, können Sie unter www.technikum-wien.at/newsletter den kostenlosen Newsletter abonnieren.\n"; - + $to = $row->uid.'@'.DOMAIN; $mail = new mail($to,'no-reply@'.DOMAIN,'Ihr Datensatz wurde deaktiviert! Letzte Warnung '.$row->uid, $message); @@ -212,7 +212,7 @@ if($result = $db->db_query($qry)) $message .= " - Ihr Home-Verzeichnis (inkl. aller Dateien) gelöscht werden\n"; $message .= "\n"; $message .= "Falls es sich bei der Deaktivierung um einen Irrtum handelt, würden wir Sie bitten, sich umgehend mit den KollegInnen in der Personalabteilung in Verbindung zu setzen: "; - $message .= "Frau Maria Meyer-Mölleringhof, meyermoe@technikum-wien.at\n"; + $message .= "Frau Natalie König, natalie.koenig@technikum-wien.at\n"; $message .= "\n"; $message .= "Mit freundlichen Grüßen\n"; $message .= "\n"; @@ -221,9 +221,9 @@ if($result = $db->db_query($qry)) $message .= "1200 Wien \n"; $message .= "\n"; $message .= "Falls Sie weiterhin über Neuigkeiten an der FH Technikum Wien informiert werden wollen, können Sie unter www.technikum-wien.at/newsletter den kostenlosen Newsletter abonnieren.\n"; - + $to = $row->uid.'@'.DOMAIN; - + $mail = new mail($to,'no-reply@'.DOMAIN, 'Ihr Datensatz wurde deaktiviert! Letzte Warnung '.$row->uid, $message); $mail->send(); $text.= "Letzte Warnung zur Accountloeschung wurde an $row->uid verschickt\n"; @@ -238,4 +238,4 @@ if($text!='') } echo ''; -?> \ No newline at end of file +?> diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 95c23ba99..581ee4388 100755 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -2322,6 +2322,66 @@ if(!$result = @$db->db_query("SELECT bezeichnung FROM public.tbl_filter LIMIT 1" echo '
public.tbl_filter: Spalte bezeichnung hinzugefuegt'; } +// vw_mitarbeiter updateaktivamum updateaktivvon +if(!$result = @$db->db_query("SELECT updateaktivam FROM campus.vw_mitarbeiter LIMIT 1")) +{ + $qry = "CREATE OR REPLACE VIEW campus.vw_mitarbeiter as + SELECT tbl_benutzer.uid, + tbl_mitarbeiter.ausbildungcode, + tbl_mitarbeiter.personalnummer, + tbl_mitarbeiter.kurzbz, + tbl_mitarbeiter.lektor, + tbl_mitarbeiter.fixangestellt, + tbl_mitarbeiter.telefonklappe, + tbl_benutzer.person_id, + tbl_benutzer.alias, + tbl_person.geburtsnation, + tbl_person.sprache, + tbl_person.anrede, + tbl_person.titelpost, + tbl_person.titelpre, + tbl_person.nachname, + tbl_person.vorname, + tbl_person.vornamen, + tbl_person.gebdatum, + tbl_person.gebort, + tbl_person.gebzeit, + tbl_person.foto, + tbl_mitarbeiter.anmerkung, + tbl_person.homepage, + tbl_person.svnr, + tbl_person.ersatzkennzeichen, + tbl_person.geschlecht, + tbl_person.familienstand, + tbl_person.anzahlkinder, + tbl_mitarbeiter.ort_kurzbz, + tbl_benutzer.aktiv, + tbl_mitarbeiter.bismelden, + tbl_mitarbeiter.standort_id, + tbl_mitarbeiter.updateamum, + tbl_mitarbeiter.updatevon, + tbl_mitarbeiter.insertamum, + tbl_mitarbeiter.insertvon, + tbl_mitarbeiter.ext_id, + tbl_benutzer.aktivierungscode, + ( SELECT tbl_kontakt.kontakt + FROM tbl_kontakt + WHERE tbl_kontakt.person_id = tbl_person.person_id AND tbl_kontakt.kontakttyp::text = 'email'::text + ORDER BY tbl_kontakt.zustellung DESC + LIMIT 1) AS email_privat, + tbl_benutzer.updateaktivam, + tbl_benutzer.updateaktivvon, + greatest(tbl_person.updateamum, tbl_benutzer.updateamum, tbl_mitarbeiter.updateamum) as lastupdate + FROM public.tbl_mitarbeiter + JOIN public.tbl_benutzer ON tbl_mitarbeiter.mitarbeiter_uid::text = tbl_benutzer.uid::text + JOIN public.tbl_person USING (person_id); + "; + + if(!$db->db_query($qry)) + echo 'campus.vw_mitarbeiter: '.$db->db_last_error().'
'; + else + echo '
campus.vw_mitarbeiter: Spalte updateaktivam, updateaktivon, lastupdate hinzugefuegt'; +} // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; diff --git a/system/mlists/mlists_generate.php b/system/mlists/mlists_generate.php deleted file mode 100644 index 18123d0a4..000000000 --- a/system/mlists/mlists_generate.php +++ /dev/null @@ -1,1208 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/**************************************************************************** - * Script: mlists_generate.php - * Descr: Das Skript generiert Mailinglisten in der Datenbanken - * fuer Einheiten, Lektoren und fix Angestellte. - * Author: Christian Paminger - * Erstellt: 12.9.2005 - * Update: 14.9.2005 von Christian Paminger - *****************************************************************************/ - -require_once('../../config/vilesci.config.inc.php'); -require_once('../../include/functions.inc.php'); -require_once('../../include/studiensemester.class.php'); -require_once('../../include/organisationseinheit.class.php'); -require_once('../../include/gruppe.class.php'); -require_once('../../include/basis_db.class.php'); -require_once('../../include/mail.class.php'); - -$error_msg=''; -?> - - - - Mailinglisten - - - - -

MailingListen abgleich

- db_query($sql_query))) - $error_msg.=$db->db_last_error(); - if($row = $db->db_fetch_object($result)) - $studiensemester=$row->studiensemester_kurzbz; - else - $error_msg.= $db->db_last_error().$sql_query; - - $stsem_obj = new studiensemester(); - - /* - if(mb_substr($studiensemester,0,1)=='W') - $stsem2 = $stsem_obj->getPreviousFrom($studiensemester); - else - $stsem2 = $stsem_obj->getNextFrom($studiensemester); - */ - $stsem2 = $stsem_obj->getNearestFrom($studiensemester); - - function setGeneriert($gruppe) - { - $db = new basis_db(); - $qry = "UPDATE public.tbl_gruppe SET generiert=true WHERE UPPER(gruppe_kurzbz)=UPPER('".addslashes($gruppe)."')"; - $db->db_query($qry); - } - - /** - * Löscht alle BenutzerInnen aus NICHT-generierten Verteilern die nicht für die Lehre sind (Attribut lehre=false), deren Account vor mehr als 3 Wochen deaktiviert wurde - */ - - $qry_delete = " DELETE FROM public.tbl_benutzergruppe - WHERE tbl_benutzergruppe.studiensemester_kurzbz IS NULL - AND gruppe_kurzbz IN (SELECT gruppe_kurzbz FROM public.tbl_gruppe WHERE generiert=false AND lehre=false) - AND uid IN (SELECT uid FROM public.tbl_benutzer WHERE aktiv=false AND updateaktivamdb_query($qry_delete))) - $error_msg .= $db->db_last_error().$qry_delete.'

'; - - echo $db->db_affected_rows($result).' inaktive BenutzerInnen wurden aus statischen Verteilern gelöscht

'; - - /** - * Einfache Verteiler, deren Erstellung ohne Schleifen-Logik moeglich ist, werden ueber dieses Array erstellt - * Benoetigt werden die 3 Attribute: - * $verteilerArray['name_des_verteilers']['bezeichnung'] = 'Bezeichnung des Verteilers (32 Zeichen)'; - * $verteilerArray['name_des_verteilers']['beschreibung'] = 'Beschreibung des Verteilers (Anzeige im CIS)(128 Zeichen)'; - * $verteilerArray['name_des_verteilers']['sql'] = 'UIDs, die im Verteiler enthalten sein sollen (kein Semikolon am Ende)'; - * - * Die Verteiler werden dann alle gleich erstellt: - * - Pruefen, ob Gruppe existiert, wenn nicht, anlegen mit Default-Werten - * - Gruppe auf generiert setzen - * - UIDs loeschen, die nicht mehr in den Verteiler gehoeren - * - UIDs hinzufuegen, die im Verteiler fehlen - */ - - $verteilerArray = array(); - - // Sql-Schema: SELECT foo AS uid FROM bar WHERE foobar - - //Aktive MitarbeiterInnen mit Personalnummer > 0 - $verteilerArray['tw_ma']['bezeichnung'] = 'Alle aktiven MitarbeiterInnen'; - $verteilerArray['tw_ma']['beschreibung'] = 'Alle aktiven MitarbeiterInnen'; - $verteilerArray['tw_ma']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid - FROM public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - WHERE aktiv - AND personalnummer >= 0"; - //Aktive weibliche MitarbeiterInnen mit Personalnummer > 0 - $verteilerArray['tw_ma_w']['bezeichnung'] = 'Weibliche Mitarbeiterinnen'; - $verteilerArray['tw_ma_w']['beschreibung'] = 'Weibliche Mitarbeiterinnen'; - $verteilerArray['tw_ma_w']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid - FROM public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_person USING(person_id) - WHERE tbl_benutzer.aktiv - AND geschlecht='w' - AND personalnummer >=0"; - //Alle aktiven MitarbeiterInnen mit Attribut lektor=true - $verteilerArray['tw_lkt']['bezeichnung'] = 'Alle LektorInnen'; - $verteilerArray['tw_lkt']['beschreibung'] = 'Alle LektorInnen an der FH Technikum Wien'; - $verteilerArray['tw_lkt']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid - FROM public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - WHERE lektor - AND aktiv - AND personalnummer >=0"; - //MitarbeiterInnen mit gueltiger Funktion "ass" (assistenz) - $verteilerArray['tw_sek']['bezeichnung'] = 'Alle Sekretariate'; - $verteilerArray['tw_sek']['beschreibung'] = 'Alle Sekretariate an der FH Technikum Wien'; - $verteilerArray['tw_sek']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) - WHERE aktiv AND funktion_kurzbz='ass' 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()) AND - mitarbeiter_uid NOT LIKE '\\\\_%' "; - //Aktive MitarbeiterInnen mit gueltiger Funktion "Leitung", "gLtg" oder "stvLtg" in aktiven Studiengaengen - $verteilerArray['tw_stgl']['bezeichnung'] = 'Alle StudiengangsleiterInnen'; - $verteilerArray['tw_stgl']['beschreibung'] = 'Alle StudiengangsleiterInnen und deren StellvertreterInnen'; - $verteilerArray['tw_stgl']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_studiengang USING(oe_kurzbz) - WHERE - tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.funktion_kurzbz='Leitung' OR funktion_kurzbz='gLtg' OR funktion_kurzbz='stvLtg') - 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()) - AND mitarbeiter_uid NOT LIKE '\\\\_%' - AND tbl_studiengang.aktiv=true"; - //Aktive MitarbeiterInnen mit gueltiger Funktion "Leitung", "gLtg" oder "stvLtg" in aktiven Bachelor- oder Master-Studiengaengen mit Kennzahl>0 und Kennzahl<10000 - $verteilerArray['tw_stgl_bama']['bezeichnung'] = 'Studiengangsleitung BAMA'; - $verteilerArray['tw_stgl_bama']['beschreibung'] = 'Studiengangsleitung und Stellvertretung von Bachelor und Master Studiengängen'; - $verteilerArray['tw_stgl_bama']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_studiengang USING(oe_kurzbz) - WHERE - tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.funktion_kurzbz='Leitung' OR funktion_kurzbz='gLtg' OR funktion_kurzbz='stvLtg') - 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()) - AND mitarbeiter_uid NOT LIKE '\\\\_%' - AND tbl_studiengang.aktiv=true - AND tbl_studiengang.typ in('b','m') - AND tbl_studiengang.studiengang_kz>0 - AND tbl_studiengang.studiengang_kz<10000"; - //Alle aktiven MitarbeiterInnen mit Attribut fixangestellt=true - $verteilerArray['tw_fix']['bezeichnung'] = 'Alle Fix-Angestellten'; - $verteilerArray['tw_fix']['beschreibung'] = 'Alle Fix-Angestellten an der FH Technikum Wien'; - $verteilerArray['tw_fix']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid - FROM public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) - WHERE fixangestellt - AND aktiv - AND mitarbeiter_uid NOT LIKE '\\\\_%' - AND NOT EXISTS(SELECT 1 FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz in('hilfskraft','praktikum') AND uid=mitarbeiter_uid AND (datum_bis>=now() or datum_bis is null))"; - //Alle aktiven MitarbeiterInnen mit Attribut fixangestellt=true und lektor=true - $verteilerArray['tw_fix_lkt']['bezeichnung'] = 'Alle fixangestellten LektorInnen'; - $verteilerArray['tw_fix_lkt']['beschreibung'] = 'Alle fixangestellten LektorInnen an der FH Technikum Wien'; - $verteilerArray['tw_fix_lkt']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid - FROM public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) - WHERE fixangestellt - AND lektor - AND aktiv - AND mitarbeiter_uid NOT LIKE '\\\\_%'"; - //Alle aktiven MitarbeiterInnen mit Attribut fixangestellt=false und lektor=true - $verteilerArray['tw_ext_lkt']['bezeichnung'] = 'Externe LektorInnen'; - $verteilerArray['tw_ext_lkt']['beschreibung'] = 'Alle externen LektorInnen an der FH Technikum Wien'; - $verteilerArray['tw_ext_lkt']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid - FROM public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) - WHERE NOT fixangestellt - AND lektor - AND aktiv - AND mitarbeiter_uid NOT LIKE '\\\\_%'"; - //Hochschulvertretung. Studierende mit gueltiger Funktion 'hsv'. - $verteilerArray['tw_hsv']['bezeichnung'] = 'Hochschulvertretung FHTW'; - $verteilerArray['tw_hsv']['beschreibung'] = 'Hochschulvertretung FHTW'; - $verteilerArray['tw_hsv']['sql'] = " SELECT DISTINCT uid - FROM - public.tbl_benutzerfunktion - JOIN public.tbl_benutzer USING(uid) - WHERE - funktion_kurzbz='hsv' - AND tbl_benutzer.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())"; - //Studienvertretung. Studierende mit gueltiger Funktion 'stdv'. - $verteilerArray['tw_stdv']['bezeichnung'] = 'Alle StudierendenvertreterInnen'; - $verteilerArray['tw_stdv']['beschreibung'] = 'Alle StudierendenvertreterInnen'; - $verteilerArray['tw_stdv']['sql'] = " SELECT DISTINCT uid - FROM - public.tbl_benutzerfunktion - JOIN public.tbl_benutzer USING(uid) - WHERE - funktion_kurzbz='stdv' - AND tbl_benutzer.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())"; - //Jahrgangsvertretung. Studierende mit gueltiger Funktion 'jgv'. - $verteilerArray['tw_jgv']['bezeichnung'] = 'Alle JahrgangsvertreterInnen'; - $verteilerArray['tw_jgv']['beschreibung'] = 'Alle JahrgangsvertreterInnen'; - $verteilerArray['tw_jgv']['sql'] = " SELECT DISTINCT uid - FROM - public.tbl_benutzerfunktion - JOIN public.tbl_benutzer USING(uid) - WHERE - funktion_kurzbz='jgv' - AND tbl_benutzer.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())"; - //Alle aktiven Studierenden - //Abbrecher bleiben noch 3 Wochen im Verteiler andere inaktive noch fuer 20 Wochen - //damit im CIS die Menuepunkte fuer Studierende richtig angezeigt werden - $verteilerArray['tw_std']['bezeichnung'] = 'Alle Studierenden'; - $verteilerArray['tw_std']['beschreibung'] = 'Alle ordentlichen, außerordentlichen und fiktiven Studierenden'; - $verteilerArray['tw_std']['sql'] = " SELECT DISTINCT uid - FROM campus.vw_student - WHERE ( - aktiv - OR - (aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval) - OR - (aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND updateaktivam>now()-'20 weeks'::interval) - )"; - //Alle aktiven männlichen Studierenden - //Abbrecher bleiben noch 3 Wochen im Verteiler andere inaktive noch fuer 20 Wochen - $verteilerArray['tw_std_m']['bezeichnung'] = 'Alle männlichen Studenten'; - $verteilerArray['tw_std_m']['beschreibung'] = 'Alle männlichen Studenten an der FHTW'; - $verteilerArray['tw_std_m']['sql'] = " SELECT DISTINCT uid - FROM campus.vw_student - WHERE ( - aktiv - AND geschlecht='m' - OR - (aktiv=false AND geschlecht='m' AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval) - OR - (aktiv=false AND geschlecht='m' AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND updateaktivam>now()-'20 weeks'::interval) - )"; - //Alle aktiven weiblichen Studierenden - //Abbrecher bleiben noch 3 Wochen im Verteiler andere inaktive noch fuer 20 Wochen - $verteilerArray['tw_std_w']['bezeichnung'] = 'Alle weiblichen Studentinnen'; - $verteilerArray['tw_std_w']['beschreibung'] = 'Alle weiblichen Studentinnen an der FHTW'; - $verteilerArray['tw_std_w']['sql'] = " SELECT DISTINCT uid - FROM campus.vw_student - WHERE ( - aktiv - AND geschlecht='w' - OR - (aktiv=false AND geschlecht='w' AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval) - OR - (aktiv=false AND geschlecht='w' AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND updateaktivam>now()-'20 weeks'::interval) - )"; - //Alle ordentlichen, aktiven Bachelor- und Master-Studierenden - //Absolventen bleiben noch 20 Wochen im Verteiler - $verteilerArray['tw_bama']['bezeichnung'] = 'Alle BaMa-Studierenden'; - $verteilerArray['tw_bama']['beschreibung'] = 'Alle ordentlichen Bachelor- und Master-Studierenden'; - $verteilerArray['tw_bama']['sql'] = " SELECT DISTINCT uid - FROM campus.vw_student - WHERE ( - aktiv - OR - (aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)='Absolvent' AND updateaktivam>now()-'20 weeks'::interval) - AND studiengang_kz IN (SELECT studiengang_kz FROM public.tbl_studiengang WHERE typ IN ('b','m')) - )"; - //Moodle-LektorenVerteiler - /* Von kindlm auskommentiert am 27.09.2017. Verteiler wird vermutlich nicht mehr benötigt. Wenn ein Jahr lang kein Problem, dann bitte löschen. - $verteilerArray['moodle_lkt']['bezeichnung'] = 'Moodle Lektoren'; - $verteilerArray['moodle_lkt']['beschreibung'] = 'Moodle Lektoren'; - $verteilerArray['moodle_lkt']['sql'] = " SELECT distinct mitarbeiter_uid AS uid - FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, addon.tbl_moodle ,campus.vw_lehreinheit - WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id - AND vw_lehreinheit.studiengang_kz=tbl_lehrveranstaltung.studiengang_kz - AND vw_lehreinheit.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id - AND vw_lehreinheit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id - AND vw_lehreinheit.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz - AND vw_lehreinheit.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz - AND ((tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id - AND tbl_moodle.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz) - OR (tbl_lehreinheit.lehreinheit_id=tbl_moodle.lehreinheit_id))";*/ - //Serviceabteilungen. Aktive MitarbeiterInnen mit gueltiger Leitungsfunktion in einer Abteilung - $verteilerArray['serviceabteilungen']['bezeichnung'] = 'LeiterInnen sonst. OEen'; - $verteilerArray['serviceabteilungen']['beschreibung'] = 'LeiterInnen der Abteilungen und Gruppen'; - $verteilerArray['serviceabteilungen']['sql'] = " SELECT distinct mitarbeiter_uid AS uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_organisationseinheit USING(oe_kurzbz) - WHERE tbl_benutzer.aktiv AND (funktion_kurzbz='Leitung') - 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()) - AND tbl_organisationseinheit.organisationseinheittyp_kurzbz='Abteilung'"; - //Aktive MitarbeiterInnen der OE "Sprachen" - $verteilerArray['sprachen']['bezeichnung'] = 'Sprachen'; - $verteilerArray['sprachen']['beschreibung'] = 'MitarbeiterInnen des Instituts Sprachen und Kulturwissenschaften '; - $verteilerArray['sprachen']['sql'] = " SELECT distinct uid - FROM - public.tbl_benutzer - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) - WHERE oe_kurzbz in('Sprachen') - AND tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - // Aktive MitarbeiterInnen der OE "Sprachen" - $verteilerArray['humanities']['bezeichnung'] = 'MA Institut Sprachen'; - $verteilerArray['humanities']['beschreibung'] = 'MitarbeiterInnen des Instituts Sprachen und Kulturwissenschaften '; - $verteilerArray['humanities']['sql'] = "SELECT distinct uid - FROM - public.tbl_benutzer - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) - WHERE oe_kurzbz in('Sprachen') - AND tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - //Aktive BenutzerInnen mit der Funktion "kollegium" - $verteilerArray['kollegium']['bezeichnung'] = 'Kollegium der FH Technikum Wien'; - $verteilerArray['kollegium']['beschreibung'] = 'Kollegium der FH Technikum Wien'; - $verteilerArray['kollegium']['sql'] = " SELECT distinct uid - FROM - public.tbl_benutzer - JOIN public.tbl_benutzerfunktion USING(uid) - WHERE funktion_kurzbz='kollegium' - AND tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - //Aktive BenutzerInnen mit der Funktion "managementteam" - $verteilerArray['tw_managementteam']['bezeichnung'] = 'Akademisches Managementteam'; - $verteilerArray['tw_managementteam']['beschreibung'] = 'Akademisches Managementteam'; - $verteilerArray['tw_managementteam']['sql'] = " SELECT distinct uid - FROM - public.tbl_benutzer - JOIN public.tbl_benutzerfunktion USING(uid) - WHERE funktion_kurzbz='managementteam' - AND tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - //Aktive BenutzerInnen mit der Funktion "fue" - $verteilerArray['tw_fue']['bezeichnung'] = 'Forschung und Entwicklung'; - $verteilerArray['tw_fue']['beschreibung'] = 'Forschung und Entwicklung'; - $verteilerArray['tw_fue']['sql'] = " SELECT distinct uid - FROM - public.tbl_benutzer - JOIN public.tbl_benutzerfunktion USING(uid) - WHERE funktion_kurzbz='fue' - AND tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - //Aktive weiblichen Benutzerinnen mit der Funktion "fue" - $verteilerArray['tw_fue_frauen']['bezeichnung'] = 'Weibliche Mitarbeiterinnen FuE'; - $verteilerArray['tw_fue_frauen']['beschreibung'] = 'Weibliche Mitarbeiterinnen in Forschung und Entwicklung'; - $verteilerArray['tw_fue_frauen']['sql'] = " SELECT distinct uid - FROM - public.tbl_benutzer - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_person USING (person_id) - WHERE funktion_kurzbz='fue' - AND geschlecht='w' - AND tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - //Alle aktiven MitarbeiterInnen mit Funktion Leitung oder stvLeitung oder gfLtg - $verteilerArray['tw_leitung']['bezeichnung'] = 'Alle MA mit Leitungsfunktion'; - $verteilerArray['tw_leitung']['beschreibung'] = 'Alle MA mit Funktion Leitung, stellvertretende Leitung oder geschäftsführende Leitung'; - $verteilerArray['tw_leitung']['sql'] = " SELECT DISTINCT uid - FROM - public.tbl_person - JOIN public.tbl_benutzer USING (person_id) - JOIN tbl_benutzerfunktion USING (uid) - WHERE funktion_kurzbz IN('Leitung','stvLtg','gLtg') - AND tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - //Alle aktiven Studierenden in Academy-Lehrgaengen - //Abbrecher bleiben noch 3 Wochen im Verteiler andere inaktive noch fuer 20 Wochen - $verteilerArray['tw_academy_std']['bezeichnung'] = 'Alle Studierenden der Academy'; - $verteilerArray['tw_academy_std']['beschreibung'] = 'Alle Studierenden der TW-Academy (LehrgangsteilnehmerInnen)'; - $verteilerArray['tw_academy_std']['sql'] = " SELECT DISTINCT uid AS uid - FROM campus.vw_student - JOIN public.tbl_studiengang USING (studiengang_kz) - JOIN public.tbl_organisationseinheit USING (oe_kurzbz) - WHERE ( - vw_student.aktiv - OR - (vw_student.aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND vw_student.updateaktivam>now()-'3 weeks'::interval) - OR - (vw_student.aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND vw_student.updateaktivam>now()-'20 weeks'::interval)) - AND tbl_organisationseinheit.oe_parent_kurzbz='lehrgang' - AND organisationseinheittyp_kurzbz='Lehrgang'"; - //Alle aktiven Lektoren von BIF DUA - $verteilerArray['bif_lkt_dua']['bezeichnung'] = 'Alle Lektoren von BIF DUAL'; - $verteilerArray['bif_lkt_dua']['beschreibung'] = 'Alle Lektoren von BIF DUAL'; - $verteilerArray['bif_lkt_dua']['sql'] = "SELECT distinct mitarbeiter_uid as uid - FROM - lehre.tbl_lehrveranstaltung - JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) - JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) - WHERE - (studiensemester_kurzbz='$studiensemester' OR - studiensemester_kurzbz='$stsem2') - AND mitarbeiter_uid NOT LIKE '\\\\_%' - AND tbl_lehrveranstaltung.studiengang_kz=257 - AND tbl_lehrveranstaltung.orgform_kurzbz='DUA' - "; - - $verteilerArray['pre_alumni_wintersemester']['bezeichnung'] = 'Zukünftige Absolventen Wintersemester'; - $verteilerArray['pre_alumni_wintersemester']['beschreibung'] = 'Zukünftige Absolventen Wintersemester'; - $verteilerArray['pre_alumni_wintersemester']['sql'] = "SELECT - distinct tbl_benutzer.uid - FROM - public.tbl_studentlehrverband - JOIN public.tbl_studiengang USING(studiengang_kz) - JOIN public.tbl_benutzer ON(uid=student_uid) - WHERE - ( - (tbl_studiengang.typ='m' AND semester=3) - OR (tbl_studiengang.typ='b' AND semester=5) - ) - AND tbl_benutzer.aktiv = true - AND tbl_studentlehrverband.studiensemester_kurzbz = (SELECT studiensemester_kurzbz FROM public.vw_studiensemester where studiensemester_kurzbz like 'WS%' ORDER BY delta LIMIT 1)"; - - $verteilerArray['pre_alumni_sommersemester']['bezeichnung'] = 'Zukünftige Absolventen Sommersemester'; - $verteilerArray['pre_alumni_sommersemester']['beschreibung'] = 'Zukünftige Absolventen Sommersemester'; - $verteilerArray['pre_alumni_sommersemester']['sql'] = "SELECT - distinct tbl_benutzer.uid - FROM - public.tbl_studentlehrverband - JOIN public.tbl_studiengang USING(studiengang_kz) - JOIN public.tbl_benutzer ON(uid=student_uid) - WHERE - ( - (tbl_studiengang.typ='m' AND semester=4) - OR (tbl_studiengang.typ='b' AND semester=6) - ) - AND tbl_benutzer.aktiv = true - AND tbl_studentlehrverband.studiensemester_kurzbz = (SELECT studiensemester_kurzbz FROM public.vw_studiensemester where studiensemester_kurzbz like 'SS%' ORDER BY delta LIMIT 1)"; - - $bezeichnung = ''; - $beschreibung = ''; - foreach ($verteilerArray AS $listname => $data) - { - $grp = new gruppe(); - // Pruefen, ob die Gruppe existert, wenn nicht, anlegen - if(!$grp->exists($listname)) - { - if (strlen($data['bezeichnung']) > 32) - $bezeichnung = substr($data['bezeichnung'], 0, 32); - else - $bezeichnung = $data['bezeichnung']; - - if (strlen($data['beschreibung']) > 128) - $beschreibung = substr($data['beschreibung'], 0, 128); - else - $beschreibung = $data['beschreibung']; - - $grp->gruppe_kurzbz = $listname; - $grp->studiengang_kz = '0'; - $grp->semester = '0'; - $grp->bezeichnung = $bezeichnung; - $grp->beschreibung = $beschreibung; - $grp->mailgrp = true; - $grp->sichtbar = true; - $grp->generiert = true; - $grp->aktiv = true; - $grp->lehre = false; - $grp->content_visible = false; - $grp->gesperrt = false; - $grp->zutrittssystem = false; - $grp->aufnahmegruppe = false; - $grp->insertamum = date('Y-m-d H:i:s'); - $grp->insertvon = 'mlists_generate'; - - if(!$grp->save(true, true)) - { - $error_msg .= 'Fehler beim Anlegen der Gruppe '.$listname.': '.$grp->errormsg; - continue; - } - } - else - { - setGeneriert($listname); - } - echo strtoupper($listname).' wird abgeglichen...
'; - flush(); - //Eventuelles Semikolon am Ende des SQLs entfernen - if (substr($data['sql'], -1) == ';') - $data['sql'] = substr($data['sql'], 0, strlen($data['sql'])-1); - - $qry_delete = " DELETE FROM - public.tbl_benutzergruppe - WHERE - UPPER(gruppe_kurzbz)=UPPER(".$db->db_add_param($listname).") - AND - uid NOT IN (".$data['sql'].");"; - - if(!($result = $db->db_query($qry_delete))) - $error_msg .= $db->db_last_error().$qry_delete.'

'; - - echo strtoupper($listname).' '.$db->db_affected_rows($result).' Einträge gelöscht
'; - - flush(); - - $qry_insert = " WITH - uids AS (".$data['sql'].") - INSERT INTO - public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) - SELECT - *, UPPER(".$db->db_add_param($listname)."), now(), 'mlists_generate' - FROM - uids - WHERE - uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER(".$db->db_add_param($listname)."));"; - - if(!($result = $db->db_query($qry_insert))) - $error_msg .= $db->db_last_error().$qry_insert.'

'; - - echo strtoupper($listname).' '.$db->db_affected_rows($result).' Einträge hinzugefügt

'; - - flush(); - } - -// ************************************************************** -// Erstellen der Mailinglisten mit Schleifen-Logik -// ************************************************************** - - - // ************************************************************** - // Lektoren-Verteiler innerhalb der Studiengaenge abgleichen - // Lektoren holen die nicht mehr in den Verteiler gehoeren - echo '
Lektoren-Verteiler der Studiengaenge werden abgeglichen!
'; - flush(); - $sql_query="SELECT uid, gruppe_kurzbz FROM public.tbl_benutzergruppe - WHERE gruppe_kurzbz LIKE '%\\_LKT' AND UPPER(gruppe_kurzbz)!=UPPER('tw_lkt') AND UPPER(gruppe_kurzbz)!=UPPER('tw_fix_lkt') AND UPPER(gruppe_kurzbz)!=UPPER('tw_ext_lkt') AND UPPER(gruppe_kurzbz)!=UPPER('moodle_lkt') - AND (uid,UPPER(gruppe_kurzbz)) NOT IN - (SELECT mitarbeiter_uid,UPPER(typ::varchar(1) || tbl_studiengang.kurzbz || '_lkt') - FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, public.tbl_studiengang - WHERE - tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_studiengang.studiengang_kz=tbl_lehrveranstaltung.studiengang_kz AND - (studiensemester_kurzbz='$studiensemester' OR - studiensemester_kurzbz='$stsem2') AND mitarbeiter_uid NOT LIKE '\\\\_%')"; - - if(!($result=$db->db_query($sql_query))) - $error_msg.=$db->db_last_error().$sql_query; - while($row=$db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$row->gruppe_kurzbz') AND uid='$row->uid'"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - // Lektoren holen die noch nicht im Verteiler sind - echo '
'; - $sql_query="SELECT distinct mitarbeiter_uid, UPPER(typ::varchar(1) || tbl_studiengang.kurzbz || '_lkt') AS mlist_name, tbl_studiengang.studiengang_kz - FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, public.tbl_studiengang - WHERE - tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_studiengang.studiengang_kz=tbl_lehrveranstaltung.studiengang_kz AND - (studiensemester_kurzbz='$studiensemester' OR - studiensemester_kurzbz='$stsem2') AND - mitarbeiter_uid NOT LIKE '\\\\_%' AND tbl_studiengang.studiengang_kz!=0 AND - (mitarbeiter_uid,UPPER(typ::varchar(1) || tbl_studiengang.kurzbz || '_lkt')) NOT IN - (SELECT uid, UPPER(gruppe_kurzbz) FROM public.tbl_benutzergruppe - WHERE gruppe_kurzbz LIKE '%\\_LKT' AND UPPER(gruppe_kurzbz)!=UPPER('tw_lkt') AND UPPER(gruppe_kurzbz)!=UPPER('tw_fix_lkt') AND UPPER(gruppe_kurzbz)!=UPPER('tw_ext_lkt') AND UPPER(gruppe_kurzbz)!=UPPER('moodle_lkt'))"; - //echo $sql_query; - if(!($result=$db->db_query($sql_query))) - $error_msg.=$db->db_last_error().$sql_query; - while($row=$db->db_fetch_object($result)) - { - $sql_query="SELECT * FROM public.tbl_gruppe WHERE gruppe_kurzbz='".strtoupper($row->mlist_name)."'"; - if($res = $db->db_query($sql_query)) - { - if($db->db_num_rows($res)<=0) - { - setGeneriert($row->mlist_name); - $sql_query="INSERT INTO public.tbl_gruppe(gruppe_kurzbz, studiengang_kz, semester, bezeichnung, - beschreibung, mailgrp, sichtbar, generiert, aktiv, updateamum, updatevon, - insertamum, insertvon) - VALUES('".strtoupper($row->mlist_name)."',$row->studiengang_kz, 0,'$row->mlist_name',". - "'$row->mlist_name', true, true, true, true, now(),'mlists_generate',now(), 'mlists_generate');"; - if(!$db->db_query($sql_query)) - echo "
Fehler beim Anlegen der Gruppe: $sql_query
"; - } - } - else - echo "
Fehler:$sql_query"; - - setGeneriert($row->mlist_name); - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->mitarbeiter_uid','".strtoupper($row->mlist_name)."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - - flush(); - } - - - // ************************************************************** - // Studienvertretungen der Studiengänge abgleichen - - echo 'Studienvertretungsverteiler werden abgeglichen!
'; - flush(); - - //Verteiler anlegen - $sql_query="SELECT DISTINCT - UPPER(typ||kurzbz)||'_'||UPPER(funktion_kurzbz) AS gruppe , - UPPER(typ||kurzbz) AS studiengang, - tbl_studiengang.studiengang_kz - FROM public.tbl_benutzerfunktion - JOIN public.tbl_studiengang USING (oe_kurzbz) - WHERE funktion_kurzbz='stdv' - AND UPPER(typ||kurzbz)||'_'||UPPER(funktion_kurzbz) NOT IN (SELECT gruppe_kurzbz FROM public.tbl_gruppe) - AND tbl_studiengang.aktiv - AND tbl_studiengang.studiengang_kz!=0"; - if($res = $db->db_query($sql_query)) - { - while($row = $db->db_fetch_object($res)) - { - if($db->db_num_rows($res)>0) - { - $sql_query="INSERT INTO public.tbl_gruppe(gruppe_kurzbz, studiengang_kz, semester, bezeichnung, - beschreibung, mailgrp, sichtbar, generiert, aktiv, updateamum, updatevon, - insertamum, insertvon) - VALUES(".$db->db_add_param($row->gruppe).",".$db->db_add_param($row->studiengang_kz).", NULL,".$db->db_add_param('Studienvertretung '.$row->studiengang).",".$db->db_add_param('Studienvertretung '.$row->studiengang).", true, true, true, true, now(),'mlists_generate',now(), 'mlists_generate');"; - if(!$db->db_query($sql_query)) - echo "
Fehler beim Anlegen der Gruppe: $sql_query
"; - } - } - } - - // Studierende holen, die nicht mehr in den Verteiler gehoeren - $sql_query="SELECT gruppe_kurzbz, uid - FROM public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) - WHERE gruppe_kurzbz LIKE '%_STDV' - AND uid not in (SELECT uid FROM public.tbl_benutzerfunktion JOIN public.tbl_benutzer USING(uid) - WHERE funktion_kurzbz='stdv' AND tbl_benutzer.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()) - AND (SELECT studiengang_kz FROM public.tbl_studiengang - WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1)=tbl_gruppe.studiengang_kz) - AND tbl_gruppe.studiengang_kz!='0'"; - if(!($result=$db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$row->gruppe_kurzbz') AND uid='$row->uid'"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - - flush(); - } - ob_flush(); - // Studierende holen, die nicht im Verteiler sind - echo '
'; - $sql_query="SELECT DISTINCT uid, tbl_gruppe.gruppe_kurzbz - FROM - public.tbl_benutzerfunktion - JOIN public.tbl_benutzer USING(uid) - JOIN public.tbl_studiengang USING(oe_kurzbz) - JOIN public.tbl_gruppe ON(tbl_gruppe.studiengang_kz=tbl_studiengang.studiengang_kz AND gruppe_kurzbz like '%_STDV') - WHERE - funktion_kurzbz='stdv' - AND tbl_benutzer.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()) - AND uid NOT in(Select uid from public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) - WHERE studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang - WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) - AND gruppe_kurzbz Like '%_STDV')"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - if($row->gruppe_kurzbz!='') - { - setGeneriert($row->gruppe_kurzbz); - $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".mb_strtoupper($row->gruppe_kurzbz)."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - - flush(); - } - } - - - // ************************************************************** - // Verteiler Jahrgangsvertretung abgleichen - - echo 'Jahrgangsvertretungsverteiler werden abgeglichen!
'; - flush(); - - //Verteiler der einzelnen Studiengaenge anlegen - $sql_query="SELECT DISTINCT - UPPER(typ||kurzbz)||'_'||UPPER(funktion_kurzbz) AS gruppe , - UPPER(typ||kurzbz) AS studiengang, - tbl_studiengang.studiengang_kz - FROM public.tbl_benutzerfunktion - JOIN public.tbl_studiengang USING (oe_kurzbz) - WHERE funktion_kurzbz='jgv' - AND UPPER(typ||kurzbz)||'_'||UPPER(funktion_kurzbz) NOT IN (SELECT gruppe_kurzbz FROM public.tbl_gruppe) - AND tbl_studiengang.aktiv - AND tbl_studiengang.studiengang_kz!=0"; - if($res = $db->db_query($sql_query)) - { - while($row = $db->db_fetch_object($res)) - { - if($db->db_num_rows($res)>0) - { - $sql_query="INSERT INTO public.tbl_gruppe(gruppe_kurzbz, studiengang_kz, semester, bezeichnung, - beschreibung, mailgrp, sichtbar, generiert, aktiv, updateamum, updatevon, - insertamum, insertvon) - VALUES(".$db->db_add_param($row->gruppe).",".$db->db_add_param($row->studiengang_kz).", NULL,".$db->db_add_param('Jahrgangsvertretung '.$row->studiengang).",".$db->db_add_param('Jahrgangsvertretung '.$row->studiengang).", true, true, true, true, now(),'mlists_generate',now(), 'mlists_generate');"; - if(!$db->db_query($sql_query)) - echo "
Fehler beim Anlegen der Gruppe: $sql_query
"; - } - } - } - - // Studierende holen, die nicht mehr in den Verteiler gehoeren - $sql_query="SELECT gruppe_kurzbz, uid - FROM public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) - WHERE gruppe_kurzbz LIKE '%_JGV' - AND uid not in (SELECT uid FROM public.tbl_benutzerfunktion JOIN public.tbl_benutzer USING(uid) - WHERE funktion_kurzbz='jgv' AND tbl_benutzer.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()) - AND (SELECT studiengang_kz FROM public.tbl_studiengang - WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1)=tbl_gruppe.studiengang_kz) - AND tbl_gruppe.studiengang_kz!='0'"; - if(!($result=$db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$row->gruppe_kurzbz') AND uid='$row->uid'"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - - flush(); - } - - // Studierende holen, die noch nicht im Verteiler sind - echo '
'; - $sql_query="SELECT DISTINCT uid, tbl_gruppe.gruppe_kurzbz - FROM - public.tbl_benutzerfunktion - JOIN public.tbl_benutzer USING(uid) - JOIN public.tbl_studiengang USING(oe_kurzbz) - JOIN public.tbl_gruppe ON(tbl_gruppe.studiengang_kz=tbl_studiengang.studiengang_kz AND gruppe_kurzbz like '%_JGV') - WHERE - funktion_kurzbz='jgv' - AND tbl_benutzer.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()) - AND uid NOT in(Select uid from public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) - WHERE studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang - WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) - AND gruppe_kurzbz Like '%_JGV')"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - if($row->gruppe_kurzbz!='') - { - setGeneriert($row->gruppe_kurzbz); - $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".mb_strtoupper($row->gruppe_kurzbz)."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - - flush(); - } - } - - // ************************************************************** - // Organisationseinheiten-Verteiler - - /* - $qry = "SELECT * FROM public.tbl_organisationseinheit WHERE aktiv AND mailverteiler"; - if($result = $db->db_query($qry)) - { - while($row = $db->db_fetch_object($result)) - { - $mlist_name=strtoupper($row->oe_kurzbz); - - $grp = new gruppe(); - if(!$grp->exists($mlist_name)) - { - $grp->gruppe_kurzbz = $mlist_name; - $grp->studiengang_kz = '0'; - $grp->bezeichnung = $row->oe_kurzbz; - $grp->beschreibung = 'Personen der Organisationseinheit '.$row->bezeichnung; - $grp->semester = '0'; - $grp->mailgrp = true; - $grp->sichtbar = true; - $grp->generiert = true; - $grp->aktiv = true; - $grp->lehre = true; - $grp->insertamum = date('Y-m-d H:i:s'); - $grp->insertvon = 'mlists_generate'; - - if(!$grp->save(true, false)) - die('Fehler: '.$grp->errormsg); - } - else - { - setGeneriert($mlist_name); - } - - $oe = new organisationseinheit(); - $childs = $oe->getChilds($row->oe_kurzbz); - - // Lektoren holen die nicht mehr in den Verteiler gehoeren - echo '
'.$mlist_name.' wird abgeglichen!
'; - flush(); - - $oes=''; - foreach ($childs as $oe_kurzbz) - { - if($oes!='') - $oes.=','; - - $oes .= "'".addslashes($oe_kurzbz)."'"; - } - - $sql_query = "SELECT distinct uid FROM public.tbl_benutzer JOIN public.tbl_benutzerfunktion USING(uid) - WHERE oe_kurzbz in($oes) - AND tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - - $sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name' AND uid NOT IN ($sql_query)"; - if(!$db->db_query($sql_querys)) - { - $error_msg.=$db->db_last_error().' '.$sql_querys; - echo '-'; - flush(); - } - - $sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')"; - if(!($result_oe = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error().' '.$sql_query; - // Lektoren holen die nicht im Verteiler sind - echo '
'; - while($row_oe = $db->db_fetch_object($result_oe)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->uid','".$mlist_name."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - { - $error_msg.=$db->db_last_error().$sql_query; - exit($error_msg); - } - echo '-'; - flush(); - } - } - } - */ - // ************************************************************** - // Instituts-Verteiler - echo '
Abgleich der Institutsverteiler
'; - //Externe Mitarbeiter - $qry = "SELECT * FROM public.tbl_organisationseinheit WHERE aktiv AND mailverteiler AND organisationseinheittyp_kurzbz='Institut'"; - - if($result = $db->db_query($qry)) - { - while($row = $db->db_fetch_object($result)) - { - $mlist_name=strtoupper($row->oe_kurzbz).'_EXT'; - - $grp = new gruppe(); - if(!$grp->exists($mlist_name)) - { - $grp->gruppe_kurzbz = $mlist_name; - $grp->studiengang_kz = '0'; - $grp->bezeichnung = $row->oe_kurzbz; - $grp->beschreibung = 'Externe Mitarbeiter des Instituts '.$row->bezeichnung; - $grp->semester = '0'; - $grp->mailgrp = true; - $grp->sichtbar = true; - $grp->generiert = true; - $grp->aktiv = true; - $grp->lehre = true; - $grp->insertamum = date('Y-m-d H:i:s'); - $grp->insertvon = 'mlists_generate'; - - if(!$grp->save(true, false)) - die('Fehler: '.$grp->errormsg); - } - else - { - setGeneriert($mlist_name); - } - - $oe = new organisationseinheit(); - $childs = $oe->getChilds($row->oe_kurzbz); - - // Lektoren holen die nicht mehr in den Verteiler gehoeren - echo '
'.$mlist_name.' wird abgeglichen!'; - flush(); - - $oes=''; - foreach ($childs as $oe_kurzbz) - { - if($oes!='') - $oes.=','; - - $oes .= "'".addslashes($oe_kurzbz)."'"; - } - - $sql_query = "SELECT distinct uid - FROM - public.tbl_benutzer - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) - WHERE oe_kurzbz in($oes) - AND tbl_benutzer.aktiv AND NOT fixangestellt - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - - $sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name' AND uid NOT IN ($sql_query)"; - if(!$db->db_query($sql_querys)) - { - $error_msg.=$db->db_last_error().' '.$sql_querys; - } - - $sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')"; - if(!($result_oe = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error().' '.$sql_query; - // Lektoren holen die nicht im Verteiler sind - - while($row_oe = $db->db_fetch_object($result_oe)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->uid','".$mlist_name."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - { - $error_msg.=$db->db_last_error().$sql_query; - } - } - } - } - - //Fixe Mitarbeiter - $qry = "SELECT * FROM public.tbl_organisationseinheit WHERE aktiv AND mailverteiler AND organisationseinheittyp_kurzbz='Institut'"; - - if($result = $db->db_query($qry)) - { - while($row = $db->db_fetch_object($result)) - { - $mlist_name=strtoupper($row->oe_kurzbz).'_FIX'; - - $grp = new gruppe(); - if(!$grp->exists($mlist_name)) - { - $grp->gruppe_kurzbz = $mlist_name; - $grp->studiengang_kz = '0'; - $grp->bezeichnung = $row->oe_kurzbz; - $grp->beschreibung = 'Fixangestellte Mitarbeiter des Instituts '.$row->bezeichnung; - $grp->semester = '0'; - $grp->mailgrp = true; - $grp->sichtbar = true; - $grp->generiert = true; - $grp->aktiv = true; - $grp->lehre = true; - $grp->insertamum = date('Y-m-d H:i:s'); - $grp->insertvon = 'mlists_generate'; - - if(!$grp->save(true, false)) - die('Fehler: '.$grp->errormsg); - } - else - { - setGeneriert($mlist_name); - } - - $oe = new organisationseinheit(); - $childs = $oe->getChilds($row->oe_kurzbz); - - // Lektoren holen die nicht mehr in den Verteiler gehoeren - echo '
'.$mlist_name.' wird abgeglichen!'; - flush(); - - $oes=''; - foreach ($childs as $oe_kurzbz) - { - if($oes!='') - $oes.=','; - - $oes .= "'".addslashes($oe_kurzbz)."'"; - } - - $sql_query = "SELECT distinct uid - FROM - public.tbl_benutzer - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) - WHERE oe_kurzbz in($oes) - AND tbl_benutzer.aktiv AND fixangestellt - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - - $sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name' AND uid NOT IN ($sql_query)"; - if(!$db->db_query($sql_querys)) - { - $error_msg.=$db->db_last_error().' '.$sql_querys; - } - - $sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')"; - if(!($result_oe = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error().' '.$sql_query; - // Lektoren holen die nicht im Verteiler sind - while($row_oe = $db->db_fetch_object($result_oe)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->uid','".$mlist_name."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - { - $error_msg.=$db->db_last_error().$sql_query; - } - } - } - } - echo '
'; - - // ************************************************************** - // Studierendenverteiler fuer die einzelnen Organisationseinheiten bei Mischformen - echo '
Abgleich der Mischformverteiler'; - $stsem = $stsem_obj->getNearest(); - - $sql_query = " - SELECT - tbl_prestudentstatus.orgform_kurzbz, - tbl_studiengang.studiengang_kz, - tbl_studiengang.typ, - tbl_studiengang.kurzbz - FROM - public.tbl_student - JOIN public.tbl_benutzer ON(student_uid=uid) - JOIN public.tbl_prestudentstatus USING(prestudent_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE - tbl_studiengang.mischform - AND tbl_benutzer.aktiv - AND tbl_prestudentstatus.orgform_kurzbz is not null - GROUP BY - tbl_studiengang.studiengang_kz, tbl_prestudentstatus.orgform_kurzbz, tbl_studiengang.typ, tbl_studiengang.kurzbz - "; - - if($result = $db->db_query($sql_query)) - { - echo '
'; - - while($row = $db->db_fetch_object($result)) - { - $mlist_name=strtoupper($row->typ.$row->kurzbz.'_'.$row->orgform_kurzbz); - echo $mlist_name.'
'; - - //Gruppe anlegen falls noch nicht vorhanden - $grp = new gruppe(); - if(!$grp->exists($mlist_name)) - { - $grp->gruppe_kurzbz = $mlist_name; - $grp->studiengang_kz = $row->studiengang_kz; - $grp->bezeichnung = 'Alle '.$row->orgform_kurzbz.' Studenten von '.strtoupper($row->typ.$row->kurzbz); - $grp->beschreibung = 'Alle '.$row->orgform_kurzbz.' Studenten von '.strtoupper($row->typ.$row->kurzbz); - $grp->semester = '0'; - $grp->mailgrp = true; - $grp->sichtbar = true; - $grp->generiert = true; - $grp->aktiv = true; - $grp->lehre = false; - $grp->insertamum = date('Y-m-d H:i:s'); - $grp->insertvon = 'mlists_generate'; - - if(!$grp->save(true, false)) - die('Fehler: '.$grp->errormsg); - } - else - { - setGeneriert($mlist_name); - } - - $sql_query=" - SELECT - distinct student_uid - FROM - public.tbl_student - JOIN public.tbl_benutzer ON(uid=student_uid) - WHERE - tbl_benutzer.aktiv AND - '".addslashes($row->orgform_kurzbz)."'= - (SELECT orgform_kurzbz - FROM public.tbl_prestudentstatus - WHERE - prestudent_id=tbl_student.prestudent_id - AND tbl_prestudentstatus.studiensemester_kurzbz='".addslashes($stsem)."' - ORDER BY datum desc, insertamum desc, ext_id desc LIMIT 1) - AND tbl_student.studiengang_kz='".addslashes($row->studiengang_kz)."'"; - - //Personen entfernen die nicht mehr in den Verteiler gehoeren - $qry = "DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='".$mlist_name."' AND uid NOT IN(".$sql_query.");"; - if(!$db->db_query($qry)) - { - $error_msg.="Fehler bei Qry:".$qry; - } - - //Fehlende Personen hinzufuegen - $sql_query.=" AND student_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')"; - if(!($result_oe = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error().' '.$sql_query; - - - while($row_oe = $db->db_fetch_object($result_oe)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->student_uid','".$mlist_name."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - { - $error_msg.=$db->db_last_error().$sql_query; - exit($error_msg); - } - flush(); - } - } - } - else - $error_msg.=$db->db_last_error().' '.$sql_query; - - echo $error_msg; - - // Send Mail to admin if error occurs - if ($error_msg != '') - { - $mailtext = ' - - Im Script mlists_generate.php sind folgende Fehler aufgetreten:

'; - $mailtext .= $error_msg; - $mailtext = wordwrap($mailtext,70); - $mail = new mail(MAIL_ADMIN, 'no-reply', 'ERROR mlists_generate.php', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Inhalt vollständig darzustellen.'); - //$mail->setBCCRecievers('kindlm@technikum-wien.at'); - $mail->setHTMLContent($mailtext); - $mail->send(); - } - ?> -
-

- Die Mailinglisten wurden abgeglichen.
-

- - diff --git a/vilesci/lehre/einheit_det.php b/vilesci/lehre/einheit_det.php index 5966e0af1..18753a0f1 100644 --- a/vilesci/lehre/einheit_det.php +++ b/vilesci/lehre/einheit_det.php @@ -52,11 +52,11 @@ if (isset($_POST['new'])) { if(!$rechte->isBerechtigt('lehre/gruppe',null,'sui')) die($rechte->errormsg); - + $e = new benutzergruppe(); $uid = $_POST['uid']; if (!$e->load($uid, $kurzbz)) - { + { $e->new=true; $e->gruppe_kurzbz = $kurzbz; $e->updateamum = date('Y-m-d H:i:s'); @@ -67,12 +67,12 @@ if (isset($_POST['new'])) if(!$e->save()) die($e->errormsg); } - else + else { $errormsg = 'Diese Person ist bereits der Gruppe zugeteilt'; } } - else + else $errormsg = 'UID '.$_POST['uid'].' wurde nicht gefunden'; } else if (isset($_GET['type']) && $_GET['type']=='delete') @@ -110,6 +110,7 @@ if(!$gruppe->load($kurzbz)) studiengang_kz'>Zurück zur Übersicht

"; echo $errormsg; +$generiertegruppe = $gruppe->generiert; if(!$gruppe->generiert) { echo ' @@ -145,7 +146,7 @@ if(!$gruppe->generiert)
'; } -else +else { echo ' Name: @@ -185,7 +186,7 @@ else echo "".$row->nachname.""; echo "".$row->vorname.""; echo "".$row->uid.""; - if(!$gruppe->generiert && $rechte->isBerechtigt('lehre/gruppe',null,'suid')) + if(!$generiertegruppe && $rechte->isBerechtigt('lehre/gruppe',null,'suid')) echo 'Delete'; echo "\n"; } diff --git a/vilesci/stammdaten/benutzerberechtigung_details.php b/vilesci/stammdaten/benutzerberechtigung_details.php index 690bf720b..7b3482de0 100644 --- a/vilesci/stammdaten/benutzerberechtigung_details.php +++ b/vilesci/stammdaten/benutzerberechtigung_details.php @@ -391,7 +391,20 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $sel = ""; $htmlstr .= ""; } - $htmlstr .= " \n"; + $htmlstr .= " "; + + // Wenn editiert wird, zu der Zeile Springen + $htmlstr.=" + + "; + $htmlstr.="\n"; //Berechtigung $htmlstr .= "