Fix subscribers without segments count in subscribers filter
[MAILPOET-3164]
This commit is contained in:
committed by
Veljko V
parent
8456581695
commit
b7914a3ff6
@ -57,8 +57,13 @@ class SegmentSubscribersRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function getSubscribersWithoutSegmentCount(): int {
|
public function getSubscribersWithoutSegmentCount(): int {
|
||||||
|
$queryBuilder = $this->getSubscribersWithoutSegmentCountQuery();
|
||||||
|
return (int)$queryBuilder->getQuery()->getSingleScalarResult();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getSubscribersWithoutSegmentCountQuery(): \MailPoetVendor\Doctrine\ORM\QueryBuilder {
|
||||||
$queryBuilder = $this->entityManager->createQueryBuilder();
|
$queryBuilder = $this->entityManager->createQueryBuilder();
|
||||||
return (int)$queryBuilder
|
return $queryBuilder
|
||||||
->select('COUNT(DISTINCT s) AS subscribersCount')
|
->select('COUNT(DISTINCT s) AS subscribersCount')
|
||||||
->from(SubscriberEntity::class, 's')
|
->from(SubscriberEntity::class, 's')
|
||||||
->leftJoin('s.subscriberSegments', 'ssg')
|
->leftJoin('s.subscriberSegments', 'ssg')
|
||||||
@ -69,8 +74,7 @@ class SegmentSubscribersRepository {
|
|||||||
->andWhere('s.deletedAt IS NULL')
|
->andWhere('s.deletedAt IS NULL')
|
||||||
->andWhere('(ssg.status != :statusSubscribed OR ssg.id IS NULL OR sg.deletedAt IS NOT NULL)')
|
->andWhere('(ssg.status != :statusSubscribed OR ssg.id IS NULL OR sg.deletedAt IS NOT NULL)')
|
||||||
->andWhere('sg2.id IS NULL')
|
->andWhere('sg2.id IS NULL')
|
||||||
->setParameter('statusSubscribed', SubscriberEntity::STATUS_SUBSCRIBED)
|
->setParameter('statusSubscribed', SubscriberEntity::STATUS_SUBSCRIBED);
|
||||||
->getQuery()->getSingleScalarResult();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function loadSubscriberIdsInSegment(int $segmentId, array $candidateIds = null): array {
|
private function loadSubscriberIdsInSegment(int $segmentId, array $candidateIds = null): array {
|
||||||
|
@ -233,12 +233,14 @@ class SubscriberListingRepository extends ListingRepository {
|
|||||||
|
|
||||||
$queryBuilder = clone $this->queryBuilder;
|
$queryBuilder = clone $this->queryBuilder;
|
||||||
$this->applyFromClause($queryBuilder);
|
$this->applyFromClause($queryBuilder);
|
||||||
|
$subscribersWithoutSegmentQuery = $this->segmentSubscribersRepository->getSubscribersWithoutSegmentCountQuery();
|
||||||
|
|
||||||
if ($group) {
|
if ($group) {
|
||||||
$this->applyGroup($queryBuilder, $group);
|
$this->applyGroup($queryBuilder, $group);
|
||||||
|
$this->applyGroup($subscribersWithoutSegmentQuery, $group);
|
||||||
}
|
}
|
||||||
|
|
||||||
$subscribersWithoutSegment = $this->segmentSubscribersRepository->getSubscribersWithoutSegmentCount();
|
$subscribersWithoutSegment = $subscribersWithoutSegmentQuery->getQuery()->getSingleScalarResult();
|
||||||
$subscribersWithoutSegmentLabel = sprintf(
|
$subscribersWithoutSegmentLabel = sprintf(
|
||||||
WPFunctions::get()->__('Subscribers without a list (%s)', 'mailpoet'),
|
WPFunctions::get()->__('Subscribers without a list (%s)', 'mailpoet'),
|
||||||
number_format((float)$subscribersWithoutSegment)
|
number_format((float)$subscribersWithoutSegment)
|
||||||
|
Reference in New Issue
Block a user