diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php
index 079d4a62f..aba828241 100644
--- a/cis/private/profile/zeitsperre_resturlaub.php
+++ b/cis/private/profile/zeitsperre_resturlaub.php
@@ -361,30 +361,35 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_
}
//Prüfen auf vorhandene Zeitaufzeichnung
- if (isset($_POST['bisdatum']) && isset($_POST['vondatum']) && $zaufzeichnung->existsZeitaufzeichnung($uid, $_POST['vondatum'], $_POST['bisdatum']))
+ if (isset($_POST['bisdatum']) && isset($_POST['vondatum'])
+ && $zaufzeichnung->existsZeitaufzeichnung($uid, $_POST['vondatum'], $_POST['bisdatum'])
+ // Nur Zeitaufzeichnungsrelevante Typen sollen das speichern blockieren
+ && in_array($_POST['zeitsperretyp_kurzbz'], zeitsperre::getBlockierendeZeitsperren()))
{
$error = true;
$error_msg .= $p->t('zeitsperre/zeitaufzeichnungVorhanden');
}
//Prüfen auf vorhandene Zeitsperre
- if (isset($_POST['bisdatum']) && isset($_POST['vondatum']))
+ if (isset($_POST['bisdatum']) && isset($_POST['vondatum'])
+ && in_array($_POST['zeitsperretyp_kurzbz'], zeitsperre::getBlockierendeZeitsperren()))
{
$von = $_POST['vondatum'];
$von2 = new DateTime($von);
$von2 = $von2->format('Y-m-d');
$zeitsperre = new zeitsperre();
- if ($zeitsperre->getSperreByDate($uid, $von2, null))
+ if ($zeitsperre->getSperreByDate($uid, $von2, null, zeitsperre::NUR_BLOCKIERENDE_ZEITSPERREN))
{
foreach ($zeitsperre->result as $z)
{
- if ($z->zeitsperretyp_kurzbz)
- {
- $typ = $z->zeitsperretyp_kurzbz;
- }
- $error = true;
- $error_msg .= $p->t('zeitsperre/zeitsperreEingetragen', [$von, $typ]);
+ // Beim editieren nicht mit dem eigenen Eintrag kollidieren
+ if($_GET['type'] == 'edit_sperre' && $z->zeitsperre_id == $_GET['id'])
+ continue;
+
+ $typ = $z->zeitsperretyp_kurzbz;
+ $error = true;
+ $error_msg .= $p->t('zeitsperre/zeitsperreEingetragen', [$von, $typ]);
}
}
}
diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php
index 42780cc59..200697aa8 100644
--- a/cis/private/tools/zeitaufzeichnung.php
+++ b/cis/private/tools/zeitaufzeichnung.php
@@ -47,38 +47,6 @@ require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/zeitaufzeichnung_import_csv.class.php');
require_once('../../../include/zeitaufzeichnung_import_post.class.php');
-/*function checkZeitsperren($p, $uid, $day)
-{
- $zs = new zeitsperre();
- $sperreVorhanden = false;
-
- if( !$zs->getSperreByDate($uid, $day, null,
- zeitsperre::NUR_BLOCKIERENDE_ZEITSPERREN) )
- {
- return array(
- "status" => false,
- "msg" => 'Fehler beim Überprüfen der Zeitsperren'
- );
- }
-
- if( count($zs->result) === 0 )
- {
- return array(
- "status" => true,
- "msg" => ''
- );
- } else {
- $zsdate = new DateTime($day);
- $zsdate = $zsdate->format('d.m.Y');
- $msg = $p->t("zeitaufzeichnung/zeitsperreVorhanden",
- [$zsdate, $zs->result[0]->zeitsperretyp_kurzbz]);
- return array(
- "status" => false,
- "msg" => $msg
- );
- }
-}*/
-
$sprache = getSprache();
$p=new phrasen($sprache);
$sprache_obj = new sprache();
@@ -157,8 +125,6 @@ else
$gesperrt_bis = '2015-08-31';
$sperrdatum = date('c', strtotime($gesperrt_bis));
-/*$datumjetzt = strtotime("+5 weeks");
-$limitdatum = date('c', $datumjetzt);*/
// Uses urlencode to avoid XSS issues
$zeitaufzeichnung_id = urlencode(isset($_GET['zeitaufzeichnung_id'])?$_GET['zeitaufzeichnung_id']:'');
@@ -369,7 +335,7 @@ echo '
ret_uhrzeit = foo(now.getHours());
ret_uhrzeit = ret_uhrzeit + ":" + foo(now.getMinutes());
-
+
document.getElementById("bis_datum").value=ret_datum;
document.getElementById("bis_uhrzeit").value=ret_uhrzeit;
}
@@ -387,7 +353,7 @@ echo '
ret_uhrzeit = foo(now.getHours());
ret_uhrzeit = ret_uhrzeit + ":" + foo(now.getMinutes());
-
+
document.getElementById("von_datum").value=ret_datum;
document.getElementById("von_uhrzeit").value=ret_uhrzeit;
$("#von_datum").trigger("change");
@@ -871,33 +837,9 @@ if($kartennummer != '')
if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
{
- #$zeit = new zeitaufzeichnung(); // TODO(chris): make lokal
-
- // TODO(chris): make lokal
- /*$projects_of_user = new projekt();
- $projects= $projects_of_user->getProjekteListForMitarbeiter($user);
- $project_kurzbz_array = array();*/
-
- // TODO(chris): make lokal?
$projektph_of_user = new projektphase();
- $projektphasen = $projektph_of_user->getProjectphaseForMitarbeiter($user); // TODO(chris): this seems to be used below
- /*$projectphasen_kurzbz_array = array();*/
+ $projektphasen = $projektph_of_user->getProjectphaseForMitarbeiter($user);
- // TODO(chris): make lokal
- /*foreach($projects as $prjct)
- {
- array_push($project_kurzbz_array, (string) $prjct->projekt_kurzbz);
- }*/
- // TODO(chris): make lokal
- /*foreach ($projektphasen as $pp)
- {
- array_push($projectphasen_kurzbz_array, (string) $pp->projektphase_id);
- }*/
-
- // NOTE(chris): this is the same as projektph_of_user
- /*$projectphase = new projektphase();*/
-
- // NOTE(chris): CSV Import
if ($_FILES['csv']['error'] == 0 && isset($_POST['import']))
{
$zeit_csv_import = new zeitaufzeichnung_import_csv($p, $user, $sperrdatum, $_FILES['csv']['tmp_name']);
@@ -910,24 +852,25 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
else if (isset($_POST['save']) || isset($_POST['edit']))
{
$zeit_post_import = new zeitaufzeichnung_import_post($p, $user, isset($_POST['edit']), [
- 'aktivitaet_kurzbz' => $aktivitaet_kurzbz,
- 'beschreibung' => $beschreibung,
- 'bis' => $bis,
+ 'aktivitaet_kurzbz' => $aktivitaet_kurzbz,
+ 'beschreibung' => $beschreibung,
+ 'bis' => $bis,
'bis_pause' => $bis_pause,
- 'homeoffice' => $homeoffice,
+ 'homeoffice' => $homeoffice,
'kunde_uid' => $kunde_uid,
- 'oe_kurzbz_1' => $oe_kurzbz_1,
- 'oe_kurzbz_2' => $oe_kurzbz_2,
- 'projekt_kurzbz' => $projekt_kurzbz,
- 'projektphase_id' => $projektphase_id,
- 'service_id' => $service_id,
- 'von' => $von,
- 'von_pause' => $von_pause,
+ 'oe_kurzbz_1' => $oe_kurzbz_1,
+ 'oe_kurzbz_2' => $oe_kurzbz_2,
+ 'projekt_kurzbz' => $projekt_kurzbz,
+ 'projektphase_id' => $projektphase_id,
+ 'service_id' => $service_id,
+ 'von' => $von,
+ 'von_pause' => $von_pause,
'zeitaufzeichnung_id' => $zeitaufzeichnung_id,
]);
$zeit_post_import->import();
echo $zeit_post_import->OutputToHTML();
- if (!$zeit_post_import->hasErrors() && !$zeit_post_import->hasWarnings()) {
+ if (!$zeit_post_import->hasErrors() && !$zeit_post_import->hasWarnings())
+ {
// Nach dem Speichern in den neu Modus springen und als Von Zeit
// das Ende des letzten Eintrages eintragen
$zeitaufzeichnung_id = '';
@@ -943,169 +886,9 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
$service_id = '';
$kunde_uid = '';
}
-
- /*
- if(isset($_POST['edit']))
- {
- if(!$zeit->load($zeitaufzeichnung_id))
- die($p->t("global/fehlerBeimLadenDesDatensatzes"));
-
- $zeit->new = false;
- }
- else
- {
- $zeit->new = true;
- $zeit->insertamum = date('Y-m-d H:i:s');
- $zeit->insertvon = $user;
- }
-
- $zeit->uid = $user;
- $zeit->aktivitaet_kurzbz = $aktivitaet_kurzbz;
- $zeit->start = $datum->formatDatum($von, $format = 'Y-m-d H:i:s');
- $zeit->ende = $datum->formatDatum($bis, $format = 'Y-m-d H:i:s');
- $zeit->beschreibung = $beschreibung;
- $zeit->oe_kurzbz_1 = $oe_kurzbz_1;
- $zeit->oe_kurzbz_2 = $oe_kurzbz_2;
- $zeit->updateamum = date('Y-m-d H:i:s');
- $zeit->updatevon = $user;
- $zeit->projekt_kurzbz = $projekt_kurzbz;
- $zeit->projektphase_id = $projektphase_id;
- $zeit->homeoffice = $homeoffice;
- $zeit->service_id = $service_id;
- $zeit->kunde_uid = $kunde_uid;
- $saveerror = 0;
- $extractTimeBis = $datum->formatDatum($bis, $format = 'H:i:s');
- $extractVon = $datum->formatDatum($von, $format = 'Y-m-d');
- $extractBis = $datum->formatDatum($bis, $format = 'Y-m-d');
-
- $zscheck = checkZeitsperren($p, $user, $datum->formatDatum($von, $format='Y-m-d'));
- if( $zscheck['status'] === false ) {
- echo '' . $p->t("global/fehlerBeimSpeichernDerDaten") . ': ' . $zscheck['msg'] . '
';
- $saveerror = 1;
- }
- elseif (!$projects_of_user->checkProjectInCorrectTime($projekt_kurzbz, $datum->formatDatum($von, $format='Y-m-d'), $datum->formatDatum($bis, $format='Y-m-d')))
- {
- echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da angegebenes Anfangs und Enddatum nicht in den Projektzeitrahmen fällt.
';
- $saveerror = 1;
- }
- elseif ($datum->formatDatum($von, $format='Y-m-d') > $limitdatum || $datum->formatDatum($bis, $format='Y-m-d') > $limitdatum)
- {
- echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da angegebenes Anfangs oder Enddatum zu weit in der Zukunft liegt.
';
- $saveerror = 1;
- }
- elseif (!$projectphase->checkProjectphaseInCorrectTime($projektphase_id, $datum->formatDatum($von, $format='Y-m-d'), $datum->formatDatum($bis, $format='Y-m-d')))
- {
- echo '
'.$p->t("global/fehlerBeimSpeichernDerDaten").': - Eingabe nicht möglich, da angegebenes Anfangs und Enddatum nicht in den Projektphasenzeitrahmen fällt.