/** * Consultar la tabla relacional y obtener el uuid y nombre de campo * para armar los <option> a mostrar en el campo <select> * * @return array */ private function buscar_relacion_campo($tabla_relacional = NULL) { if ($tabla_relacional == NULL) { return false; } /** * Al es singular de estas tablas no se les quita la terminacion "es" * sino solamnete la letra "s". */ $nombre_tablas_singular_excepcion = array("clientes", "proy_proyectos"); //Verificar si el nombre de la tabla contiene el caracter "_" raya abajo. if (preg_match("/(\\[\\[_[^]]*\\]\\])/im", $tabla_relacional) || preg_match("/_/im", $tabla_relacional)) { $tablaArr = explode('_', $tabla_relacional, 2); //Poner en singualr el nombre de la tabla, para poder armar el campo uuid de la tabla. $uuid_tabla = !empty($tablaArr[1]) && is_string($tablaArr[1]) ? preg_match('/es$/', $tablaArr[1]) && !in_array($tablaArr[1], $nombre_tablas_singular_excepcion) ? preg_replace('/es$/', "", $tablaArr[1]) : preg_replace('/s$/', "", $tablaArr[1]) : ""; } else { //Poner en singualr el nombre de la tabla, para poder armar el campo uuid de la tabla. $uuid_tabla = preg_match('/es$/', $tabla_relacional) ? preg_replace('/es$/', "", $tabla_relacional) : preg_replace('/s$/', "", $tabla_relacional); } //Campos y clausula if ($tabla_relacional == "proy_proyectos_categoria") { //Caso Especial join en multiples Tablas $uuid_categoria_usuario = CRM_Controller::$uuid_categoria_usuario; $fields = array("HEX(proy.uuid_proyecto) AS uuid", "proy.nombre"); if (CRM_Controller::$categoria_usuario_key == 'admin') { return self::$ci->db->select($fields)->distinct()->from('proy_proyectos as proy')->order_by('proy.nombre', 'ASC')->get()->result_array(); } else { $clause = array("proy.uuid_categoria = UNHEX('{$uuid_categoria_usuario}')" => NULL); $result = self::$ci->db->select($fields)->distinct()->from('proy_proyectos as proy')->where($clause)->order_by('proy.nombre', 'ASC')->get()->result_array(); return $result; } } else { if ($tabla_relacional == "rpo_propiedades_categoria" || $tabla_relacional == "rpo_propiedades") { $tabla_relacional = "rpo_propiedades"; $uuid_categoria = CRM_Controller::$uuid_categoria_usuario; $fields = array("HEX(prop.uuid_propiedad) AS uuid", "prop.nombre"); $clause = array("procat.valor" => 'disponible', "prop.nombre <> ''" => NULL); if (CRM_Controller::$categoria_usuario_key != "admin") { $clause["prop.uuid_categoria = '" . $uuid_categoria . "'"] = NULL; } return self::$ci->db->select($fields)->distinct()->from('rpo_propiedades AS prop')->join('rpo_propiedades_cat AS procat', 'procat.id_cat = prop.id_estado_propiedad', 'LEFT')->where($clause)->order_by('prop.nombre', 'ASC')->get()->result_array(); } else { if ($tabla_relacional == "usuarios") { // Array con los uuid de usuarios // que el usario actual puede ver. $ver_usuarios = @CRM_Controller::andrea_ACL(); $fields = array("HEX(uuid_{$uuid_tabla}) AS uuid", "CONCAT_WS(' ', IF(nombre != '', nombre, ''), IF(apellido != '', apellido, '')) AS nombre"); $clause = array("nombre <> ''" => NULL); self::$ci->db->select($fields)->distinct()->from('usuarios')->where($clause)->order_by('nombre', 'ASC'); if (CRM_Controller::$categoria_usuario_key != 'admin' && !empty($ver_usuarios["uuid_usuario"])) { self::$ci->db->where_in("HEX(uuid_usuario)", $ver_usuarios["uuid_usuario"]); } return self::$ci->db->get()->result_array(); } else { if ($tabla_relacional == "proy_proyectos" || $tabla_relacional == "proy_tipo_transaccion") { $fields = array("HEX(uuid_{$uuid_tabla}) AS uuid", "nombre"); $clause = array("nombre <> ''" => NULL); } else { if ($tabla_relacional == "proy_tipo_transaccion") { $fields = array("HEX(uuid_tipo_transaccion) AS uuid", "nombre"); $clause = array("nombre <> ''" => NULL); } else { if ($tabla_relacional == "cl_clientes_sociedades") { $fields = array("HEX(uuid_sociedad) AS uuid", "nombre_comercial AS nombre"); $clause = array("nombre_comercial <> ''" => NULL); } else { if ($tabla_relacional == "usuarios_categoria") { $fields = array("HEX(uuid_{$uuid_tabla}) AS uuid", "nombre"); $clause = array("nombre <> ''" => NULL, "key <> 'admin'" => NULL); } else { if ($tabla_relacional == "act_tipo_actividades") { $fields = array("HEX(uuid_tipo_actividad) AS uuid", "nombre", "icono"); $clause = array("nombre <> ''" => NULL); } else { if ($tabla_relacional == "agt_agentes") { $fields = array("HEX(uuid_agente) AS uuid", "CONCAT_WS(' ', IF(nombre != '', nombre, ''), IF(apellido != '', apellido, '')) AS nombre"); $clause = array("nombre <> ''" => NULL); } elseif ($tabla_relacional == 'opp_oportunidades') { $fields = array("HEX(opp.uuid_oportunidad) AS uuid", "opp.nombre AS nombre"); $clause = array("nombre <> ''" => NULL, "valor NOT IN('vendido', 'venta_perdida')" => NULL); if (CRM_Controller::$categoria_usuario_key != 'admin') { $uuid_usuarios = @CRM_Controller::andrea_ACL(); } self::$ci->db->select($fields); self::$ci->db->distinct(); self::$ci->db->from('opp_oportunidades AS opp'); self::$ci->db->join('opp_oportunidades_cat AS cat', 'cat.id_cat = opp.id_etapa_venta', 'LEFT'); self::$ci->db->where($clause); if (CRM_Controller::$categoria_usuario_key != 'admin' && !empty($ver_usuarios["uuid_usuario"])) { self::$ci->db->where_in("HEX(id_asignado)", $ver_usuarios["uuid_usuario"]); } $query = self::$ci->db->get(); return $query->result_array(); } else { $fields = array("HEX(uuid_{$uuid_tabla}) AS uuid", "CONCAT_WS(' ', IF(nombre != '', nombre, ''), IF(apellido != '', apellido, '')) AS nombre"); $clause = array("nombre <> ''" => NULL); } } } } } } //Si la tabla relacional es la de usuarios //no mostrar el usuario 1 /*if($tabla_relacional == "usuarios"){ $clause["id_usuario <> 1"] = NULL; }*/ //Query return self::$ci->db->select($fields)->distinct()->from($tabla_relacional)->where($clause)->order_by('nombre', 'ASC')->get()->result_array(); } } } }
/** * Retorna la cantidad de propiedad disponible * segun tipo de transaccion "Alquiler/Venta". * * @author jluispinilla * @param string $tipo_transaccion */ function comp__seleccionar_propiedades_disponibles($tipo_transaccion = NULL) { $tipo_transaccion = empty($tipo_transaccion) ? $this->input->post('tipo_transaccion', true) : $tipo_transaccion; //busqueda por rango de fecha $fecha_inicio = !empty($this->input->post('fecha_inicio', true)) ? $this->input->post('fecha_inicio', true) : date("Y-m-d", strtotime("-1 months")); $fecha_fin = !empty($this->input->post('fecha_fin', true)) ? $this->input->post('fecha_fin', true) : date('Y-m-d'); $uuid_usuario = $this->input->post('uuid_usuario', true); if (empty($tipo_transaccion)) { return false; } $fields = array("COUNT(opp.uuid_oportunidad) AS total_disponible"); /** * Permiso Default: ver las asignadas o las que ha creado */ $clause = array("ocat.etiqueta <> 'Ganado'" => NULL, "procat.etiqueta <> 'No Disponible'" => NULL, "ptt.nombre LIKE '%{$tipo_transaccion}%'" => NULL); /** * Array con los uuid de usuarios * que el usario actual puede ver. */ $ver_usuarios = @CRM_Controller::andrea_ACL(); $this->db->select($fields)->distinct()->from('opp_oportunidades AS opp')->join('cl_clientes AS cl', 'cl.uuid_cliente = opp.uuid_cliente', 'LEFT')->join('cp_clientes_potenciales AS clp', 'clp.uuid_cliente_potencial = opp.uuid_cliente_potencial', 'LEFT')->join('cl_cliente_sociedades_contactos AS clcon', 'clcon.uuid_cliente = cl.uuid_cliente', 'LEFT')->join('con_contactos AS con', 'con.uuid_contacto = clcon.uuid_contacto', 'LEFT')->join('opp_oportunidades_cat AS ocat', 'ocat.id_cat = opp.id_etapa_venta', 'LEFT')->join('usuarios AS usr1', 'usr1.uuid_usuario = opp.id_asignado', 'LEFT')->join('usuarios AS usr2', 'usr2.uuid_usuario = opp.creado_por', 'LEFT')->join('cl_clientes_cat AS ccat', 'ccat.id_cat = cl.id_tipo_cliente', 'LEFT')->join('rpo_propiedades AS prop', 'prop.uuid_propiedad = opp.uuid_propiedad', 'LEFT')->join('rpo_propiedades_cat AS procat', 'procat.id_cat = prop.id_estado_propiedad', 'LEFT')->join('proy_tipo_transaccion AS ptt', 'ptt.uuid_tipo_transaccion = opp.uuid_tipo_transaccion', 'LEFT'); /** * verificar array $ver_usuarios */ if (!empty($ver_usuarios["uuid_usuario"])) { $usuarios = $ver_usuarios["uuid_usuario"]; $usuarios = !empty($usuarios) ? implode(", ", array_map(function ($usuarios) { return "'" . $usuarios . "'"; }, $usuarios)) : ""; $clause["HEX(opp.id_asignado) IN(" . $usuarios . ")"] = NULL; } //Si existe busqueda por el usuario //No aplicar condicion de subordinado if (!empty($uuid_usuario)) { $clause = array("ocat.etiqueta <> 'Ganado'" => NULL, "ptt.nombre LIKE '%{$tipo_transaccion}%'" => NULL, "(HEX(opp.id_asignado) IN('" . $uuid_usuario . "') || HEX(opp.creado_por) IN('" . $uuid_usuario . "'))" => NULL); } //Filtrar por rango de fecha if (!empty($fecha_inicio)) { $fecha_inicio = date("Y-m-d H:i:s", strtotime($fecha_inicio)); $clause["prop.fecha_creacion >="] = $fecha_inicio; } if (!empty($fecha_fin)) { $fecha_fin = date("Y-m-d 23:59:59", strtotime($fecha_fin)); $clause["prop.fecha_creacion <="] = $fecha_fin; } $this->db->where($clause); return $this->db->get()->result_array(); }
/** * Seleccionar los ultimas acciones de los modulos * de (Propiedad, Actibidad y Oportunidades) * * */ function seleccionar_historial_modulos() { $notificaciones = array(); //datos provienen de filtro busqueda $fecha_inicio = $this->input->post('fecha_inicio', true); $fecha_fin = $this->input->post('fecha_fin', true); $uuid_usuario = $this->input->post('uuid_usuario', true); /** * Array con los uuid de usuarios * que el usario actual puede ver. */ $ver_usuarios = @CRM_Controller::andrea_ACL(); //------------------------------- // Notificaciones Oportunidades //------------------------------- //Permiso Default: ver las asignadas o las que ha creado $oportunidad_clause = "opp.nombre <> ''"; /** * verificar array $ver_usuarios */ //if(!empty($ver_usuarios["uuid_usuario"]) && CRM_Controller::$categoria_usuario_key != "admin"){ if (!empty($ver_usuarios["uuid_usuario"])) { $usuarios = $ver_usuarios["uuid_usuario"]; $usuarios = !empty($usuarios) ? implode(", ", array_map(function ($usuarios) { return "'" . $usuarios . "'"; }, $usuarios)) : ""; $oportunidad_clause = "HEX(opp.id_asignado) IN(" . $usuarios . ")"; } //Si existe busqueda por el usuario //No aplicar condicion de subordinado if (!empty($uuid_usuario)) { $oportunidad_clause = "(HEX(opp.id_asignado) IN('" . $uuid_usuario . "')"; } //Colocar filtro por fecha if (!empty($fecha_inicio)) { $fecha_inicio = date("Y-m-d H:i:s", strtotime($fecha_inicio)); $oportunidad_clause .= " AND opp.fecha_creacion >= '{$fecha_inicio}'"; } if (!empty($fecha_fin)) { $fecha_fin = date("Y-m-d 23:59:59", strtotime($fecha_fin)); $oportunidad_clause .= " AND opp.fecha_creacion <= '{$fecha_fin}'"; } $sql_oportunidad = "SELECT DISTINCT HEX(opp.uuid_oportunidad) AS uuid, opp.nombre, 'oportunidad' AS 'modulo', opp.fecha_creacion AS fecha,\n\t\t\t\tCONCAT_WS(' ', IF(usr2.nombre != '', usr2.nombre, ''), IF(usr2.apellido != '', usr2.apellido, '')) AS nombre_usuario\n\t\t\t\tFROM (`opp_oportunidades` AS opp)\n\t\t\t\tLEFT JOIN `cl_clientes` AS cl ON `cl`.`uuid_cliente` = `opp`.`uuid_cliente`\n\t\t\t\tLEFT JOIN `cp_clientes_potenciales` AS clp ON `clp`.`uuid_cliente_potencial` = `opp`.`uuid_cliente_potencial`\n\t\t\t\tLEFT JOIN `cl_cliente_sociedades_contactos` AS clcon ON `clcon`.`uuid_cliente` = `cl`.`uuid_cliente`\n\t\t\t\tLEFT JOIN `con_contactos` AS con ON `con`.`uuid_contacto` = `clcon`.`uuid_contacto`\n\t\t\t\tLEFT JOIN `opp_oportunidades_cat` AS ocat ON `ocat`.`id_cat` = `opp`.`id_etapa_venta`\n\t\t\t\tLEFT JOIN `usuarios` AS usr1 ON `usr1`.`uuid_usuario` = `opp`.`id_asignado`\n\t\t\t\tLEFT JOIN `usuarios` AS usr2 ON `usr2`.`uuid_usuario` = `opp`.`creado_por`\n\t\t\t\tLEFT JOIN `cl_clientes_cat` AS ccat ON `ccat`.`id_cat` = `cl`.`id_tipo_cliente`\n\t\t\t\tLEFT JOIN `rpo_propiedades` AS prop ON `prop`.`uuid_propiedad` = `opp`.`uuid_propiedad`\n\t\t\t\tWHERE ocat.etiqueta NOT IN('Ganado','Perdido') AND {$oportunidad_clause}"; //------------------------------- // Notificaciones de Actividades //------------------------------- $actividad_clause = "act.cancelado = 0 AND act.completada = 0 "; if (!empty($ver_usuarios["uuid_usuario"])) { $usuarios = $ver_usuarios["uuid_usuario"]; $usuarios = !empty($usuarios) ? implode(", ", array_map(function ($usuarios) { return "'" . $usuarios . "'"; }, $usuarios)) : ""; $actividad_clause = "HEX(usr.uuid_usuario) IN(" . $usuarios . ")"; } //Si existe busqueda por el usuario //No aplicar condicion de subordinado if (!empty($uuid_usuario)) { $actividad_clause = "(HEX(usr.uuid_usuario) IN('" . $uuid_usuario . "'))"; } //Colocar filtro por fecha if (!empty($fecha_inicio)) { $fecha_inicio = date("Y-m-d H:i:s", strtotime($fecha_inicio)); $actividad_clause .= " AND act.fecha_creacion >= '{$fecha_inicio}'"; } if (!empty($fecha_fin)) { $fecha_fin = date("Y-m-d 23:59:59", strtotime($fecha_fin)); $actividad_clause .= " AND act.fecha_creacion <= '{$fecha_fin}'"; } $sql_actividad = "SELECT DISTINCT HEX(act.uuid_actividad) AS uuid, act.asunto AS nombre, 'actividad' AS 'modulo', act.fecha_creacion AS fecha,\n\t\t\t\t\t\tCONCAT_WS(' ', IF(usr.nombre != '', usr.nombre, ''), IF(usr.apellido != '', usr.apellido, '')) AS nombre_usuario\n\t\t\t\t\t\tFROM (`act_actividades` AS act)\n\t\t\t\t\t\tLEFT JOIN `act_tipo_actividades` AS tact ON `tact`.`uuid_tipo_actividad` = `act`.`uuid_tipo_actividad`\n\t\t\t\t\t\tLEFT JOIN `usuarios` AS usr ON `usr`.`uuid_usuario` = `act`.`uuid_asignado`\n\t\t\t\t\t\tLEFT JOIN `cl_clientes` AS cl ON `act`.`uuid_cliente` = `cl`.`uuid_cliente`\n\t\t\t\t\t\tLEFT JOIN `cl_clientes_sociedades` AS csoc ON `csoc`.`uuid_sociedad` = `act`.`uuid_sociedad`\n\t\t\t\t\t\tLEFT JOIN `con_contactos` AS con ON `con`.`uuid_contacto` = `act`.`uuid_contacto`\n\t\t\t\t\t\tLEFT JOIN `act_actividades_cat` AS acat ON `act`.`relacionado_con` = `acat`.`id_cat`\n\t\t\t\t\t\tWHERE {$actividad_clause}"; //------------------------------- // Notificaciones de Propiedaes //------------------------------- /*if(CRM_Controller::$categoria_usuario_key == 'admin'){ $propiedades_clause = "rpo.nombre <> ''"; }else{*/ // $propiedades_clause = "HEX(rpo.uuid_categoria) = 'HEX(". CRM_Controller::$uuid_categoria_usuario .")'"; //} //Colocar filtro por fecha if (!empty($fecha_inicio)) { $fecha_inicio = date("Y-m-d H:i:s", strtotime($fecha_inicio)); $actividad_clause .= " AND rpo.fecha_creacion >= '{$fecha_inicio}'"; } if (!empty($fecha_fin)) { $fecha_fin = date("Y-m-d 23:59:59", strtotime($fecha_fin)); $actividad_clause .= " AND rpo.fecha_creacion <= '{$fecha_fin}'"; } /* $sql_propiedad = "SELECT DISTINCT HEX(`rpo`.`uuid_propiedad`) AS uuid, `rpo`.`nombre` AS nombre, 'propiedad' AS 'modulo', rpo.fecha_creacion AS fecha, CONCAT_WS(' ', IF(usr.nombre != '', usr.nombre, ''), IF(usr.apellido != '', usr.apellido, '')) AS nombre_usuario FROM (`rpo_propiedades` AS rpo) LEFT JOIN `rpo_propiedad_proyecto` AS prop_proy ON `prop_proy`.`uuid_propiedad` = `rpo`.`uuid_propiedad` LEFT JOIN `proy_proyectos` AS pry ON `pry`.`uuid_proyecto` = `prop_proy`.`uuid_proyecto` LEFT JOIN `rpo_propiedades_cat` AS cat ON `cat`.`id_cat` = `rpo`.`id_tipo_propiedad` LEFT JOIN `rpo_propiedades_cat` AS cat2 ON `cat2`.`id_cat` = `rpo`.`id_estado_propiedad` LEFT JOIN `usuarios` AS usr ON `usr`.`id_usuario` = `rpo`.`creado_por` WHERE $propiedades_clause";*/ //------------------------------- // Notificaciones de Proyectos //------------------------------- /*$fields = array ( "pry.id_proyecto", "pry.nombre", "pry.fecha_creacion", "ccat.etiqueta as tipo", "HEX(pry.uuid_proyecto) AS uuid_proyecto", "CONCAT_WS(' ', IF(usr.nombre != '', usr.nombre, ''), IF(usr.apellido != '', usr.apellido, '')) AS creado_por", ); $proyectos = $this->db->select($fields) ->distinct() ->from('proy_proyectos AS pry') ->join('proy_proyectos_cat AS ccat', 'ccat.id_cat = pry.id_tipo', 'LEFT') ->join('proy_proyectos_cat AS ccat2', 'ccat2.id_cat = pry.id_fase', 'LEFT') ->join('usuarios AS usr', 'usr.uuid_usuario = pry.creado_por', 'LEFT') ->join('rpo_propiedad_proyecto AS rpo_pry', 'rpo_pry.uuid_proyecto = pry.uuid_proyecto', 'LEFT') ->join('rpo_propiedades AS rpo', 'rpo.uuid_propiedad = rpo_pry.uuid_propiedad', 'LEFT') ->join('opp_oportunidades AS opp', 'opp.uuid_propiedad = rpo.uuid_propiedad', 'LEFT') //->where($clause) ->get() ->result_array(); if(!empty($proyectos)) { foreach($proyectos AS $proyecto) { $creado_por = !empty($proyecto) && !empty($proyecto["creado_por"]) ? $proyecto["creado_por"] : ""; $nombre_proyecto = !empty($proyecto) && !empty($proyecto["nombre"]) ? $proyecto["nombre"] : ""; $fecha_creacion = !empty($proyecto) && !empty($proyecto["fecha_creacion"]) ? $proyecto["fecha_creacion"] : ""; $tiempo_transcurrido = !empty($proyecto) && !empty($proyecto["fecha_creacion"]) ? Util::timeago($proyecto["fecha_creacion"]) : ""; $notificaciones[$i]["mensaje"] = $creado_por. ' ha creado el proyecto '. $nombre_proyecto; $notificaciones[$i]["tiempo_transcurrido"] = $tiempo_transcurrido; $notificaciones[$i]["fecha"] = ($fecha_creacion != "" && $fecha_creacion != "0000-00-00 00:00:00" ? Util::translate_date_to_spanish(date('l d \d\e F Y \d\e Y - h:i a', strtotime($fecha_creacion))) : ""); $i++; } }*/ //Cantidad de registros a mostrar $limit = !empty($_POST["limit"]) ? (int) $this->input->post('limit', true) : 5; $tables = ""; if (Auth::has_permission('acceso', 'oportunidades/listar-oportunidades')) { $tables .= "({$sql_oportunidad})"; } /*if(Auth::has_permission('acceso', 'propiedades/listar-propiedades')){ $tables .= $tables != "" ? " UNION ($sql_propiedad)" : "($sql_propiedad)"; }*/ if (Auth::has_permission('acceso', 'actividades/listar-actividades')) { $tables .= $tables != "" ? " UNION ({$sql_actividad})" : "({$sql_actividad})"; } /*$sql = "SELECT td.* FROM ( ($sql_oportunidad) UNION ($sql_actividad) UNION ($sql_propiedad)) AS td ORDER BY td.fecha DESC LIMIT 0, %s";*/ if (empty($tables)) { return false; } /*echo $tables; die(); */ $sql = "SELECT td.* FROM ({$tables}) AS td ORDER BY td.fecha DESC LIMIT 0, %s"; $sql = sprintf($sql, $limit); $results = $this->db->query($sql)->result_array(); $i = 0; if (!empty($results)) { foreach ($results as $result) { $nombre_usuario = !empty($result) && !empty($result["nombre_usuario"]) ? $result["nombre_usuario"] : ""; $nombre_notificacion = !empty($result) && !empty($result["nombre"]) ? $result["nombre"] : ""; $tipo_notificacion = !empty($result) && !empty($result["modulo"]) ? $result["modulo"] : ""; $fecha_creacion = !empty($result) && !empty($result["fecha"]) ? $result["fecha"] : ""; $tiempo_transcurrido = !empty($fecha_creacion) && !empty($fecha_creacion) ? Util::timeago($fecha_creacion) : ""; $notificaciones[$i]["mensaje"] = $nombre_usuario . ' ha creado la ' . $tipo_notificacion . ' ' . $nombre_notificacion; $notificaciones[$i]["tiempo_transcurrido"] = $tiempo_transcurrido; $notificaciones[$i]["fecha"] = $fecha_creacion != "" && $fecha_creacion != "0000-00-00 00:00:00" ? Util::translate_date_to_spanish(date('l d \\d\\e F Y \\d\\e Y - h:i a', strtotime($fecha_creacion))) : ""; $i++; } } return $notificaciones; }
/** * Retorna el total de oportunidades * de un cliente. * * @param string $uuid_cliente * @return array */ function selecciona_total_oportunidades_cliente($uuid_cliente = NULL) { if ($uuid_cliente == NULL) { return false; } /** * Array con los uuid de usuarios * que el usario actual puede ver. */ $ver_usuarios = @CRM_Controller::andrea_ACL(); $fields = array("COUNT(opp.id_oportunidad) AS total"); $clause = array("opp.uuid_cliente = UNHEX('{$uuid_cliente}')" => NULL); $result = $this->db->select($fields)->distinct()->from('opp_oportunidades AS opp'); if (!empty($ver_usuarios["uuid_usuario"])) { $usuarios = $ver_usuarios["uuid_usuario"]; $usuarios = !empty($usuarios) ? implode(", ", array_map(function ($usuarios) { return "'" . $usuarios . "'"; }, $usuarios)) : ""; $clause["HEX(opp.id_asignado) IN(" . $usuarios . ")"] = NULL; } return $this->db->where($clause)->get()->result_array(); }