diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php
index acc5f83d0..cd40391e1 100644
--- a/cis/private/tools/zeitaufzeichnung.php
+++ b/cis/private/tools/zeitaufzeichnung.php
@@ -126,6 +126,12 @@ $von = $von_datum.' '.$von_uhrzeit;
$bis_datum = (isset($_REQUEST['bis_datum'])?$_REQUEST['bis_datum']:date('d.m.Y'));
$bis_uhrzeit = (isset($_POST['bis_uhrzeit'])?$_POST['bis_uhrzeit']:date('H:i',mktime(date('H'), date('i')+10)));
$bis = $bis_datum.' '.$bis_uhrzeit;
+
+$pause_von = (isset($_POST['pause_von'])?$_POST['pause_von']:date('H:i'));
+$pause_bis = (isset($_POST['pause_bis'])?$_POST['pause_bis']:date('H:i'));
+$von_pause = $von_datum.' '.$pause_von;
+$bis_pause = $bis_datum.' '.$pause_bis;
+
$beschreibung = (isset($_POST['beschreibung'])?$_POST['beschreibung']:'');
$service_id = (isset($_POST['service_id'])?$_POST['service_id']:'');
$kunde_uid = (isset($_POST['kunde_uid'])?$_POST['kunde_uid']:'');
@@ -233,6 +239,8 @@ echo '
return row[0] + " " + row[1] + " " + row[2];
}
+ checkPausenblock();
+
$("#kunde_name").autocomplete({
source: "zeitaufzeichnung_autocomplete.php?autocomplete=kunde",
minLength:2,
@@ -539,6 +547,86 @@ echo '
}
);
}
+
+ // Pausenblock
+
+ function checkPausenblock()
+ {
+ var sel = $("#aktivitaet").val();
+ var activities = ["Admin", "Lehre", "FuE", "Operativ", "Betrieb", "Design"];
+ if (activities.includes(sel))
+ showPausenblock();
+ else
+ hidePausenblock();
+ }
+
+ function hidePausenblock()
+ {
+ $("#pause_von").val("");
+ $("#pause_bis").val("");
+ $("#genPause").attr("checked", false);
+ $("#pausenblock").hide();
+ }
+ function showPausenblock()
+ {
+ $("#pausenblock").show();
+ }
+
+ function checkPausenzeit()
+ {
+ if ($("#genPause").is(":checked"))
+ {
+ setPausenzeit();
+ }
+ else
+ {
+ clearPausenzeit();
+ }
+ }
+
+ function setPausenzeit()
+ {
+ var von_stunden, bis_stunden, von_minuten, bis_minuten, Uhrzeit2, Uhrzeit1, spanne;
+ Uhrzeit1 = $("#von_uhrzeit").val();
+ von_stunden = Uhrzeit1.substring(0,2);
+ von_minuten = Uhrzeit1.substring(3,5);
+ Uhrzeit2 = $("#bis_uhrzeit").val();
+ bis_stunden = Uhrzeit2.substring(0,2);
+ bis_minuten = Uhrzeit2.substring(3,5);
+ spanne = (bis_stunden*60+parseInt(bis_minuten))-(von_stunden*60+parseInt(von_minuten));
+
+ if (spanne <= 40)
+ {
+ alert("'.$p->t("zeitaufzeichnung/zeitraumZuKurz").'");
+ $("#genPause").attr("checked", false);
+ }
+ else
+ {
+ var pausenstart = Math.floor((spanne/2-15)+(von_stunden*60+parseInt(von_minuten)));
+ var pausenstart_stunde = Math.floor(pausenstart/60);
+ var pausenstart_minute = pausenstart - pausenstart_stunde*60;
+ pausenstart_stunde = (pausenstart_stunde < 10 ? "0"+pausenstart_stunde : pausenstart_stunde);
+ pausenstart_minute = (pausenstart_minute < 10 ? "0"+pausenstart_minute : pausenstart_minute);
+ var beginn_pause = pausenstart_stunde + ":" + pausenstart_minute;
+
+ var pausenende = pausenstart + parseInt(30);
+ var pausenende_stunde = Math.floor(pausenende/60);
+ var pausenende_minute = pausenende - pausenende_stunde*60;
+ pausenende_stunde = (pausenende_stunde < 10 ? "0"+pausenende_stunde : pausenende_stunde);
+ pausenende_minute = (pausenende_minute < 10 ? "0"+pausenende_minute : pausenende_minute);
+
+ var ende_pause = pausenende_stunde + ":" + pausenende_minute;
+
+ $("#pause_von").val(beginn_pause);
+ $("#pause_bis").val(ende_pause);
+ }
+ }
+
+ function clearPausenzeit()
+ {
+ $("#pause_von").val("");
+ $("#pause_bis").val("");
+ }
@@ -753,12 +841,78 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
$zeit->projektphase_id = $projektphase_id;
$zeit->service_id = $service_id;
$zeit->kunde_uid = $kunde_uid;
-
- if(!$zeit->save())
+ $saveerror = 0;
+ if (isset($_POST['genPause']) && (isset($_POST['save']) || isset($_POST['edit'])))
{
- echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'';
+
+ $p_start = $datum->formatDatum($von_pause, $format='Y-m-d H:i:s');
+ $p_end = $datum->formatDatum($bis_pause, $format='Y-m-d H:i:s');
+
+ // checken ob Pause innerhalb der Arbeitszeit ist
+ if ($zeit->start > $p_start || $zeit->ende < $p_end)
+ {
+ echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Pause außerhalb der Arbeitszeit
';
+ $saveerror = 1;
+
+ }
+ elseif ($p_start > $p_end)
+ {
+ echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Fehlerhafte Pausenzeiten
';
+ $saveerror = 1;
+ }
+ else
+ {
+ //Eintrag Arbeit bis zur Pause
+ $zeit->ende = $datum->formatDatum($von_pause, $format='Y-m-d H:i:s');
+ if(!$zeit->save())
+ {
+ echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'
';
+ $saveerror = 1;
+ }
+ //Eintrag für die Pause
+ $pause = new zeitaufzeichnung();
+ $pause->new = true;
+ $pause->insertamum = date('Y-m-d H:i:s');
+ $pause->updateamum = date('Y-m-d H:i:s');
+ $pause->updatevon = $user;
+ $pause->insertvon = $user;
+ $pause->uid = $user;
+ $pause->aktivitaet_kurzbz = 'Pause';
+ $pause->start = $datum->formatDatum($von_pause, $format='Y-m-d H:i:s');
+ $pause->ende = $datum->formatDatum($bis_pause, $format='Y-m-d H:i:s');
+ $pause->beschreibung = '';
+ if(!$pause->save())
+ {
+ echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$pause->errormsg.'
';
+ $saveerror = 1;
+ }
+ // Eintrag Arbeit ab der Pause
+ if ($zeit->new == false)
+ {
+ $zeit->new = true;
+ $zeit->insertamum = date('Y-m-d H:i:s');
+ $zeit->insertvon = $user;
+ }
+
+ $zeit->start = $datum->formatDatum($bis_pause, $format='Y-m-d H:i:s');
+ $zeit->ende = $datum->formatDatum($bis, $format='Y-m-d H:i:s');
+ if(!$zeit->save())
+ {
+ echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'
';
+ $saveerror = 1;
+ }
+ }
}
- else
+ elseif (!isset($_POST['genPause']))
+ {
+ if(!$zeit->save())
+ {
+ echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'';
+ $saveerror = 1;
+ }
+ }
+
+ if ($saveerror == 0)
{
echo ''.$p->t("global/datenWurdenGespeichert").'';
@@ -780,6 +934,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
}
}
+
//Datensatz loeschen
if(isset($_GET['type']) && $_GET['type']=='delete')
{
@@ -956,7 +1111,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
// $qry = "SELECT * FROM fue.tbl_aktivitaet where sort != 5 or sort is null ORDER by sort,beschreibung";
if($result = $db->db_query($qry))
{
- echo '