mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Anpassungen Mailverteiler
- Verteiler für weibliche Mitarbeiterinnen hinzugefügt - Lektorenverteiler enthaelt nun alle Lektoren des aktuellen Studiensemesters und dem naheliegendem andern Studiensemester - Fehler behoben bei dem die Moodle Gruppe täglich gelöscht und wieder angelegt wurde
This commit is contained in:
@@ -523,6 +523,40 @@ class studiensemester extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert das Studiensemester das aktuell am naehesten zu $studiensemester_kurzbz liegt
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return $studiensemester_kurzbz oder false wenn Fehler
|
||||
*/
|
||||
public function getNearestFrom($studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT studiensemester_kurzbz, start, ende FROM public.vw_studiensemester
|
||||
WHERE studiensemester_kurzbz<>".$this->db_add_param($studiensemester_kurzbz)."
|
||||
ORDER BY delta LIMIT 1";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$this->start = $row->start;
|
||||
$this->ende = $row->ende;
|
||||
return $row->studiensemester_kurzbz;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es wurde kein folgendes Studiensemester gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln des folgenden Studiensemesters';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Springt von Studiensemester $studiensemester_kurzbz um $wert Studiensemester vor/zurueck
|
||||
*
|
||||
|
||||
@@ -59,11 +59,14 @@ $error_msg='';
|
||||
|
||||
$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();
|
||||
@@ -104,6 +107,40 @@ $error_msg='';
|
||||
echo '-';
|
||||
flush();
|
||||
}
|
||||
|
||||
// **************************************************************
|
||||
// Weibliche Mitarbeiterinnen Verteiler abgleichen
|
||||
$mlist_name='tw_ma_w';
|
||||
setGeneriert($mlist_name);
|
||||
// MitarbeiterInnen holen die nicht mehr in den Verteiler gehoeren
|
||||
echo $mlist_name.' wird abgeglichen!<BR>';
|
||||
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();
|
||||
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER(".$db->db_add_param($mlist_name).") AND uid=".$db->db_add_param($row->uid);
|
||||
if(!$db->db_query($sql_query))
|
||||
$error_msg.=$db->db_last_error().$sql_query;
|
||||
echo '-';
|
||||
flush();
|
||||
}
|
||||
// MitarbeiterInnen holen die nicht im Verteiler sind
|
||||
echo '<BR>';
|
||||
$sql_query="SELECT 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 AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER(".$db->db_add_param($mlist_name)."))";
|
||||
if(!($result = $db->db_query($sql_query)))
|
||||
$error_msg.= $db->db_last_error();
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES (".$db->db_add_param($row->uid).",".$db->db_add_param(strtoupper($mlist_name))."', now(), 'mlists_generate')";
|
||||
if(!$db->db_query($sql_query))
|
||||
$error_msg.=$db->db_last_error().$sql_query;
|
||||
echo '-';
|
||||
flush();
|
||||
}
|
||||
|
||||
// **************************************************************
|
||||
// LektorenVerteiler abgleichen
|
||||
@@ -349,7 +386,7 @@ $error_msg='';
|
||||
echo '<BR>Lektoren-Verteiler der Studiengaenge werden abgeglichen!<BR>';
|
||||
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')
|
||||
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
|
||||
@@ -678,6 +715,7 @@ WHERE
|
||||
$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;
|
||||
// Lektoren holen die nicht im Verteiler sind
|
||||
|
||||
Reference in New Issue
Block a user