src/Repository/UsuarioRepository.php line 307

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  4. use Doctrine\Persistence\ManagerRegistry;
  5. use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
  6. use Symfony\Component\Security\Core\User\PasswordUpgraderInterface;
  7. use Symfony\Component\Security\Core\User\UserInterface;
  8. use App\Entity\Usuario;
  9. use  App\Utils\CustomPaginator;
  10. /**
  11.  * @method Usuario|null find($id, $lockMode = null, $lockVersion = null)
  12.  * @method Usuario|null findOneBy(array $criteria, array $orderBy = null)
  13.  * @method Usuario[]    findAll()
  14.  * @method Usuario[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  15.  */
  16. class UsuarioRepository extends ServiceEntityRepository implements PasswordUpgraderInterface
  17. {
  18.     public function __construct(ManagerRegistry $registry)
  19.     {
  20.         parent::__construct($registryUsuario::class);
  21.     }
  22.     /**
  23.      * Used to upgrade (rehash) the user's password automatically over time.
  24.      */
  25.     public function upgradePassword(UserInterface $userstring $newEncodedPassword): void
  26.     {
  27.         if (!$user instanceof Usuario) {
  28.             throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.'\get_class($user)));
  29.         }
  30.         $user->setPassword($newEncodedPassword);
  31.         $this->_em->persist($user);
  32.         $this->_em->flush();
  33.     }
  34.     public function getAllUsers($data$currentPage 1$limit 12$sort$order)
  35.     {
  36.         $parameters = array();
  37.         $query $this->createQueryBuilder('usuario');
  38.         if (isset($data['value']) && $data['value'] != "") {
  39.             $query->andWhere('(
  40.                 usuario.username like :where1 or
  41.                 usuario.UsuarioNombre like :where1 or
  42.                 usuario.UsuarioApe like :where1
  43.             )');
  44.             $parameters[':where1'] = "%" $data['value'] . "%";
  45.         }
  46.         if (isset($data['username']) && '' != $data['username']) {
  47.             $query->andWhere('(
  48.                 usuario.username like :username
  49.             )');
  50.             $parameters[':username'] = '%' $data['username'] . '%';
  51.         }
  52.         if (isset($data['nombre']) && '' != $data['nombre']) {
  53.             $query->andWhere('(
  54.                 usuario.UsuarioNombre like :nombre
  55.             )');
  56.             $parameters[':nombre'] = '%' $data['nombre'] . '%';
  57.         }
  58.         if (isset($data['apellidos']) && '' != $data['apellidos']) {
  59.             $query->andWhere('(
  60.                 usuario.UsuarioApe like :apellidos
  61.             )');
  62.             $parameters[':apellidos'] = '%' $data['apellidos'] . '%';
  63.         }
  64.         if (isset($data['email']) && '' != $data['email']) {
  65.             $query->andWhere('(
  66.                 usuario.UsuarioEmail like :email
  67.             )');
  68.             $parameters[':email'] = '%' $data['email'] . '%';
  69.         }
  70.         if (isset($data['telefono']) && '' != $data['telefono']) {
  71.             $query->andWhere('(
  72.                 usuario.UsuarioTelefono like :telefono
  73.             )');
  74.             $parameters[':telefono'] = '%' $data['telefono'] . '%';
  75.         }
  76.         if (!empty($parameters)) {
  77.             $query->setParameters($parameters);
  78.         }
  79.         $query->addOrderBy($sort$order);
  80.         $query->getQuery();
  81.         //dd($query->getQuery()->getResult());
  82.         $paginator  = new CustomPaginator($query);
  83.         $result     $paginator->paginate($currentPage$limit);
  84.         if ($result['count'] > && $result['maxPages'] < $result['thisPage']) {
  85.             $result $paginator->paginate(1$limit);
  86.         }
  87.         return $result;
  88.     }
  89.     public function getAllUsersActivos($data$currentPage 1$limit 12$sort$order)
  90.     {
  91.         $parameters = array();
  92.         $query $this->createQueryBuilder('usuario')
  93.             ->leftJoin('usuario.ordenes''orden')
  94.             ->andWhere('orden.ordenFinalizada is null');
  95.         if (isset($data['value']) && $data['value'] != "") {
  96.             $query->andWhere('(
  97.                 usuario.username like :where1 or
  98.                 usuario.UsuarioNombre like :where1 or
  99.                 usuario.UsuarioApe like :where1
  100.             )');
  101.             $parameters[':where1'] = "%" $data['value'] . "%";
  102.         }
  103.         if (isset($data['username']) && '' != $data['username']) {
  104.             $query->andWhere('(
  105.                 usuario.username like :username
  106.             )');
  107.             $parameters[':username'] = '%' $data['username'] . '%';
  108.         }
  109.         if (isset($data['nombre']) && '' != $data['nombre']) {
  110.             $query->andWhere('(
  111.                 usuario.UsuarioNombre like :nombre
  112.             )');
  113.             $parameters[':nombre'] = '%' $data['nombre'] . '%';
  114.         }
  115.         if (isset($data['apellidos']) && '' != $data['apellidos']) {
  116.             $query->andWhere('(
  117.                 usuario.UsuarioApe like :apellidos
  118.             )');
  119.             $parameters[':apellidos'] = '%' $data['apellidos'] . '%';
  120.         }
  121.         if (isset($data['email']) && '' != $data['email']) {
  122.             $query->andWhere('(
  123.                 usuario.UsuarioEmail like :email
  124.             )');
  125.             $parameters[':email'] = '%' $data['email'] . '%';
  126.         }
  127.         if (isset($data['telefono']) && '' != $data['telefono']) {
  128.             $query->andWhere('(
  129.                 usuario.UsuarioTelefono like :telefono
  130.             )');
  131.             $parameters[':telefono'] = '%' $data['telefono'] . '%';
  132.         }
  133.         if (!empty($parameters)) {
  134.             $query->setParameters($parameters);
  135.         }
  136.         $query->addOrderBy($sort$order);
  137.         $query->getQuery();
  138.         //dd($query->getQuery()->getResult());
  139.         $paginator  = new CustomPaginator($query);
  140.         $result     $paginator->paginate($currentPage$limit);
  141.         if ($result['count'] > && $result['maxPages'] < $result['thisPage']) {
  142.             $result $paginator->paginate(1$limit);
  143.         }
  144.         return $result;
  145.     }
  146.     public function getAllUsersAusente($data$currentPage 1$limit 12$sort$order)
  147.     {
  148.         $parameters = array();
  149.         $query $this->createQueryBuilder('usuario')
  150.             ->leftJoin('usuario.ordenes''orden');
  151.         if (isset($data['value']) && $data['value'] != "") {
  152.             $query->andWhere('(
  153.                 usuario.username like :where1 or
  154.                 usuario.UsuarioNombre like :where1 or
  155.                 usuario.UsuarioApe like :where1
  156.             )');
  157.             $parameters[':where1'] = "%" $data['value'] . "%";
  158.         }
  159.         if (isset($data['username']) && '' != $data['username']) {
  160.             $query->andWhere('(
  161.                 usuario.username like :username
  162.             )');
  163.             $parameters[':username'] = '%' $data['username'] . '%';
  164.         }
  165.         if (isset($data['nombre']) && '' != $data['nombre']) {
  166.             $query->andWhere('(
  167.                 usuario.UsuarioNombre like :nombre
  168.             )');
  169.             $parameters[':nombre'] = '%' $data['nombre'] . '%';
  170.         }
  171.         if (isset($data['apellidos']) && '' != $data['apellidos']) {
  172.             $query->andWhere('(
  173.                 usuario.UsuarioApe like :apellidos
  174.             )');
  175.             $parameters[':apellidos'] = '%' $data['apellidos'] . '%';
  176.         }
  177.         if (isset($data['email']) && '' != $data['email']) {
  178.             $query->andWhere('(
  179.                 usuario.UsuarioEmail like :email
  180.             )');
  181.             $parameters[':email'] = '%' $data['email'] . '%';
  182.         }
  183.         if (isset($data['telefono']) && '' != $data['telefono']) {
  184.             $query->andWhere('(
  185.                 usuario.UsuarioTelefono like :telefono
  186.             )');
  187.             $parameters[':telefono'] = '%' $data['telefono'] . '%';
  188.         }
  189.         if (!empty($parameters)) {
  190.             $query->setParameters($parameters);
  191.         }
  192.         $query->addOrderBy($sort$order);
  193.         $query->getQuery();
  194.         //dd($query->getQuery()->getResult());
  195.         $paginator  = new CustomPaginator($query);
  196.         $result     $paginator->paginate($currentPage$limit);
  197.         if ($result['count'] > && $result['maxPages'] < $result['thisPage']) {
  198.             $result $paginator->paginate(1$limit);
  199.         }
  200.         return $result;
  201.     }
  202.     public function getAllEmpleados($data$currentPage 1$limit 12)
  203.     {
  204.         $parameters = array();
  205.         $query $this->createQueryBuilder('usuario')
  206.             ->andWhere('usuario.UsuarioCodigo is not null');
  207.         if (isset($data['value']) && $data['value'] != "") {
  208.             $query->andWhere('(
  209.                 usuario.username like :where1 or
  210.                 usuario.UsuarioNombre like :where1 or
  211.                 usuario.UsuarioApe like :where1
  212.             )');
  213.             $parameters[':where1'] = "%" $data['value'] . "%";
  214.         }
  215.         if (isset($data['username']) && '' != $data['username']) {
  216.             $query->andWhere('(
  217.                 usuario.username like :username
  218.             )');
  219.             $parameters[':username'] = '%' $data['username'] . '%';
  220.         }
  221.         if (isset($data['nombre']) && '' != $data['nombre']) {
  222.             $query->andWhere('(
  223.                 usuario.UsuarioNombre like :nombre
  224.             )');
  225.             $parameters[':nombre'] = '%' $data['nombre'] . '%';
  226.         }
  227.         if (isset($data['apellidos']) && '' != $data['apellidos']) {
  228.             $query->andWhere('(
  229.                 usuario.UsuarioApe like :apellidos
  230.             )');
  231.             $parameters[':apellidos'] = '%' $data['apellidos'] . '%';
  232.         }
  233.         if (isset($data['email']) && '' != $data['email']) {
  234.             $query->andWhere('(
  235.                 usuario.UsuarioEmail like :email
  236.             )');
  237.             $parameters[':email'] = '%' $data['email'] . '%';
  238.         }
  239.         if (isset($data['telefono']) && '' != $data['telefono']) {
  240.             $query->andWhere('(
  241.                 usuario.UsuarioTelefono like :telefono
  242.             )');
  243.             $parameters[':telefono'] = '%' $data['telefono'] . '%';
  244.         }
  245.         if (!empty($parameters)) {
  246.             $query->setParameters($parameters);
  247.         }
  248.         $query->getQuery();
  249.         $paginator  = new CustomPaginator($query);
  250.         $result     $paginator->paginate($currentPage$limit);
  251.         if ($result['count'] > && $result['maxPages'] < $result['thisPage']) {
  252.             $result $paginator->paginate(1$limit);
  253.         }
  254.         return $result;
  255.     }
  256.     public function getAllEmpleadosByProceso($data$currentPage 1$limit 12$sort$orderint $procesoId)
  257.     {
  258.         $parameters = array();
  259.         $query $this->createQueryBuilder('usuario')
  260.             ->leftJoin('usuario.ordenes''orden')
  261.             ->leftJoin('orden.ordenFase''fase')
  262.             ->leftJoin('fase.Proceso''proceso')
  263.             ->andWhere('proceso.id = :proceso');
  264.         $parameters[':proceso'] = $procesoId;
  265.         if (isset($data['value']) && $data['value'] != "") {
  266.             $query->andWhere('(
  267.                 usuario.username like :where1 or
  268.                 usuario.UsuarioNombre like :where1 or
  269.                 usuario.UsuarioApe like :where1
  270.             )');
  271.             $parameters[':where1'] = "%" $data['value'] . "%";
  272.         }
  273.         if (!empty($parameters)) {
  274.             $query->setParameters($parameters);
  275.         }
  276.         $query->getQuery();
  277.         $paginator  = new CustomPaginator($query);
  278.         $result     $paginator->paginate($currentPage$limit);
  279.         if ($result['count'] > && $result['maxPages'] < $result['thisPage']) {
  280.             $result $paginator->paginate(1$limit);
  281.         }
  282.         return $result;
  283.     }
  284.     public function getAllEmpleadosSchneider($data$currentPage 1$limit 12$sort$order)
  285.     {
  286.         $parameters = array();
  287.         $query $this->createQueryBuilder('usuario')
  288.             ->leftJoin('usuario.ordenes''orden')
  289.             ->leftJoin('orden.ordenFase''fase')
  290.             ->leftJoin('fase.Proceso''proceso')
  291.             ->andWhere('proceso.ProcesoSchneider = 1')
  292.             ->andWhere('orden.ordenFinalizada is null');
  293.         if (isset($data['value']) && $data['value'] != "") {
  294.             $query->andWhere('(
  295.                 usuario.username like :where1 or
  296.                 usuario.UsuarioNombre like :where1 or
  297.                 usuario.UsuarioApe like :where1
  298.             )');
  299.             $parameters[':where1'] = "%" $data['value'] . "%";
  300.         }
  301.         if (!empty($parameters)) {
  302.             $query->setParameters($parameters);
  303.         }
  304.         $query->getQuery();
  305.         $paginator  = new CustomPaginator($query);
  306.         $result     $paginator->paginate($currentPage$limit);
  307.         if ($result['count'] > && $result['maxPages'] < $result['thisPage']) {
  308.             $result $paginator->paginate(1$limit);
  309.         }
  310.         return $result;
  311.     }
  312.     public function getAllEmpleadosProyecto($data$currentPage 1$limit 12$sort$order)
  313.     {
  314.         $parameters = array();
  315.         $query $this->createQueryBuilder('usuario')
  316.             ->leftJoin('usuario.ordenes''orden')
  317.             ->leftJoin('orden.ordenFase''fase')
  318.             ->leftJoin('fase.Proceso''proceso')
  319.             ->andWhere('proceso.ProcesoSchneider = 0')
  320.             ->andWhere('orden.ordenFinalizada is null');
  321.         if (isset($data['value']) && $data['value'] != "") {
  322.             $query->andWhere('(
  323.                 usuario.username like :where1 or
  324.                 usuario.UsuarioNombre like :where1 or
  325.                 usuario.UsuarioApe like :where1
  326.             )');
  327.             $parameters[':where1'] = "%" $data['value'] . "%";
  328.         }
  329.         if (!empty($parameters)) {
  330.             $query->setParameters($parameters);
  331.         }
  332.         $query->getQuery();
  333.         $paginator  = new CustomPaginator($query);
  334.         $result     $paginator->paginate($currentPage$limit);
  335.         if ($result['count'] > && $result['maxPages'] < $result['thisPage']) {
  336.             $result $paginator->paginate(1$limit);
  337.         }
  338.         return $result;
  339.     }
  340.     public function getUserByCodigo($codigo)
  341.     {
  342.         $parameters = array();
  343.         $query $this->createQueryBuilder('usuario');
  344.         $query->andWhere('(
  345.             usuario.UsuarioCodigo like :where1
  346.         )');
  347.         $parameters[':where1'] = $codigo;
  348.         if (!empty($parameters)) {
  349.             $query->setParameters($parameters);
  350.         }
  351.         $results $query->getQuery()->getOneOrNullResult();
  352.         return $results;
  353.     }
  354.     public function filter($data$partial ""$getQuery false)
  355.     {
  356.         $parameters = array();
  357.         $query      $this
  358.             ->createQueryBuilder('usuario');
  359.         if ($partial != "") {
  360.             $query->select($partial);
  361.         }
  362.         if (isset($data['texto']) && $data['texto'] != "") {
  363.             $query->andwhere('
  364.                 usuario.username like :like OR
  365.                 usuario.UsuarioNombre like :like OR
  366.                 usuario.UsuarioApe like :like OR
  367.                 CAST(usr.id as nchar) = :equal
  368.             ');
  369.             $parameters[':like'] = '%' $data['texto'] . '%';
  370.             $parameters[':equal'] = $data['texto'];
  371.         }
  372.         if (!empty($parameters)) {
  373.             $query->setParameters($parameters);
  374.         }
  375.         if ($getQuery) {
  376.             return $query->getQuery();
  377.         }
  378.         return $query->getQuery()->getResult();
  379.     }
  380. }