mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Fehler in der Caldav Schnittstelle behoben bei der die Termine nicht immer korrekt exportiert wurden wenn zur selben Zeit ein LVPlan Eintrag und eine Reservierung vorhanden ist
This commit is contained in:
@@ -2438,6 +2438,8 @@ class wochenplan extends basis_db
|
||||
'Description'=>$description,
|
||||
'dtstart'=>$start_date_time_ical,
|
||||
'dtend'=>$end_date_time_ical,
|
||||
'reservierung'=>$this->std_plan[$i][$j][$idx]->reservierung,
|
||||
'reservierung_id'=>($this->std_plan[$i][$j][$idx]->reservierung?$this->std_plan[$i][$j][$idx]->stundenplan_id:''),
|
||||
'updateamum'=>$this->std_plan[$i][$j][$idx]->updateamum,
|
||||
'data'=>'BEGIN:VEVENT'.$this->crlf
|
||||
.'UID:'.$UID.$this->crlf
|
||||
@@ -2488,7 +2490,8 @@ class wochenplan extends basis_db
|
||||
$lektor1 = $this->std_plan[$tag][$stunde][$idx]->lektor;
|
||||
$lektor2 = $this->std_plan[$tag][$stunde][$idx1]->lektor;
|
||||
|
||||
if($unr1==$unr2 && ($ort1==$ort2 || $lektor1==$lektor2))
|
||||
if($unr1==$unr2 && ($ort1==$ort2 || $lektor1==$lektor2)
|
||||
&& !$this->std_plan[$tag][$stunde][$idx]->reservierung && !$this->std_plan[$tag][$stunde][$idx1]->reservierung)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
|
||||
@@ -211,7 +211,7 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend
|
||||
foreach($val as $row)
|
||||
{
|
||||
//einzelnen Eintrag holen
|
||||
if($row['dtstart']==$dtstart && $row['unr'][0]==$unr)
|
||||
if($row['dtstart']==$dtstart && ($row['unr'][0]==$unr) || $unr=='R'.$row['reservierung_id'])
|
||||
{
|
||||
return $row;
|
||||
}
|
||||
@@ -221,6 +221,7 @@ class MySabre_CalDAV_Backend extends \Sabre\CalDAV\Backend\AbstractBackend
|
||||
$data=array_merge($data, $val);
|
||||
}
|
||||
$endtime = microtime(true);
|
||||
//error_log("\n\nDATA".print_r($data,true));
|
||||
//error_log("getCalendarData time:".($endtime-$starttime));
|
||||
//$data.="\nEND:VCALENDAR";
|
||||
return $data;
|
||||
@@ -280,9 +281,16 @@ END:VTIMEZONE\n".$event."\nEND:VCALENDAR";
|
||||
$return = array();
|
||||
foreach($data as $row)
|
||||
{
|
||||
// Reservierungen werden mit einem R markiert und mit der ReservierungID da sonst
|
||||
// Termine verloren gehen koennen wenn zur selben Zeit eine Reservierung und ein LVPlan Eintrag vorhanden ist
|
||||
if($row['reservierung'])
|
||||
$uri = $row['dtstart'].'-R'.$row['reservierung_id'];
|
||||
else
|
||||
$uri = $row['dtstart'].'-'.$row['unr'][0];
|
||||
|
||||
$return[] = array("id"=>$row['UID'],
|
||||
"calendardata"=>$this->makeCal($row['data']),
|
||||
"uri"=>$row['dtstart'].'-'.$row['unr'][0],
|
||||
"uri"=>$uri,
|
||||
"lastmodified"=>$row['updateamum'],
|
||||
"etag"=>'"'.$row['UID'].'"',
|
||||
"calendarid"=>$calendarId);
|
||||
|
||||
Reference in New Issue
Block a user