diff --git a/src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/FamilySituationFilter.php b/src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/FamilySituationFilter.php deleted file mode 100644 index e1a6c7529..000000000 --- a/src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/FamilySituationFilter.php +++ /dev/null @@ -1,55 +0,0 @@ -add('date_calc', DateType::class, [ - 'label' => 'Family composition(s) at this time', - 'data' => new DateTime(), - ]); - } - - public function describeAction($data, $format = 'string') - { - return ['Filtered by person\'s family situation']; - } - - public function getTitle() - { - return 'Filter by person\'s family situation'; - } -} diff --git a/src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/MaritalStatusFilter.php b/src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/MaritalStatusFilter.php new file mode 100644 index 000000000..985bfe741 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/MaritalStatusFilter.php @@ -0,0 +1,84 @@ +getDQLPart('where'); + + $clause = $qb->expr()->andX( + $qb->expr()->in('p.maritalStatus', ':maritalStatus'), + $qb->expr()->eq('p.maritalStatusDate', ':calc_date') + ); + + if ($where instanceof Andx) { + $where->add($clause); + } else { + $where = $qb->expr()->andX($clause); + } + + $qb->add('where', $where); + $qb->setParameter('maritalStatus', $data['maritalStatus']); + $qb->setParameter('maritalStatusDate', $data['calc_date']); + } + + public function applyOn() + { + return Declarations::PERSON_TYPE; + } + + public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder) + { + $builder->add('maritalStatus', EntityType::class, [ + 'class' => MaritalStatus::class, + 'choice_label' => function (MaritalStatus $ms) { + return $this->translatableStringHelper->localize( + $ms->getLabel() + ); + }, + 'multiple' => true, + 'expanded' => true + ]); + + $builder->add('date_calc', DateType::class, [ + 'label' => 'Marital status at this time', + 'data' => new DateTime(), + ]); + } + + public function describeAction($data, $format = 'string') + { + return ['Filtered by person\'s marital status']; + } + + public function getTitle() + { + return 'Filter by person\'s marital status'; + } +} diff --git a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml index e105dd45f..7cf7d34b9 100644 --- a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml @@ -400,6 +400,10 @@ Filtered by person\'s who have a residential address located at a thirdparty of Family composition: Composition familiale Family composition at this time: Composition familiale à cette date. +Filtered by person's marital status: Filtré par état matrimonial +Filter by person's marital status: Filtrer par état matrimonial à une certaine date. +Marital status at this time: État matrimonial à cette date. + Filter by entrusted child status: Filtrer les usagers qui sont "enfant confié" Filtered by entrusted child status: Uniquement les usagers qui sont "enfant confié"