Release 2.33.0 (#5438)

This commit is contained in:
Kevin Papst
2025-04-22 20:43:22 +02:00
committed by GitHub
parent a70c803158
commit e663cc2b02
58 changed files with 1404 additions and 899 deletions

View File

@@ -207,15 +207,22 @@ class TimesheetEditForm extends AbstractType
/** @var \DateTime|null $date */
$date = $event->getForm()->get('begin_date')->getData();
/** @var \DateTime|null $time */
$time = $event->getForm()->get('begin_time')->getData();
if ($date === null || $time === null) {
return;
}
// if the user did not change the time, make sure to keep the seconds
$seconds = 0;
if ($data->getBegin()?->format('H:i') === $time->format('H:i')) {
$seconds = $data->getBegin()->format('s') ?? 0;
}
// mutable datetime are a problem for doctrine
$newDate = clone $date;
$newDate->setTime($time->format('H'), $time->format('i'));
$newDate->setTime((int) $time->format('H'), (int) $time->format('i'), (int) $seconds);
if ($data->getBegin() === null || $data->getBegin()->getTimestamp() !== $newDate->getTimestamp()) {
$data->setBegin($newDate);
@@ -251,6 +258,7 @@ class TimesheetEditForm extends AbstractType
$timesheet = $event->getData();
$oldEnd = $timesheet->getEnd();
/** @var \DateTime|null $end */
$end = $event->getForm()->get('end_time')->getData();
if ($end === null || $end === false) {
$timesheet->setEnd(null);
@@ -267,8 +275,15 @@ class TimesheetEditForm extends AbstractType
if ($time === null) {
throw new \Exception('Cannot work with timesheets without start time');
}
// if the user did not change the time, make sure to keep the seconds
$seconds = 0;
if ($oldEnd !== null && $oldEnd->format('H:i') === $end->format('H:i')) {
$seconds = $oldEnd->format('s') ?? 0;
}
$newEnd = clone $time;
$newEnd->setTime($end->format('H'), $end->format('i'));
$newEnd->setTime((int) $end->format('H'), (int) $end->format('i'), (int) $seconds);
if ($newEnd < $time) {
$newEnd->modify('+ 1 day');