Feature: [export] filter accompanying period which has no action - work

This commit is contained in:
Julien Fastré 2022-11-02 13:44:04 +01:00
parent 7f9e8c5a7b
commit e6553e71ee
2 changed files with 5 additions and 9 deletions

View File

@ -12,10 +12,10 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Export\FilterInterface; use Chill\MainBundle\Export\FilterInterface;
use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork;
use Chill\PersonBundle\Export\Declarations; use Chill\PersonBundle\Export\Declarations;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use function in_array;
class HasNoActionFilter implements FilterInterface class HasNoActionFilter implements FilterInterface
{ {
@ -24,13 +24,9 @@ class HasNoActionFilter implements FilterInterface
return null; return null;
} }
public function alterQuery(QueryBuilder $qb, $data) public function alterQuery(QueryBuilder $qb, $data): void
{ {
if (!in_array('acpw', $qb->getAllAliases(), true)) { $qb->andWhere('NOT EXISTS (SELECT 1 FROM ' . AccompanyingPeriodWork::class . ' work WHERE work.accompanyingPeriod = acp)');
$qb->join('acp.works', 'acpw');
}
$qb->andWhere('COUNT(acp.works) IS NULL');
} }
public function applyOn(): string public function applyOn(): string
@ -38,7 +34,7 @@ class HasNoActionFilter implements FilterInterface
return Declarations::ACP_TYPE; return Declarations::ACP_TYPE;
} }
public function buildForm(FormBuilderInterface $builder) public function buildForm(FormBuilderInterface $builder): void
{ {
// no form // no form
} }

View File

@ -569,7 +569,7 @@ Filter by which has no referrer: Filtrer les parcours sans référent
"Filtered acp which has no referrer on date: %date%": "Filtré les parcours sans référent à cette date: %date%" "Filtered acp which has no referrer on date: %date%": "Filtré les parcours sans référent à cette date: %date%"
Has no referrer on this date: N'a pas de référent à cette date Has no referrer on this date: N'a pas de référent à cette date
Filter by which has no action: Filtrer les parcours qui nont pas dactions Filter by which has no action: Filtrer les parcours qui nont pas dactions
Filtered acp which has no actions: Filtré les parcours qui n'ont pas d'actions Filtered acp which has no actions: 'Filtré: uniquement les parcours qui n''ont pas d''actions'
Group by number of actions: Grouper les parcours par nombre dactions Group by number of actions: Grouper les parcours par nombre dactions
Filter by creator: Filtrer les parcours par créateur Filter by creator: Filtrer les parcours par créateur
'Filtered by creator: only %creators%': 'Filtré par créateur: uniquement %creators%' 'Filtered by creator: only %creators%': 'Filtré par créateur: uniquement %creators%'