, * Andreas Oesterreicher , * Rudolf Hangl and */ require_once('../../../config/cis.config.inc.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/datum.class.php'); require_once('../../../include/zeitsperre.class.php'); require_once('../../../include/person.class.php'); require_once('../../../include/benutzer.class.php'); require_once('../../../include/mitarbeiter.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); require_once('../../../include/addon.class.php'); if (!$db = new basis_db()) die('Fehler beim Oeffnen der Datenbankverbindung'); $user = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); if(isset($_GET['year']) && is_numeric($_GET['year'])) $year = $_GET['year']; else { //Bis August das aktuelle Jahr anzeigen //Ab September das naechste if(date('m')<9) $year = date('Y'); else $year = date('Y')+1; } if(isset($_GET['uid'])) $uid=$_GET['uid']; else $uid=''; $datum_obj = new datum(); echo ' Urlaubsfreigabe '; // ADDONS laden $addon_obj = new addon(); $addon_obj->loadAddons(); foreach($addon_obj->result as $addon) { if(file_exists('../../../addons/'.$addon->kurzbz.'/cis/init.js.php')) echo ''; } // Wenn Seite fertig geladen ist Addons aufrufen echo ' '; echo '

Urlaubsfreigabe

'; //Untergebene holen $mitarbeiter = new mitarbeiter(); $mitarbeiter->getUntergebene($user); 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.=','; $untergebene .= $db->db_add_param($row); } if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid')) { 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)) { 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; } } 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') { $zeitsperre = new zeitsperre(); if($zeitsperre->load($_GET['id'])) { if(isset($mitarbeiter[$zeitsperre->mitarbeiter_uid])) { $zeitsperre->freigabeamum = date('Y-m-d H:i:s'); $zeitsperre->freigabevon = $user; if(!$zeitsperre->save(false)) echo "Fehler bei der Freigabe: $zeitsperre->errormsg"; } else { echo 'Sie haben keine Berechtigung den Urlaub für diesen Mitarbeiter freizugeben'; } } else { echo 'Die Zeitsperre konnte nicht geladen werden'; } } //Monat zeichenen function draw_monat($monat) { global $untergebene, $mitarbeiter, $year, $datum_obj, $uid; 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 '
'; //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)."') OR (date_part('month', bisdatum)='$monat' AND date_part('year', bisdatum)='".($monat>8?$year-1:$year)."') )"; if($uid=='') $qry.=" AND mitarbeiter_uid in($untergebene)"; else $qry.=" AND mitarbeiter_uid=".$db->db_add_param($uid); $qry.="ORDER BY vondatum, mitarbeiter_uid"; if($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) { $vertretung = new benutzer($row->vertretung_uid); $freigabe=''; if($row->freigabeamum!='') { $freigabe = "Freigabe am ".$datum_obj->formatDatum($row->freigabeamum, 'd.m.Y')." von Benutzer $row->freigabevon"; } echo ""; echo $mitarbeiter[$row->mitarbeiter_uid]['nachname'].' '.$datum_obj->formatDatum($row->vondatum,'d.m.Y')." - ".$datum_obj->formatDatum($row->bisdatum,'d.m.Y'); if ($vertretung->uid != '') echo ' (Vertretung: '.$vertretung->nachname.')'; if($row->freigabeamum=='') echo " zeitsperre_id&year=$year&uid=$uid' class='Item'>Freigabe"; echo ""; echo '
'; } } echo ''; } //Jahr mit Pfeilen zum blaettern anzeigen if($uid!='') { echo '"; echo '
'; echo "Alle Mitarbeiter anzeigen
'; echo ''; echo '
'; echo '
'; echo '
'; } echo '
'; echo ""; echo ' '; echo ($year-1).'/'.$year; echo ' '; echo ""; echo '
'; echo '
'; //Tabelle mit den Monaten ausgeben echo ''; $monat=9; for($i=0;$i<12;$i++) { if($i%3==0) { echo ''; } draw_monat($monat); $monat++; if($monat>12) $monat=1; } echo '
'; ?>