src/Controller/Ajax/Privado/Ajustes/GradeadasAjaxController.php line 65

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Ajax\Privado\Ajustes;
  3. use App\Entity\Ajustes\Pedido;
  4. use App\Entity\Ajustes\Usuario;
  5. use App\Entity\Catalogo\Categoria;
  6. use App\Form\Privado\Entidades\Ajustes\PedidoType;
  7. use App\Form\Publico\Pedido\PedidoPaso2Type;
  8. use App\Repository\Ajustes\CartesExcelRepository;
  9. use App\Repository\Ajustes\DescuentoRepository;
  10. use App\Repository\Ajustes\GradeadaRepository;
  11. use App\Repository\Ajustes\PedidoRepository;
  12. use App\Repository\Ajustes\UsuarioRepository;
  13. use App\Repository\Catalogo\CategoriaRepository;
  14. use Doctrine\Common\Annotations\AnnotationReader;
  15. use Doctrine\ORM\EntityManagerInterface;
  16. use Knp\Component\Pager\PaginatorInterface;
  17. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  18. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  19. use Symfony\Component\HttpFoundation\Request;
  20. use Symfony\Component\HttpFoundation\Response;
  21. use Symfony\Component\Routing\Annotation\Route;
  22. use Symfony\Component\Serializer\Encoder\JsonEncoder;
  23. use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
  24. use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader;
  25. use Symfony\Component\Serializer\NameConverter\MetadataAwareNameConverter;
  26. use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
  27. use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
  28. use Symfony\Component\Serializer\Serializer;
  29. /**
  30.  * @Route("/gradeadas", name="ajgrad_")
  31.  */
  32. class GradeadasAjaxController extends AbstractController
  33. {
  34.     private $serializer;
  35.     private $repo;
  36.     private $pb;
  37.     private $pg;
  38.     private $cardRepo;
  39.     protected $em;
  40.     public function __construct(GradeadaRepository $repoParameterBagInterface $pbPaginatorInterface $pgEntityManagerInterface $emCartesExcelRepository $cardRepo)
  41.     {
  42.         $this->repo $repo;
  43.         $this->pb $pb;
  44.         $this->pg $pg;
  45.         $this->cardRepo $cardRepo;
  46.         $this->em $em;
  47.         $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
  48.         $metadataAwareNameConverter = new MetadataAwareNameConverter($classMetadataFactory);
  49.         $this->serializer = new Serializer(
  50.             [
  51.                 new DateTimeNormalizer(['datetime_format' => 'd-m-Y H:i']),
  52.                 new ObjectNormalizer($classMetadataFactory$metadataAwareNameConverter),
  53.             ],
  54.             [new JsonEncoder()]
  55.         );
  56.     }
  57.     /**
  58.      * @Route("/autocompletar", name="autocomplete")
  59.      */
  60.     public function autocompletar(Request $request)
  61.     {
  62.         $message    "";
  63.         $semafor    $paginator false;
  64.         $data       = [];
  65.         
  66.         if($request->get('q') !== null){
  67.             $filters = [
  68.                 'texto' => $request->get('q')
  69.             ];
  70.             if ($request->query->get('params'false)) {
  71.                 $filters array_merge($filters$request->query->get('params'));
  72.             }
  73.             
  74.             $resultBD $this->cardRepo->filter($filters);
  75.             if($resultBD){
  76.                 $semafor true;
  77.                 $data $this->serializer->normalize($resultBDnull, ['groups' => 'Simple']);
  78.             }
  79.             $object $data;
  80.         }
  81.         return new Response($this->serializer->serialize($object"json"), ($semafor ?  Response::HTTP_OK :  Response::HTTP_BAD_REQUEST));
  82.     }
  83. }