From 3fc755494199865b8446595ba1de67676b957789 Mon Sep 17 00:00:00 2001 From: oesi Date: Wed, 15 Mar 2017 14:33:57 +0100 Subject: [PATCH] Fehler beim Erstellen der Lektorenverteiler behoben --- system/mlists/mlists_generate.php | 642 +++++++++++++++--------------- 1 file changed, 321 insertions(+), 321 deletions(-) diff --git a/system/mlists/mlists_generate.php b/system/mlists/mlists_generate.php index df3e07431..218756c87 100644 --- a/system/mlists/mlists_generate.php +++ b/system/mlists/mlists_generate.php @@ -49,7 +49,7 @@ $error_msg=''; db_query($sql_query))) @@ -58,13 +58,13 @@ $error_msg=''; $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 + else $stsem2 = $stsem_obj->getNextFrom($studiensemester); */ $stsem2 = $stsem_obj->getNearestFrom($studiensemester); @@ -75,7 +75,7 @@ $error_msg=''; $qry = "UPDATE public.tbl_gruppe SET generiert=true WHERE UPPER(gruppe_kurzbz)=UPPER('".addslashes($gruppe)."')"; $db->db_query($qry); } - + // ************************************************************** // MitarbeiterInnenVerteiler abgleichen $mlist_name='tw_ma'; @@ -84,7 +84,7 @@ $error_msg=''; echo $mlist_name.' wird abgeglichen!
'; flush(); $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('".addslashes($mlist_name)."') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) WHERE aktiv AND personalnummer >=0)"; - + if(!($result = $db->db_query($sql_query))) $error_msg.=$db->db_last_error(); @@ -118,7 +118,7 @@ $error_msg=''; echo $mlist_name.' wird abgeglichen!
'; flush(); $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER(".$db->db_add_param($mlist_name).") AND uid NOT IN (SELECT mitarbeiter_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)"; - + if(!($result = $db->db_query($sql_query))) $error_msg.=$db->db_last_error(); @@ -143,7 +143,7 @@ $error_msg=''; echo '-'; flush(); } - + // ************************************************************** // LektorenVerteiler abgleichen $mlist_name='tw_lkt'; @@ -152,7 +152,7 @@ $error_msg=''; echo $mlist_name.' wird abgeglichen!
'; flush(); $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('".addslashes($mlist_name)."') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) WHERE lektor AND aktiv)"; - + if(!($result = $db->db_query($sql_query))) $error_msg.=$db->db_last_error(); @@ -185,13 +185,13 @@ $error_msg=''; // Personen holen die nicht mehr in den Verteiler gehoeren echo $mlist_name.' wird abgeglichen!
'; flush(); - $sql_query="SELECT uid FROM public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND - uid NOT IN (SELECT mitarbeiter_uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) + $sql_query="SELECT uid FROM public.tbl_benutzergruppe + WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND + uid NOT IN (SELECT mitarbeiter_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()))"; @@ -207,18 +207,18 @@ $error_msg=''; } // Personen holen die nicht im Verteiler sind echo '
'; - $sql_query="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 - tbl_benutzerfunktion.funktion_kurzbz='ass' AND + $sql_query="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 + tbl_benutzerfunktion.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 '\\\\_%' AND - mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe + mitarbeiter_uid NOT LIKE '\\\\_%' AND + mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))"; if(!($result = $db->db_query($sql_query))) $error_msg.=$db->db_last_error(); @@ -230,7 +230,7 @@ $error_msg=''; echo '-'; flush(); } - + // ************************************************************** // Studiengangsleiter-Verteiler abgleichen // Es werden auch StellvertreterInnen hinzugefügt @@ -239,14 +239,14 @@ $error_msg=''; // Personen holen die nicht mehr in den Verteiler gehoeren echo $mlist_name.' wird abgeglichen!
'; flush(); - $sql_query="SELECT uid FROM public.tbl_benutzergruppe - WHERE - UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND - uid NOT IN (SELECT mitarbeiter_uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) + $sql_query="SELECT uid FROM public.tbl_benutzergruppe + WHERE + UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND + uid NOT IN (SELECT mitarbeiter_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 (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 @@ -264,15 +264,15 @@ $error_msg=''; } // Personen holen die nicht im Verteiler sind echo '
'; - $sql_query="SELECT DISTINCT mitarbeiter_uid AS uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) + $sql_query="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 + 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 mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name')) @@ -287,7 +287,7 @@ $error_msg=''; echo '-'; flush(); } - + // ************************************************************** // Verteiler fuer alle fixAngestellten abgleichen $mlist_name='tw_fix'; @@ -422,10 +422,10 @@ $error_msg=''; 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 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'))"; + 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; @@ -448,7 +448,7 @@ $error_msg=''; } 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)) @@ -456,13 +456,13 @@ $error_msg=''; echo '-'; flush(); } - + // ************************************************************** // Verteiler Hochschulvertretung abgleichen - + echo 'Hochschulvertretungsverteiler werden abgeglichen!
'; flush(); - + //Verteiler anlegen, wenn nicht vorhanden $sql_query="SELECT * FROM public.tbl_gruppe WHERE gruppe_kurzbz='TW_HSV'"; if($res = $db->db_query($sql_query)) @@ -479,16 +479,16 @@ $error_msg=''; } else echo "
Fehler:$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 = 'TW_HSV' + $sql_query="SELECT gruppe_kurzbz, uid + FROM public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) + WHERE gruppe_kurzbz = 'TW_HSV' AND uid not in (SELECT 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()) - AND (SELECT studiengang_kz FROM public.tbl_studiengang + (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)"; if(!($result=$db->db_query($sql_query))) $error_msg.=$db->db_last_error(); @@ -504,17 +504,17 @@ $error_msg=''; // Studierende holen, die nicht im Verteiler sind echo '
'; $sql_query="SELECT uid - FROM - public.tbl_benutzerfunktion + FROM + public.tbl_benutzerfunktion JOIN public.tbl_benutzer USING(uid) - WHERE - funktion_kurzbz='hsv' - AND tbl_benutzer.aktiv AND + 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()) - 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 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 = 'TW_HSV')"; if(!($result = $db->db_query($sql_query))) $error_msg.=$db->db_last_error(); @@ -533,20 +533,20 @@ $error_msg=''; // ************************************************************** // StudienvertretungenVerteiler abgleichen - + echo 'Studienvertretungsverteiler werden abgeglichen!
'; flush(); - + //Verteiler anlegen - $sql_query="SELECT DISTINCT + $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) + 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.aktiv AND tbl_studiengang.studiengang_kz!=0"; if($res = $db->db_query($sql_query)) { @@ -563,17 +563,17 @@ $error_msg=''; } } } - + // 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' + $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) + (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(); @@ -589,19 +589,19 @@ $error_msg=''; // Studierende holen, die nicht im Verteiler sind echo '
'; $sql_query="SELECT uid, tbl_gruppe.gruppe_kurzbz - FROM - public.tbl_benutzerfunktion + 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 + 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 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(); @@ -617,9 +617,9 @@ $error_msg=''; flush(); } } - + //TW_STDV abgleichen - + //Verteiler TW_STDV anlegen, wenn nicht vorhanden $sql_query="SELECT * FROM public.tbl_gruppe WHERE gruppe_kurzbz='TW_STDV'"; if($res = $db->db_query($sql_query)) @@ -636,14 +636,14 @@ $error_msg=''; } else echo "
Fehler:$sql_query"; - + flush(); ob_flush(); setGeneriert('TW_STDV'); - $sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe - WHERE gruppe_kurzbz='TW_STDV' + $sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe + WHERE gruppe_kurzbz='TW_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 + 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()) )"; @@ -657,14 +657,14 @@ $error_msg=''; echo '-'; flush(); } - + // Studierende holen, die nicht im Verteiler sind und einfuegen echo '
'; $sql_query="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 uid NOT in(Select uid from public.tbl_benutzergruppe + AND uid NOT in(Select uid from public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)= UPPER('TW_STDV'))"; if(!($result = $db->db_query($sql_query))) $error_msg.=$db->db_last_error(); @@ -676,23 +676,23 @@ $error_msg=''; echo '-'; flush(); } - + // ************************************************************** // Verteiler Jahrgangsvertretung abgleichen - + echo 'Jahrgangsvertretungsverteiler werden abgeglichen!
'; flush(); - + //Verteiler der einzelnen Studiengaenge anlegen - $sql_query="SELECT DISTINCT + $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) + 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.aktiv AND tbl_studiengang.studiengang_kz!=0"; if($res = $db->db_query($sql_query)) { @@ -709,17 +709,17 @@ $error_msg=''; } } } - + // 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' + $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) + (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(); @@ -735,19 +735,19 @@ $error_msg=''; // Studierende holen, die noch nicht im Verteiler sind echo '
'; $sql_query="SELECT uid, tbl_gruppe.gruppe_kurzbz - FROM - public.tbl_benutzerfunktion + 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 + 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 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(); @@ -763,9 +763,9 @@ $error_msg=''; flush(); } } - + //TW_JGV abgleichen - + //Verteiler TW_JGV anlegen, wenn nicht vorhanden $sql_query="SELECT * FROM public.tbl_gruppe WHERE gruppe_kurzbz='TW_JGV'"; if($res = $db->db_query($sql_query)) @@ -786,10 +786,10 @@ $error_msg=''; flush(); ob_flush(); setGeneriert('TW_JGV'); - $sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe - WHERE gruppe_kurzbz='TW_JGV' + $sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe + WHERE gruppe_kurzbz='TW_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 + 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()) )"; @@ -803,14 +803,14 @@ $error_msg=''; echo '-'; flush(); } - + // Studierende holen, die noch nicht im Verteiler sind echo '
'; $sql_query="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 uid NOT in(Select uid from public.tbl_benutzergruppe + AND uid NOT in(Select uid from public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)= UPPER('TW_JGV'))"; if(!($result = $db->db_query($sql_query))) $error_msg.=$db->db_last_error(); @@ -822,7 +822,7 @@ $error_msg=''; echo '-'; flush(); } - + // *************************** // TW_STD abgleichen flush(); @@ -831,10 +831,10 @@ $error_msg=''; //Abbrecher bleiben noch 3 Wochen im Verteiler //andere inaktive noch fuer 20 Wochen - //damit im CIS die Menuepunkte fuer Studierende richtig angezeigt werden - $sql_query="DELETE FROM public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)='TW_STD' - AND uid not in + //damit im CIS die Menuepunkte fuer Studierende richtig angezeigt werden + $sql_query="DELETE FROM public.tbl_benutzergruppe + WHERE UPPER(gruppe_kurzbz)='TW_STD' + AND uid not in (SELECT uid FROM campus.vw_student WHERE aktiv UNION SELECT uid FROM campus.vw_student WHERE aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval @@ -849,17 +849,17 @@ $error_msg=''; { $error_msg.=$db->db_last_error(); } - + // Studenten holen die nicht im Verteiler sind - $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) - SELECT uid,'TW_STD',now(),'mlists_generate' - FROM campus.vw_student - WHERE (aktiv - OR + $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) + SELECT uid,'TW_STD',now(),'mlists_generate' + 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)) - AND uid NOT in(SELECT uid FROM public.tbl_benutzergruppe + AND uid NOT in(SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)='TW_STD')"; if($result = $db->db_query($sql_query)) { @@ -867,8 +867,8 @@ $error_msg=''; } else $error_msg.=$db->db_last_error(); - - + + // *************************** // TW_STD_M abgleichen. Alle maennlichen Studenten flush(); @@ -878,10 +878,10 @@ $error_msg=''; //Abbrecher bleiben noch 3 Wochen im Verteiler //andere inaktive noch fuer 20 Wochen - //damit im CIS die Menuepunkte fuer Studierende richtig angezeigt werden - $sql_query="DELETE FROM public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)='TW_STD_M' - AND uid not in + //damit im CIS die Menuepunkte fuer Studierende richtig angezeigt werden + $sql_query="DELETE FROM public.tbl_benutzergruppe + WHERE UPPER(gruppe_kurzbz)='TW_STD_M' + AND uid not in (SELECT uid FROM campus.vw_student WHERE aktiv AND geschlecht='m' UNION SELECT uid FROM campus.vw_student WHERE aktiv=false AND geschlecht='m' AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval @@ -896,17 +896,17 @@ $error_msg=''; { $error_msg.=$db->db_last_error(); } - + // Studenten holen die nicht im Verteiler sind - $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) - SELECT uid,'TW_STD_M',now(),'mlists_generate' - FROM campus.vw_student + $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) + SELECT uid,'TW_STD_M',now(),'mlists_generate' + FROM campus.vw_student WHERE (aktiv AND geschlecht='m' - OR + 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)) - AND uid NOT in(SELECT uid FROM public.tbl_benutzergruppe + AND uid NOT in(SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)='TW_STD_M')"; if($result = $db->db_query($sql_query)) { @@ -914,8 +914,8 @@ $error_msg=''; } else $error_msg.=$db->db_last_error(); - - + + // *************************** // TW_STD_W abgleichen. Alle weiblichen Studentinnen flush(); @@ -925,10 +925,10 @@ $error_msg=''; //Abbrecher bleiben noch 3 Wochen im Verteiler //andere inaktive noch fuer 20 Wochen - //damit im CIS die Menuepunkte fuer Studierende richtig angezeigt werden - $sql_query="DELETE FROM public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)='TW_STD_W' - AND uid not in + //damit im CIS die Menuepunkte fuer Studierende richtig angezeigt werden + $sql_query="DELETE FROM public.tbl_benutzergruppe + WHERE UPPER(gruppe_kurzbz)='TW_STD_W' + AND uid not in (SELECT uid FROM campus.vw_student WHERE aktiv AND geschlecht='w' UNION SELECT uid FROM campus.vw_student WHERE aktiv=false AND geschlecht='w' AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval @@ -943,17 +943,17 @@ $error_msg=''; { $error_msg.=$db->db_last_error(); } - + // Studenten holen die nicht im Verteiler sind - $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) - SELECT uid,'TW_STD_W',now(),'mlists_generate' - FROM campus.vw_student + $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) + SELECT uid,'TW_STD_W',now(),'mlists_generate' + FROM campus.vw_student WHERE (aktiv AND geschlecht='w' - OR + 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)) - AND uid NOT in(SELECT uid FROM public.tbl_benutzergruppe + AND uid NOT in(SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)='TW_STD_W')"; if($result = $db->db_query($sql_query)) { @@ -961,8 +961,8 @@ $error_msg=''; } else $error_msg.=$db->db_last_error(); - - + + // ************************************************************** // Moodle - LektorenVerteiler abgleichen $mlist_name='moodle_lkt'; @@ -971,17 +971,17 @@ $error_msg=''; echo $mlist_name.' wird abgeglichen!
'; flush(); ob_flush(); - - $sql_query = "SELECT distinct mitarbeiter_uid uid - from lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_moodle ,campus.vw_lehreinheit - where tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id + + $sql_query = "SELECT distinct mitarbeiter_uid uid + from lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.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) + 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)) "; $sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN ($sql_query)"; @@ -989,7 +989,7 @@ $error_msg=''; { $error_msg.=$db->db_last_error().' '.$sql_querys; } - + $sql_query.=" AND NOT EXISTS(SELECT 1 FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz=UPPER(".$db->db_add_param($mlist_name).") AND uid=vw_lehreinheit.mitarbeiter_uid)"; if(!($result = $db->db_query($sql_query))) $error_msg.=$db->db_last_error().' '.$sql_query; @@ -1002,14 +1002,14 @@ $error_msg=''; { $error_msg.=$db->db_last_error().$sql_query; exit($error_msg); - } + } echo '-'; flush(); - } - + } + // ************************************************************** // Organisationseinheiten-Verteiler - + /* $qry = "SELECT * FROM public.tbl_organisationseinheit WHERE aktiv AND mailverteiler"; if($result = $db->db_query($qry)) @@ -1033,37 +1033,37 @@ $error_msg=''; $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 + 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 + 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)) { @@ -1071,7 +1071,7 @@ $error_msg=''; 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; @@ -1096,7 +1096,7 @@ $error_msg=''; 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)) @@ -1118,47 +1118,47 @@ $error_msg=''; $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 + 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 + + $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) + 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; @@ -1174,10 +1174,10 @@ $error_msg=''; } } } - + //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)) @@ -1199,47 +1199,47 @@ $error_msg=''; $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 + 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 + + $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) + 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; @@ -1259,14 +1259,14 @@ $error_msg=''; // Studentenverteiler 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 + 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) @@ -1278,16 +1278,16 @@ $error_msg=''; 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)) @@ -1304,45 +1304,45 @@ $error_msg=''; $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 + else { setGeneriert($mlist_name); } - + $sql_query=" - SELECT + SELECT distinct student_uid - FROM - public.tbl_student + 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) + (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')"; @@ -1354,11 +1354,11 @@ $error_msg=''; echo '-'; flush(); } - } + } } - else + else $error_msg.=$db->db_last_error().' '.$sql_query; - + // ************************************************************** // Serviceabteilungen Verteiler abgleichen $mlist_name='SERVICEABTEILUNGEN'; @@ -1377,11 +1377,11 @@ $error_msg=''; $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 + else { setGeneriert($mlist_name); } @@ -1389,14 +1389,14 @@ $error_msg=''; echo $mlist_name.' wird abgeglichen!
'; flush(); ob_flush(); - $sql_query="SELECT uid FROM public.tbl_benutzergruppe - WHERE - UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND - uid NOT IN (SELECT mitarbeiter_uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) + $sql_query="SELECT uid FROM public.tbl_benutzergruppe + WHERE + UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND + uid NOT IN (SELECT mitarbeiter_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 @@ -1414,11 +1414,11 @@ $error_msg=''; } // Personen holen die nicht im Verteiler sind echo '
'; - $sql_query="SELECT distinct mitarbeiter_uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) + $sql_query="SELECT distinct mitarbeiter_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 @@ -1435,7 +1435,7 @@ $error_msg=''; echo '-'; flush(); } - + // ************************************************************** // Mitarbeiter Sprachen Institut $mlist_name='SPRACHEN'; @@ -1455,36 +1455,36 @@ $error_msg=''; $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 + else { setGeneriert($mlist_name); } - - + + // Lektoren holen die nicht mehr in den Verteiler gehoeren echo '
'.$mlist_name.' wird abgeglichen!'; flush(); - - $sql_query = "SELECT distinct uid - FROM - public.tbl_benutzer + + $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('Sprachen') + 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)"; - + $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; @@ -1497,7 +1497,7 @@ $error_msg=''; $error_msg.=$db->db_last_error().$sql_query; } } - + // ************************************************************** //Mitarbeiter sprachen Institut $mlist_name='HUMANITIES'; @@ -1517,36 +1517,36 @@ $error_msg=''; $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 + else { setGeneriert($mlist_name); } - - + + // Lektoren holen die nicht mehr in den Verteiler gehoeren echo '
'.$mlist_name.' wird abgeglichen!'; flush(); - - $sql_query = "SELECT distinct uid - FROM - public.tbl_benutzer + + $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('Sprachen') + 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)"; - + $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; @@ -1559,33 +1559,33 @@ $error_msg=''; $error_msg.=$db->db_last_error().$sql_query; } } - + // ************************************************************** //Kollegiumsverteiler $mlist_name='KOLLEGIUM'; $grp = new gruppe(); setGeneriert($mlist_name); - + // Personen holen die nicht mehr in den Verteiler gehoeren echo '
'.$mlist_name.' wird abgeglichen!'; flush(); - - $sql_query = "SELECT distinct uid - FROM - public.tbl_benutzer + + $sql_query = "SELECT distinct uid + FROM + public.tbl_benutzer JOIN public.tbl_benutzerfunktion USING(uid) - WHERE funktion_kurzbz='kollegium' + 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)"; - + $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; @@ -1598,18 +1598,18 @@ $error_msg=''; $error_msg.=$db->db_last_error().$sql_query; } } - + // ************************************************************** //Akademisches Managementteam $mlist_name='TW_MANAGEMENTTEAM'; - + $grp = new gruppe(); setGeneriert($mlist_name); - + // Personen holen die nicht mehr in den Verteiler gehoeren echo '
'.$mlist_name.' wird abgeglichen!'; flush(); - + $sql_query = "SELECT distinct uid FROM public.tbl_benutzer @@ -1618,13 +1618,13 @@ $error_msg=''; 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; } - + $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; @@ -1637,33 +1637,33 @@ $error_msg=''; $error_msg.=$db->db_last_error().$sql_query; } } - + // ************************************************************** // FUE Mitarbeiter $mlist_name='TW_FUE'; $grp = new gruppe(); setGeneriert($mlist_name); - + // Personen holen die nicht mehr in den Verteiler gehoeren echo '
'.$mlist_name.' wird abgeglichen!'; flush(); - - $sql_query = "SELECT distinct uid - FROM - public.tbl_benutzer + + $sql_query = "SELECT distinct uid + FROM + public.tbl_benutzer JOIN public.tbl_benutzerfunktion USING(uid) - WHERE funktion_kurzbz='fue' + 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)"; - + $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; @@ -1676,35 +1676,35 @@ $error_msg=''; $error_msg.=$db->db_last_error().$sql_query; } } - + // ************************************************************** // FUE weibliche Mitarbeiterinnen $mlist_name='TW_FUE_FRAUEN'; $grp = new gruppe(); setGeneriert($mlist_name); - + // Personen holen die nicht mehr in den Verteiler gehoeren echo '
'.$mlist_name.' wird abgeglichen!'; flush(); - - $sql_query = "SELECT distinct uid - FROM - public.tbl_benutzer + + $sql_query = "SELECT distinct uid + FROM + public.tbl_benutzer JOIN public.tbl_benutzerfunktion USING(uid) JOIN public.tbl_person USING (person_id) - WHERE funktion_kurzbz='fue' + 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)"; - + $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; @@ -1724,23 +1724,23 @@ $error_msg=''; $grp = new gruppe(); setGeneriert($mlist_name); - + // Personen holen die nicht mehr in den Verteiler gehoeren echo '
'.$mlist_name.' wird abgeglichen!'; flush(); - + $sql_query = "SELECT DISTINCT uid FROM tbl_person JOIN tbl_benutzer USING (person_id) JOIN tbl_benutzerfunktion USING (uid) WHERE funktion_kurzbz in('Leitung','stvLtg','gLtg') 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; @@ -1753,7 +1753,7 @@ $error_msg=''; $error_msg.=$db->db_last_error().$sql_query; } } - + echo $error_msg; ?>