src/Repository/OfertasRepository.php line 101

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\Ofertas;
  4. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. use Doctrine\ORM\Query\Expr\Join;
  7. use  App\Utils\CustomPaginator;
  8. use App\Entity\Presupuesto;
  9. /**
  10.  * @method Ofertas|null find($id, $lockMode = null, $lockVersion = null)
  11.  * @method Ofertas|null findOneBy(array $criteria, array $orderBy = null)
  12.  * @method Ofertas[]    findAll()
  13.  * @method Ofertas[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  14.  */
  15. class OfertasRepository extends ServiceEntityRepository
  16. {
  17.     public function __construct(ManagerRegistry $registry)
  18.     {
  19.         parent::__construct($registryOfertas::class);
  20.     }
  21.     // /**
  22.     //  * @return Ofertas[] Returns an array of Ofertas objects
  23.     //  */
  24.     /*
  25.     public function findByExampleField($value)
  26.     {
  27.         return $this->createQueryBuilder('o')
  28.             ->andWhere('o.exampleField = :val')
  29.             ->setParameter('val', $value)
  30.             ->orderBy('o.id', 'ASC')
  31.             ->setMaxResults(10)
  32.             ->getQuery()
  33.             ->getResult()
  34.         ;
  35.     }
  36.     */
  37.     /*
  38.     public function findOneBySomeField($value): ?Ofertas
  39.     {
  40.         return $this->createQueryBuilder('o')
  41.             ->andWhere('o.exampleField = :val')
  42.             ->setParameter('val', $value)
  43.             ->getQuery()
  44.             ->getOneOrNullResult()
  45.         ;
  46.     }
  47.     */
  48.     public function getLastOfert()
  49.     {
  50.         $query $this->createQueryBuilder('Ofertas');
  51.         $query->addOrderBy('Ofertas.id''DESC');
  52.         $query->setMaxResults(1);
  53.         return $query->getQuery()->getOneOrNullResult();
  54.     }
  55.     public function getAllByCliente($data$currentPage 1$limit 12$sort$order$clienteId$aceptada)
  56.     {
  57.         $parameters = array();
  58.         $query $this->createQueryBuilder('Ofertas')
  59.             ->leftJoin("Ofertas.OfPresupuesto""Presupuesto")
  60.             ->leftJoin('Presupuesto.PresuCliente'"Cliente")
  61.             ->andWhere('Cliente.id = :clienteId');
  62.         $parameters[':clienteId'] = $clienteId;
  63.         if (isset($data['value']) && $data['value'] != "") {
  64.             $query->andWhere('(
  65.                 Ofertas.OfAceptada = ' $aceptada ' and (
  66.                 Ofertas.OfFecha like :where1 or
  67.                 Ofertas.OfTotalHoras like :where1 or
  68.                 Ofertas.OfTotalPrecio like :where1 or
  69.                 Ofertas.OfTotalPrecioIva like :where1)
  70.             )');
  71.             $parameters[':where1'] = "%" $data['value'] . "%";
  72.         }
  73.         if (!empty($parameters)) {
  74.             $query->setParameters($parameters);
  75.         }
  76.         $query->addOrderBy($sort$order);
  77.         $query->getQuery();
  78.         //dd($query->getQuery()->getResult());
  79.         $paginator  = new CustomPaginator($query);
  80.         $result     $paginator->paginate($currentPage$limit);
  81.         if ($result['count'] > && $result['maxPages'] < $result['thisPage']) {
  82.             $result $paginator->paginate(1$limit);
  83.         }
  84.         return $result;
  85.     }
  86.     public function getAllByPresupuesto($data$currentPage 1$limit 12$sort$order$presupuestoId)
  87.     {
  88.         $parameters = array();
  89.         $query $this->createQueryBuilder('Ofertas')
  90.             ->leftJoin("Ofertas.OfPresupuesto""Presupuesto");
  91.         if (isset($data['value']) && $data['value'] != "") {
  92.             $query->andWhere('(
  93.                 Presupuesto.id =' $presupuestoId ' and  (
  94.                 Ofertas.OfFecha like :where1 or
  95.                 Ofertas.OfTotalHoras like :where1 or
  96.                 Ofertas.OfTotalPrecio like :where1 or
  97.                 Ofertas.OfTotalPrecioIva like :where1 or
  98.                 Ofertas.OfReferencia like :where1
  99.                 )
  100.             )');
  101.             $parameters[':where1'] = "%" $data['value'] . "%";
  102.         } else {
  103.             $query->andWhere('(
  104.                 Presupuesto.id= ' $presupuestoId '
  105.             )');
  106.         }
  107.         if (!empty($parameters)) {
  108.             $query->setParameters($parameters);
  109.         }
  110.         $query->addOrderBy($sort$order);
  111.         $query->getQuery();
  112.         //dd($query->getQuery()->getResult());
  113.         $paginator  = new CustomPaginator($query);
  114.         $result     $paginator->paginate($currentPage$limit);
  115.         if ($result['count'] > && $result['maxPages'] < $result['thisPage']) {
  116.             $result $paginator->paginate(1$limit);
  117.         }
  118.         return $result;
  119.     }
  120.     public function getAllByMolde($data$currentPage 1$limit 12$sort$order$moldeId)
  121.     {
  122.         $parameters = array();
  123.         $query $this->createQueryBuilder('Ofertas')
  124.             ->leftJoin("Ofertas.OfPresupuesto""Presupuesto")
  125.             ->leftJoin("Ofertas.ofMolde""Molde")
  126.             ->andWhere('Molde.id = :moldeId ');
  127.         $parameters[':moldeId'] = $moldeId;
  128.         if (isset($data['value']) && $data['value'] != "") {
  129.             $query->andWhere('(
  130.                 Ofertas.OfFecha like :where1 or
  131.                 Ofertas.OfTotalHoras like :where1 or
  132.                 Ofertas.OfTotalPrecio like :where1 or
  133.                 Ofertas.OfTotalPrecioIva like :where1 or
  134.                 Ofertas.OfReferencia like :where1
  135.             )');
  136.             $parameters[':where1'] = "%" $data['value'] . "%";
  137.         }
  138.         if (!empty($parameters)) {
  139.             $query->setParameters($parameters);
  140.         }
  141.         $query->addOrderBy($sort$order);
  142.         $query->getQuery();
  143.         //dd($query->getQuery()->getResult());
  144.         $paginator  = new CustomPaginator($query);
  145.         $result     $paginator->paginate($currentPage$limit);
  146.         if ($result['count'] > && $result['maxPages'] < $result['thisPage']) {
  147.             $result $paginator->paginate(1$limit);
  148.         }
  149.         return $result;
  150.     }
  151. }