*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/functions.inc.php');
@@ -28,6 +29,13 @@ require_once('../../../include/benutzer.class.php');
require_once('../../../include/mitarbeiter.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/addon.class.php');
+require_once('../../../include/mail.class.php');
+require_once('../../../include/phrasen.class.php');
+require_once('../../../include/globals.inc.php');
+require_once('../../../include/sprache.class.php');
+
+$sprache = getSprache();
+$p = new phrasen($sprache);
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
@@ -43,16 +51,16 @@ else
{
//Bis August das aktuelle Jahr anzeigen
//Ab September das naechste
- if(date('m')<9)
+ if (date('m') < 9)
$year = date('Y');
else
- $year = date('Y')+1;
+ $year = date('Y') + 1;
}
-if(isset($_GET['uid']))
- $uid=$_GET['uid'];
+if (isset($_GET['uid']))
+ $uid = $_GET['uid'];
else
- $uid='';
+ $uid = '';
$datum_obj = new datum();
@@ -98,50 +106,74 @@ echo '
$mitarbeiter = new mitarbeiter();
$mitarbeiter->getUntergebene($user);
-if(count($mitarbeiter->untergebene)==0 && !$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid'))
+if (count($mitarbeiter->untergebene) == 0 && !$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid'))
die('Es sind Ihnen keine Mitarbeiter zugeteilt für die sie den Urlaub freigeben dürfen');
$untergebene = '';
foreach ($mitarbeiter->untergebene as $row)
{
- if($untergebene!='')
- $untergebene.=',';
+ if ($untergebene != '')
+ $untergebene .= ',';
$untergebene .= $db->db_add_param($row);
}
-if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid'))
+if ($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid'))
{
- if($untergebene!='')
- $untergebene.=',';
+ if ($untergebene != '')
+ $untergebene .= ',';
$untergebene .= $db->db_add_param($uid);
}
$qry = "SELECT * FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid in($untergebene)";
$mitarbeiter = array();
-if($result = $db->db_query($qry))
+if ($result = $db->db_query($qry))
{
- while($row = $db->db_fetch_object($result))
+ while ($row = $db->db_fetch_object($result))
{
- $mitarbeiter[$row->uid]['vorname']=$row->vorname;
- $mitarbeiter[$row->uid]['nachname']=$row->nachname;
- $mitarbeiter[$row->uid]['titelpre']=$row->titelpre;
- $mitarbeiter[$row->uid]['titelpost']=$row->titelpost;
+ $mitarbeiter[$row->uid]['vorname'] = $row->vorname;
+ $mitarbeiter[$row->uid]['nachname'] = $row->nachname;
+ $mitarbeiter[$row->uid]['titelpre'] = $row->titelpre;
+ $mitarbeiter[$row->uid]['titelpost'] = $row->titelpost;
}
}
-if($uid!='' && !isset($mitarbeiter[$uid]) && $uid!=$user && !$rechte->isBerechtigt('admin'))
+if ($uid != '' && !isset($mitarbeiter[$uid]) && $uid != $user && !$rechte->isBerechtigt('admin'))
die('Sie haben keine Berechtigung fuer diesen Mitarbeiter');
//Freigeben eines Urlaubes
-if(isset($_GET['action']) && $_GET['action']=='freigabe')
+if (isset($_GET['action']) && $_GET['action'] == 'freigabe')
{
$zeitsperre = new zeitsperre();
- if($zeitsperre->load($_GET['id']))
+ if ($zeitsperre->load($_GET['id']))
{
- if(isset($mitarbeiter[$zeitsperre->mitarbeiter_uid]))
+ if (isset($mitarbeiter[$zeitsperre->mitarbeiter_uid]))
{
$zeitsperre->freigabeamum = date('Y-m-d H:i:s');
$zeitsperre->freigabevon = $user;
- if(!$zeitsperre->save(false))
+ if (!$zeitsperre->save(false))
+ {
echo "Fehler bei der Freigabe: $zeitsperre->errormsg ";
+ }
+
+ //Bestätigungsmail an Mitarbeiter*in
+ $to = $zeitsperre->mitarbeiter_uid. '@'.DOMAIN;
+ $person = new person();
+ $fullNameVG = $person->getFullNameFromBenutzer($user);
+ $fullNameMA = $person->getFullNameFromBenutzer($zeitsperre->mitarbeiter_uid);
+ $from = 'noreply@'.DOMAIN;
+ $subject = $p->t('urlaubstool/urlaubsfreigabe'). date("d.m.Y", strtotime($zeitsperre->vondatum)). " ".
+ $p->t('urlaubstool/bis'). " ". date("d.m.Y", strtotime($zeitsperre->bisdatum));
+ $text = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n";
+ $text .= $p->t('urlaubstool/urlaubVon')." ".date("d.m.Y", strtotime($zeitsperre->vondatum))." ".
+ $p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($zeitsperre->bisdatum));
+ $text .= $p->t('urlaubstool/urlaubBis', array($fullNameVG));
+ $text .= "\n". "\n". $p->t('urlaubstool/sieKoennenDiesenUnterFolgenderAdresseEinsehen');
+ $text .= "\n". APP_ROOT. 'cis/private/profile/urlaubstool.php';
+
+ $mail = new mail($to, $from, $subject, $text);
+
+ if ($mail->send())
+ {
+ echo "".$p->t('urlaubstool/bestaetigungsmailWurdeVersandt', array($fullNameMA))." ";
+ }
}
else
{
@@ -152,40 +184,38 @@ if(isset($_GET['action']) && $_GET['action']=='freigabe')
{
echo 'Die Zeitsperre konnte nicht geladen werden ';
}
-
}
-//Monat zeichenen
+//Monat zeichnen
function draw_monat($monat)
{
global $untergebene, $mitarbeiter, $year, $datum_obj, $uid;
- if (!$db = new basis_db())
- die('Fehler beim Oeffnen der Datenbankverbindung');
-
+ if (!$db = new basis_db())
+ die('Fehler beim Oeffnen der Datenbankverbindung');
echo '';
echo '';
- echo date('F',mktime(0,0,0,$monat,1,date('Y')));
- echo " ".($monat>8?$year-1:$year);
+ echo date('F', mktime(0,0,0,$monat,1,date('Y')));
+ echo " ".($monat > 8?$year-1:$year);
echo ' ';
//Alle Anzeigen bei denen das von- oder bisdatum in dieses monat fallen
$qry = "SELECT * FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub'
AND
(
- (date_part('month', vondatum)='$monat' AND date_part('year', vondatum)='".($monat>8?$year-1:$year)."')
+ (date_part('month', vondatum)='$monat' AND date_part('year', vondatum)='".($monat > 8?$year - 1:$year)."')
OR
- (date_part('month', bisdatum)='$monat' AND date_part('year', bisdatum)='".($monat>8?$year-1:$year)."')
+ (date_part('month', bisdatum)='$monat' AND date_part('year', bisdatum)='".($monat > 8?$year - 1:$year)."')
)";
- if($uid=='')
- $qry.=" AND mitarbeiter_uid in($untergebene)";
+ if($uid == '')
+ $qry.= " AND mitarbeiter_uid in($untergebene)";
else
- $qry.=" AND mitarbeiter_uid=".$db->db_add_param($uid);
+ $qry.= " AND mitarbeiter_uid=". $db->db_add_param($uid);
$qry.="ORDER BY vondatum, mitarbeiter_uid";
- if($result = $db->db_query($qry))
+ if ($result = $db->db_query($qry))
{
- while($row = $db->db_fetch_object($result))
+ while ($row = $db->db_fetch_object($result))
{
$vertretung = new benutzer($row->vertretung_uid);
$freigabe='';
@@ -207,7 +237,7 @@ function draw_monat($monat)
}
//Jahr mit Pfeilen zum blaettern anzeigen
-if($uid!='')
+if ($uid!='')
{
echo '';
echo "Alle Mitarbeiter anzeigen ";
@@ -232,16 +262,16 @@ echo ' ';
//Tabelle mit den Monaten ausgeben
echo '';
$monat=9;
-for($i=0;$i<12;$i++)
+for($i = 0;$i < 12;$i++)
{
- if($i%3==0)
+ if ($i%3 == 0)
{
echo ' ';
}
draw_monat($monat);
$monat++;
- if($monat>12)
- $monat=1;
+ if ($monat > 12)
+ $monat = 1;
}
echo '
diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php
index f7a30158f..9504285ce 100644
--- a/content/fasoverlay.js.php
+++ b/content/fasoverlay.js.php
@@ -1539,7 +1539,7 @@ function OpenAboutDialog()
// ****
function OpenManual()
{
- window.open('https://wiki.fhcomplete.org/doku.php?','_blank');
+ window.open('https://wiki.fhcomplete.info/','_blank');
}
// ****
diff --git a/content/tempus.js.php b/content/tempus.js.php
index e4dad5e43..5a734ebf3 100644
--- a/content/tempus.js.php
+++ b/content/tempus.js.php
@@ -473,7 +473,7 @@ function SyncLVPlan()
// ****
function OpenManualTempus()
{
- window.open('https://wiki.fhcomplete.org/doku.php?id=tempus:allgemeines','Manual');
+ window.open('https://wiki.fhcomplete.info/doku.php?id=tempus:allgemeines','Manual');
}
// ****
diff --git a/include/bisverwendung.class.php b/include/bisverwendung.class.php
index 799cfc93e..07f2a74de 100644
--- a/include/bisverwendung.class.php
+++ b/include/bisverwendung.class.php
@@ -524,12 +524,13 @@ class bisverwendung extends basis_db
{
//laden des Datensatzes
$qry = "SELECT
- *
+ *, tbl_hauptberuf.bezeichnung as hauptberuf
FROM
bis.tbl_bisverwendung
+ LEFT JOIN bis.tbl_hauptberuf USING(hauptberufcode)
WHERE
mitarbeiter_uid=".$this->db_add_param($uid)."
- ORDER BY ende DESC NULLS LAST,beginn DESC NULLS LAST LIMIT 1;";
+ ORDER BY ende DESC NULLS FIRST,beginn DESC NULLS LAST LIMIT 1;";
if($this->db_query($qry))
{
@@ -543,6 +544,7 @@ class bisverwendung extends basis_db
$this->mitarbeiter_uid = $row->mitarbeiter_uid;
$this->hauptberufcode = $row->hauptberufcode;
$this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
+ $this->hauptberuf = $row->hauptberuf;
$this->habilitation = $this->db_parse_bool($row->habilitation);
$this->beginn = $row->beginn;
$this->ende = $row->ende;
@@ -582,7 +584,7 @@ class bisverwendung extends basis_db
(beginn<=now() OR beginn IS NULL)
AND
(ende>=now() OR ende IS NULL)
- ORDER BY ende DESC NULLS LAST,beginn DESC NULLS LAST LIMIT 1;";
+ ORDER BY ende DESC NULLS FIRST,beginn DESC NULLS LAST LIMIT 1;";
if($this->db_query($qry))
{
diff --git a/locale/de-AT/urlaubstool.php b/locale/de-AT/urlaubstool.php
index cd34be0da..6d6edde09 100644
--- a/locale/de-AT/urlaubstool.php
+++ b/locale/de-AT/urlaubstool.php
@@ -40,4 +40,10 @@ $this->phrasen['urlaubstool/freigegebenerUrlaubGeloescht']='Bereits Freigegebene
$this->phrasen['urlaubstool/VorgesetzteInformiert']='Email wurde an %s versandt';
$this->phrasen['urlaubstool/konnteKeinInformationsemailVersendetWerden']='Es konnte kein Email versendet werden, da kein Vorgesetzter eingetragen ist!';
$this->phrasen['urlaubstool/xHatUrlaubGeloescht']='%s %s hat bereits freigegebenen Urlaub gelöscht';
+$this->phrasen['urlaubstool/urlaubsfreigabe']='Freigabe Urlaub: ';
+$this->phrasen['urlaubstool/bestaetigungsmailWurdeVersandt']='Bestätigungsmail an %s versandt';
+$this->phrasen['urlaubstool/urlaubVon']='Ihr angefragter Urlaub von';
+$this->phrasen['urlaubstool/urlaubBis']=' wurde von %s freigegeben.';
+$this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseEinsehen']='Sie können diesen unter folgender Adresse einsehen:';
+
?>
diff --git a/locale/en-US/urlaubstool.php b/locale/en-US/urlaubstool.php
index f52f2d981..697117c34 100644
--- a/locale/en-US/urlaubstool.php
+++ b/locale/en-US/urlaubstool.php
@@ -36,4 +36,10 @@ $this->phrasen['urlaubstool/meineZeitsperren']='My Planned Absences';
$this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseFreigeben']='Sie können diesen unter folgender Adresse freigeben'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
$this->phrasen['urlaubstool/freigabeansuchenUrlaub']='Freigabeansuchen Urlaub'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
$this->phrasen['urlaubstool/freigabeFehlt']='Vacation has not been approved yet';
+$this->phrasen['urlaubstool/urlaubsfreigabe']='Vacation approval: ';
+$this->phrasen['urlaubstool/bestaetigungsmailWurdeVersandt']='Confirmation mail to %s sent';
+$this->phrasen['urlaubstool/urlaubVon']='Ihr angefragter Urlaub von'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
+$this->phrasen['urlaubstool/urlaubBis']=' wurde von %s freigegeben.'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
+$this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseEinsehen']='Sie können diesen unter folgender Adresse einsehen:'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
+
?>
diff --git a/rdf/lehrauftrag_annehmen.xml.php b/rdf/lehrauftrag_annehmen.xml.php
index c0f691fe3..990701901 100644
--- a/rdf/lehrauftrag_annehmen.xml.php
+++ b/rdf/lehrauftrag_annehmen.xml.php
@@ -275,29 +275,29 @@ function drawLehrauftrag($uid)
FROM
campus.vw_lehreinheit
JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id, mitarbeiter_uid)
- JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
+ JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
WHERE
mitarbeiter_uid=".$db->db_add_param($uid)."
AND studiensemester_kurzbz=".$db->db_add_param($ss). "
- AND lema.vertrag_id IS NOT NULL
- AND vertragsstatus_kurzbz = 'akzeptiert'";
+ AND lema.vertrag_id IS NOT NULL
+ AND vertragsstatus_kurzbz = 'akzeptiert'";
if ($studiengang_kz != '') //$studiengang_kz!='0' &&
- {
- $qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz);
- }
+ {
+ $qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz);
+ }
elseif (!empty($xsl_oe_kurzbz))
- {
- if ($xsl_oe_kurzbz == 'etw')
- {
- $qry .= " AND lv_studiengang_kz > 0";
- }
+ {
+ if ($xsl_oe_kurzbz == 'etw')
+ {
+ $qry .= " AND lv_studiengang_kz > 0";
+ }
- if ($xsl_oe_kurzbz == 'lehrgang')
- {
- $qry .= " AND lv_studiengang_kz <= 0";
- }
- }
+ if ($xsl_oe_kurzbz == 'lehrgang')
+ {
+ $qry .= " AND lv_studiengang_kz <= 0";
+ }
+ }
$qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id";
$lv = array();
@@ -390,8 +390,8 @@ function drawLehrauftrag($uid)
$gesamtstunden = $gesamtstunden + $stunden;
}
}
- $qry = 'SELECT
- pa.projektarbeit_id,
+ $qry = 'SELECT
+ pa.projektarbeit_id,
pb.faktor,
pb.stunden,
pb.stundensatz,
@@ -401,37 +401,37 @@ function drawLehrauftrag($uid)
student.studiengang_kz,
projekttyp_kurzbz,
lv.oe_kurzbz,
- vertragsstatus_kurzbz
+ vertragsstatus_kurzbz
FROM lehre.tbl_projektbetreuer pb
- JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
- JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
- JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
- JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
- JOIN public.tbl_benutzer benutzer ON pb.person_id = benutzer.person_id
- JOIN campus.vw_student student ON pa.student_uid = student.uid
- LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
- LEFT JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
+ JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
+ JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
+ JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
+ JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
+ JOIN public.tbl_benutzer benutzer ON pb.person_id = benutzer.person_id
+ JOIN campus.vw_student student ON pa.student_uid = student.uid
+ LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
+ LEFT JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
WHERE pb.vertrag_id IS NOT NULL
- AND vvst.vertragsstatus_kurzbz = \'akzeptiert\'
- AND benutzer.uid = '.$db->db_add_param($uid).'
- AND le.studiensemester_kurzbz = '.$db->db_add_param($ss);
+ AND vvst.vertragsstatus_kurzbz = \'akzeptiert\'
+ AND benutzer.uid = '.$db->db_add_param($uid).'
+ AND le.studiensemester_kurzbz = '.$db->db_add_param($ss);
if ($studiengang_kz != '')
- {
- $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
- }
- elseif (!empty($xsl_oe_kurzbz))
- {
- if ($xsl_oe_kurzbz == 'etw')
- {
- $qry .= " AND lv.studiengang_kz > 0";
- }
+ {
+ $qry .= " AND lv.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
+ }
+ elseif (!empty($xsl_oe_kurzbz))
+ {
+ if ($xsl_oe_kurzbz == 'etw')
+ {
+ $qry .= " AND lv.studiengang_kz > 0";
+ }
- if ($xsl_oe_kurzbz == 'lehrgang')
- {
- $qry .= " AND lv.studiengang_kz <= 0";
- }
- }
+ if ($xsl_oe_kurzbz == 'lehrgang')
+ {
+ $qry .= " AND lv.studiengang_kz <= 0";
+ }
+ }
if ($result = $db->db_query($qry))
{
@@ -471,8 +471,6 @@ function drawLehrauftrag($uid)
}
}
-
-
foreach ($lv as $lv_row)
{
$xml .= '
diff --git a/system/checkroles.php b/system/checkroles.php
index 54839437e..1f57857a1 100644
--- a/system/checkroles.php
+++ b/system/checkroles.php
@@ -54,7 +54,7 @@ $data = array
'rolle_kurzbz' => 'admin',
'berechtigung' => array
(
- 'admin', 'assistenz', 'basis/addon', 'basis/ampel', 'basis/ampeluebersicht', 'basis/benutzer', 'basis/berechtigung', 'basis/betriebsmittel', 'basis/cms', 'basis/cms_review', 'basis/cms_sperrfreigabe', 'basis/cronjob', 'basis/dms', 'basis/fas', 'basis/ferien', 'basis/fhausweis','basis/firma', 'basis/infoscreen', 'basis/moodle', 'basis/moodle','basis/news', 'basis/notiz', 'basis/organisationseinheit', 'basis/ort', 'basis/orgform', 'basis/person', 'basis/planner', 'basis/service', 'basis/statistik', 'basis/studiengang', 'basis/tempus', 'basis/testtool', 'basis/variable', 'basis/vilesci', 'buchung/typen', 'buchung/mitarbeiter', 'inout/incoming', 'inout/outgoing', 'inout/uebersicht', 'lehre', 'lehre/abgabetool', 'lehre/freifach', 'lehre/lehrfach', 'lehre/lehrveranstaltung', 'lehre/lvplan', 'lehre/lvinfo', 'lehre/pruefungsanmeldungAdmin', 'lehre/pruefungsbeurteilung', 'lehre/pruefungsbeurteilungAdmin', 'lehre/pruefungsterminAdmin', 'lehre/pruefungsfenster', 'lehre/reihungstest', 'lehre/reservierung', 'lehre/studienordnung', 'lehre/studienordnungInaktiv', 'lehre/studienplan', 'lehre/vorrueckung', 'lv-plan', 'lv-plan/gruppenentfernen', 'lv-plan/lektorentfernen', 'mitarbeiter', 'mitarbeiter/bankdaten', 'mitarbeiter/personalnummer', 'mitarbeiter/stammdaten', 'mitarbeiter/urlaube', 'mitarbeiter/zeitsperre', 'news', 'planner', 'preinteressent', 'raumres', 'reihungstest', 'sdTools', 'soap/lv', 'soap/lvplan', 'soap/mitarbeiter', 'soap/ort', 'soap/pruefungsfenster', 'soap/student', 'soap/studienordnung', 'soap/benutzer', 'soap/buchungen', 'student/bankdaten', 'student/anrechnung', 'student/anwesenheit', 'student/dokumente', 'student/noten', 'system/phrase', 'system/vorlage', 'system/vorlagestudiengang', 'student/stammdaten', 'student/vorrueckung', 'system/developer', 'system/loginasuser', 'user', 'veranstaltung', 'vertrag/mitarbeiter', 'vertrag/typen', 'wawi/berichte', 'wawi/bestellung', 'wawi/bestellung_advanced', 'wawi/budget', 'wawi/delete_advanced', 'wawi/firma', 'wawi/freigabe', 'wawi/freigabe_advanced', 'wawi/inventar', 'wawi/konto', 'wawi/kostenstelle', 'wawi/rechnung', 'wawi/rechnung_freigeben', 'wawi/rechnung_transfer', 'wawi/storno'
+ 'admin', 'assistenz', 'basis/addon', 'basis/ampel', 'basis/ampeluebersicht', 'basis/benutzer', 'basis/berechtigung', 'basis/betriebsmittel', 'basis/cms', 'basis/cms_review', 'basis/cms_sperrfreigabe', 'basis/cronjob', 'basis/dms', 'basis/fas', 'basis/ferien', 'basis/fhausweis','basis/firma', 'basis/infoscreen', 'basis/moodle', 'basis/moodle','basis/news', 'basis/notiz', 'basis/organisationseinheit', 'basis/ort', 'basis/orgform', 'basis/person', 'basis/planner', 'basis/service', 'basis/statistik', 'basis/studiengang', 'basis/tempus', 'basis/testtool', 'basis/variable', 'basis/vilesci', 'buchung/typen', 'buchung/mitarbeiter', 'inout/incoming', 'inout/outgoing', 'inout/uebersicht', 'lehre', 'lehre/abgabetool', 'lehre/freifach', 'lehre/lehrfach', 'lehre/lehrveranstaltung', 'lehre/lvplan', 'lehre/lvinfo', 'lehre/pruefungsanmeldungAdmin', 'lehre/pruefungsbeurteilung', 'lehre/pruefungsbeurteilungAdmin', 'lehre/pruefungsterminAdmin', 'lehre/pruefungsfenster', 'lehre/reihungstest', 'lehre/reservierung', 'lehre/studienordnung', 'lehre/studienordnungInaktiv', 'lehre/studienplan', 'lehre/vorrueckung', 'lv-plan', 'lv-plan/gruppenentfernen', 'lv-plan/lektorentfernen', 'mitarbeiter', 'mitarbeiter/bankdaten', 'mitarbeiter/personalnummer', 'mitarbeiter/stammdaten', 'mitarbeiter/urlaube', 'mitarbeiter/zeitsperre', 'mitarbeiter/zeitwuensche', 'news', 'planner', 'preinteressent', 'raumres', 'reihungstest', 'sdTools', 'soap/lv', 'soap/lvplan', 'soap/mitarbeiter', 'soap/ort', 'soap/pruefungsfenster', 'soap/student', 'soap/studienordnung', 'soap/benutzer', 'soap/buchungen', 'student/bankdaten', 'student/anrechnung', 'student/anwesenheit', 'student/dokumente', 'student/noten', 'system/phrase', 'system/vorlage', 'system/vorlagestudiengang', 'student/stammdaten', 'student/vorrueckung', 'system/developer', 'system/loginasuser', 'user', 'veranstaltung', 'vertrag/mitarbeiter', 'vertrag/typen', 'wawi/berichte', 'wawi/bestellung', 'wawi/bestellung_advanced', 'wawi/budget', 'wawi/delete_advanced', 'wawi/firma', 'wawi/freigabe', 'wawi/freigabe_advanced', 'wawi/inventar', 'wawi/konto', 'wawi/kostenstelle', 'wawi/rechnung', 'wawi/rechnung_freigeben', 'wawi/rechnung_transfer', 'wawi/storno'
)
)
);
diff --git a/system/checksystem.php b/system/checksystem.php
index 3253dd5d4..5f03a55ef 100644
--- a/system/checksystem.php
+++ b/system/checksystem.php
@@ -171,6 +171,7 @@ $berechtigungen = array(
array('mitarbeiter/stammdaten','Stammdaten der Mitarbeiter'),
array('mitarbeiter/urlaube','Mit diesem Recht werden im CIS die Urlaube von allen Mitarbeiter sichtbar'),
array('mitarbeiter/zeitsperre','Zeitsperren- und Urlaubsverwaltung'),
+ array('mitarbeiter/zeitwuensche','Berechtigung um Zeitwünsche zu editieren'),
array('news','News eintragen'),
array('planner','Planner Verwaltung'),
array('preinteressent','Verwaltung der Preinteressenten'),
diff --git a/vilesci/personen/lektor_uebersicht.php b/vilesci/personen/lektor_uebersicht.php
index 0a1f9b1cc..f96bbac27 100644
--- a/vilesci/personen/lektor_uebersicht.php
+++ b/vilesci/personen/lektor_uebersicht.php
@@ -106,7 +106,8 @@ if(!isset($_GET['searchstr']))
$email=$row->uid.'@'.DOMAIN;
echo "$email ";
- echo "Edit ";
+ if($rechte->isBerechtigt('student/stammdaten', null, 's') || $rechte->isBerechtigt('mitarbeiter/stammdaten', null, 's'))
+ echo "Edit ";
echo "";
if ($row->lektor)
{
diff --git a/vilesci/personen/zeitwunsch.php b/vilesci/personen/zeitwunsch.php
index 36f1c5e87..416c6387d 100644
--- a/vilesci/personen/zeitwunsch.php
+++ b/vilesci/personen/zeitwunsch.php
@@ -66,7 +66,7 @@ $updatevon = 0;
// Zeitwuensche speichern
if (isset($_POST['save']))
{
- if(!$rechte->isBerechtigt('mitarbeiter', null, 'suid'))
+ if(!$rechte->isBerechtigt('mitarbeiter/zeitwuensche', null, 'suid'))
die($rechte->errormsg);
for ($t=1;$t<7;$t++)
@@ -157,7 +157,13 @@ $updatevon = 0;
?>
isBerechtigt('mitarbeiter/zeitwuensche', null, 'suid'))
+ $readonly = '';
+
+ for ($j=1; $j<7; $j++)
{
echo ''.$tagbez[1][$j].' ';
for ($i=0;$i<$num_rows_stunde;$i++)
@@ -166,7 +172,7 @@ $updatevon = 0;
if ($index=="")
$index=1;
$bgcolor=$cfgStdBgcolor[$index+3];
- echo ' ';
+ echo ' ';
}
echo ' ';
}
@@ -189,7 +195,10 @@ $updatevon = 0;
-
+ isBerechtigt('mitarbeiter/zeitwuensche', null, 'suid'))
+ echo ' '
+ ?>
diff --git a/vilesci/stammdaten/personen_wartung.php b/vilesci/stammdaten/personen_wartung.php
index c143a1390..2c4c4f0fa 100644
--- a/vilesci/stammdaten/personen_wartung.php
+++ b/vilesci/stammdaten/personen_wartung.php
@@ -135,6 +135,99 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
}
else
{
+ // Prüfen, ob tbl_alma existiert (also ob ALMA extension installiert ist)
+ if($result = @$db->db_query("SELECT 1 FROM sync.tbl_alma LIMIT 1"))
+ {
+ // Wenn Person in ALMA Bibliothek vorkommt, ggf. die Person dort übernehmen
+ $alma_has_personToKeep = false;
+ $alma_has_personToDelete = false;
+ $alma_update_obj = new StdClass();
+ $alma_query_upd = '';
+
+ $alma_query = "
+ SELECT *
+ FROM sync.tbl_alma
+ WHERE (
+ person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " OR
+ person_id = " . $db->db_add_param($personToDelete, FHC_INTEGER) . "
+ )";
+
+ if ($result = $db->db_query($alma_query))
+ {
+ while ($row = $db->db_fetch_object($result))
+ {
+ if ($row->person_id == $personToKeep)
+ {
+ $alma_has_personToKeep = true;
+ }
+ if ($row->person_id == $personToDelete)
+ {
+ $alma_has_personToDelete = true;
+ $alma_update_obj = $row;
+ }
+ }
+ }
+
+ // Falls nur die zu löschende Person in ALMA vorhanden ist, mit der zu behaltenden Person ersetzen
+ if ($alma_has_personToDelete && !$alma_has_personToKeep)
+ {
+ $alma_query_upd = "
+ UPDATE sync.tbl_alma
+ SET person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . "
+ WHERE alma_match_id = " . $alma_update_obj->alma_match_id . "
+ AND person_id = " . $alma_update_obj->person_id . ";";
+ }
+ // Falls bereits doppelte Einträge in ALMA vorhanden sind (zu löschende und zu behaltende), manuell lösen
+ elseif ($alma_has_personToDelete && $alma_has_personToKeep)
+ {
+ die('Es sind bereits beide Personen in ALMA vorhanden. Bitte zuerst direkt im ALMA Bibliotheksystem und in der tbl_alma lösen.');
+ }
+ }
+
+ // Prüfen, ob tbl_sap_students exisitiert
+ if($result = @$db->db_query("SELECT 1 FROM sync.tbl_sap_students LIMIT 1"))
+ {
+ // Wenn Person in SAP students vorkommt, ggf. die Person dort übernehmen
+ $sap_students_has_personToKeep = false;
+ $sap_students_has_personToDelete = false;
+ $sap_students_update_obj = new StdClass();
+ $sap_students_query_upd = '';
+
+ $sap_students_query = "
+ SELECT *
+ FROM sync.tbl_sap_students
+ WHERE (
+ person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " OR
+ person_id = " . $db->db_add_param($personToDelete, FHC_INTEGER) . "
+ )";
+
+ if ($result = $db->db_query($sap_students_query)) {
+ while ($row = $db->db_fetch_object($result)) {
+ if ($row->person_id == $personToKeep) {
+ $sap_students_has_personToKeep = true;
+ }
+ if ($row->person_id == $personToDelete) {
+ $sap_students_has_personToDelete = true;
+ $sap_students_update_obj = $row;
+ }
+ }
+ }
+
+ // Wenn die zu löschende Person in SAP students eingetragen ist, dann mit der zu behaltenden Person überschreiben
+ if ($sap_students_has_personToDelete && !$sap_students_has_personToKeep) {
+ $sap_students_query_upd = "
+ UPDATE sync.tbl_sap_students
+ SET person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . "
+ WHERE sap_user_id = " . $db->db_add_param($sap_students_update_obj->sap_user_id, FHC_STRING) . "
+ AND person_id = " . $sap_students_update_obj->person_id . ";";
+ }
+ // Wenn doppelte Personeneinträge in SAP students vorhanden sind (zu löschende UND zu behaltende Person),
+ // dann manuell lösen
+ elseif ($sap_students_has_personToDelete && $sap_students_has_personToKeep) {
+ die('Es sind bereits beide Personen in SAP vorhanden. Bitte zuerst direkt in der tbl_sap_students lösen.');
+ }
+ }
+
$personToDelete_obj = new person();
if ($personToDelete_obj->load($personToDelete))
{
@@ -346,6 +439,8 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
$sql_query_upd1 .= "UPDATE system.tbl_person_lock SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
$sql_query_upd1 .= "UPDATE wawi.tbl_betriebsmittelperson SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
$sql_query_upd1 .= "UPDATE wawi.tbl_konto SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
+ $sql_query_upd1 .= $alma_query_upd;
+ $sql_query_upd1 .= $sap_students_query_upd;
$sql_query_upd1 .= "DELETE FROM public.tbl_person WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";