mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-22 01:12:17 +00:00
Erweiterung Prüfung auf vorhandene Zeitsperren: ganzes Intervall statt ausschließlich vonTag
This commit is contained in:
@@ -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]).'<br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user