mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-07 07:14:58 +00:00
exports: add condition with distinct alias on join clauses (wip)
This commit is contained in:
@@ -46,22 +46,27 @@ final class HouseholdPositionAggregator implements AggregatorInterface, ExportEl
|
||||
public function alterQuery(QueryBuilder $qb, $data)
|
||||
{
|
||||
$qb->resetDQLPart('from');
|
||||
$qb->from(HouseholdMember::class, 'hm');
|
||||
$qb->from(HouseholdMember::class, 'member');
|
||||
|
||||
$qb->join('hm.person', 'person');
|
||||
$qb->join('person.center', 'center');
|
||||
if (!in_array('person', $qb->getAllAliases(), true)) {
|
||||
$qb->join('member.person', 'person');
|
||||
}
|
||||
|
||||
if (!in_array('center', $qb->getAllAliases(), true)) {
|
||||
$qb->join('person.center', 'center');
|
||||
}
|
||||
|
||||
$qb->andWhere($qb->expr()->andX(
|
||||
$qb->expr()->lte('hm.startDate', ':date'),
|
||||
$qb->expr()->lte('member.startDate', ':date'),
|
||||
$qb->expr()->orX(
|
||||
$qb->expr()->isNull('hm.endDate'),
|
||||
$qb->expr()->gte('hm.endDate', ':date')
|
||||
$qb->expr()->isNull('member.endDate'),
|
||||
$qb->expr()->gte('member.endDate', ':date')
|
||||
)
|
||||
));
|
||||
|
||||
$qb->setParameter('date', $data['date_position']);
|
||||
|
||||
$qb->addSelect('IDENTITY(hm.position) AS household_position_aggregator');
|
||||
$qb->addSelect('IDENTITY(member.position) AS household_position_aggregator');
|
||||
|
||||
$groupBy = $qb->getDQLPart('groupBy');
|
||||
|
||||
|
Reference in New Issue
Block a user