, * Andreas Oesterreicher and * Rudolf Hangl . */ /** * Uebersicht der Zeitsperren der Mitarbeiter */ require_once('../../../config/cis.config.inc.php'); require_once('../../../include/globals.inc.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/person.class.php'); require_once('../../../include/benutzer.class.php'); require_once('../../../include/mitarbeiter.class.php'); require_once('../../../include/studiensemester.class.php'); require_once('../../../include/zeitsperre.class.php'); require_once('../../../include/datum.class.php'); require_once('../../../include/fachbereich.class.php'); require_once('../../../include/organisationseinheit.class.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/sprache.class.php'); require_once('../../../include/ferien.class.php'); require_once('../../../include/Excel/excel.php'); require_once('../../../include/benutzerberechtigung.class.php'); $sprache = getSprache(); $p = new phrasen($sprache); $sprache_obj = new sprache(); $sprache_obj->load($sprache); $sprache_index=$sprache_obj->index; $uid = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($uid); if(!check_lektor($uid) && (!$rechte->isBerechtigt('admin',0) && !$rechte->isBerechtigt('mitarbeiter'))) die($p->t('global/keineBerechtigung')); if(isset($_GET['lektor'])) $lektor=$_GET['lektor']; else $lektor=null; if ($lektor=='false') $lektor=false; if ($lektor=='true' || $lektor=='1') $lektor=true; if(isset($_GET['fix'])) $fix=$_GET['fix']; else $fix=null; if ($fix=='false') $fix=false; if ($fix=='true' || $fix=='1') $fix=true; if(isset($_GET['funktion'])) $funktion=$_GET['funktion']; else $funktion=null; if(isset($_GET['organisationseinheit'])) $organisationseinheit = $_GET['organisationseinheit']; else $organisationseinheit = null; $stge=array(); if(isset($_GET['stg_kz'])) { $stg_kz=$_GET['stg_kz']; $stge[]=$stg_kz; } $days=trim((isset($_REQUEST['days']) && is_numeric($_REQUEST['days'])?$_REQUEST['days']:14)); // Link fuer den Export $export_link='zeitsperre.php?format=xls&'; $export_param=''; if(!is_null($days)) $export_param.=($export_param!=''?'&':'')."days=$days"; if(!is_null($organisationseinheit)) $export_param.=($export_param!=''?'&':'')."organisationseinheit=$organisationseinheit"; else { if ($fix) $export_param.=($export_param!=''?'&':'').'fix=true'; if($lektor) $export_param.=($export_param!=''?'&':'').'lektor=true'; if(!is_null($funktion)) $export_param.=($export_param!=''?'&':'').'funktion='.$funktion; if(isset($stg_kz)) $export_param.=($export_param!=''?'&':'').'stg_kz='.$stg_kz; } $export_link.=$export_param; //Datumsbereich ermitteln $datum_obj = new datum(); $dTmpAktuellerMontag=date("Y-m-d",strtotime(date('Y')."W".date('W')."1")); // Montag der Aktuellen Woche $dTmpAktuellesDatum=explode("-",$dTmpAktuellerMontag); $dTmpMontagPlus=date("Y-m-d", mktime(0,0,0,date($dTmpAktuellesDatum[1]),date($dTmpAktuellesDatum[2])+$days,date($dTmpAktuellesDatum[0]))); $datum_beginn=$dTmpAktuellerMontag; $datum_ende=$dTmpMontagPlus; $ts_beginn=$datum_obj->mktime_fromdate($datum_beginn); $ts_ende=$datum_obj->mktime_fromdate($datum_ende); // Mitarbeiter laden $ma=new mitarbeiter(); if(!is_null($organisationseinheit)) { $mitarbeiter = $ma->getMitarbeiterOrganisationseinheit($organisationseinheit); } else { if (!is_null($lektor)) $mitarbeiter=$lektor; else { if (is_null($funktion)) $mitarbeiter=$ma->getMitarbeiter($lektor,$fix); else $mitarbeiter=$ma->getMitarbeiterStg(null,null,$stge,$funktion,'nachname,vorname'); } } if(isset($_REQUEST['format']) && $_REQUEST['format']=='xls') { // Creating a workbook $workbook = new Spreadsheet_Excel_Writer(); // sending HTTP headers $workbook->send($p->t('zeitsperre/zeitsperren').".xls"); $workbook->setVersion(8); // Creating a worksheet $worksheet =& $workbook->addWorksheet($p->t('zeitsperre/zeitsperren')); $worksheet->setInputEncoding('utf-8'); $worksheet->setZoom (85); $worksheet->freezePanes(array(1, 0, 1, 0)); //Formate Definieren $format_header =& $workbook->addFormat(); $format_header->setBold(); $format_header->setAlign("center"); $format_header->setVAlign('vcenter'); $format_header->setTextWrap(); $format_header_feiertag =& $workbook->addFormat(); $format_header_feiertag->setBold(); $format_header_feiertag->setAlign("center"); $format_header_feiertag->setVAlign('vcenter'); $format_header_feiertag->setFgColor('yellow'); $format_header_feiertag->setTextWrap(); $format_namen =& $workbook->addFormat(); $format_namen->setVAlign('top'); $format_legende =& $workbook->addFormat(); $format_legende->setBold(); $format_legende->setAlign("left"); $format_legende->setVAlign('vcenter'); $format_mehrzeilig = &$workbook->addFormat(array('Align' => 'left')); $format_mehrzeilig->setVAlign('top'); $format_mehrzeilig->setTextWrap(); $spalte=0; $zeile=0; $worksheet->write(0,$spalte,$p->t('global/datum'), $format_header); $maxlength[0]=20; for ($ts=$ts_beginn;$ts<$ts_ende; $ts+=$datum_obj->ts_day) { $tag=date('d',$ts); $wt=date('N',$ts); $monat=date('M',$ts); if ($wt==7 || $wt==6) $class='feiertag'; else $class=''; $datum = $tagbez[$sprache_index][$wt]. "\n"; $datum .= $tag.' '.$monat; $worksheet->write(0,++$spalte,$datum, ($class!=''?$format_header_feiertag:$format_header)); $maxlength[$spalte]=15; } $zeile=0; $spalte=0; $uid=''; $zs=new zeitsperre(); if(is_array($mitarbeiter)) { foreach ($mitarbeiter as $ma) { if ($ma->uid!=$uid) //Um doppelte Eintraege rauszufiltern { if($ma->aktiv) { $zeile++; $spalte=0; $zs->getzeitsperren($ma->uid, false); $worksheet->write($zeile,$spalte,$ma->nachname.' '.$ma->vorname, $format_namen); for ($ts=$ts_beginn;$ts<$ts_ende; $ts+=$datum_obj->ts_day) { $wt=date('N',$ts); $grund=$zs->getTyp($ts); $grund = (!empty($grund)) ? $p->t('zeitsperre/abwesend') : ''; // anonymize reason $erbk=html_entity_decode($zs->getErreichbarkeit($ts)); $vertretung=$zs->getVertretung($ts); $zelleninhalt = ($grund!=''?(($grund!=''?substr($p->t('zeitsperre/grund'),0,1).': ':'').$grund. "\n"):''); $zelleninhalt .= ($erbk!=''?(($erbk!=''?substr($p->t('urlaubstool/erreichbarkeit'),0,1).': ':'').$erbk. "\n"):''); $zelleninhalt .= ($erbk!=''?($erbk!=''?substr($p->t('urlaubstool/vertretung'),0,1).': ':''):''); $count = 0; foreach ($vertretung as $vt) { if ($vt!='') { $ma_kurzbz = new mitarbeiter(); $ma_kurzbz->load($vt); $zelleninhalt .= ($count!=0?', ':'').$ma_kurzbz->vorname.' '.$ma_kurzbz->nachname.' ('.$ma_kurzbz->telefonklappe.')'; $count++; } } $worksheet->write($zeile,++$spalte,$zelleninhalt,$format_mehrzeilig); } } $uid=$ma->uid; } } } ++$zeile; $worksheet->write(++$zeile,0,$p->t('zeitsperre/legendeGrund'), $format_legende); $worksheet->write(++$zeile,0,$p->t('zeitsperre/legendeErreichbarkeit'), $format_legende); $worksheet->write(++$zeile,0,$p->t('zeitsperre/legendeVertretung'), $format_legende); $worksheet->write(++$zeile,0,$p->t('zeitsperre/legendeDurchwahl'), $format_legende); //Die Breite der Spalten setzen foreach($maxlength as $i=>$breite) $worksheet->setColumn($i, $i, $breite); $workbook->close(); } else { echo ' '.$p->t('zeitsperre/zeitsperren').'

