diff --git a/cis/private/profile/urlaubsfreigabe.php b/cis/private/profile/urlaubsfreigabe.php index 251e1ee3e..f71d7adda 100644 --- a/cis/private/profile/urlaubsfreigabe.php +++ b/cis/private/profile/urlaubsfreigabe.php @@ -18,6 +18,7 @@ * Authors: Christian Paminger , * Andreas Oesterreicher , * Rudolf Hangl and + * Manuela Thamer */ 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 '"; @@ -232,16 +262,16 @@ echo '
'; //Tabelle mit den Monaten ausgeben echo '
'; echo "Alle Mitarbeiter anzeigen
'; $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/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 + ?>