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)
{