diff --git a/include/zeitaufzeichnung_import.class.php b/include/zeitaufzeichnung_import.class.php
index e8e6a8b15..fa11922aa 100644
--- a/include/zeitaufzeichnung_import.class.php
+++ b/include/zeitaufzeichnung_import.class.php
@@ -21,7 +21,7 @@ class zeitaufzeichnung_import {
protected $project;
protected $phase;
protected $limitdate;
-
+
protected $zeit;
@@ -42,7 +42,7 @@ class zeitaufzeichnung_import {
$this->zeit = new zeitaufzeichnung();
}
-
+
/**
* @return boolean
@@ -64,7 +64,7 @@ class zeitaufzeichnung_import {
public function hasInfos() {
return !empty($this->infos);
}
-
+
/**
* @return string
*/
@@ -96,15 +96,15 @@ class zeitaufzeichnung_import {
$html .= '' . $msg . '
' . "\n";
}
return $html;
- }
-
+ }
+
/**
* @return string
*/
public function OutputToHTML() {
return $this->InfosToHTML() . $this->WarningsToHTML() . $this->ErrorsToHTML();
- }
-
+ }
+
/**
* @param string $msg
* @return void
@@ -112,7 +112,7 @@ class zeitaufzeichnung_import {
protected function addError($msg) {
$this->errors[] = $msg;
}
-
+
/**
* @param string $msg
* @return void
@@ -120,7 +120,7 @@ class zeitaufzeichnung_import {
protected function addWarning($msg) {
$this->warnings[] = $msg;
}
-
+
/**
* @param string $msg
* @return void
@@ -134,7 +134,7 @@ class zeitaufzeichnung_import {
* @param string $uid The user id
* @param string $day "Y-m-d" formatted datestring
* @return void
- *
+ *
* @throws Exception
*/
protected function checkZeitsperren($uid, $day) {
@@ -150,25 +150,25 @@ class zeitaufzeichnung_import {
throw new Exception($this->p->t("global/fehlerBeimSpeichernDerDaten") . ": " . $this->p->t("zeitaufzeichnung/zeitsperreVorhanden", [$zsdate, $zs->result[0]->zeitsperretyp_kurzbz]));
}
}
-
+
/**
* @param string $date datetimestring
* @return void
- *
+ *
* @throws Exception
*/
protected function checkLimitdatum($date) {
if ($this->datum->formatDatum($date, 'Y-m-d H:i:s') > $this->limitdate) {
throw new Exception($this->p->t("global/fehlerBeimSpeichernDerDaten") . ': Eingabe nicht möglich da (' . $date . ') zu weit in der Zukunft liegt.');
- }
+ }
}
-
+
/**
* @param string $start datestring
* @param string $end datestring
* @param string $aktivitaet_kurzbz
* @return void
- *
+ *
* @throws Exception
*/
protected function checkDienstreise($start, $end, $aktivitaet_kurzbz) {
@@ -179,11 +179,11 @@ class zeitaufzeichnung_import {
.': Eingabe nicht möglich, da keine Zeitaufzeichnung über mehrere Tage erlaubt ist (ausgenommen Dienstreisen).');
}
}
-
+
/**
* @param string $end timestring
* @return void
- *
+ *
* @throws Exception
*/
protected function checkTagesgenau($end) {
@@ -193,13 +193,13 @@ class zeitaufzeichnung_import {
.': Bitte Arbeitszeiten gemäß Arbeitsaufzeichnung Leitfaden tagesgenau abgrenzen: Nur Eingaben von 00:00 bis 23:59 erlaubt!');
}
}
-
+
/**
* @param string $projekt_kurzbz
* @param string $start datestring
* @param string $end datestring
* @return void
- *
+ *
* @throws Exception
*/
protected function checkProjectInterval($projekt_kurzbz, $start, $end) {
@@ -207,13 +207,13 @@ class zeitaufzeichnung_import {
throw new Exception($this->p->t("global/fehlerBeimSpeichernDerDaten") . ': Eingabe nicht möglich, da angegebenes Anfangs und Enddatum nicht in den Projektzeitrahmen fällt: (' . $start . ') (' . $end . ')');
}
}
-
+
/**
* @param string $phase The Projektphase ID
* @param string $start datestring
* @param string $end datestring
* @return void
- *
+ *
* @throws Exception
*/
protected function checkPhaseInterval($phase, $start, $end) {
@@ -222,4 +222,84 @@ class zeitaufzeichnung_import {
}
}
+ /**
+ * @param string $start datetime
+ * @param string $end datetime
+ * @return void
+ */
+ protected function processPause($start, $end) {
+ if (isset($_POST['genPause'])) {
+ $p_start = $this->datum->formatDatum($start, 'Y-m-d H:i:s');
+ $p_end = $this->datum->formatDatum($end, 'Y-m-d H:i:s');
+ $this->checkPauseInArbeitszeit($p_start, $p_end);
+ $this->checkPauseValid($p_start, $p_end);
+ $this->savePauseGeneric($start, $end);
+ }
+ }
+
+ /**
+ * @param string $start "Y-m-d H:i:s" formatted datetime
+ * @param string $end "Y-m-d H:i:s" formatted datetime
+ * @return void
+ *
+ * @throws Exception
+ */
+ protected function checkPauseInArbeitszeit($start, $end) {
+ if ($this->zeit->start > $start || $this->zeit->ende < $end) {
+ throw new Exception($this->p->t("global/fehlerBeimSpeichernDerDaten") . ': Pause außerhalb der Arbeitszeit');
+ }
+ }
+
+ /**
+ * @param string $start "Y-m-d H:i:s" formatted datetime
+ * @param string $end "Y-m-d H:i:s" formatted datetime
+ * @return void
+ *
+ * @throws Exception
+ */
+ protected function checkPauseValid($start, $end) {
+ if ($start > $end) {
+ throw new Exception($this->p->t("global/fehlerBeimSpeichernDerDaten") . ': Fehlerhafte Pausenzeiten');
+ }
+ }
+
+ /**
+ * @param string $start datetime
+ * @param string $end datetime
+ * @return void
+ */
+ protected function savePauseGeneric($start, $end) {
+ //Eintrag Arbeit bis zur Pause
+ $ende = $this->zeit->ende;
+ $this->zeit->ende = $this->datum->formatDatum($start, 'Y-m-d H:i:s');
+ if (!$this->zeit->save()) {
+ $this->addError($this->p->t("global/fehlerBeimSpeichernDerDaten") . ': ' . $this->zeit->errormsg);
+ }
+ //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 = $this->user;
+ $pause->insertvon = $this->user;
+ $pause->uid = $this->user;
+ $pause->aktivitaet_kurzbz = 'Pause';
+ $pause->homeoffice = $this->zeit->homeoffice;
+ $pause->start = $this->datum->formatDatum($start, 'Y-m-d H:i:s');
+ $pause->ende = $this->datum->formatDatum($end, 'Y-m-d H:i:s');
+ $pause->beschreibung = '';
+ if (!$pause->save()) {
+ $this->addError($this->p->t("global/fehlerBeimSpeichernDerDaten") . ': ' . $pause->errormsg);
+ }
+ // Eintrag Arbeit ab der Pause
+ if ($this->zeit->new == false) {
+ $this->zeit->new = true;
+ $this->zeit->insertamum = date('Y-m-d H:i:s');
+ $this->zeit->insertvon = $this->user;
+ }
+
+ $this->zeit->start = $this->datum->formatDatum($end, 'Y-m-d H:i:s');
+ $this->zeit->ende = $ende;
+ }
+
}
diff --git a/include/zeitaufzeichnung_import_csv.class.php b/include/zeitaufzeichnung_import_csv.class.php
index 27a240e45..c5473e884 100644
--- a/include/zeitaufzeichnung_import_csv.class.php
+++ b/include/zeitaufzeichnung_import_csv.class.php
@@ -176,6 +176,8 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
$this->mapLehreIntern($data);
$this->prepareZeitaufzeichnung($data);
$this->checkImporttage($data[self::STARTDT]);
+ $this->checkPauseInArbeitszeit($data[self::STARTDT], $data[self::ENDEDT]);
+ $this->checkPauseValid($data[self::STARTDT], $data[self::ENDEDT]);
$this->saveZeit($data[self::STARTDT], $data[self::ENDEDT]);
} catch (Exception $ex) {
$this->addError($ex->getMessage(), true);
@@ -383,6 +385,8 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
/**
* @return void
+ *
+ * @throws Exception
*/
protected function savePause() {
$pause = new zeitaufzeichnung();
@@ -399,7 +403,7 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
$pause->homeoffice = $this->zeit->homeoffice;
if(!$pause->save())
{
- $this->addError($this->p->t("global/fehlerBeimSpeichernDerDaten").': '.$pause->errormsg, true);
+ throw new Exception($this->p->t("global/fehlerBeimSpeichernDerDaten").': '.$pause->errormsg, true);
}
}
@@ -407,6 +411,7 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
* @param string $start datetimestring
* @param string $end datetimestring
* @return void
+
*/
protected function saveZeit($start, $end) {
if ($start != $end) {
@@ -418,6 +423,7 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
} else {
$this->anzahl++;
}
+
}
/**
diff --git a/include/zeitaufzeichnung_import_post.class.php b/include/zeitaufzeichnung_import_post.class.php
index a6a59376e..6808ae9e7 100644
--- a/include/zeitaufzeichnung_import_post.class.php
+++ b/include/zeitaufzeichnung_import_post.class.php
@@ -126,86 +126,6 @@ class zeitaufzeichnung_import_post extends zeitaufzeichnung_import {
$this->zeit->kunde_uid = $kunde_uid;
}
- /**
- * @param string $start datetime
- * @param string $end datetime
- * @return void
- */
- protected function processPause($start, $end) {
- if (isset($_POST['genPause'])) {
- $p_start = $this->datum->formatDatum($start, 'Y-m-d H:i:s');
- $p_end = $this->datum->formatDatum($end, 'Y-m-d H:i:s');
- $this->checkPauseInArbeitszeit($p_start, $p_end);
- $this->checkPauseValid($p_start, $p_end);
- $this->savePause($start, $end);
- }
- }
-
- /**
- * @param string $start "Y-m-d H:i:s" formatted datetime
- * @param string $end "Y-m-d H:i:s" formatted datetime
- * @return void
- *
- * @throws Exception
- */
- protected function checkPauseInArbeitszeit($start, $end) {
- if ($this->zeit->start > $start || $this->zeit->ende < $end) {
- throw new Exception($this->p->t("global/fehlerBeimSpeichernDerDaten") . ': Pause außerhalb der Arbeitszeit');
- }
- }
-
- /**
- * @param string $start "Y-m-d H:i:s" formatted datetime
- * @param string $end "Y-m-d H:i:s" formatted datetime
- * @return void
- *
- * @throws Exception
- */
- protected function checkPauseValid($start, $end) {
- if ($start > $end) {
- throw new Exception($this->p->t("global/fehlerBeimSpeichernDerDaten") . ': Fehlerhafte Pausenzeiten');
- }
- }
-
- /**
- * @param string $start datetime
- * @param string $end datetime
- * @return void
- */
- protected function savePause($start, $end) {
- //Eintrag Arbeit bis zur Pause
- $ende = $this->zeit->ende;
- $this->zeit->ende = $this->datum->formatDatum($start, 'Y-m-d H:i:s');
- if (!$this->zeit->save()) {
- $this->addError($this->p->t("global/fehlerBeimSpeichernDerDaten") . ': ' . $this->zeit->errormsg);
- }
- //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 = $this->user;
- $pause->insertvon = $this->user;
- $pause->uid = $this->user;
- $pause->aktivitaet_kurzbz = 'Pause';
- $pause->homeoffice = $this->zeit->homeoffice;
- $pause->start = $this->datum->formatDatum($start, 'Y-m-d H:i:s');
- $pause->ende = $this->datum->formatDatum($end, 'Y-m-d H:i:s');
- $pause->beschreibung = '';
- if (!$pause->save()) {
- $this->addError($this->p->t("global/fehlerBeimSpeichernDerDaten") . ': ' . $pause->errormsg);
- }
- // Eintrag Arbeit ab der Pause
- if ($this->zeit->new == false) {
- $this->zeit->new = true;
- $this->zeit->insertamum = date('Y-m-d H:i:s');
- $this->zeit->insertvon = $this->user;
- }
-
- $this->zeit->start = $this->datum->formatDatum($end, 'Y-m-d H:i:s');
- $this->zeit->ende = $ende;
- }
-
/**
* @return void
*