diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index 7e5396dad..98711dd1f 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -382,19 +382,28 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ $von = $_POST['vondatum']; $von2 = new DateTime($von); $von2 = $von2->format('Y-m-d'); + $bis = $_POST['bisdatum']; + $bis2= new DateTime($bis); + $bis2 = $bis2->format('Y-m-d'); $zeitsperre = new zeitsperre(); + $zsInterval = $zeitsperre->getDatesFromRange($von2, $bis2); - if ($zeitsperre->getSperreByDate($uid, $von2, null, zeitsperre::NUR_BLOCKIERENDE_ZEITSPERREN)) + foreach ($zsInterval as $day) { - foreach ($zeitsperre->result as $z) + if ($zeitsperre->getSperreByDate($uid, $day, null, zeitsperre::NUR_BLOCKIERENDE_ZEITSPERREN)) { - // Beim editieren nicht mit dem eigenen Eintrag kollidieren - if($_GET['type'] == 'edit_sperre' && $z->zeitsperre_id == $_GET['id']) - continue; + foreach ($zeitsperre->result as $z) + { + // 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]); + $typ = $z->zeitsperretyp_kurzbz; + $date = new DateTime($day); + $date = $date->format('d.m.Y'); + $error = true; + $error_msg .= $p->t('zeitsperre/zeitsperreEingetragen', [$date, $typ]).'
'; + } } } } diff --git a/include/zeitsperre.class.php b/include/zeitsperre.class.php index 6f00e57a4..bffddd142 100644 --- a/include/zeitsperre.class.php +++ b/include/zeitsperre.class.php @@ -642,5 +642,30 @@ class zeitsperre extends basis_db return true; } } + + /** + * liefert alle Tage eines Zeitintervalls + * + * @param $startDate Startdatum im Format Y-m-d + * @param $endDate Endedatum im Format Y-m-d + * @return $dateArray + */ + public function getDatesFromRange($startDate, $endDate) + { + $dateArray = array(); + + $interval = new DateInterval('P1D'); + + $realEnd = new DateTime($endDate); + $realEnd->add($interval); + + $period = new DatePeriod(new DateTime($startDate), $interval, $realEnd); + + foreach($period as $date) + { + $dateArray[] = $date->format('Y-m-d'); + } + return $dateArray; + } } ?>