Use Doctrine in Newsletter::setStatus()

[MAILPOET-2946]
This commit is contained in:
Jan Lysý
2020-10-19 19:01:18 +02:00
committed by Veljko V
parent 4843c124ef
commit d5aac0778d
4 changed files with 142 additions and 85 deletions

View File

@ -322,6 +322,25 @@ class NewslettersRepository extends Repository {
return count($ids);
}
public function existsNotificationHistory(NewsletterEntity $newsletter): bool {
$result = $this->entityManager->createQueryBuilder()
->select('n')
->from(NewsletterEntity::class, 'n')
->join('n.queues', 'q')
->join('q.task', 't')
->where('n.parent = :parent')
->andWhere('n.type = :type')
->andWhere('n.status = :status')
->andWhere('t.status != :taskStatus')
->setParameter('parent', $newsletter)
->setParameter('type', NewsletterEntity::TYPE_NOTIFICATION_HISTORY)
->setParameter('status', NewsletterEntity::STATUS_SENDING)
->setParameter('taskStatus', ScheduledTaskEntity::STATUS_PAUSED)
->setMaxResults(1)
->getQuery()->execute();
return count($result) > 0;
}
public function prefetchOptions(array $newsletters) {
$this->entityManager->createQueryBuilder()
->select('PARTIAL n.{id}, o, opf')