From bd8db6254af971d6e517b7077464de6701a1d887 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Wed, 26 Mar 2014 14:17:15 +0000 Subject: [PATCH] =?UTF-8?q?Zeitsperren=20Filter=20f=C3=BCr=20Assistentinne?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/profile/zeitsperre.php | 113 +++++++++++++----------- cms/menu/menu_addon_zeitsperren.inc.php | 5 ++ include/mitarbeiter.class.php | 4 +- locale/de-AT/menu.php | 1 + locale/en-US/menu.php | 1 + 5 files changed, 70 insertions(+), 54 deletions(-) diff --git a/cis/private/profile/zeitsperre.php b/cis/private/profile/zeitsperre.php index 4515a316b..2484d316c 100644 --- a/cis/private/profile/zeitsperre.php +++ b/cis/private/profile/zeitsperre.php @@ -134,7 +134,7 @@ require_once('../../../include/Excel/excel.php'); if (is_null($funktion)) $mitarbeiter=$ma->getMitarbeiter($lektor,$fix); else - $mitarbeiter=$ma->getMitarbeiterStg(true,null,$stge,$funktion); + $mitarbeiter=$ma->getMitarbeiterStg(false,null,$stge,$funktion,'nachname,vorname'); } } @@ -199,39 +199,44 @@ if(isset($_REQUEST['format']) && $_REQUEST['format']=='xls') $zeile=0; $spalte=0; + $uid=''; $zs=new zeitsperre(); if(is_array($mitarbeiter)) { foreach ($mitarbeiter as $ma) { - 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); - $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 ($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) { - if ($vt!='') + $wt=date('N',$ts); + $grund=$zs->getTyp($ts); + $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) { - $ma_kurzbz = new mitarbeiter(); - $ma_kurzbz->load($vt); - $zelleninhalt .= ($count!=0?', ':'').$ma_kurzbz->vorname.' '.$ma_kurzbz->nachname.' ('.$ma_kurzbz->telefonklappe.')'; - $count++; + 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); } - $worksheet->write($zeile,++$spalte,$zelleninhalt,$format_mehrzeilig); } + $uid=$ma->uid; } } } @@ -309,46 +314,50 @@ else echo ''; - + $uid=''; $zs=new zeitsperre(); if(is_array($mitarbeiter)) { foreach ($mitarbeiter as $ma) { - if($ma->aktiv) + if ($ma->uid!=$uid) //Um doppelte Eintraege rauszufiltern { - $zs->getzeitsperren($ma->uid, false); - echo ''; - echo ''.trim($ma->nachname).' '.trim($ma->vorname).''; - for ($ts=$ts_beginn;$ts<$ts_ende; $ts+=$datum_obj->ts_day) + if($ma->aktiv) { - $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); - $erbk=$zs->getErreichbarkeit($ts); - $vertretung=$zs->getVertretung($ts); - echo ''.($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) + $zs->getzeitsperren($ma->uid, false); + echo ''; + echo ''.trim($ma->nachname).' '.trim($ma->vorname).''; + for ($ts=$ts_beginn;$ts<$ts_ende; $ts+=$datum_obj->ts_day) { - if ($vt!='') + $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); + $erbk=$zs->getErreichbarkeit($ts); + $vertretung=$zs->getVertretung($ts); + echo ''.($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) { - $ma_kurzbz = new mitarbeiter(); - $ma_kurzbz->load($vt); - echo ''.$ma_kurzbz->kurzbz.' '; + if ($vt!='') + { + $ma_kurzbz = new mitarbeiter(); + $ma_kurzbz->load($vt); + echo ''.$ma_kurzbz->kurzbz.' '; + } } + echo ''; } - echo ''; + echo ''; } - echo ''; - } + $uid=$ma->uid; + } } } diff --git a/cms/menu/menu_addon_zeitsperren.inc.php b/cms/menu/menu_addon_zeitsperren.inc.php index d4a6a31f6..a7d89ca90 100755 --- a/cms/menu/menu_addon_zeitsperren.inc.php +++ b/cms/menu/menu_addon_zeitsperren.inc.php @@ -79,6 +79,11 @@ class menu_addon_zeitsperren extends menu_addon 'link' => 'private/profile/zeitsperre.php?organisationseinheit=', 'name' => $p->t('menu/organisationseinheit') ); + $this->items[] = array('title' => $p->t('menu/assistenz'), + 'target'=> 'content', + 'link' => 'private/profile/zeitsperre.php?funktion=ass', + 'name' => $p->t('menu/assistenz') + ); } $stg_obj = new studiengang(); diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php index aaffe3933..175517fc4 100644 --- a/include/mitarbeiter.class.php +++ b/include/mitarbeiter.class.php @@ -396,7 +396,7 @@ class mitarbeiter extends benutzer * @param $fkt_kurzbz * @return boolean */ - public function getMitarbeiterStg($lektor=true,$fixangestellt, $stge, $fkt_kurzbz) + public function getMitarbeiterStg($lektor=true,$fixangestellt, $stge, $fkt_kurzbz, $order='studiengang_kz, nachname, vorname, kurzbz') { $sql_query='SELECT DISTINCT campus.vw_mitarbeiter.*, studiengang_kz FROM campus.vw_mitarbeiter JOIN public.tbl_benutzerfunktion USING (uid) JOIN public.tbl_studiengang USING(oe_kurzbz) @@ -435,7 +435,7 @@ class mitarbeiter extends benutzer if($in!='') $sql_query.=' AND studiengang_kz in (-1'.$in.')'; } - $sql_query.=' ORDER BY studiengang_kz, nachname, vorname, kurzbz;'; + $sql_query.=' ORDER BY '.$order.';'; //echo $sql_query; if(!$this->db_query($sql_query)) diff --git a/locale/de-AT/menu.php b/locale/de-AT/menu.php index 6edea8165..e376a55b1 100755 --- a/locale/de-AT/menu.php +++ b/locale/de-AT/menu.php @@ -4,6 +4,7 @@ $this->phrasen['menu/resturlaub']='Resturlaubstage'; $this->phrasen['menu/fixangestellte']='Zeitsperren aller Fixangestellten'; $this->phrasen['menu/fixelektoren']='Zeitsperren aller fixen LektorInnen'; $this->phrasen['menu/organisationseinheit']='Zeitsperren nach Organisationseinheit'; +$this->phrasen['menu/assistenz']='Zeitsperren aller AssistentInnen'; $this->phrasen['menu/lektoren']='Lektoren'; $this->phrasen['menu/urlaubAlle']='Alle'; $this->phrasen['menu/suchePersonOrtDokumentInhalt']='Suche Person / Ort / Dokument / Inhalt / Durchwahl'; diff --git a/locale/en-US/menu.php b/locale/en-US/menu.php index 700b9ccf9..6a3ebec38 100755 --- a/locale/en-US/menu.php +++ b/locale/en-US/menu.php @@ -4,6 +4,7 @@ $this->phrasen['menu/resturlaub']='Remaining leave'; $this->phrasen['menu/fixangestellte']='Salaried'; $this->phrasen['menu/fixelektoren']='salaried Lector'; $this->phrasen['menu/organisationseinheit']='Organization Units'; +$this->phrasen['menu/assistenz']='Assistants'; $this->phrasen['menu/lektoren']='Lector'; $this->phrasen['menu/urlaubAlle']='All'; $this->phrasen['menu/suchePersonOrtDokumentInhalt']='Search Person / Room / Document / Content / Extension';