|
|
@@ -2,6 +2,7 @@ |
|
|
|
|
|
|
|
namespace Lc\SovBundle\Repository\Reminder; |
|
|
|
|
|
|
|
use Lc\SovBundle\Model\User\UserInterface; |
|
|
|
use Lc\SovBundle\Repository\AbstractStore; |
|
|
|
|
|
|
|
class ReminderStore extends AbstractStore implements ReminderStoreInterface |
|
|
@@ -19,99 +20,125 @@ class ReminderStore extends AbstractStore implements ReminderStoreInterface |
|
|
|
$query = $this->query->create(); |
|
|
|
} |
|
|
|
|
|
|
|
$query->filterDone(); |
|
|
|
$query->filterByDone(); |
|
|
|
|
|
|
|
if (array_key_exists('user', $params)) { |
|
|
|
$query->filterUser($params['user']); |
|
|
|
$query |
|
|
|
->filterByUser($params['user']) |
|
|
|
->groupBy('.id'); |
|
|
|
} |
|
|
|
|
|
|
|
if (array_key_exists('crudAction', $params)) { |
|
|
|
$query->filterCrudAction($params['crudAction']); |
|
|
|
$query->filterByCrudAction($params['crudAction']); |
|
|
|
} |
|
|
|
|
|
|
|
if (array_key_exists('crudControllerFqcn', $params)) { |
|
|
|
$query->filterCrudControllerFqcn($params['crudControllerFqcn']); |
|
|
|
$query->filterByCrudControllerFqcn($params['crudControllerFqcn']); |
|
|
|
} |
|
|
|
|
|
|
|
if (array_key_exists('entityId', $params)) { |
|
|
|
$query->filterEntityId($params['entityId']); |
|
|
|
$query->filterByEntityId($params['entityId']); |
|
|
|
} |
|
|
|
|
|
|
|
$query->orderDefault(); |
|
|
|
$query->orderBy('.dateReminder'); |
|
|
|
|
|
|
|
return $query->find(); |
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
|
|
|
|
|
|
public function getRemindersByUser($user) |
|
|
|
{ |
|
|
|
$reminderRepo = $this->em->getRepository(ReminderInterface::class); |
|
|
|
|
|
|
|
|
|
|
|
$reminders = $reminderRepo->findByUser($user); |
|
|
|
|
|
|
|
$entitiesRepo = array(); |
|
|
|
$entitiesConfig = array(); |
|
|
|
if (count($reminders) > 0) { |
|
|
|
foreach ($reminders as $reminder) { |
|
|
|
if ($reminder->getEntityName()) { |
|
|
|
if (!isset($entitiesConfig[$reminder->getEntityName()])) { |
|
|
|
$entitiesConfig[$reminder->getEntityName()] = $this->configManager->getEntityConfig($reminder->getEntityName()); |
|
|
|
} |
|
|
|
if ($reminder->getEntityAction() == 'edit' || $reminder->getEntityAction() == 'show') { |
|
|
|
if (!isset($entitiesRepo[$reminder->getEntityName()])) { |
|
|
|
$entitiesRepo[$reminder->getEntityName()] = $this->em->getRepository($entitiesConfig[$reminder->getEntityName()]['class']); |
|
|
|
} |
|
|
|
|
|
|
|
if ($reminder->getEntityId()) { |
|
|
|
$reminder->relatedPage = $entitiesRepo[$reminder->getEntityName()]->find($reminder->getEntityId())->__toString(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
$reminder->relatedPage = 'Liste de ' . $entitiesConfig[$reminder->getEntityName()]['label']; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return $reminders; |
|
|
|
} |
|
|
|
// findByUser |
|
|
|
public function getByUser(UserInterface $user): array |
|
|
|
{ |
|
|
|
$query = $this->query->create(); |
|
|
|
|
|
|
|
*/ |
|
|
|
$query |
|
|
|
->filterByUser($user) |
|
|
|
->filterIsNotDone() |
|
|
|
->orderBy('.dateReminder') |
|
|
|
->groupBy('.id'); |
|
|
|
|
|
|
|
/* |
|
|
|
public function findByUser($user) |
|
|
|
{ |
|
|
|
$qb = $this->createQueryBuilder('e') |
|
|
|
->leftJoin('e.users', 'u') |
|
|
|
->having('COUNT(u.id) = 0') |
|
|
|
->orHaving(':user MEMBER OF e.users') |
|
|
|
->andWhere('e.done = 0') |
|
|
|
->setParameter('user', $user) |
|
|
|
->orderBy('e.dateReminder', 'ASC') |
|
|
|
->groupBy('e.id'); |
|
|
|
|
|
|
|
return $qb->getQuery()->getResult(); |
|
|
|
return $query->find(); |
|
|
|
} |
|
|
|
|
|
|
|
public function findByEasyAdminConfigAndUser($crudAction, $crudControllerFqcn, $user, $entityId = null) |
|
|
|
{ |
|
|
|
$qb = $this->createQueryBuilder('e'); |
|
|
|
$qb->leftJoin('e.users', 'u'); |
|
|
|
$qb->having('COUNT(u.id) = 0'); |
|
|
|
$qb->orHaving(':user MEMBER OF e.users'); |
|
|
|
$qb->andWhere('e.done = 0'); |
|
|
|
$qb->andWhere('e.crudAction LIKE :crudAction'); |
|
|
|
$qb->andWhere('e.crudControllerFqcn LIKE :entity'); |
|
|
|
$qb->setParameter('crudAction', $crudAction); |
|
|
|
$qb->setParameter('crudControllerFqcn', $crudControllerFqcn); |
|
|
|
$qb->setParameter('user', $user); |
|
|
|
// findByEasyAdminConfigAndUser |
|
|
|
public function getByEasyAdminConfigAndUser( |
|
|
|
$crudAction, |
|
|
|
$crudControllerFqcn, |
|
|
|
UserInterface $user, |
|
|
|
$entityId = null |
|
|
|
): array { |
|
|
|
$query = $this->query->create(); |
|
|
|
|
|
|
|
$query |
|
|
|
->filterByUser($user) |
|
|
|
->filterLikeCrudAction($crudAction) |
|
|
|
->filterLikeCrudControllerFqcn($crudControllerFqcn) |
|
|
|
->filterIsNotDone(); |
|
|
|
|
|
|
|
if ($entityId) { |
|
|
|
$qb->andWhere('e.entityId LIKE :id'); |
|
|
|
$qb->setParameter('entityId', $entityId); |
|
|
|
$query |
|
|
|
->filterLikeEntityId($entityId); |
|
|
|
} |
|
|
|
$qb->orderBy('e.dateReminder', 'ASC'); |
|
|
|
$qb->groupBy('e.id'); |
|
|
|
$query |
|
|
|
->orderBy('.dateReminder') |
|
|
|
->groupBy('.id'); |
|
|
|
|
|
|
|
return $qb->getQuery()->getResult(); |
|
|
|
}*/ |
|
|
|
return $query->find(); |
|
|
|
} |
|
|
|
|
|
|
|
// public function findByEasyAdminConfigAndUser($crudAction, $crudControllerFqcn, $user, $entityId = null) |
|
|
|
// { |
|
|
|
// $qb = $this->createQueryBuilder('e'); |
|
|
|
// $qb->leftJoin('e.users', 'u'); |
|
|
|
// $qb->having('COUNT(u.id) = 0'); |
|
|
|
// $qb->orHaving(':user MEMBER OF e.users'); |
|
|
|
// $qb->andWhere('e.done = 0'); |
|
|
|
// $qb->andWhere('e.crudAction LIKE :crudAction'); |
|
|
|
// $qb->andWhere('e.crudControllerFqcn LIKE :entity'); |
|
|
|
// $qb->setParameter('crudAction', $crudAction); |
|
|
|
// $qb->setParameter('crudControllerFqcn', $crudControllerFqcn); |
|
|
|
// $qb->setParameter('user', $user); |
|
|
|
// if ($entityId) { |
|
|
|
// $qb->andWhere('e.entityId LIKE :id'); |
|
|
|
// $qb->setParameter('entityId', $entityId); |
|
|
|
// } |
|
|
|
// $qb->orderBy('e.dateReminder', 'ASC'); |
|
|
|
// $qb->groupBy('e.id'); |
|
|
|
// |
|
|
|
// return $qb->getQuery()->getResult(); |
|
|
|
// } |
|
|
|
} |
|
|
|
/* |
|
|
|
|
|
|
|
public function getRemindersByUser($user) |
|
|
|
{ |
|
|
|
$reminderRepo = $this->em->getRepository(ReminderInterface::class); |
|
|
|
|
|
|
|
|
|
|
|
$reminders = $reminderRepo->findByUser($user); |
|
|
|
|
|
|
|
$entitiesRepo = array(); |
|
|
|
$entitiesConfig = array(); |
|
|
|
if (count($reminders) > 0) { |
|
|
|
foreach ($reminders as $reminder) { |
|
|
|
if ($reminder->getEntityName()) { |
|
|
|
if (!isset($entitiesConfig[$reminder->getEntityName()])) { |
|
|
|
$entitiesConfig[$reminder->getEntityName()] = $this->configManager->getEntityConfig($reminder->getEntityName()); |
|
|
|
} |
|
|
|
if ($reminder->getEntityAction() == 'edit' || $reminder->getEntityAction() == 'show') { |
|
|
|
if (!isset($entitiesRepo[$reminder->getEntityName()])) { |
|
|
|
$entitiesRepo[$reminder->getEntityName()] = $this->em->getRepository($entitiesConfig[$reminder->getEntityName()]['class']); |
|
|
|
} |
|
|
|
|
|
|
|
if ($reminder->getEntityId()) { |
|
|
|
$reminder->relatedPage = $entitiesRepo[$reminder->getEntityName()]->find($reminder->getEntityId())->__toString(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
$reminder->relatedPage = 'Liste de ' . $entitiesConfig[$reminder->getEntityName()]['label']; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return $reminders; |
|
|
|
} |
|
|
|
|
|
|
|
*/ |