diff --git a/system/mlists/mlists_generate.php b/system/mlists/mlists_generate.php index 7b7979922..13c112afc 100644 --- a/system/mlists/mlists_generate.php +++ b/system/mlists/mlists_generate.php @@ -482,9 +482,19 @@ $error_msg=''; flush(); setGeneriert('TW_STD'); echo 'TW_STD wird abgeglichen!
'; + + //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 (SELECT uid FROM campus.vw_student WHERE aktiv)"; + 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 + UNION + SELECT uid FROM campus.vw_student WHERE aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND updateaktivam>now()-'20 weeks'::interval + )"; if($result = $db->db_query($sql_query)) { echo $db->db_affected_rows($result).' Eintraege entfernt
'; @@ -498,7 +508,11 @@ $error_msg=''; $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 + 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 WHERE UPPER(gruppe_kurzbz)='TW_STD')"; if($result = $db->db_query($sql_query))