| Current Path : /var/www/v3.cesa.co.za/src/ContactBundle/Repository/ |
| Current File : /var/www/v3.cesa.co.za/src/ContactBundle/Repository/MessageRecipientRepository.php |
<?php
namespace App\ContactBundle\Repository;
use Doctrine\ORM\EntityRepository;
use App\ContactBundle\Entity\Message;
use App\UserBundle\Entity\UserList;
/**
* Message Recipient Repository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class MessageRecipientRepository extends EntityRepository {
/**
* Get all e-mail recipients report
*
* @param array $conf
* @return Object
*/
public function getSiteListQuery($conf = array()) {
$qb = $this->createQueryBuilder('mr')
->where('1 = 1');
if (isset($conf['message']) && is_object($conf['message'])) {
$qb = $qb->andWhere('mr.message = :message')->setParameter('message', $conf['message']);
}
$qb = $qb->orderBy('mr.date_sent', 'DESC');
return $qb->getQuery();
}
/**
* Get recipients for a
*
* @param array $smsMessageTypes
* @return array
*/
public function getMessageRecipients(Message $message) {
$qb = $this->createQueryBuilder('mr')
->leftJoin('mr.message_error', 'me')
->where('mr.message = :message')->setParameter('message', $message)
->andWhere('mr.sent = :sent')->setParameter('sent', false)
->andWhere('me.id IS NULL')
;
$query = $qb->getQuery();
return $query->execute();
}
/**
* Clear all unsent messages
*/
public function clearQueue($errorIdSelect) {
$errorIdSelectArr = array('-1');
foreach ($errorIdSelect as $errorId) {
$errorIdSelectArr[] = $errorId['id'];
}
$qb = $this->createQueryBuilder('mr');
$qb->delete()
->where($qb->expr()->notIn('mr.id', $errorIdSelectArr))
->andWhere('mr.sent = :sent')->setParameter('sent', 0)
;
$query = $qb->getQuery();
return $query->execute();
}
/**
* Get recipients for a
*
* @param array $smsMessageTypes
* @return array
*/
public function findByMessageUser(Message $message, UserList $userList) {
$qb = $this->createQueryBuilder('mr')
->join('mr.to_user', 'tu')
->where('mr.message = :message')->setParameter('message', $message)
->andWhere('tu.id = :userListId')->setParameter('userListId', $userList->getId())
->setMaxResults(1)
;
$query = $qb->getQuery();
return $query->getOneOrNullResult();
}
}