diff --git a/src/Filter/CountryFilter.php b/src/Filter/CountryFilter.php new file mode 100644 index 0000000000..6bf5b9469a --- /dev/null +++ b/src/Filter/CountryFilter.php @@ -0,0 +1,43 @@ +setFilterFqcn(__CLASS__) + ->setProperty($propertyName) + ->setLabel($label) + ->setFormType(CountryType::class) + ; + } + + public function apply( + QueryBuilder $queryBuilder, + FilterDataDto $filterDataDto, + ?FieldDto $fieldDto, + EntityDto $entityDto + ): void { + $alias = $filterDataDto->getEntityAlias(); + $property = $filterDataDto->getProperty(); + $comparison = $filterDataDto->getComparison(); + $parameterName = $filterDataDto->getParameterName(); + $value = $filterDataDto->getValue(); + + $queryBuilder->andWhere(\sprintf('%s.%s %s (:%s)', $alias, $property, $comparison, $parameterName)) + ->setParameter($parameterName, $value) + ; + } +} diff --git a/src/Filter/CurrencyFilter.php b/src/Filter/CurrencyFilter.php new file mode 100644 index 0000000000..921f1161e5 --- /dev/null +++ b/src/Filter/CurrencyFilter.php @@ -0,0 +1,43 @@ +setFilterFqcn(__CLASS__) + ->setProperty($propertyName) + ->setLabel($label) + ->setFormType(CurrencyType::class) + ; + } + + public function apply( + QueryBuilder $queryBuilder, + FilterDataDto $filterDataDto, + ?FieldDto $fieldDto, + EntityDto $entityDto + ): void { + $alias = $filterDataDto->getEntityAlias(); + $property = $filterDataDto->getProperty(); + $comparison = $filterDataDto->getComparison(); + $parameterName = $filterDataDto->getParameterName(); + $value = $filterDataDto->getValue(); + + $queryBuilder->andWhere(\sprintf('%s.%s %s (:%s)', $alias, $property, $comparison, $parameterName)) + ->setParameter($parameterName, $value) + ; + } +} diff --git a/src/Filter/TimezoneFilter.php b/src/Filter/TimezoneFilter.php new file mode 100644 index 0000000000..ef9a5154e7 --- /dev/null +++ b/src/Filter/TimezoneFilter.php @@ -0,0 +1,43 @@ +setFilterFqcn(__CLASS__) + ->setProperty($propertyName) + ->setLabel($label) + ->setFormType(TimezoneType::class) + ; + } + + public function apply( + QueryBuilder $queryBuilder, + FilterDataDto $filterDataDto, + ?FieldDto $fieldDto, + EntityDto $entityDto + ): void { + $alias = $filterDataDto->getEntityAlias(); + $property = $filterDataDto->getProperty(); + $comparison = $filterDataDto->getComparison(); + $parameterName = $filterDataDto->getParameterName(); + $value = $filterDataDto->getValue(); + + $queryBuilder->andWhere(\sprintf('%s.%s %s (:%s)', $alias, $property, $comparison, $parameterName)) + ->setParameter($parameterName, $value) + ; + } +}