Code Duplication    Length = 21-27 lines in 2 locations

src/DataSource/NetteDatabaseTableDataSource.php 1 location

@@ 128-148 (lines=21) @@
125
	 * @param  Filter\FilterDateRange $filter
126
	 * @return void
127
	 */
128
	public function applyFilterDateRange(Filter\FilterDateRange $filter)
129
	{
130
		$conditions = $filter->getCondition();
131
132
		$value_from = $conditions[$filter->getColumn()]['from'];
133
		$value_to = $conditions[$filter->getColumn()]['to'];
134
135
		if ($value_from) {
136
			$date_from = DateTimeHelper::tryConvertToDateTime($value_from, [$filter->getPhpFormat()]);
137
			$date_from->setTime(0, 0, 0);
138
139
			$this->data_source->where("DATE({$filter->getColumn()}) >= ?", $date_from->format('Y-m-d'));
140
		}
141
142
		if ($value_to) {
143
			$date_to = DateTimeHelper::tryConvertToDateTime($value_to, [$filter->getPhpFormat()]);
144
			$date_to->setTime(23, 59, 59);
145
146
			$this->data_source->where("DATE({$filter->getColumn()}) <= ?", $date_to->format('Y-m-d'));
147
		}
148
	}
149
150
151
	/**

src/DataSource/NetteDatabaseTableMssqlDataSource.php 1 location

@@ 40-66 (lines=27) @@
37
	 * @param  Filter\FilterDateRange $filter
38
	 * @return void
39
	 */
40
	public function applyFilterDateRange(Filter\FilterDateRange $filter)
41
	{
42
		$conditions = $filter->getCondition();
43
44
		$value_from = $conditions[$filter->getColumn()]['from'];
45
		$value_to = $conditions[$filter->getColumn()]['to'];
46
47
		if ($value_from) {
48
			$date_from = DateTimeHelper::tryConvertToDateTime($value_from, [$filter->getPhpFormat()]);
49
			$date_from->setTime(0, 0, 0);
50
51
			$this->data_source->where(
52
				"CONVERT(varchar(10), {$filter->getColumn()}, 112) >= ?",
53
				$date_from->format('Ymd')
54
			);
55
		}
56
57
		if ($value_to) {
58
			$date_to = DateTimeHelper::tryConvertToDateTime($value_to, [$filter->getPhpFormat()]);
59
			$date_to->setTime(23, 59, 59);
60
61
			$this->data_source->where(
62
				"CONVERT(varchar(10), {$filter->getColumn()}, 112) <= ?",
63
				$date_to->format('Ymd')
64
			);
65
		}
66
	}
67
}
68