public function getPrivilegesRolesNgAction() { $em = $this->getDoctrine()->getManager(); $response = new Response(json_encode(array("result" => Role::getPrivilegesRoles($em, true)))); $response->headers->set('Content-Type', 'application/json'); return $response; }
private function createTariffPrices($em, $parameters) { $clientRoles = Role::getClientRoles($em); foreach ($clientRoles as $role) { $price = $this->calculatePrice($em, $role, $parameters->services); $tariffPrice = new TariffPrice(); $tariffPrice->setTariffid($this->getId()); $tariffPrice->setTariff($this); $tariffPrice->setRoleid($role->getId()); $tariffPrice->setRole($role); $tariffPrice->setValue($price); $em->persist($tariffPrice); $em->flush(); } }
public static function getWorkforce($em, $parameters, $inArray = false) { $workforceRoles = Role::getWorkforceRoles($em); $workforceRolesIds = array_map(function ($role) { return $role->getId(); }, $workforceRoles); $qb = $em->getRepository("RenovateMainBundle:User")->createQueryBuilder('u'); $qb->select('u')->join("u.roles", "r")->where($qb->expr()->in('r.id', $workforceRolesIds))->addOrderBy('u.registered', 'DESC'); if (isset($parameters['offset']) && isset($parameters['limit'])) { $qb->setFirstResult($parameters['offset'])->setMaxResults($parameters['limit']); } if (isset($parameters['search'])) { $qb->where($qb->expr()->orX($qb->expr()->like('u.username', $qb->expr()->literal('%' . $parameters['search'] . '%')), $qb->expr()->like('u.name', $qb->expr()->literal('%' . $parameters['search'] . '%')), $qb->expr()->like('u.surname', $qb->expr()->literal('%' . $parameters['search'] . '%')), $qb->expr()->like('u.patronymic', $qb->expr()->literal('%' . $parameters['search'] . '%')), $qb->expr()->like('u.email', $qb->expr()->literal('%' . $parameters['search'] . '%')), $qb->expr()->like('u.mobilephone', $qb->expr()->literal('%' . $parameters['search'] . '%')), $qb->expr()->like('u.address', $qb->expr()->literal('%' . $parameters['search'] . '%')), $qb->expr()->like('u.adminUnit', $qb->expr()->literal('%' . $parameters['search'] . '%')), $qb->expr()->like('u.owner', $qb->expr()->literal('%' . $parameters['search'] . '%')))); } $paginator = new Paginator($qb->getQuery(), $fetchJoinCollection = true); $c = count($paginator); $result['total'] = $c; $result['result'] = []; if ($inArray) { foreach ($paginator as $item) { $result['result'][] = $item->getInArray(); } } return $result; }