src/Repository/AlbaranRepository.php line 141

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\Albaran;
  4. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. use  App\Utils\CustomPaginator;
  7. /**
  8.  * @method Albaran|null find($id, $lockMode = null, $lockVersion = null)
  9.  * @method Albaran|null findOneBy(array $criteria, array $orderBy = null)
  10.  * @method Albaran[]    findAll()
  11.  * @method Albaran[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  12.  */
  13. class AlbaranRepository extends ServiceEntityRepository
  14. {
  15.     public function __construct(ManagerRegistry $registry)
  16.     {
  17.         parent::__construct($registryAlbaran::class);
  18.     }
  19.     // /**
  20.     //  * @return Albaran[] Returns an array of Albaran objects
  21.     //  */
  22.     /*
  23.     public function findByExampleField($value)
  24.     {
  25.         return $this->createQueryBuilder('a')
  26.             ->andWhere('a.exampleField = :val')
  27.             ->setParameter('val', $value)
  28.             ->orderBy('a.id', 'ASC')
  29.             ->setMaxResults(10)
  30.             ->getQuery()
  31.             ->getResult()
  32.         ;
  33.     }
  34.     */
  35.     /*
  36.     public function findOneBySomeField($value): ?Albaran
  37.     {
  38.         return $this->createQueryBuilder('a')
  39.             ->andWhere('a.exampleField = :val')
  40.             ->setParameter('val', $value)
  41.             ->getQuery()
  42.             ->getOneOrNullResult()
  43.         ;
  44.     }
  45.     */
  46.     public function getAllAlbaranes($data$currentPage 1$limit 12$sort$order)
  47.     {
  48.         $parameters = array();
  49.         $query $this->createQueryBuilder('Albaran')
  50.             ->leftJoin('Albaran.AlbaCliente''Cliente');
  51.         if (isset($data['value']) && $data['value'] != "") {
  52.             $query->andWhere('(
  53.                 Albaran.AlbaReferencia like :where1
  54.             )');
  55.             $parameters[':where1'] = "%" $data['value'] . "%";
  56.         }
  57.         if (isset($data['referencia']) && '' != $data['referencia']) {
  58.             $query->andWhere('(
  59.                 Albaran.AlbaReferencia like :referencia
  60.             )');
  61.             $parameters[':referencia'] = '%' $data['referencia'] . '%';
  62.         }
  63.         if (isset($data['cliente']) && '' != $data['cliente']) {
  64.             $query->andWhere('(
  65.                 Cliente.CliNombreFiscal like :cliente or
  66.                 Cliente.CliNombreComercial like :cliente
  67.             )');
  68.             $parameters[':cliente'] = '%' $data['cliente'] . '%';
  69.         }
  70.         if (!empty($parameters)) {
  71.             $query->setParameters($parameters);
  72.         }
  73.         $query->addOrderBy($sort$order);
  74.         $query->getQuery();
  75.         //dd($query->getQuery()->getResult());
  76.         $paginator  = new CustomPaginator($query);
  77.         $result     $paginator->paginate($currentPage$limit);
  78.         if ($result['count'] > && $result['maxPages'] < $result['thisPage']) {
  79.             $result $paginator->paginate(1$limit);
  80.         }
  81.         return $result;
  82.     }
  83.     public function getAllAlbaranesByProyecto($data$currentPage 1$limit 12$sort$order$idProceso)
  84.     {
  85.         $parameters = array();
  86.         $query $this->createQueryBuilder('Albaran')
  87.             ->leftJoin('Albaran.AlbaCliente''Cliente')
  88.             ->leftJoin('Albaran.AlbaProceso''Proceso')
  89.             ->andWhere('Proceso.id = :idProceso');
  90.         $parameters[':idProceso'] = $idProceso;
  91.         if (isset($data['value']) && $data['value'] != "") {
  92.             $query->andWhere('(
  93.                 Albaran.AlbaReferencia like :where1
  94.             )');
  95.             $parameters[':where1'] = "%" $data['value'] . "%";
  96.         }
  97.         if (isset($data['referencia']) && '' != $data['referencia']) {
  98.             $query->andWhere('(
  99.                 Albaran.AlbaReferencia like :referencia
  100.             )');
  101.             $parameters[':referencia'] = '%' $data['referencia'] . '%';
  102.         }
  103.         if (isset($data['cliente']) && '' != $data['cliente']) {
  104.             $query->andWhere('(
  105.                 Cliente.CliNombreFiscal like :cliente or
  106.                 Cliente.CliNombreComercial like :cliente
  107.             )');
  108.             $parameters[':cliente'] = '%' $data['cliente'] . '%';
  109.         }
  110.         if (!empty($parameters)) {
  111.             $query->setParameters($parameters);
  112.         }
  113.         $query->addOrderBy($sort$order);
  114.         $query->getQuery();
  115.         //dd($query->getQuery()->getResult());
  116.         $paginator  = new CustomPaginator($query);
  117.         $result     $paginator->paginate($currentPage$limit);
  118.         if ($result['count'] > && $result['maxPages'] < $result['thisPage']) {
  119.             $result $paginator->paginate(1$limit);
  120.         }
  121.         return $result;
  122.     }
  123.     public function getAllAlbaranesByCliente($data$currentPage 1$limit 12$sort$order$idCliente)
  124.     {
  125.         $parameters = array();
  126.         $query $this->createQueryBuilder('Albaran')
  127.             ->leftJoin('Albaran.AlbaCliente''Cliente')
  128.             ->leftJoin('Albaran.AlbaProceso''Proceso')
  129.             ->andWhere('Cliente.id = :idCliente');
  130.         $parameters[':idCliente'] = $idCliente;
  131.         if (isset($data['value']) && $data['value'] != "") {
  132.             $query->andWhere('(
  133.                 Albaran.AlbaReferencia like :where1
  134.             )');
  135.             $parameters[':where1'] = "%" $data['value'] . "%";
  136.         }
  137.         if (isset($data['referencia']) && '' != $data['referencia']) {
  138.             $query->andWhere('(
  139.                 Albaran.AlbaReferencia like :referencia
  140.             )');
  141.             $parameters[':referencia'] = '%' $data['referencia'] . '%';
  142.         }
  143.         if (isset($data['cliente']) && '' != $data['cliente']) {
  144.             $query->andWhere('(
  145.                 Cliente.CliNombreFiscal like :cliente or
  146.                 Cliente.CliNombreComercial like :cliente
  147.             )');
  148.             $parameters[':cliente'] = '%' $data['cliente'] . '%';
  149.         }
  150.         if (!empty($parameters)) {
  151.             $query->setParameters($parameters);
  152.         }
  153.         $query->addOrderBy($sort$order);
  154.         $query->getQuery();
  155.         //dd($query->getQuery()->getResult());
  156.         $paginator  = new CustomPaginator($query);
  157.         $result     $paginator->paginate($currentPage$limit);
  158.         if ($result['count'] > && $result['maxPages'] < $result['thisPage']) {
  159.             $result $paginator->paginate(1$limit);
  160.         }
  161.         return $result;
  162.     }
  163.     public function getLast()
  164.     {
  165.         $query $this->createQueryBuilder('Albaran');
  166.         $query->addOrderBy('Albaran.id''DESC');
  167.         $query->setMaxResults(1);
  168.         return $query->getQuery()->getOneOrNullResult();
  169.     }
  170. }