示例#1
0
 public function getOfertasDT()
 {
     $oferta = new Oferta();
     $ofertas = $oferta->leftJoin('municipios', function ($join) {
         $join->on('ofertas.municipio_id', '=', 'municipios.id');
     })->leftJoin('empresas', function ($join) {
         $join->on('ofertas.empresa_id', '=', 'empresas.id');
     })->leftJoin('contratos_laborales', function ($join) {
         $join->on('ofertas.contrato_id', '=', 'contratos_laborales.id');
     })->orderBy($_GET['columns'][$_GET['order'][0]['column']]['data'], $_GET['order'][0]['dir'])->skip($_GET['start'] * $_GET['length'])->take($_GET['length'])->select('ofertas.*', 'contratos_laborales.nombre as tipo_contrato', 'municipios.NOMBRE as municipio', 'empresas.razon_social as empresa')->get();
     //$this->lastSQL();
     foreach ($ofertas as $clave => $oferta) {
         $ofertas[$clave]['DT_RowId'] = 'row_' . $oferta->id;
         $ofertas[$clave]['salario'] = Oferta::rangoSalario($ofertas[$clave]['salario']);
     }
     $return['draw'] = Input::get('draw');
     $return['data'] = $ofertas;
     $return['recordsTotal'] = count($ofertas);
     $return['recordsFiltered'] = count($ofertas);
     return $return;
 }
