Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2d19313f authored by AVINASH GUSAIN's avatar AVINASH GUSAIN
Browse files

recurring event fix

parent 1d3233fe
Loading
Loading
Loading
Loading
Loading
+50 −0
Original line number Diff line number Diff line
@@ -31,3 +31,53 @@
 	}

 	/**

--- ./apps/dav/lib/CalDAV/Schedule/IMipPlugin.php	2022-06-30 10:22:42.346419100 +0530
+++ ./apps/dav/lib/CalDAV/Schedule/IMipPlugin-new.php	2022-06-30 10:23:55.506419100 +0530
@@ -419,23 +419,34 @@
 	 * @param VEvent $vevent
 	 */
 	private function generateWhenString(IL10N $l10n, VEvent $vevent) {
-		$dtstart = $vevent->DTSTART;
-		if (isset($vevent->DTEND)) {
-			$dtend = $vevent->DTEND;
-		} elseif (isset($vevent->DURATION)) {
-			$isFloating = $vevent->DTSTART->isFloating();
-			$dtend = clone $vevent->DTSTART;
+		$lastmodified=0;
+		foreach( $vevent as $vevent1){
+			$dtstamp= $vevent1->{'LAST-MODIFIED'};
+			$dtstampTime = strtotime($dtstamp);
+			if($dtstampTime>$lastmodified){
+				$lastmodified=$dtstampTime;
+				$dtStartFinal= $vevent1->DTSTART;
+				$dtEndtFinal= $vevent1->DTEND;
+				$durationFinal= $vevent1->DURATION;
+			}
+		}
+		$dtstart = $dtStartFinal;
+		if (isset($dtEndtFinal)) {
+			$dtend = $dtEndtFinal;
+		} elseif (isset($durationFinal)) {
+			$isFloating = $dtStartFinal->isFloating();
+			$dtend = clone $dtStartFinal;
 			$endDateTime = $dtend->getDateTime();
-			$endDateTime = $endDateTime->add(DateTimeParser::parse($vevent->DURATION->getValue()));
+			$endDateTime = $endDateTime->add(DateTimeParser::parse($durationFinal->getValue()));
 			$dtend->setDateTime($endDateTime, $isFloating);
-		} elseif (!$vevent->DTSTART->hasTime()) {
-			$isFloating = $vevent->DTSTART->isFloating();
-			$dtend = clone $vevent->DTSTART;
+		} elseif (!$dtStartFinal->hasTime()) {
+			$isFloating = $dtStartFinal->isFloating();
+			$dtend = clone $dtStartFinal;
 			$endDateTime = $dtend->getDateTime();
 			$endDateTime = $endDateTime->modify('+1 day');
 			$dtend->setDateTime($endDateTime, $isFloating);
 		} else {
-			$dtend = clone $vevent->DTSTART;
+			$dtend = clone $dtStartFinal;
 		}

 		$isAllDay = $dtstart instanceof Property\ICalendar\Date;