From d73537beac1c0ea597af07f2d21ec2a519f080c9 Mon Sep 17 00:00:00 2001 From: Peter Thienel <thienel@data-quest.de> Date: Tue, 19 Mar 2024 09:20:24 +0100 Subject: [PATCH] pipline fixed, re #3795 --- .../calendar/CalendarDateAssignment.class.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/models/calendar/CalendarDateAssignment.class.php b/lib/models/calendar/CalendarDateAssignment.class.php index da4761d426a..8eb536f90f7 100644 --- a/lib/models/calendar/CalendarDateAssignment.class.php +++ b/lib/models/calendar/CalendarDateAssignment.class.php @@ -217,6 +217,10 @@ class CalendarDateAssignment extends SimpleORMap implements Event bool $with_declined = false ) : array { + // one whole day as minimum (begin and end time stamp at the same day) + $begin->modify('midnight'); + $end->modify('tomorrow -1 second'); + $sql = "JOIN `calendar_dates` ON calendar_date_id = `calendar_dates`.`id` WHERE @@ -254,8 +258,8 @@ class CalendarDateAssignment extends SimpleORMap implements Event $e_expire = $event->getExpire(); $cal_start = DateTimeImmutable::createFromMutable($m_start); - $cal_end = DateTimeImmutable::createFromMutable($m_start); - $cal_noon = $cal_start->setTime(12, 0); + $cal_end = DateTimeImmutable::createFromMutable($m_start)->modify('tomorrow -1 second'); + $cal_noon = $cal_start->modify('noon'); // single events or first event if ( ($e_start >= $cal_start && $e_end <= $cal_end) @@ -265,9 +269,8 @@ class CalendarDateAssignment extends SimpleORMap implements Event ) { // exception for first event or single event if (!$event->calendar_date->exceptions->findOneBy('date', $cal_start->format('Y-m-d')) - && !isset($events_created[$event->calendar_date->id]) - && !$event->calendar_date->repetition_type) { - $events_created[$event->calendar_date->id] = $event; + && !isset($events_created[$event->calendar_date->id])) { + $events_created[$event->calendar_date->id . '_' . $event->calendar_date->begin] = $event; } } elseif ($e_expire > $cal_start) { $events_created = array_merge($events_created, self::getRepetition($event, $cal_noon, true)); -- GitLab