mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
exports: cleaning code
This commit is contained in:
parent
cae9dddac4
commit
374ad43df6
@ -96,7 +96,7 @@ class DateAggregator implements AggregatorInterface
|
|||||||
$fmt = 'IW'; break;
|
$fmt = 'IW'; break;
|
||||||
|
|
||||||
case 'year':
|
case 'year':
|
||||||
$fmt = 'YYYY'; $order = 'DESC'; break;
|
$fmt = 'YYYY'; $order = 'DESC'; break; // order DESC does not works !
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new RuntimeException(sprintf("The frequency data '%s' is invalid.", $data['frequency']));
|
throw new RuntimeException(sprintf("The frequency data '%s' is invalid.", $data['frequency']));
|
||||||
|
@ -12,16 +12,7 @@ use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
|||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Contracts\Translation\TranslatorInterface;
|
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||||
|
|
||||||
/**
|
final class DurationAggregator implements AggregatorInterface
|
||||||
* Les regroupements seront un nombre de mois, arrondi à l'unité la plus proche (donc
|
|
||||||
* - au dela de 15 jours => 1 mois,
|
|
||||||
* - jusqu'à 45 jours => 1 mois,
|
|
||||||
* 15 | 45 | 75
|
|
||||||
* --+----o----+----o----+----
|
|
||||||
* | 30 | 60 |
|
|
||||||
* etc.)
|
|
||||||
*/
|
|
||||||
class DurationAggregator implements AggregatorInterface
|
|
||||||
{
|
{
|
||||||
private TranslatorInterface $translator;
|
private TranslatorInterface $translator;
|
||||||
|
|
||||||
@ -49,7 +40,7 @@ class DurationAggregator implements AggregatorInterface
|
|||||||
return $this->translator->trans("duration 0 month");
|
return $this->translator->trans("duration 0 month");
|
||||||
}
|
}
|
||||||
|
|
||||||
return ''. $value . $this->translator->trans(' months');
|
return $value . $this->translator->trans(' months');
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,44 +81,15 @@ class DurationAggregator implements AggregatorInterface
|
|||||||
*/
|
*/
|
||||||
public function alterQuery(QueryBuilder $qb, $data)
|
public function alterQuery(QueryBuilder $qb, $data)
|
||||||
{
|
{
|
||||||
$qb
|
$qb->addSelect('
|
||||||
// OUI
|
(acp.closingDate - acp.openingDate +15) *12/365
|
||||||
->addSelect('
|
AS duration_aggregator'
|
||||||
(acp.closingDate - acp.openingDate +15) *12/365
|
);
|
||||||
AS duration_aggregator'
|
|
||||||
)
|
|
||||||
//->addSelect('DATE_DIFF(acp.closingDate, acp.openingDate) AS duration_aggregator')
|
|
||||||
//->addSelect('EXTRACT(month FROM acp.openingDate) AS duration_aggregator')
|
|
||||||
//->addSelect("DATE_SUB(acp.openingDate, 6, 'day') AS duration_aggregator")
|
|
||||||
|
|
||||||
// TODO adapter la fonction extract pour l'utiliser avec des intervals: extract(month from interval)
|
// TODO Pour avoir un interval plus précis (nécessaire ?):
|
||||||
// et ajouter une fonction custom qui calcule les intervals, comme doctrineum/date-interval
|
// adapter la fonction extract pour pouvoir l'utiliser avec des intervals: extract(month from interval)
|
||||||
// https://packagist.org/packages/doctrineum/date-interval#3.1.0
|
// et ajouter une fonction custom qui calcule plus précisément les intervals, comme doctrineum/date-interval
|
||||||
// (composer fait un conflit de dépendance)
|
// https://packagist.org/packages/doctrineum/date-interval#3.1.0 (mais composer fait un conflit de dépendance)
|
||||||
|
|
||||||
/*
|
|
||||||
->addSelect("
|
|
||||||
EXTRACT(
|
|
||||||
month FROM
|
|
||||||
DATE_INTERVAL(acp.closingDate, acp.openingDate)
|
|
||||||
)
|
|
||||||
AS duration_aggregator")
|
|
||||||
*/
|
|
||||||
|
|
||||||
// NON
|
|
||||||
//->addSelect("BETWEEN acp.openingDate AND acp.closingDate AS duration_aggregator")
|
|
||||||
//->addSelect("EXTRACT(month FROM DATE_SUB(acp.openingDate, 6, 'day')) AS duration_aggregator")
|
|
||||||
//->addSelect('EXTRACT(month FROM DATE_DIFF(acp.closingDate, acp.openingDate)) AS duration_aggregator')
|
|
||||||
/*
|
|
||||||
->addSelect('
|
|
||||||
( CASE
|
|
||||||
WHEN EXTRACT(day FROM DATE_DIFF(acp.closingDate, acp.openingDate)) > 15
|
|
||||||
THEN EXTRACT(month FROM DATE_DIFF(acp.closingDate, acp.openingDate)) +1
|
|
||||||
ELSE EXTRACT(month FROM DATE_DIFF(acp.closingDate, acp.openingDate))
|
|
||||||
END ) AS duration_aggregator
|
|
||||||
')
|
|
||||||
*/
|
|
||||||
;
|
|
||||||
|
|
||||||
$groupBy = $qb->getDQLPart('groupBy');
|
$groupBy = $qb->getDQLPart('groupBy');
|
||||||
|
|
||||||
|
@ -8,14 +8,7 @@ use Doctrine\ORM\QueryBuilder;
|
|||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Contracts\Translation\TranslatorInterface;
|
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||||
|
|
||||||
/**
|
final class RequestorAggregator implements AggregatorInterface
|
||||||
* les regroupements suivants seront effecturés:
|
|
||||||
* - le demandeur est un usager concerné
|
|
||||||
* - le demander est un usager, mais non concerné
|
|
||||||
* - le demandeur est un tiers
|
|
||||||
* - le parcours ne comporte pas de demandeur
|
|
||||||
*/
|
|
||||||
class RequestorAggregator implements AggregatorInterface
|
|
||||||
{
|
{
|
||||||
private TranslatorInterface $translator;
|
private TranslatorInterface $translator;
|
||||||
|
|
||||||
@ -43,9 +36,7 @@ class RequestorAggregator implements AggregatorInterface
|
|||||||
*/
|
*/
|
||||||
public function getQueryKeys($data): array
|
public function getQueryKeys($data): array
|
||||||
{
|
{
|
||||||
return [
|
return ['requestor_aggregator'];
|
||||||
'requestor_aggregator'
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -107,7 +98,7 @@ class RequestorAggregator implements AggregatorInterface
|
|||||||
$qb->groupBy('requestor_aggregator');
|
$qb->groupBy('requestor_aggregator');
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO 'order by' ne fonctionne pas, l'ordre n'est pas terrible
|
// TODO 'order by' does not works !
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -11,7 +11,7 @@ use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
|||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Contracts\Translation\TranslatorInterface;
|
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||||
|
|
||||||
class RequestorFilter implements FilterInterface
|
final class RequestorFilter implements FilterInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
private const REQUESTOR_CHOICES = [
|
private const REQUESTOR_CHOICES = [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user