HasNoActivityFilter (in activity)

This commit is contained in:
Mathieu Jaumotte 2022-10-31 16:10:24 +01:00 committed by Julien Fastré
parent 0e553594a0
commit 6d0622aa38
2 changed files with 17 additions and 7 deletions

View File

@ -11,10 +11,12 @@ declare(strict_types=1);
namespace Chill\ActivityBundle\Export\Filter\ACPFilters;
use Chill\ActivityBundle\Entity\Activity;
use Chill\MainBundle\Export\FilterInterface;
use Chill\PersonBundle\Export\Declarations;
use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormBuilderInterface;
use Doctrine\ORM\Query\Expr;
class HasNoActivityFilter implements FilterInterface
{
@ -25,11 +27,19 @@ class HasNoActivityFilter implements FilterInterface
public function alterQuery(QueryBuilder $qb, $data)
{
if (!in_array('activity', $qb->getAllAliases(), true)) {
$qb->join(Activity::class, 'activity', Expr\Join::WITH, 'activity.accompanyingPeriod = acp');
}
$qb
->andWhere(
$qb->expr()->in('', ':')
)
->setParameter('', $data[]);
//->andWhere('COUNT(acp.activities) IS NULL')
//TODO check this:
->andWhere('
NOT EXISTS (
SELECT 1 FROM '. Activity::class .' activity
WHERE activity.accompanyingPeriod = acp
)
');
}
public function applyOn(): string
@ -39,13 +49,12 @@ class HasNoActivityFilter implements FilterInterface
public function buildForm(FormBuilderInterface $builder)
{
$builder->add();
//no form needed
}
public function describeAction($data, $format = 'string'): array
{
return ['', [
]];
return ['Filtered acp which has no activities'];
}
public function getTitle(): string

View File

@ -278,6 +278,7 @@ Filter activity by userscope: Filtrer les activités par service du créateur
Accepted userscope: Services
Filter acp which has no activity: Filtrer les parcours qui nont pas dactivité
Filtered acp which has no activities: Filtrés les parcours qui n'ont pas d'activités
Group acp by activity number: Grouper les parcours par nombre dactivité
Group activity by sentreceived: Grouper les activités par envoyé / reçu