diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 6cc753665..98fdf4115 100755 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -91,12 +91,12 @@ $fieldheadings = array( if ($rechte->isBerechtigt('basis/servicezeitaufzeichnung')) { $za_simple = 0; - $activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'Dienstreise', 'Behoerde'); + $activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'Dienstreise', 'Behoerde', 'Ersatzruhe'); } else { $za_simple = 1; - $activities = array('Arbeit', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'Dienstreise', 'Behoerde'); + $activities = array('Arbeit', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'Dienstreise', 'Behoerde', 'Ersatzruhe'); } $activities_str = "'".implode("','", $activities)."'"; @@ -1096,6 +1096,8 @@ if($projekt->getProjekteMitarbeiter($user, true)) $wochensumme='00:00'; $extlehrearr=array(); $elsumme = '00:00'; + $ersumme = '00:00'; + $ersumme_woche = '00:00'; $datum_obj = new datum(); $tagesbeginn = ''; $tagesende = ''; @@ -1168,13 +1170,18 @@ if($projekt->getProjekteMitarbeiter($user, true)) else $langindex = 2; echo ''.$tagbez[$langindex][$datum->formatDatum($tag,'N')].' '.$datum->formatDatum($tag,'d.m.Y').' '.$zeitsperre_text.''; - + if ($ersumme != '00:00') + $erstr = ' (+ '.$ersumme.' ER)'; + else + { + $erstr = ''; + } echo ' '.$p->t("zeitaufzeichnung/arbeitszeit").': '.$datum->formatDatum($tagesbeginn, $format='H:i').'-'.$datum->formatDatum($tagesende, $format='H:i').' '.$p->t("eventkalender/uhr").'
LehreExtern / '.$p->t("zeitaufzeichnung/pause").' '.($pflichtpause==false?$p->t("zeitaufzeichnung/inklusivePflichtpause"):'').': - '.$tagessaldo.'
'.date('H:i', ($pausesumme-3600)).' + '.$tagessaldo.$erstr.'
'.date('H:i', ($pausesumme-3600)).' '; if ($tag > $sperrdatum) echo '<-'; @@ -1185,6 +1192,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) $tagessumme='00:00'; $pausesumme='00:00'; $elsumme='00:00'; + $ersumme = '00:00'; $extlehrearr = array(); $tagesbeginn = ''; $tagesende = ''; @@ -1202,13 +1210,19 @@ if($projekt->getProjekteMitarbeiter($user, true)) $woche = $datumwoche; if($woche!=$datumwoche) { + if ($ersumme_woche != '00:00') + $erstr = ' (+ '.$ersumme_woche.')'; + else + { + $erstr = ''; + } echo ' '.$p->t("zeitaufzeichnung/wochensummeArbeitszeit").': - '.$wochensaldo.' + '.$wochensaldo.$erstr.' @@ -1230,6 +1244,8 @@ if($projekt->getProjekteMitarbeiter($user, true)) $tagessumme='00:00'; $pausesumme='00:00'; $wochensaldo = '00:00'; + $ersumme = '00:00'; + $ersumme_woche = '00:00'; } if ($row->uid) { @@ -1243,12 +1259,17 @@ if($projekt->getProjekteMitarbeiter($user, true)) $pflichtpause = true; } } + elseif ($row->aktivitaet_kurzbz=='Ersatzruhe') + { + $ersumme = $datum_obj->sumZeit($ersumme, $row->diff); + $ersumme_woche = $datum_obj->sumZeit($ersumme_woche, $row->diff); + } else $tagessumme = $datum_obj->sumZeit($tagessumme, $row->diff); $style = ''; if ($row->zeitaufzeichnung_id == $zeitaufzeichnung_id) $style = 'style="border-top: 3px solid #8DBDD8; border-bottom: 3px solid #8DBDD8"'; - if ($row->aktivitaet_kurzbz=='Pause' || $row->aktivitaet_kurzbz=='LehreExtern') + if ($row->aktivitaet_kurzbz=='Pause' || $row->aktivitaet_kurzbz=='LehreExtern'|| $row->aktivitaet_kurzbz=='Ersatzruhe') $style .= ' style="color: grey;"'; $summe = $row->summe; $service = new service(); @@ -1281,10 +1302,10 @@ if($projekt->getProjekteMitarbeiter($user, true)) echo "\n"; echo " \n"; - if (($tagesbeginn=='' || $datum->mktime_fromtimestamp($datum->formatDatum($tagesbeginn, $format='Y-m-d H:i:s')) > $datum->mktime_fromtimestamp($datum->formatDatum($row->start, $format='Y-m-d H:i:s'))) && $row->aktivitaet_kurzbz != 'LehreExtern') + if (($tagesbeginn=='' || $datum->mktime_fromtimestamp($datum->formatDatum($tagesbeginn, $format='Y-m-d H:i:s')) > $datum->mktime_fromtimestamp($datum->formatDatum($row->start, $format='Y-m-d H:i:s'))) && $row->aktivitaet_kurzbz != 'LehreExtern' && $row->aktivitaet_kurzbz != 'Ersatzruhe') $tagesbeginn = $row->start; - if (($tagesende=='' || $datum->mktime_fromtimestamp($datum->formatDatum($tagesende, $format='Y-m-d H:i:s')) < $datum->mktime_fromtimestamp($datum->formatDatum($row->ende, $format='Y-m-d H:i:s'))) && $row->aktivitaet_kurzbz != 'LehreExtern') + if (($tagesende=='' || $datum->mktime_fromtimestamp($datum->formatDatum($tagesende, $format='Y-m-d H:i:s')) < $datum->mktime_fromtimestamp($datum->formatDatum($row->ende, $format='Y-m-d H:i:s'))) && $row->aktivitaet_kurzbz != 'LehreExtern' && $row->aktivitaet_kurzbz != 'Ersatzruhe') $tagesende = $row->ende; if ($row->aktivitaet_kurzbz == 'LehreExtern') $extlehrearr[] = array("start"=>$row->start, "ende"=>$row->ende, "diff"=>$row->diff); diff --git a/include/zeitaufzeichnung.class.php b/include/zeitaufzeichnung.class.php index 7d8aec3cf..422cde18c 100755 --- a/include/zeitaufzeichnung.class.php +++ b/include/zeitaufzeichnung.class.php @@ -148,6 +148,39 @@ class zeitaufzeichnung extends basis_db } } + // ER - Checks + if ($this->aktivitaet_kurzbz == 'Ersatzruhe') + { + $check_qry = "SELECT count(*) from campus.tbl_zeitaufzeichnung where uid=".$this->db_add_param($this->uid)." and (start < ".$this->db_add_param($this->ende)." and ende > ".$this->db_add_param($this->start).")"; + if ($this->zeitaufzeichnung_id) + $check_qry .= " and zeitaufzeichnung_id != ".$this->db_add_param($this->zeitaufzeichnung_id); + if($this->db_query($check_qry)) + { + if($row = $this->db_fetch_object()) + { + if ($row->count) + { + $this->errormsg = 'Ersatzruhe darf nicht Überlappen!'; + return false; + } + } + } + } + if ($this->aktivitaet_kurzbz != 'Ersatzruhe') + { + $check_qry = "SELECT count(*) from campus.tbl_zeitaufzeichnung where uid=".$this->db_add_param($this->uid)." and aktivitaet_kurzbz = 'Ersatzruhe' and (start < ".$this->db_add_param($this->ende)." and ende > ".$this->db_add_param($this->start).")"; + if($this->db_query($check_qry)) + { + if($row = $this->db_fetch_object()) + { + if ($row->count) + { + $this->errormsg = 'Eintrag darf nicht mit Ersatzruhe Überlappen!'; + return false; + } + } + } + } if($this->new) {