'.$p->t('zeitsperre/zeitsperren').'

'.$p->T('zeitsperre/zeitsperreVonBis',array($datum_beginn, $datum_ende)).'

'; if(isset($_GET['organisationseinheit'])) { echo '
'; echo '
'.$p->t('global/organisationseinheit').':  '.$p->t('zeitsperre/anzahlTage').'
'; echo '
'; } if($lektor) echo '
'.$p->t('zeitsperre/anzahlTage').'
'; elseif($fix) echo '
'.$p->t('zeitsperre/anzahlTage').'
'; elseif(isset($_GET['funktion']) && isset($_GET['stg_kz'])) echo '
'.$p->t('zeitsperre/anzahlTage').'
'; echo ' Icon Excel Excel Export
'; echo ''; for ($ts=$ts_beginn;$ts<$ts_ende; $ts+=$datum_obj->ts_day) { $tag=date('d',$ts); $wt=date('N',$ts); $monat=date('M',$ts); if ($wt==7 || $wt==6) $class='feiertag'; else $class=''; echo ""; } echo ''; $uid=''; $zs=new zeitsperre(); if(is_array($mitarbeiter)) { foreach ($mitarbeiter as $ma) { if ($ma->uid!=$uid) //Um doppelte Eintraege rauszufiltern { if($ma->aktiv) { $zs->getzeitsperren($ma->uid, false); echo ''; echo ''; for ($ts=$ts_beginn;$ts<$ts_ende; $ts+=$datum_obj->ts_day) { $tag=date('d',$ts); $monat=date('M',$ts); $wt=date('N',$ts); if ($wt==7 || $wt==6) $class=' class="feiertag" '; else $class=''; $grund=$zs->getTyp($ts); $grund = (!empty($grund)) ? $p->t('zeitsperre/abwesend') : ''; // anonymize reason $erbk=$zs->getErreichbarkeit($ts); $vertretung=$zs->getVertretung($ts); echo ''; } echo ''; } $uid=$ma->uid; } } } echo '
'.$p->t('zeitsperre/monat').'
'.$p->t('zeitsperre/tag').'
".$tagbez[$sprache_index][$wt]."
$monat
$tag
'.trim($ma->nachname).' '.trim($ma->vorname).''.($grund!=''?''.substr($p->t('zeitsperre/grund'),0,1).': ':'').$grund; echo '
'.($erbk!=''?''.substr($p->t('urlaubstool/erreichbarkeit'),0,1).': ':'').$erbk; echo '
'.($erbk!=''?''.substr($p->t('urlaubstool/vertretung'),0,1).': ':''); foreach ($vertretung as $vt) { if ($vt!='') { $ma_kurzbz = new mitarbeiter(); $ma_kurzbz->load($vt); echo ''.$ma_kurzbz->kurzbz.' '; } } echo '
'; } ?>