Commit b7b1400b authored by Адлан Шамавов's avatar Адлан Шамавов
Browse files

fix: Переделан фильтр DateRange

parent 12cf82e8
Loading
Loading
Loading
Loading
+17 −4
Original line number Diff line number Diff line
@@ -5,16 +5,29 @@ declare(strict_types=1);
namespace IQDEV\Packages\DoctrineHttpFilter\Filter;

use Doctrine\ORM\QueryBuilder;
use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;

final class DateRange extends HttpFilter
{
    /**  @throws FilterParameterValueIsNullException */
    public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder
    {
        if (! isset($this->getHttpValue()['from']) && ! isset($this->getHttpValue()['to'])) {
            throw new FilterParameterValueIsNullException($this->field);
        }

        if (isset($this->getHttpValue()['from'])) {
            $queryBuilder->where(
            'strftime(\'%Y-%m-%d\', ' . $this->getColumn() . ') >= \'' . $this->getHttpValue()['from'] . '\' AND ' .
            'strftime(\'%Y-%m-%d\', ' . $this->getColumn() . ') >= \'' . $this->getHttpValue()['from'] . '\'',
            );
        }

        if (isset($this->getHttpValue()['to'])) {
            $queryBuilder->andWhere(
                'strftime(\'%Y-%m-%d\', ' . $this->getColumn() . ') <= \'' . $this->getHttpValue()['to'] . '\'',
            );
        }

        return $queryBuilder;
    }