mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-03-10 07:33:35 +00:00
This is the fix we are looking for regarding time-range queries.
This commit is contained in:
parent
cdc23ea732
commit
eaeec0bc02
@ -148,18 +148,19 @@ function SqlFilterFragment( $filter, $components, $property = null, $parameter =
|
||||
// }
|
||||
if ( isset($start) && isset($finish) ) {
|
||||
$sql .= ' AND (rrule IS NOT NULL OR dtstart IS NULL';
|
||||
$sql .= ' OR (dtstart < :time_range_end AND (dtend > :time_range_start ';
|
||||
$sql .= ' OR (dtend IS NULL AND dtstart < :time_range_end)))) ';
|
||||
$sql .= ' OR (dtstart < :time_range_end AND (dtend > :time_range_start OR (dtend IS NULL AND dtstart > :time_range_start))))';
|
||||
$params[':time_range_start'] = $start;
|
||||
$params[':time_range_end'] = $finish;
|
||||
}
|
||||
elseif ( isset($start) ) {
|
||||
$sql .= ' AND (rrule IS NOT NULL OR dtstart IS NULL';
|
||||
$sql .= ' OR (dtstart > :time_range_start)) ';
|
||||
$sql .= ' OR (dtend IS NULL AND dtstart > :time_range_start)';
|
||||
$sql .= ' OR dtend > :time_range_start) ';
|
||||
$params[':time_range_start'] = $start;
|
||||
}
|
||||
elseif ( isset($finish) ) {
|
||||
$sql .= ' AND (rrule IS NOT NULL OR dtstart IS NULL OR dtstart < :time_range_end) ';
|
||||
$sql .= ' AND (rrule IS NOT NULL OR dtstart IS NULL';
|
||||
$sql .= ' OR dtstart < :time_range_end) ';
|
||||
$params[':time_range_end'] = $finish;
|
||||
}
|
||||
$need_range_filter = array(new RepeatRuleDateTime($start),new RepeatRuleDateTime($finish));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user