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; }
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; } }