示例#2
0
 public function postBuscador()
 {
     if (Input::get('vista') == 0) {
         $empresa = new Empresa();
         $empresa = $empresa->leftJoin('municipios', function ($join) {
             $join->on('empresas.municipio_id', '=', 'municipios.id');
         })->leftJoin('provincias', function ($join) {
             $join->on('empresas.provincia_id', '=', 'provincias.CPRO');
         });
         foreach (Input::get('empresa') as $index => $value) {
             if ($value != "") {
                 if ($index == "provincia_id" || $index == "municipio_id") {
                     $GLOBALS['index'] = $index;
                     $GLOBALS['value'] = $value;
                     if (is_array($value)) {
                         $empresa = $empresa->where(function ($query) {
                             $indexG = $GLOBALS['index'];
                             $valueG = $GLOBALS['value'];
                             $query->orWhere('empresas.' . $indexG, '=', $valueG);
                         });
                     } else {
                         $empresa = $empresa->where('empresas.' . $index, '=', $value);
                     }
                 } else {
                     $empresa = $empresa->where('empresas.' . $index, 'like', '%' . $value . '%');
                 }
             }
         }
         $return = array();
         if (sizeof($empresa) > 0) {
             $return['grupo'][0]['nombre'] = 'empresas';
             $return['grupo'][0]['resultados'] = $empresa->select('empresas.*', 'provincias.NOMBRE as provincia', 'municipios.NOMBRE as municipio')->get();
             $ofertas = new Oferta();
             $ofertas = $ofertas->leftJoin('municipios', function ($join) {
                 $join->on('ofertas.municipio_id', '=', 'municipios.id');
             })->leftJoin('provincias', function ($join) {
                 $join->on('ofertas.provincia_id', '=', 'provincias.CPRO');
             })->leftJoin('empresas', function ($join) {
                 $join->on('ofertas.empresa_id', '=', 'empresas.id');
             })->leftJoin('contratos_laborales', function ($join) {
                 $join->on('ofertas.contrato_id', '=', 'contratos_laborales.id');
             });
             $GLOBALS['empresa'] = $empresa;
             $ofertas = $ofertas->where(function ($query) {
                 $empresaG = $GLOBALS['empresa'];
                 foreach ($empresaG as $empresa) {
                     $query->orWhere('ofertas.empresa_id', '=', $empresa['id']);
                 }
             });
             $ofertas = $ofertas->select('ofertas.*', 'ofertas.id as oferta_id', 'provincias.NOMBRE as provincia', 'contratos_laborales.nombre as tipo_contrato', 'municipios.NOMBRE as municipio', 'empresas.razon_social as empresa')->get();
             //$this->lastSQL();
             if (sizeof($ofertas) > 0) {
                 foreach ($ofertas as $oferta) {
                     $oferta['salario'] = Oferta::rangoSalario($oferta['salario']);
                 }
                 $return['grupo'][1]['nombre'] = 'ofertas';
                 $return['grupo'][1]['resultados'] = $ofertas;
             }
         }
         //$this->lastSQL();
         return $return;
     }
     if (Input::get('vista') == 1) {
         //Búsqueda ofertas
         $oferta = new Oferta();
         $ofertas = $oferta->leftJoin('municipios', function ($join) {
             $join->on('ofertas.municipio_id', '=', 'municipios.id');
         })->leftJoin('provincias', function ($join) {
             $join->on('ofertas.provincia_id', '=', 'provincias.CPRO');
         })->leftJoin('empresas', function ($join) {
             $join->on('ofertas.empresa_id', '=', 'empresas.id');
         })->leftJoin('contratos_laborales', function ($join) {
             $join->on('ofertas.contrato_id', '=', 'contratos_laborales.id');
         });
         foreach (Input::get('oferta') as $index => $value) {
             if (is_array($value)) {
                 $GLOBALS['value'] = $value;
                 $ofertas = $ofertas->where(function ($query) {
                     $valueG = $GLOBALS['value'];
                     foreach ($valueG as $indice => $valor) {
                         $query->orWhere('ofertas.' . $indice, '=', $valor);
                     }
                 });
             } else {
                 if ($value != "") {
                     if ($index == "puesto") {
                         $ofertas = $ofertas->where('ofertas.' . $index, 'like', '%' . $value . '%');
                     } else {
                         if ($index == "experiencia") {
                             $ofertas = $ofertas->where('ofertas.' . $index, '<=', $value);
                         } else {
                             if ($index == "caducado" && $value == 0) {
                                 $ofertas = $ofertas->where('ofertas.fecha_caducidad', '>', date('Y-m-d H:i:s', time()));
                             }
                             if ($index != "caducado") {
                                 $ofertas = $ofertas->where('ofertas.' . $index, '=', $value);
                             }
                         }
                     }
                 }
             }
         }
         $ofertas = $ofertas->select('ofertas.*', 'ofertas.id as oferta_id', 'provincias.NOMBRE as provincia', 'contratos_laborales.nombre as tipo_contrato', 'municipios.NOMBRE as municipio', 'empresas.razon_social as empresa')->get();
         $GLOBALS['ofertas'] = $ofertas;
         $return = array();
         if (sizeof($ofertas) > 0) {
             foreach ($ofertas as $oferta) {
                 $oferta['salario'] = Oferta::rangoSalario($oferta['salario']);
             }
             $return['grupo'][0]['nombre'] = 'ofertas';
             $return['grupo'][0]['resultados'] = $ofertas;
             $empresas = new Empresa();
             $empresas = $empresas->leftJoin('municipios', function ($join) {
                 $join->on('empresas.municipio_id', '=', 'municipios.id');
             })->leftJoin('provincias', function ($join) {
                 $join->on('empresas.provincia_id', '=', 'provincias.CPRO');
             });
             $usuarios = new Usuario();
             $usuarios = $usuarios->belongsToMany('Usuario', 'oferta_usuario', 'deleted_at');
             $usuarios = $usuarios->leftJoin('municipios', function ($join) {
                 $join->on('usuarios.municipio_id', '=', 'municipios.id');
             })->leftJoin('provincias', function ($join) {
                 $join->on('usuarios.provincia_id', '=', 'provincias.CPRO');
             });
             $empresas = $empresas->where(function ($query) {
                 $ofertasG = $GLOBALS['ofertas'];
                 foreach ($ofertasG as $oferta) {
                     $query->orWhere('empresas.id', '=', $oferta['empresa_id']);
                 }
             });
             $usuarios = $usuarios->where(function ($query) {
                 $ofertasG = $GLOBALS['ofertas'];
                 foreach ($ofertasG as $oferta) {
                     $query->orWhere('oferta_usuario.oferta_id', '=', $oferta['id']);
                 }
             });
             $usuarios = $usuarios->select('usuarios.*', 'provincias.NOMBRE as provincia', 'municipios.NOMBRE as municipio')->get();
             //$this->lastSQL();
             $empresas = $empresas->select('empresas.*', 'provincias.NOMBRE as provincia', 'municipios.NOMBRE as municipio')->get();
             if (sizeof($empresas) > 0) {
                 $return['grupo'][1]['nombre'] = 'empresas';
                 $return['grupo'][1]['resultados'] = $empresas;
             }
             if (sizeof($usuarios) > 0) {
                 $return['grupo'][2]['nombre'] = 'usuarios';
                 $return['grupo'][2]['resultados'] = $usuarios;
             }
         }
         return $return;
     }
 }