| Current Path : /var/www/v3.cesa.co.za/src/UserBundle/Repository/ |
| Current File : /var/www/v3.cesa.co.za/src/UserBundle/Repository/UserFieldRepository.php |
<?php
namespace App\UserBundle\Repository;
use App\UserBundle\Entity\UserList;
/**
* UserFieldRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class UserFieldRepository extends \Doctrine\ORM\EntityRepository {
/**
* Get the user field list query
*
* @param array $conf
* @return Object
*/
public function getSiteListQuery($conf = array()) {
$qb = $this->createQueryBuilder('ug')
->where('1 = 1');
if (isset($conf['user_list']) && is_object($conf['user_list'])) {
$conf['company_id'] = $conf['user_list']->getCompanyId();
}
if (!isset($conf['user_type_id'])) {
$conf['user_type_id'] = '';
}
if (isset($conf['company_id']) && strlen($conf['company_id']) > 0) {
$users = $this->getEntityManager()->getRepository(UserList::class)->findBySearchCompany('', $conf['company_id'], array('user_type_id' => $conf['user_type_id']));
$userIDArray = array();
foreach ($users as $user) {
// echo $user->getId() . '<br />';
$userIDArray[] = $user->getId();
}
$qb = $qb->andWhere('ug.created_by IN (:userIDs)')->setParameter('userIDs', $userIDArray);
}
if ((isset($conf['mobile']) && $conf['mobile']) || (isset($conf['e_mail']) && $conf['e_mail'])) {
$qb->join('ug.user_list', 'ul');
}
if (isset($conf['mobile']) && $conf['mobile']) {
$qb->join('ul.user_tel_no_mobile', 'ulm')
->andWhere('ulm.tel_fax_number <> :telNum')->setParameter('telNum', '');
} elseif (isset($conf['e_mail']) && $conf['e_mail']) {
$qb->join('ul.user_e_mail_address', 'uem')
->andWhere('uem.e_mail_address <> :eMail')->setParameter('eMail', '');
}
if (isset($conf['include_ids']) && is_array($conf['include_ids']) && count($conf['include_ids']) > 0) {
$qb->orWhere('ug.id IN (:includeIds)')->setParameter('includeIds', $conf['include_ids']);
}
if (isset($conf['search_text']) && strlen($conf['search_text']) > 0) {
$qb = $qb->andWhere('ug.field_name LIKE :searchText')->setParameter('searchText', '%' . $conf['search_text'] . '%');
}
$qb->orderBy('ug.field_name', 'ASC');
if (isset($conf['return_qb']) && $conf['return_qb']) {
return $qb;
}
return $qb->getQuery();
}
/**
* Get the user fields
*
* @param array $conf
* @return array
*/
public function findForSelect($conf = array()) {
return $this->getSiteListQuery($conf)->execute();
}
}