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/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/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/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/webdav/Principal.php b/webdav/Principal.php index 0c898c250..7e3241dac 100644 --- a/webdav/Principal.php +++ b/webdav/Principal.php @@ -3,40 +3,40 @@ /** * PDO principal backend * - * This is a simple principal backend that maps exactly to the users table, as + * This is a simple principal backend that maps exactly to the users table, as * used by Sabre_DAV_Auth_Backend_PDO. * - * It assumes all principals are in a single collection. The default collection + * It assumes all principals are in a single collection. The default collection * is 'principals/', but this can be overriden. * * @package Sabre * @subpackage DAVACL * @copyright Copyright (C) 2007-2011 Rooftop Solutions. All rights reserved. - * @author Evert Pot (http://www.rooftopsolutions.nl/) + * @author Evert Pot (http://www.rooftopsolutions.nl/) * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License */ class MySabre_DAVACL_PrincipalBackend implements \Sabre\DAVACL\PrincipalBackend\BackendInterface { /** - * PDO table name for 'principals' - * - * @var string + * PDO table name for 'principals' + * + * @var string */ protected $tableName; /** - * PDO table name for 'group members' - * - * @var string + * PDO table name for 'group members' + * + * @var string */ protected $groupMembersTableName; protected $result_ma; /** * Sets up the backend. - * + * * @param PDO $pdo - * @param string $tableName + * @param string $tableName */ public function __construct($auth) { @@ -46,7 +46,7 @@ class MySabre_DAVACL_PrincipalBackend implements \Sabre\DAVACL\PrincipalBackend\ $ma = new mitarbeiter(); $this->result_ma = $ma->getMitarbeiter(null,null,null); */ - } + } /** * Liefert den eingeloggten User @@ -60,20 +60,20 @@ class MySabre_DAVACL_PrincipalBackend implements \Sabre\DAVACL\PrincipalBackend\ /** * Returns a list of principals based on a prefix. * - * This prefix will often contain something like 'principals'. You are only + * This prefix will often contain something like 'principals'. You are only * expected to return principals that are in this base path. * - * You are expected to return at least a 'uri' for every user, you can + * You are expected to return at least a 'uri' for every user, you can * return any additional properties if you wish so. Common properties are: - * {DAV:}displayname - * {http://sabredav.org/ns}email-address - This is a custom SabreDAV + * {DAV:}displayname + * {http://sabredav.org/ns}email-address - This is a custom SabreDAV * field that's actualy injected in a number of other properties. If * you have an email address, use this property. - * - * @param string $prefixPath - * @return array + * + * @param string $prefixPath + * @return array */ - public function getPrincipalsByPrefix($prefixPath) + public function getPrincipalsByPrefix($prefixPath) { //$prefixPath = principals //error_log('Principal.php/getPrincipalsByPrefix('.$prefixPath.')'); @@ -82,7 +82,7 @@ class MySabre_DAVACL_PrincipalBackend implements \Sabre\DAVACL\PrincipalBackend\ if($prefixPath=='principals') { - + $principals[] = array( 'id' => $user, 'uri' => 'principals/'.$user, @@ -118,7 +118,7 @@ class MySabre_DAVACL_PrincipalBackend implements \Sabre\DAVACL\PrincipalBackend\ '{DAV:}displayname' => '', '{http://sabredav.org/ns}email-address' => '', ); - + }*/ } else //if($prefixPath=='principals/oesi') @@ -138,13 +138,13 @@ class MySabre_DAVACL_PrincipalBackend implements \Sabre\DAVACL\PrincipalBackend\ /** * Returns a specific principal, specified by it's path. - * The returned structure should be the exact same as from - * getPrincipalsByPrefix. - * - * @param string $path - * @return array + * The returned structure should be the exact same as from + * getPrincipalsByPrefix. + * + * @param string $path + * @return array */ - public function getPrincipalByPath($path) + public function getPrincipalByPath($path) { //$path = principals/oesi //error_log('Principal.php/getPrincipalByPath('.$path.')'); @@ -164,26 +164,26 @@ class MySabre_DAVACL_PrincipalBackend implements \Sabre\DAVACL\PrincipalBackend\ } /** - * Returns the list of members for a group-principal - * - * @param string $principal - * @return array + * Returns the list of members for a group-principal + * + * @param string $principal + * @return array */ - public function getGroupMemberSet($principal) + public function getGroupMemberSet($principal) { //error_log('Principal.php/getGroupMemberSet('.$principal.')'); $result = array(); return $result; - + } /** - * Returns the list of groups a principal is a member of - * - * @param string $principal - * @return array + * Returns the list of groups a principal is a member of + * + * @param string $principal + * @return array */ - public function getGroupMembership($principal) + public function getGroupMembership($principal) { //$principal = username // error_log('Principal.php/getGroupMembership('.$principal.')'); @@ -215,17 +215,17 @@ class MySabre_DAVACL_PrincipalBackend implements \Sabre\DAVACL\PrincipalBackend\ /** * Updates the list of group members for a group principal. * - * The principals should be passed as a list of uri's. - * - * @param string $principal - * @param array $members + * The principals should be passed as a list of uri's. + * + * @param string $principal + * @param array $members * @return void */ - public function setGroupMemberSet($principal, array $members) + public function setGroupMemberSet($principal, array $members) { throw new \Sabre\DAV\Exception('Not implemented'); } - + public function updatePrincipal($path, $mutations) { throw new \Sabre\DAV\Exception('Not implemented'); @@ -233,6 +233,6 @@ class MySabre_DAVACL_PrincipalBackend implements \Sabre\DAVACL\PrincipalBackend\ public function searchPrincipals($prefixPath,array $searchProperties) { - throw new \Sabre\DAV\Exceptin('Not implemented'); + throw new \Sabre\DAV\Exception('Not implemented'); } }