src/Controller/DocumentoController.php line 35

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Utils\DocumentoService;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. class DocumentoController extends AbstractController
  7. {
  8.     private $documentoService;
  9.     public function __construct(DocumentoService $documentoService)
  10.     {
  11.         $this->documentoService $documentoService;
  12.     }
  13.     public function public()
  14.     {
  15.         //Metaetiquetas para la pagina principal
  16.         $url 'documentspublicfrontend';
  17.         //seo on page
  18.         $seo_on_page $this->documentoService->DevolverSeoOnPage($url);
  19.         // categorias
  20.         $categorias $this->documentoService->ListarCategorias();
  21.         return $this->render('frontend/documento/public.html.twig', array(
  22.             'seo_on_page' => $seo_on_page,
  23.             'categorias' => $categorias
  24.         ));
  25.     }
  26.     public function private()
  27.     {
  28.         //Metaetiquetas para la pagina principal
  29.         $url 'documentsprivatefrontend';
  30.         //seo on page
  31.         $seo_on_page $this->documentoService->DevolverSeoOnPage($url);
  32.         // categorias
  33.         $categorias $this->documentoService->ListarCategorias();
  34.         return $this->render('frontend/documento/private.html.twig', array(
  35.             'seo_on_page' => $seo_on_page,
  36.             'categorias' => $categorias
  37.         ));
  38.     }
  39.     /**
  40.      * listarPublic Acción que lista los documentos
  41.      *
  42.      */
  43.     public function listarPublic(Request $request)
  44.     {
  45.         // search filter by keywords
  46.         $query = !empty($request->get('query')) ? $request->get('query') : array();
  47.         $sSearch = isset($query['generalSearch']) && is_string($query['generalSearch']) ? $query['generalSearch'] : '';
  48.         $categoria_id = isset($query['categoria_id']) && is_string($query['categoria_id']) ? $query['categoria_id'] : '';
  49.         //Sort
  50.         $sort = !empty($request->get('sort')) ? $request->get('sort') : array();
  51.         $sSortDir_0 = !empty($sort['sort']) ? $sort['sort'] : 'desc';
  52.         $iSortCol_0 = !empty($sort['field']) ? $sort['field'] : 'createdAt';
  53.         //$start and $limit
  54.         $pagination = !empty($request->get('pagination')) ? $request->get('pagination') : array();
  55.         $page = !empty($pagination['page']) ? (int)$pagination['page'] : 1;
  56.         $limit = !empty($pagination['perpage']) ? (int)$pagination['perpage'] : -1;
  57.         $start 0;
  58.         try {
  59.             $empresa_id $this->getParameter('empresa_id');
  60.             $privado 0;
  61.             $pages 1;
  62.             $total $this->documentoService->TotalDocumentos($sSearch$empresa_id$categoria_id$privado);
  63.             if ($limit 0) {
  64.                 $pages ceil($total $limit); // calculate total pages
  65.                 $page max($page1); // get 1 page when $_REQUEST['page'] <= 0
  66.                 $page min($page$pages); // get last page when $_REQUEST['page'] > $totalPages
  67.                 $start = ($page 1) * $limit;
  68.                 if ($start 0) {
  69.                     $start 0;
  70.                 }
  71.             }
  72.             $meta = array(
  73.                 'page' => $page,
  74.                 'pages' => $pages,
  75.                 'perpage' => $limit,
  76.                 'total' => $total,
  77.                 'field' => $iSortCol_0,
  78.                 'sort' => $sSortDir_0
  79.             );
  80.             $data $this->documentoService->ListarDocumentos($start$limit$sSearch$iSortCol_0$sSortDir_0,
  81.                 $empresa_id$categoria_id$privado);
  82.             $resultadoJson = array(
  83.                 'meta' => $meta,
  84.                 'data' => $data
  85.             );
  86.             return $this->json($resultadoJson);
  87.         } catch (\Exception $e) {
  88.             $resultadoJson['success'] = false;
  89.             $resultadoJson['error'] = $e->getMessage();
  90.             return $this->json($resultadoJson);
  91.         }
  92.     }
  93.     /**
  94.      * listarPrivate Acción que lista los documentos
  95.      *
  96.      */
  97.     public function listarPrivate(Request $request)
  98.     {
  99.         // search filter by keywords
  100.         $query = !empty($request->get('query')) ? $request->get('query') : array();
  101.         $sSearch = isset($query['generalSearch']) && is_string($query['generalSearch']) ? $query['generalSearch'] : '';
  102.         $categoria_id = isset($query['categoria_id']) && is_string($query['categoria_id']) ? $query['categoria_id'] : '';
  103.         //Sort
  104.         $sort = !empty($request->get('sort')) ? $request->get('sort') : array();
  105.         $sSortDir_0 = !empty($sort['sort']) ? $sort['sort'] : 'desc';
  106.         $iSortCol_0 = !empty($sort['field']) ? $sort['field'] : 'createdAt';
  107.         //$start and $limit
  108.         $pagination = !empty($request->get('pagination')) ? $request->get('pagination') : array();
  109.         $page = !empty($pagination['page']) ? (int)$pagination['page'] : 1;
  110.         $limit = !empty($pagination['perpage']) ? (int)$pagination['perpage'] : -1;
  111.         $start 0;
  112.         try {
  113.             $empresa_id $this->getParameter('empresa_id');
  114.             $privado 1;
  115.             $pages 1;
  116.             $total $this->documentoService->TotalDocumentos($sSearch$empresa_id$categoria_id$privado);
  117.             if ($limit 0) {
  118.                 $pages ceil($total $limit); // calculate total pages
  119.                 $page max($page1); // get 1 page when $_REQUEST['page'] <= 0
  120.                 $page min($page$pages); // get last page when $_REQUEST['page'] > $totalPages
  121.                 $start = ($page 1) * $limit;
  122.                 if ($start 0) {
  123.                     $start 0;
  124.                 }
  125.             }
  126.             $meta = array(
  127.                 'page' => $page,
  128.                 'pages' => $pages,
  129.                 'perpage' => $limit,
  130.                 'total' => $total,
  131.                 'field' => $iSortCol_0,
  132.                 'sort' => $sSortDir_0
  133.             );
  134.             $data $this->documentoService->ListarDocumentos($start$limit$sSearch$iSortCol_0$sSortDir_0,
  135.                 $empresa_id$categoria_id$privado);
  136.             $resultadoJson = array(
  137.                 'meta' => $meta,
  138.                 'data' => $data
  139.             );
  140.             return $this->json($resultadoJson);
  141.         } catch (\Exception $e) {
  142.             $resultadoJson['success'] = false;
  143.             $resultadoJson['error'] = $e->getMessage();
  144.             return $this->json($resultadoJson);
  145.         }
  146.     }
  147. }