/**
  * 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;
 }
 function ver_proyecto($uuid_proyecto = NULL)
 {
     if (!Auth::has_permission("acceso", "proyectos/ver-proyecto/(:any)")) {
         redirect('/');
     }
     $data = array("proyecto" => $this->proyectos_model->seleccionar_informacion_proyecto($uuid_proyecto), "uuid_proyecto" => $uuid_proyecto);
     $mensaje = array();
     /*
      * Verificar si existe alguna variable de session
      * proveniente de algun formulario de crear/editar
      */
     if ($this->session->userdata('uuid_proyecto')) {
         //Borrar la variable de session
         $this->session->unset_userdata('uuid_proyecto');
         //Establecer el mensaje a mostrar
         $data["mensaje"]["clase"] = "alert-success";
         $data["mensaje"]["contenido"] = "Se ha actualizado el proyecto satisfactoriamente.";
     }
     if ($this->session->userdata('uuid_cliente')) {
         //Borrar la variable de session
         $this->session->unset_userdata('uuid_cliente');
         //Establecer el mensaje a mostrar
         $data["mensaje"]["clase"] = "alert-success";
         $data["mensaje"]["contenido"] = "Se ha creado el Cliente satisfactoriamente.";
     }
     if (!empty($_POST)) {
         $response = $this->proyectos_model->actualizar_proyecto($uuid_proyecto);
         if ($response == true) {
             redirect(base_url('proyectos/ver-proyecto/' . $uuid_proyecto));
         } else {
             //Establecer el mensaje a mostrar
             $data["mensaje"]["clase"] = "alert-danger";
             $data["mensaje"]["contenido"] = "Hubo un error al tratar de actualizar el proyecto.";
         }
     }
     //Introducir mensaje de error al arreglo
     //para mostrarlo en caso de haber error
     $data["message"] = $mensaje;
     $this->assets->agregar_css(array('public/assets/css/default/ui/base/jquery-ui.css', 'public/assets/css/default/ui/base/jquery-ui.theme.css', 'public/assets/css/plugins/jquery/jqgrid/ui.jqgrid.bootstrap.css', 'public/assets/css/plugins/jquery/jqgrid/ui.jqgrid.css'));
     $this->assets->agregar_js(array('public/assets/js/plugins/ckeditor/ckeditor.js', 'public/assets/js/plugins/ckeditor/adapters/jquery.js', 'public/assets/js/plugins/bootstrap/bootstrap-tagsinput.js', 'public/assets/js/plugins/jquery/jquery.sticky.js', 'public/assets/js/plugins/jquery/switchery.min.js', 'public/assets/js/plugins/jquery/jQuery.resizeEnd.js', 'public/assets/js/plugins/jquery/jqgrid/i18n/grid.locale-es.js', 'public/assets/js/plugins/jquery/jqgrid/jquery.jqGrid.min.js', 'public/assets/js/plugins/jquery/jqgrid/plugins/jQuery.jqGrid.columnToggle.js', 'public/assets/js/plugins/jquery/jquery-validation/jquery.validate.min.js', 'public/assets/js/plugins/jquery/jquery-validation/localization/messages_es.min.js', 'public/assets/js/plugins/jquery/chosen.jquery.min.js', 'public/assets/js/plugins/jquery/jquery-inputmask/inputmask.js', 'public/assets/js/plugins/jquery/jquery-inputmask/jquery.inputmask.js', 'public/assets/js/default/formulario.js', 'public/assets/js/modules/proyectos/ver_proyecto.js'));
     //Agregra variables PHP como variables JS
     $this->assets->agregar_var_js(array("uuid_proyecto" => $uuid_proyecto, "permiso_editar_proyecto" => $this->auth->has_permission('ver-proyecto__editarProyecto', 'proyectos/ver-proyecto/(:any)') == true ? 'true' : 'false'));
     $this->template->agregar_titulo_header('Proyectos');
     $breadcrumb = array("titulo" => '<i class="fa fa-cubes"></i> Proyectos', "ruta" => array(0 => array("nombre" => "Inventario", "activo" => false), 1 => array("nombre" => 'Proyectos', "url" => 'proyectos/listar-proyectos', "activo" => false), 2 => array("nombre" => '<b>Vista</b>', "activo" => true)), "menu" => array("nombre" => "Crear", "url" => "proyectos/crear-proyecto", "opciones" => array()));
     //Verificar si tiene permiso de Exportar
     if ($this->auth->has_permission('listar-propiedades__exportar', 'propiedades/listar-propiedades')) {
         $breadcrumb["menu"]["opciones"]["#exportarPropiedadBtn"] = "Exportar";
     }
     $this->template->agregar_breadcrumb($breadcrumb);
     $this->template->agregar_contenido($data);
     $this->template->visualizar();
 }
 public function ajax_listar_casos()
 {
     //Just Allow ajax request
     if ($this->input->is_ajax_request()) {
         /**
          * Get the requested page.
          * @var int
          */
         $page = (int) $this->input->post('page', true);
         /**
          * Get how many rows we want to have into the grid
          * rowNum parameter in the grid.
          * @var int
          */
         $limit = (int) $this->input->post('rows', true);
         /**
          * Get index row - i.e. user click to sort
          * at first time sortname parameter - after that the index from colModel.
          * @var int
          */
         $sidx = $this->input->post('sidx', true);
         /**
          * Sorting order - at first time sortorder
          * @var string
          */
         $sord = $this->input->post('sord', true);
         /**
          * Inicializar variable $clause de busqueda
          */
         $clause = array();
         /**
          * Verificar si existe algun $_POST
          * de los campos de busqueda
          */
         $asunto = $this->input->post('asunto', true);
         $nombre_cliente = $this->input->post('cliente', true);
         $estado = $this->input->post('estado', true);
         $fecha_desde = $this->input->post('fecha_desde', true);
         $fecha_hasta = $this->input->post('fecha_hasta', true);
         $uuid_cliente = $this->input->post('uuid_cliente', true);
         $fecha_creacion_inicio = $this->input->post('fecha_creacion_inicio', true);
         $fecha_creacion_fin = $this->input->post('fecha_creacion_fin', true);
         if (!empty($asunto)) {
             $clause["cas.asunto LIKE '%{$asunto}%'"] = NULL;
         }
         if (!empty($nombre_cliente)) {
             $clause["cl.nombre LIKE '%{$nombre_cliente}%'"] = NULL;
         }
         if (!empty($estado)) {
             $clause["cas.id_estado = '{$estado}'"] = NULL;
         }
         if (!empty($fecha_desde)) {
             $clause["cas.fecha_cracion >= '%{$fecha_desde}%'"] = NULL;
         }
         if (!empty($fecha_hasta)) {
             $clause["cas.fecha_cracion <= '%{$fecha_hasta}%'"] = NULL;
         }
         if (!empty($uuid_cliente)) {
             //$clause["cas.uuid_cliente = '$uuid_cliente'"] = NULL;
             $clause["cas.uuid_cliente = UNHEX('{$uuid_cliente}')"] = NULL;
         }
         if (!empty($fecha_creacion_inicio)) {
             $fecha_creacion_inicio = date("Y-m-d H:i:s", strtotime($fecha_creacion_inicio));
             $clause["cas.fecha_cracion >="] = $fecha_creacion_inicio;
         }
         if (!empty($fecha_creacion_fin)) {
             $fecha_creacion_fin = date("Y-m-d 23:59:59", strtotime($fecha_creacion_fin));
             $clause["cas.fecha_cracion <="] = $fecha_creacion_fin;
         }
         //Query a Base de Datos para listar todos los casos
         $contarCasos = $this->casos_model->contar_casos($clause);
         //Escribir en cache el query de total de casos
         //Tiempo: 2 horas
         /*CRM_Controller::$cache->set("contarCasos", $contarCasos , 120);
           }*/
         /**
          * Total rows found in the query.
          * @var int
          */
         $count = !empty($contarCasos) && count($contarCasos) > 0 ? count($contarCasos) : 0;
         /**
          * Calcule total pages if $coutn is higher than zero.
          * @var int
          */
         $total_pages = $count > 0 ? ceil($count / $limit) : 0;
         // if for some reasons the requested page is greater than the total
         // set the requested page to total page
         if ($page > $total_pages) {
             $page = $total_pages;
         }
         /**
          * calculate the starting position of the rows
          * do not put $limit*($page - 1).
          * @var int
          */
         $start = $limit * $page - $limit;
         // do not put $limit*($page - 1)
         // if for some reasons start position is negative set it to 0
         // typical case is that the user type 0 for the requested page
         if ($start < 0) {
             $start = 0;
         }
         //Verificar en cache si existe el contador de casos
         /*$listaClientes = CRM_Controller::$cache->get("listaClientes");
         
                     if($listaClientes == null) {*/
         //Query a Base de Datos para listar todos los casos
         $listaCasos = $this->casos_model->listar_casos($clause, $sidx, $sord, $limit, $start);
         //Escribir en cache el query de total de clientes
         //Tiempo: 2 horas
         /*CRM_Controller::$cache->set("listaClientes", $listaClientes , 120);
           }*/
         //Constructing a JSON
         $response = new stdClass();
         $response->page = $page;
         $response->total = $total_pages;
         $response->records = $count;
         $i = 0;
         if (!empty($listaCasos)) {
             foreach ($listaCasos as $i => $row) {
                 $link = $row['uuid_cliente'] . '-' . $row['uuid_caso'];
                 $hidden_options = "";
                 $link_option = '<button class="viewOptions btn btn-success btn-sm" type="button" data-caso="' . $row['uuid_caso'] . '"><i class="fa fa-cog"></i> <span class="hidden-xs hidden-sm hidden-md">Opciones</span></button>';
                 $url = preg_match("/casos/i", $_SERVER['HTTP_REFERER']) ? base_url('casos/ver-caso/' . $row['uuid_caso']) : "#";
                 if (Auth::has_permission("acceso", "casos/ver-caso/(:any)")) {
                     $hidden_options .= '<a id="verCaso" href="' . $url . '" class="btn btn-block btn-outline btn-success"  data-caso="' . $row['uuid_caso'] . '">Ver Detalles</a>';
                 }
                 //Esta Opcion solo se muestra desde el sub panel de clientes
                 if (Auth::has_permission("acceso", "actividades/crear-actividad")) {
                     if (preg_match("/ver-cliente-natural/i", $_SERVER['HTTP_REFERER']) || preg_match("/ver-cliente-juridico/i", $_SERVER['HTTP_REFERER'])) {
                         $hidden_options .= '<a href="#" id="crearActividadCasoClientes" data-caso="' . $row['uuid_caso'] . '" class="btn btn-block btn-outline btn-success">Agregar Actividad</a>';
                     }
                 }
                 //Solo mostrar en el modulo de casos
                 if (Auth::has_permission("acceso", "actividades/crear-actividad")) {
                     if (preg_match("/casos/i", $_SERVER['HTTP_REFERER'])) {
                         $hidden_options .= '<a href="#" id="crearActividad" data-caso="' . $row['uuid_caso'] . '" class="btn btn-block btn-outline btn-success">Registrar Actividad</a>';
                     }
                 }
                 //Solo mostrar en el modulo de clientes
                 if (preg_match("/ver-cliente-/i", $_SERVER['HTTP_REFERER'])) {
                     $hidden_options .= '<a  href="' . base_url('casos/ver-caso/' . $row['uuid_caso']) . '"   data-caso="' . $row['uuid_caso'] . '" class="btn btn-block btn-outline btn-success">Todas las Actividades</a>';
                 }
                 $url_asignarme = preg_match("/casos/i", $_SERVER['HTTP_REFERER']) ? base_url('casos/asignarme/' . $row['uuid_caso']) : "#";
                 //if(preg_match("/casos/i", $_SERVER['HTTP_REFERER']))
                 if ($this->auth->has_permission('acceso', 'casos/asignarme/(:any)')) {
                     $hidden_options .= '<a  id="asignarmeCaso" href="' . $url_asignarme . '"  data-caso="' . $row['uuid_caso'] . '"  class="btn btn-block btn-outline btn-success">Asignarme</a>';
                 }
                 if (preg_match("/casos/i", $_SERVER['HTTP_REFERER'])) {
                     if ($this->auth->has_permission('acceso', 'casos/historial/(:any)')) {
                         $hidden_options .= '<a  href="' . base_url('casos/historial/' . $row['uuid_caso']) . '" class="btn btn-block btn-outline btn-success">Historial</a>';
                     }
                 }
                 $usuario_asignado = !empty($row['usuario_asignado']) ? $row['usuario_asignado'] : "";
                 $asunto = $row['asunto'];
                 $_link = str_pad($row['numero'], 4, '0', STR_PAD_LEFT);
                 if (preg_match("/casos/i", $_SERVER['HTTP_REFERER']) && $this->auth->has_permission('acceso', 'casos/ver-caso/(:any)')) {
                     if ($row["tipo_cliente"] == "natural") {
                         $_link = "<a   href='" . base_url("clientes/ver-cliente-natural/" . $link) . "'>" . str_pad($row['numero'], 4, '0', STR_PAD_LEFT) . "</a>";
                     } else {
                         if ($row["tipo_cliente"] == "juridico") {
                             $_link = "<a   href='" . base_url("clientes/ver-cliente-juridico/" . $link) . "'>" . str_pad($row['numero'], 4, '0', STR_PAD_LEFT) . "</a>";
                         }
                     }
                 }
                 $nombre_cliente = $row['nombre_cliente'];
                 if (preg_match("/casos/i", $_SERVER['HTTP_REFERER'])) {
                     if ($row["tipo_cliente"] == "natural" && $this->auth->has_permission('acceso', 'clientes/ver-cliente-natural/(:any)')) {
                         $nombre_cliente = "<a   href='" . base_url("clientes/ver-cliente-natural/" . $row['uuid_cliente']) . "'>" . $row['nombre_cliente'] . "</a>";
                     } else {
                         if ($row["tipo_cliente"] == "juridico" && $this->auth->has_permission('acceso', 'clientes/ver-cliente-juridico/(:any)')) {
                             $nombre_cliente = "<a   href='" . base_url("clientes/ver-cliente-juridico/" . $row['uuid_cliente']) . "'>" . $row['nombre_cliente'] . "</a>";
                         }
                     }
                 }
                 $response->rows[$i]["id"] = $row['uuid_caso'];
                 $response->rows[$i]["cell"] = array($_link, $asunto, $nombre_cliente, $row['fecha_cracion'], $row['tipo'], $row['estado'], $row['usuario'], $link_option, $hidden_options);
                 $i++;
             }
         }
         echo json_encode($response);
         exit;
     }
 }
 public function ajax_listar_clientes_potenciales()
 {
     //Just Allow ajax request
     if ($this->input->is_ajax_request()) {
         /**
          * Get the requested page.
          * @var int
          */
         $page = (int) $this->input->post('page', true);
         /**
          * Get how many rows we want to have into the grid
          * rowNum parameter in the grid.
          * @var int
          */
         $limit = (int) $this->input->post('rows', true);
         /**
          * Get index row - i.e. user click to sort
          * at first time sortname parameter - after that the index from colModel.
          * @var int
          */
         $sidx = $this->input->post('sidx', true);
         /**
          * Sorting order - at first time sortorder
          * @var string
          */
         $sord = $this->input->post('sord', true);
         /**
          * Inicializar variable $clause de busqueda
          */
         $clause = array();
         /**
          * Verificar si existe algun $_POST 
          * de los campos de busqueda
          */
         $nombre = $this->input->post('nombre', true);
         $compania = $this->input->post('compania', true);
         $telefono = $this->input->post('telefono', true);
         $correo = $this->input->post('correo', true);
         if (!empty($nombre)) {
             $clause["CONCAT_WS(' ', IF(cp.nombre != '', cp.nombre, ''), IF(cp.apellido != '', cp.apellido, '')) LIKE '%{$nombre}%'"] = NULL;
         }
         if (!empty($compania)) {
             $clause["cp.compania LIKE '%{$compania}%'"] = NULL;
         }
         if (!empty($telefono)) {
             $clause["cp.telefono LIKE '%{$telefono}%'"] = NULL;
         }
         if (!empty($correo)) {
             $clause["cp.correo LIKE '%{$correo}%'"] = NULL;
         }
         //Verificar en cache si existe el contador de clientes
         $contarClientes = CRM_Controller::$cache->get("contarClientesPotenciales");
         //Get all records in Table
         $countarClientes = $this->clientes_potenciales_model->contar_clientes_potenciales($clause);
         /**
          * Total rows found in the query.
          * @var int
          */
         $count = !empty($countarClientes) && count($countarClientes) > 0 ? count($countarClientes) : 0;
         /**
          * Calcule total pages if $coutn is higher than zero.
          * @var int
          */
         $total_pages = $count > 0 ? ceil($count / $limit) : 0;
         // if for some reasons the requested page is greater than the total
         // set the requested page to total page
         if ($page > $total_pages) {
             $page = $total_pages;
         }
         /**
          * calculate the starting position of the rows
          * do not put $limit*($page - 1).
          * @var int
          */
         $start = $limit * $page - $limit;
         // do not put $limit*($page - 1)
         // if for some reasons start position is negative set it to 0
         // typical case is that the user type 0 for the requested page
         if ($start < 0) {
             $start = 0;
         }
         //Verificar en cache si existe el contador de clientes
         $listarClientes = CRM_Controller::$cache->get("listaClientesPotenciales");
         //Listado de Clientes Potenciales
         $listarClientes = $this->clientes_potenciales_model->listar_clientes_potenciales($clause, $sidx, $sord, $limit, $start);
         //Constructing a JSON
         $response = new stdClass();
         $response->page = $page;
         $response->total = $total_pages;
         $response->records = $count;
         $i = 0;
         if (!empty($listarClientes)) {
             foreach ($listarClientes as $i => $row) {
                 $hidden_options = "";
                 $link_option = '<button class="viewOptions btn btn-success btn-sm" type="button" data-rol="' . $row["uuid_cliente_potencial"] . '"><i class="fa fa-cog"></i> <span class="hidden-xs hidden-sm hidden-md">Opciones</span></button>';
                 if ($this->auth->has_permission('acceso', 'clientes_potenciales/ver-cliente-potencial/(:any)')) {
                     $hidden_options .= '<a href="' . base_url("clientes_potenciales/ver-cliente-potencial/" . $row["uuid_cliente_potencial"]) . '" class="btn btn-block btn-outline btn-success">Ver Cliente Potencial</a>';
                 }
                 //$hidden_options .= '<a href="#" class="btn btn-block btn-outline btn-success">Registrar Actividad</a>';
                 if (Auth::has_permission("acceso", "actividades/crear-actividad")) {
                     $hidden_options .= '<a href="#" id="crearActividad" data-cliente-potencial="' . $row['uuid_cliente_potencial'] . '" class="btn btn-block btn-outline btn-success">Registrar Actividad</a>';
                 }
                 //if ($this->auth->has_permission('listar-clientes-potenciales__campanaMercadeo', 'clientes_potenciales/listar-clientes-potenciales')){
                 $hidden_options .= '<a href="' . base_url('oportunidades/crear-oportunidad/' . $row['uuid_cliente_potencial'] . '-cliente-potencial') . '" data-cliente="" class="btn btn-block btn-outline btn-success">Agregar Oportunidad</a>';
                 //}
                 if (Auth::has_permission("acceso", "documentos/crear-documentos")) {
                     $hidden_options .= '<a href="#" class="btn btn-block btn-outline btn-success"  data-cliente="' . $row['uuid_cliente_potencial'] . '"  id="subirArchivosBtn">Subir Documentos</a>';
                 }
                 if ($this->auth->has_permission('listar-clientes-potenciales__convertirJuridico', 'clientes_potenciales/listar-clientes-potenciales')) {
                     $hidden_options .= '<a href="#" data-cliente="' . $row["uuid_cliente_potencial"] . '" id="confirmarConvertirJuridicoBtn" class="btn btn-block btn-outline btn-success">Convertir a Cliente Juridico</a>';
                 }
                 if ($this->auth->has_permission('listar-clientes-potenciales__convertirNatural', 'clientes_potenciales/listar-clientes-potenciales')) {
                     $hidden_options .= '<a href="#" data-cliente="' . $row["uuid_cliente_potencial"] . '" id="confirmarConvertirNaturalBtn" class="btn btn-block btn-outline btn-success">Convertir a Cliente Natural</a>';
                 }
                 if ($this->auth->has_permission('listar-clientes-potenciales__eliminar', 'clientes_potenciales/listar-clientes-potenciales')) {
                     $hidden_options .= '<a href="#" data-cliente="' . $row["uuid_cliente_potencial"] . '" class="btn btn-block btn-outline btn-success" id="eliminarClienteIndividual">Eliminar</a>';
                 }
                 $response->rows[$i]["id"] = $row["uuid_cliente_potencial"];
                 $response->rows[$i]["cell"] = array($row["compania"], '<a href="' . base_url("clientes_potenciales/ver-cliente-potencial/" . $row["uuid_cliente_potencial"]) . '">' . $row["nombre_cliente"] . '</a>', $row["telefono"], $row["correo"], $row["toma_contacto"], $link_option, $hidden_options);
                 $i++;
             }
         }
         echo json_encode($response);
         exit;
     }
 }
 public function listar_contactos()
 {
     if (!$this->auth->has_permission('acceso')) {
         // No, tiene permiso, redireccionarlo.
         redirect('/');
     }
     $this->assets->agregar_css(array('public/assets/css/default/ui/base/jquery-ui.css', 'public/assets/css/default/ui/base/jquery-ui.theme.css', 'public/assets/css/plugins/jquery/jqgrid/ui.jqgrid.bootstrap.css', 'public/assets/css/plugins/jquery/jqgrid/ui.jqgrid.css', 'public/assets/css/plugins/jquery/awesome-bootstrap-checkbox.css', 'public/assets/css/plugins/jquery/switchery.min.css', 'public/assets/css/plugins/jquery/chosen/chosen.min.css', 'public/assets/css/plugins/bootstrap/bootstrap-tagsinput.css', 'public/assets/css/plugins/bootstrap/bootstrap-datetimepicker.css', 'public/assets/css/plugins/jquery/fileinput/fileinput.css'));
     $this->assets->agregar_js(array('public/assets/js/default/jquery-ui.min.js', 'public/assets/js/plugins/jquery/jquery.sticky.js', 'public/assets/js/plugins/jquery/jQuery.resizeEnd.js', 'public/assets/js/plugins/jquery/jquery-validation/jquery.validate.min.js', 'public/assets/js/plugins/jquery/jquery-validation/localization/messages_es.min.js', 'public/assets/js/plugins/jquery/jqgrid/i18n/grid.locale-es.js', 'public/assets/js/plugins/jquery/jqgrid/jquery.jqGrid.min.js', 'public/assets/js/plugins/jquery/chosen.jquery.min.js', 'public/assets/js/moment-with-locales-290.js', 'public/assets/js/modules/contactos/listar_contactos.js', 'public/assets/js/plugins/jquery/switchery.min.js', 'public/assets/js/plugins/bootstrap/bootstrap-tagsinput.js', 'public/assets/js/plugins/jquery/fileinput/fileinput.js', 'public/assets/js/plugins/jquery/fileinput/fileinput_locale_es.js', 'public/assets/js/default/grid.js', 'public/assets/js/plugins/ckeditor/ckeditor.js', 'public/assets/js/plugins/ckeditor/adapters/jquery.js', 'public/assets/js/plugins/jquery/jquery-inputmask/inputmask.js', 'public/assets/js/plugins/jquery/jquery-inputmask/jquery.inputmask.js', 'public/assets/js/plugins/jquery/chosen.jquery.min.js', 'public/assets/js/plugins/bootstrap/bootstrap-tabdrop.js', 'public/assets/js/plugins/jquery/jquery-validation/jquery.validate.min.js', 'public/assets/js/plugins/jquery/jquery-validation/localization/messages_es.min.js', 'public/assets/js/plugins/bootstrap/bootstrap-datetimepicker.js', 'public/assets/js/default/formulario.js'));
     // Build the data array
     $data = $camposGrid = array();
     $clause = array();
     $sidx = 'cl.id_cliente';
     $sord = 'desc';
     $limit = '100';
     $ragistrosContactos = $this->contactos_model->listar_contactos($clause, $sidx, $sord, $limit);
     $i = 0;
     if (!empty($ragistrosContactos)) {
         foreach ($ragistrosContactos as $registros) {
             $hidden_options = $link_option = "";
             $contacto_nombre = $registros["nombre"];
             /*
              * if($this->auth->has_permission('acceso', 'contactos/editar-contacto/(:num)')){ $hidden_options = '<a href="'. base_url("contactos/editar/". $row['id_contacto']) .'" class="btn btn-block btn-outline btn-success">Editar Contacto</a>'; }
              */
             $hidden_options .= '<a href="' . base_url("contactos/ver-contacto/" . $registros['uuid_contacto']) . '"  id="verContacto" data-contacto="' . $registros['uuid_contacto'] . '" class="btn btn-block btn-outline btn-success" type="button">Ver Contacto</a>';
             if (Auth::has_permission("acceso", "oportunidades/crear-oportunidad/(:any)")) {
                 $hidden_options .= '<a href="' . base_url("oportunidades/crear-oportunidad/" . $registros['uuid_contacto'] . '-contacto') . '" class="btn btn-block btn-outline btn-success">Agregar Oportunidad</a>';
             }
             if (Auth::has_permission("acceso", "actividades/crear-actividad")) {
                 $hidden_options .= '<a href="#" id="crearActividad" data-contacto="' . $registros['uuid_contacto'] . '" class="btn btn-block btn-outline btn-success">Registrar Actividad</a>';
             }
             if (Auth::has_permission("acceso", "documentos/crear-documentos")) {
                 $hidden_options .= '<a href="#" class="btn btn-block btn-outline btn-success"  data-contacto="' . $registros['uuid_contacto'] . '"  id="subirArchivosBtn">Subir Documentos</a>';
             }
             $camposGrid[$i]["opcion"] = $hidden_options;
             //$camposGrid [$i] ["imagen"] = isset ($registros ["imagen_archivo"]) ? $registros ["imagen_archivo"] : NULL;
             $camposGrid[$i]["imagen"] = $registros["imagen_archivo"] != '' ? base_url('public/uploads/' . $registros["imagen_archivo"]) : base_url('public/uploads/clientes/default.png');
             $camposGrid[$i]["uuid"] = isset($registros["uuid_contacto"]) ? $registros["uuid_contacto"] : NULL;
             $camposGrid[$i]["id"] = isset($registros["id_contacto"]) ? $registros["id_contacto"] : NULL;
             $camposGrid[$i]["titulo"]["name"] = "Nombre";
             $nombre = isset($registros["nombre"]) ? $registros["nombre"] : NULL;
             $apellido = isset($registros["apellido"]) ? $registros["apellido"] : NULL;
             $camposGrid[$i]["titulo"]["value"] = $nombre . " " . $apellido;
             $camposGrid[$i]["subtitulo"]["name"] = "Cliente";
             $camposGrid[$i]["subtitulo"]["value"] = isset($registros['cliente']) ? $registros['cliente'] : NULL;
             $camposGrid[$i]["info"][0]["name"] = "Cargo";
             $camposGrid[$i]["info"][0]["value"] = isset($registros["cargo"]) ? $registros["cargo"] : NULL;
             $camposGrid[$i]["info"][1]["name"] = "Email";
             $camposGrid[$i]["info"][1]["value"] = isset($registros["email"]) ? $registros["email"] : NULL;
             $camposGrid[$i]["info"][2]["name"] = "Usuario";
             $camposGrid[$i]["info"][2]["value"] = isset($registros["email"]) ? $registros["email"] : NULL;
             $camposGrid[$i]["info"][3]["name"] = "Tel&eacute;fono";
             $camposGrid[$i]["info"][3]["value"] = isset($registros["telefono"]) ? $registros["telefono"] : NULL;
             $camposGrid[$i]["info"][4]["name"] = "&Uacute;ltimo Contacto";
             $camposGrid[$i]["info"][4]["value"] = isset($registros["ultimo_contacto"]) ? $registros["ultimo_contacto"] : NULL;
             $camposGrid[$i]["info"][5]["name"] = "Toma de Contacto";
             $camposGrid[$i]["info"][5]["value"] = isset($registros["toma_contacto"]) ? $registros["toma_contacto"] : NULL;
             $i++;
         }
     }
     /*
      * Verificar si existe alguna variable de session
      * proveniente de algun formulario de crear/editar
      */
     if ($this->session->userdata('idContacto')) {
         //Borrar la variable de session
         $this->session->unset_userdata('idContacto');
         //Establecer el mensaje a mostrar
         $data["mensaje"]["clase"] = "alert-success";
         $data["mensaje"]["contenido"] = "Se ha creado el Contacto satisfactoriamente.";
     }
     //$data = array('data'=> $data,'grid'=> $camposGrid);
     $datos = array('data' => $data, 'grid' => $camposGrid);
     $this->template->agregar_titulo_header('Listado de Contactos');
     $breadcrumb = array("titulo" => '<i class="fa fa-user"></i> Contactos', "ruta" => array(0 => array("nombre" => "Ventas", "activo" => false), 1 => array("nombre" => '<b>Contactos</b>', "url" => 'contactos/listar-contactos', "activo" => true)), "filtro" => true);
     $this->assets->agregar_var_js(array("uuid_usuario" => CRM_Controller::$uuid_usuario));
     // Verificar si tiene permiso de crear
     if (!$this->auth->has_permission('acceso', 'contactos/crear-contacto/(:any)')) {
         $breadcrumb["menu"]["url"] = "contactos/listar-contactos#sinpermiso";
     }
     // Verificar si tiene permiso de Exportar
     if ($this->auth->has_permission('listar-contactos__exportar_contacto', 'contactos/listar-contactos')) {
         $breadcrumb["menu"]["opciones"]["#exportarContactosBtn"] = "Exportar";
     }
     // Verificar si tiene permiso de Agregar a Campaña de Mercadeo
     /* if ($this->auth->has_permission('listar-contactos__agregar_campana_mercadeo', 'contactos/listar-contactos')) {
              $breadcrumb ["menu"] ["opciones"] ["contactos/campana"] = "Agregar a Campaña de Mercadeo";
          }
        */
     $this->template->agregar_contenido($datos);
     $this->template->agregar_breadcrumb($breadcrumb);
     $this->template->visualizar($breadcrumb);
 }
 public function ajax_listar_oportunidades()
 {
     //Just Allow ajax request
     if ($this->input->is_ajax_request()) {
         /**
          * Get the requested page.
          * @var int
          */
         $page = (int) $this->input->post('page', true);
         /**
          * Get how many rows we want to have into the grid
          * rowNum parameter in the grid.
          * @var int
          */
         $limit = (int) $this->input->post('rows', true);
         /**
          * Get index row - i.e. user click to sort
          * at first time sortname parameter - after that the index from colModel.
          * @var int
          */
         $sidx = $this->input->post('sidx', true);
         /**
          * Sorting order - at first time sortorder
          * @var string
          */
         $sord = $this->input->post('sord', true);
         /**
          * Inicializar variable $clause de busqueda
          *
          * Permiso Default: ver las asignadas o las que ha creado
          */
         $clause = array();
         /**
          * Verificar si existe algun $_POST
          * de los campos de busqueda
          */
         $nombre = $this->input->post('nombre_oportunidad', true);
         $nombre_cliente = $this->input->post('nombre_cliente', true);
         $uuid_cliente = $this->input->post('uuid_cliente', true);
         $id_etapa_venta = $this->input->post('id_etapa_venta', true);
         $fecha_oportunidad_inicio = $this->input->post('fecha_oportunidad_inicio', true);
         $fecha_oportunidad_fin = $this->input->post('fecha_oportunidad_fin', true);
         $uuid_tipo_transaccion = $this->input->post('id_tipo_transaccion', true);
         if (!empty($uuid_cliente)) {
             $clause["opp.uuid_cliente = UNHEX('" . $uuid_cliente . "')"] = NULL;
         }
         if (!empty($nombre_cliente)) {
             $clause["CONCAT_WS(' ', IF(cl.nombre != '', cl.nombre, ''), IF(cl.apellido != '', cl.apellido, '')) LIKE '%{$nombre_cliente}%'"] = NULL;
         }
         if (!empty($nombre)) {
             $clause["opp.nombre LIKE '%{$nombre}%'"] = NULL;
         }
         if (!empty($id_etapa_venta)) {
             $clause["ocat.id_cat"] = $id_etapa_venta;
         }
         if (!empty($fecha_oportunidad_inicio)) {
             $fecha_oportunidad_inicio = date("Y-m-d H:i:s", strtotime($fecha_oportunidad_inicio));
             $clause["opp.fecha_creacion >="] = $fecha_oportunidad_inicio;
         }
         if (!empty($fecha_oportunidad_fin)) {
             $fecha_oportunidad_fin = date("Y-m-d 23:59:59", strtotime($fecha_oportunidad_fin));
             $clause["opp.fecha_creacion <="] = $fecha_oportunidad_fin;
         }
         if (!empty($uuid_tipo_transaccion)) {
             $clause["opp.uuid_tipo_transaccion = UNHEX('" . $uuid_tipo_transaccion . "')"] = NULL;
         }
         /**
          * Array con los uuid de usuarios
          * que el usario actual puede ver.
          */
         $ver_usuarios = $this->andrea_ACL();
         //Query a Base de Datos para listar todos los clientes
         $contarOportunidades = $this->oportunidades_model->contar_oportunidades($clause, $ver_usuarios);
         /**
          * Total rows found in the query.
          * @var int
          */
         $count = !empty($contarOportunidades) && count($contarOportunidades) > 0 ? count($contarOportunidades) : 0;
         /**
          * Calcule total pages if $coutn is higher than zero.
          * @var int
          */
         $total_pages = $count > 0 ? ceil($count / $limit) : 0;
         // if for some reasons the requested page is greater than the total
         // set the requested page to total page
         if ($page > $total_pages) {
             $page = $total_pages;
         }
         /**
          * calculate the starting position of the rows
          * do not put $limit*($page - 1).
          * @var int
          */
         $start = $limit * $page - $limit;
         // do not put $limit*($page - 1)
         // if for some reasons start position is negative set it to 0
         // typical case is that the user type 0 for the requested page
         if ($start < 0) {
             $start = 0;
         }
         //Query a Base de Datos para listar todos los clientes
         $listaOportunidades = $this->oportunidades_model->listar_oportunidades($clause, $sidx, $sord, $limit, $start, $ver_usuarios);
         //Constructing a JSON
         $response = new stdClass();
         $response->page = $page;
         $response->total = $total_pages;
         $response->records = $count;
         $i = 0;
         if (!empty($listaOportunidades)) {
             //Obtener el Puntaje de la Oportunidad
             $puntajeArray = $this->oportunidades_model->listar_oportunidades_por_puntaje();
             /*echo "<pre>";
              	print_r($puntajeArray);
              	echo "</pre>";*/
             foreach ($listaOportunidades as $i => $row) {
                 $hidden_options = "";
                 $link_option = '<button class="viewOptions btn btn-success btn-sm" type="button" data-oportunidad="' . $row['uuid_oportunidad'] . '"><i class="fa fa-cog"></i> <span class="hidden-xs hidden-sm hidden-md">Opciones</span></button>';
                 //Verificar Permiso de Administrador de Oportunidad
                 //O si el usuario actual es el mismo asignado
                 /*if(!Auth::has_permission("listar-oportunidades__administrador_oportunidad","oportunidades/listar-oportunidades") && CRM_Controller::$uuid_usuario != $row['uuid_asignado']){
                   	$link_option = "";
                   	die('OFI');
                   }*/
                 //No mostrar esta opcion si se esta accesando desde otro modulo
                 if (preg_match("/oportunidades/i", $_SERVER['HTTP_REFERER'])) {
                     if ($this->auth->has_permission('acceso', 'oportunidades/editar-oportunidad/(:any)') || $this->auth->has_permission('acceso', 'oportunidades/ver-oportunidad/(:any)')) {
                         $hidden_options .= '<a href="' . base_url('oportunidades/editar-oportunidad/' . $row['uuid_oportunidad']) . '" id="editarOportunidad" data-oportunidad="' . $row['uuid_oportunidad'] . '" class="btn btn-block btn-outline btn-success">Editar Oportunidad</a>';
                         //$hidden_options .= '<a href="#" id="editarOportunidad" data-oportunidad="'. $row['uuid_oportunidad'] .'" class="btn btn-block btn-outline btn-success">Editar Oportunidad</a>';
                     }
                 }
                 if ($this->auth->has_permission('acceso', 'oportunidades/ver-oportunidad/(:any)')) {
                     /**
                      * Verificar desde donde se esta accesando a esta vista.
                      * para mostrar o no el URL
                      */
                     $url = preg_match("/oportunidades/i", $_SERVER['HTTP_REFERER']) ? base_url('oportunidades/ver-oportunidad/' . $row['uuid_oportunidad']) : "#";
                     //No mostrar esta opcion si se esta accesando desde otro modulo
                     if (preg_match("/oportunidades/i", $_SERVER['HTTP_REFERER'])) {
                         $hidden_options .= '<a href="' . $url . '" id="verDetalleOportunidad" data-oportunidad="' . $row['uuid_oportunidad'] . '" class="btn btn-block btn-outline btn-success">Ver Detalles</a>';
                     }
                 }
                 //Esta Opcion solo se muestra desde el sub panel de clientes
                 if (Auth::has_permission("acceso", "actividades/crear-actividad")) {
                     if (preg_match("/ver-cliente-natural/i", $_SERVER['HTTP_REFERER']) || preg_match("/ver-cliente-juridico/i", $_SERVER['HTTP_REFERER'])) {
                         //Verificar Permiso de Administrador de Oportunidad
                         //O si el usuario actual es el mismo asignado
                         if (Auth::has_permission("listar-oportunidades__administrador_oportunidad", "oportunidades/listar-oportunidades") || CRM_Controller::$uuid_usuario == $row['uuid_asignado']) {
                             $hidden_options .= '<a href="#" id="crearActividadClientes" data-oportunidad="' . $row['uuid_oportunidad'] . '" class="btn btn-block btn-outline btn-success">Registrar Actividad</a>';
                         }
                     }
                 }
                 //No mostrar esta opcion si se esta accesando desde otro modulo
                 if (Auth::has_permission("acceso", "actividades/crear-actividad")) {
                     if (preg_match("/oportunidades/i", $_SERVER['HTTP_REFERER'])) {
                         //Verificar Permiso de Administrador de Oportunidad
                         //O si el usuario actual es el mismo asignado
                         if (Auth::has_permission("listar-oportunidades__administrador_oportunidad", "oportunidades/listar-oportunidades") || CRM_Controller::$uuid_usuario == $row['uuid_asignado']) {
                             $hidden_options .= '<a href="#" id="crearActividad" data-oportunidad="' . $row['uuid_oportunidad'] . '" class="btn btn-block btn-outline btn-success">Registrar Actividad</a>';
                         }
                     }
                 }
                 //No mostrar esta opcion si se esta accesando desde otro modulo
                 if (preg_match("/oportunidades/i", $_SERVER['HTTP_REFERER'])) {
                     //Verificar Permiso de Administrador de Oportunidad
                     //O si el usuario actual es el mismo asignado
                     if (Auth::has_permission("listar-oportunidades__administrador_oportunidad", "oportunidades/listar-oportunidades") || CRM_Controller::$uuid_usuario == $row['uuid_asignado']) {
                         $hidden_options .= '<a href="#" id="subirDocumentoOportunidadBtn" data-oportunidad="' . $row['uuid_oportunidad'] . '" class="btn btn-block btn-outline btn-success">Subir Documento</a>';
                     }
                 }
                 if ($this->auth->has_permission('listar-oportunidades__cambiar_etapa_oportunidad', 'oportunidades/listar-oportunidades')) {
                     //No mostrar esta opcion si se esta accesando desde otro modulo
                     if (preg_match("/oportunidades/i", $_SERVER['HTTP_REFERER'])) {
                         //Verificar Permiso de Administrador de Oportunidad
                         //O si el usuario actual es el mismo asignado
                         if (Auth::has_permission("listar-oportunidades__administrador_oportunidad", "oportunidades/listar-oportunidades") || CRM_Controller::$uuid_usuario == $row['uuid_asignado']) {
                             $hidden_options .= '<a href="#" id="cambiarEtapaConfirmBtn" data-oportunidad="' . $row['uuid_oportunidad'] . '" class="btn btn-block btn-outline btn-success">Cambiar Etapa</a>';
                         }
                     }
                 }
                 $nombre_cliente = "";
                 //Verificar Tipo de Cliente, Para Armar el enlace hacia El perfil de cliente.
                 if (!empty($row['tipo_cliente']) && preg_match("/juridico/i", $row['tipo_cliente'])) {
                     //Verificar si tiene permiso
                     $nombre_cliente = !empty($row['nombre_cliente']) && $this->auth->has_permission('acceso', 'clientes/ver-cliente-juridico/(:any)') ? '<a href="' . base_url('clientes/ver-cliente-juridico/' . $row['uuid_cliente']) . '">' . $row['nombre_cliente'] . '</a>' : (!empty($row['nombre_cliente']) ? $row['nombre_cliente'] : "");
                     $uuid_cliente = $row['uuid_cliente'];
                 } else {
                     if (!empty($row['tipo_cliente']) && preg_match("/natural/i", $row['tipo_cliente'])) {
                         //Verificar si tiene permiso
                         $nombre_cliente = !empty($row['nombre_cliente']) && $this->auth->has_permission('acceso', 'clientes/ver-cliente-natural/(:any)') ? '<a href="' . base_url('clientes/ver-cliente-juridico/' . $row['uuid_cliente']) . '">' . $row['nombre_cliente'] . '</a>' : (!empty($row['nombre_cliente']) ? $row['nombre_cliente'] : "");
                         $uuid_cliente = $row['uuid_cliente'];
                     } else {
                         //Verificar si tiene permiso
                         $nombre_cliente = !empty($row['nombre_cliente_potencial']) && $this->auth->has_permission('acceso', 'clientes_potenciales/ver-cliente-potencial/(:any)') ? '<a href="' . base_url('clientes_potenciales/ver-cliente-potencial/' . $row['uuid_cliente_potencial']) . '">' . $row['nombre_cliente_potencial'] . '</a>' : (!empty($row['nombre_cliente_potencial']) ? $row['nombre_cliente_potencial'] : "");
                         $uuid_cliente = $row['uuid_cliente_potencial'];
                     }
                 }
                 //Buscar Punatje de la Oportunidad
                 $percentagerank = "0%";
                 $key = Util::multiarray_buscar_valor($row['uuid_oportunidad'], "uuid_oportunidad", $puntajeArray);
                 if (is_numeric($key)) {
                     $percentagerank = !empty($puntajeArray[$key]) && !empty($puntajeArray[$key]["percentagerank"]) ? $puntajeArray[$key]["percentagerank"] . "%" : "0%";
                 }
                 //Buscar el Ultimo Contacto del Cliente
                 list($fecha, $hace) = $this->actividades_model->seleccionar_ultimo_contacto(array("act.uuid_cliente = UNHEX('{$uuid_cliente}')" => NULL, "act.completada = 1" => NULL));
                 //Verificar acceso para armar enlace de nombre de oportunidad
                 $nombre_oportunidad = preg_match("/oportunidades/i", $_SERVER['HTTP_REFERER']) ? $this->auth->has_permission('acceso', 'oportunidades/ver-oportunidad/(:any)') ? '<a href="' . base_url('oportunidades/ver-oportunidad/' . $row['uuid_oportunidad']) . '">' . $row['nombre'] . '</a>' : $row['nombre'] : ($this->auth->has_permission('acceso', 'oportunidades/editar-oportunidad/(:any)') ? '<a href="#" id="editarOportunidadLnk" data-oportunidad="' . $row['uuid_oportunidad'] . '">' . $row['nombre'] . '</a>' : $row['nombre']);
                 //Buscar total de Actividades de la Oportunidad
                 $total_actividades = $this->actividades_model->seleccionar_total_actividades_por_oportunidad($row['uuid_oportunidad']);
                 $total_actividades = !empty($total_actividades) ? $total_actividades[0]["total_actividad"] : "0";
                 $response->rows[$i]["id"] = $row['uuid_oportunidad'];
                 $response->rows[$i]["cell"] = array($nombre_oportunidad, $nombre_cliente, $row['etapa'], $row['valor_oportunidad'], date("d/m/Y", strtotime($row['fecha_creacion'])), $row["fecha_cierre"] != "" && $row["fecha_cierre"] != "0000-00-00 00:00:00" ? date("d/m/Y", strtotime($row["fecha_cierre"])) : "", $row['usuario_asignado'], $percentagerank, $row["total_actividades"], $hace, $link_option, $hidden_options, $row['uuid_cliente'], $row['uuid_sociedad'], $row['uuid_contacto'], !empty($row['nombre_comercial']) ? $row['nombre_comercial'] : "", $row['nombre_contacto']);
                 $i++;
             }
         }
         echo json_encode($response);
         exit;
     }
 }
            }
            ?>

		                 	<?php 
            if (Auth::has_permission('acceso', 'oportunidades/puntaje-de-oportunidades')) {
                ?>
		                <li><a href="<?php 
                echo base_url("oportunidades/puntaje-de-oportunidades");
                ?>
">Score</a></li>
		                 <?php 
            }
            ?>

		                <?php 
            if (Auth::has_permission('acceso', 'oportunidades/pipeline-de-oportunidades')) {
                ?>
		                <li><a href="<?php 
                echo base_url("oportunidades/pipeline-de-oportunidades");
                ?>
">Pipeline</a></li>
		                <?php 
            }
            ?>


	                </ul>
	                <?php 
        }
        ?>
 function crear_actividad($uuid_modulo = NULL)
 {
     // Verificar si tiene permiso para crear cliente Natural
     /*if (! $this->auth->has_permission ( 'acceso' )) {
     			// No, tiene permiso, redireccionarlo.
     			redirect ( '/' );
     		}*/
     if (!Auth::has_permission("acceso", "actividades/crear-actividad")) {
         redirect('/');
     }
     $data = array();
     $mensaje = array();
     if (!empty($_POST)) {
         $response = $this->actividades_model->guardar_actividad();
         $uuid_actividad = $this->session->userdata('uuid_actividad');
         //Si es un request Ajax retornar $response
         if ($this->input->is_ajax_request()) {
             $json = '{"results":[' . json_encode($response) . ']}';
             echo $json;
             exit;
         } else {
             if ($response == true) {
                 redirect(base_url('actividades/listar-actividades'));
             } else {
                 //Establecer el mensaje a mostrar
                 $data["mensaje"]["clase"] = "alert-danger";
                 $data["mensaje"]["contenido"] = "Hubo un error al tratar de crear la actividad.";
             }
         }
     }
     //Agregra variables PHP como variables JS
     $this->assets->agregar_var_js(array("uuid_usuario" => CRM_Controller::$uuid_usuario));
     //Veridicar si existe variable $uuid_modulo
     if ($uuid_modulo != 0) {
         $data_uuid_modulo = explode("-", $uuid_modulo);
         $uuid_modulo_index = "uuid_" . $data_uuid_modulo[1];
         //Nombre del uuid (uuid_contacto, uuid_propiedad, uuid_cliente)
         $this->assets->agregar_var_js(array($uuid_modulo_index => $data_uuid_modulo[0]));
     }
     $this->assets->agregar_css(array('public/assets/css/default/ui/base/jquery-ui.css', 'public/assets/css/default/ui/base/jquery-ui.theme.css', 'public/assets/css/plugins/jquery/jqgrid/ui.jqgrid.bootstrap.css', 'public/assets/css/plugins/jquery/jqgrid/ui.jqgrid.css', 'public/assets/css/plugins/bootstrap/bootstrap-tagsinput.css', 'public/assets/css/plugins/jquery/chosen/chosen.min.css', 'public/assets/css/plugins/bootstrap/bootstrap-datetimepicker.css', 'public/assets/css/plugins/jquery/switchery.min.css'));
     $this->assets->agregar_js(array('public/assets/js/plugins/ckeditor/ckeditor.js', 'public/assets/js/plugins/ckeditor/adapters/jquery.js', 'public/assets/js/plugins/bootstrap/bootstrap-tagsinput.js', 'public/assets/js/plugins/jquery/switchery.min.js', 'public/assets/js/plugins/jquery/jqgrid/i18n/grid.locale-es.js', 'public/assets/js/plugins/jquery/jqgrid/jquery.jqGrid.min.js', 'public/assets/js/plugins/jquery/jqgrid/plugins/jQuery.jqGrid.columnToggle.js', 'public/assets/js/plugins/jquery/jQuery.resizeEnd.js', 'public/assets/js/plugins/jquery/jquery-validation/jquery.validate.min.js', 'public/assets/js/plugins/jquery/jquery-validation/localization/messages_es.min.js', 'public/assets/js/plugins/jquery/jquery-inputmask/inputmask.js', 'public/assets/js/plugins/jquery/jquery-inputmask/jquery.inputmask.js', 'public/assets/js/plugins/jquery/chosen.jquery.min.js', 'public/assets/js/plugins/bootstrap/bootstrap-tabdrop.js', 'public/assets/js/moment-with-locales-290.js', 'public/assets/js/plugins/bootstrap/bootstrap-datetimepicker.js', 'public/assets/js/default/formulario.js', 'public/assets/js/modules/actividades/crear_actividad.js'));
     $this->template->agregar_titulo_header('Actividades');
     $this->template->agregar_breadcrumb(array("titulo" => '<i class="fa fa-tty"></i> Actividades', "ruta" => array(0 => array("nombre" => 'Actividades', "url" => 'actividades/listar-actividades', "activo" => false), 1 => array("nombre" => '<b>Nuevo</b>', "activo" => true))));
     $this->template->agregar_contenido($data);
     $this->template->visualizar();
 }
 $creado_por = !empty($actividad["creado_por"]) ? $actividad["creado_por"] : "";
 $nombre_contacto = !empty($actividad["nombre_contacto"]) ? $actividad["nombre_contacto"] : "";
 $imagen_perfil_usuario_asignado = !empty($actividad["imagen_perfil_usuario_asignado"]) ? 'public/uploads/' . $actividad["imagen_perfil_usuario_asignado"] : "public/uploads/usuarios/18382257171431644103.png";
 $descripcion_actividad = !empty($actividad["descripcion"]) ? $actividad["descripcion"] : "";
 $fecha_creacion = !empty($actividad["fecha_creacion"]) ? $actividad["fecha_creacion"] : "";
 $cliente = "";
 //Verificar Tipo de Cliente, Para Armar el enlace hacia El perfil de cliente.
 if (preg_match("/juridico/i", $tipo_cliente)) {
     //Agregar el contacto del cliente juridico
     $cliente = !empty($nombre_contacto) && trim($nombre_contacto) != "" ? "con <b>{$nombre_contacto}</b> " : "";
     //Verificar si tiene permiso
     $cliente .= !empty($nombre_cliente) && Auth::has_permission('acceso', 'clientes/ver-cliente-juridico/(:any)') ? 'de <a href="' . base_url('clientes/ver-cliente-juridico/' . $uuid_cliente) . '"><b>' . $nombre_cliente . '</b></a>' : "de " . $nombre_cliente;
 } else {
     if (preg_match("/natural/i", $tipo_cliente)) {
         //Verificar si tiene permiso
         $cliente = !empty($nombre_cliente) && Auth::has_permission('acceso', 'clientes/ver-cliente-natural/(:any)') ? 'de <a href="' . base_url('clientes/ver-cliente-natural/' . $uuid_cliente) . '"><b>' . $nombre_cliente . '</b></a>' : "de " . $nombre_cliente;
     } else {
         //Verificar si tiene permiso
         $nombre_cliente = !empty($actividad['nombre_cliente_potencial']) && $this->auth->has_permission('acceso', 'clientes_potenciales/ver-cliente-potencial/(:any)') ? '<a href="' . base_url('clientes_potenciales/ver-cliente-potencial/' . $actividad['uuid_cliente_potencial']) . '">' . $actividad['nombre_cliente_potencial'] . '</a>' : (!empty($actividad['nombre_cliente_potencial']) ? $actividad['nombre_cliente_potencial'] : "");
     }
 }
 //Verificar la preposicion segun
 //el nombre de tipo de actividad
 if (preg_match("/comentario/i", $tipo_actividad)) {
     $tipo_actividad = "un " . $tipo_actividad;
 } else {
     $tipo_actividad = "una " . $tipo_actividad;
 }
 //												<img alt="perfil" class="img-circle pull-left" src="'. base_url($imagen_perfil_usuario_asignado) .'">
 echo '<div class="feed-element">
					<img alt="perfil" class="img-circle pull-left" src="' . base_url('public/assets/images/user_avatar_preview.png') . '">
    echo '<div class="alert alert-warning">
                                	Todavia no tienes ningun comentario para esta propiedad.  
            						</div>';
}
?>
									
								</div>
							</div>
						</div>
						<!-- /ibox -->
												 

											</div>
											<div id="actividades" class="tab-pane panel-body">
  										       	  <?php 
if (Auth::has_permission("acceso", "actividades/crear-actividad")) {
    //echo '<a href="#" id="crearActividad" data-propiedad="'. $uuid_propiedad .'"class="viewOptions btn btn-success btn-sm" >Registrar Actividad</a>';
}
echo "<br><br>";
echo modules::run('actividades/ocultotabla', !empty($uuid_propiedad) ? $uuid_propiedad : "");
?>
 										
											</div>
									<div id="documentos" class="tab-pane panel-body">
  									     <?php 
//echo '<a href="#" id="crearDocumento" data-propiedad="'. $uuid_propiedad .'"class="viewOptions btn btn-success btn-sm" >Agregar Documentos</a>';
echo "<br />";
Archivos::visualizar_documentos($documentos);
?>
									</div>
											
 public function ajax_listar_clientes()
 {
     //Just Allow ajax request
     if ($this->input->is_ajax_request()) {
         /**
          * Get the requested page.
          * @var int
          */
         $page = (int) $this->input->post('page', true);
         /**
          * Get how many rows we want to have into the grid
          * rowNum parameter in the grid.
          * @var int
          */
         $limit = (int) $this->input->post('rows', true);
         /**
          * Get index row - i.e. user click to sort
          * at first time sortname parameter - after that the index from colModel.
          * @var int
          */
         $sidx = $this->input->post('sidx', true);
         /**
          * Sorting order - at first time sortorder
          * @var string
          */
         $sord = $this->input->post('sord', true);
         /**
          * Inicializar variable $clause de busqueda
          */
         $clause = array();
         /**
          * Verificar si existe algun $_POST
          * de los campos de busqueda
          */
         $nombre_cliente = $this->input->post('nombre_cliente', true);
         $nombre_comercial = $this->input->post('nombre_comercial', true);
         $usuario_asignado = $this->input->post('usuario_asignado', true);
         $cedula_ruc = $this->input->post('cedula_ruc', true);
         $correo = $this->input->post('correo', true);
         $telefono = $this->input->post('telefono', true);
         $contacto_principal = $this->input->post('contacto_principal', true);
         $fecha_creacion_inicio = $this->input->post('fecha_creacion_inicio', true);
         $fecha_creacion_fin = $this->input->post('fecha_creacion_fin', true);
         $usuarios = $this->andrea_ACL();
         if (!empty($usuarios['uuid_usuario'])) {
             $uuid_usuarios = $usuarios["uuid_usuario"];
             $uuid_usuarios = !empty($uuid_usuarios) ? implode(", ", array_map(function ($uuid_usuarios) {
                 return "'" . $uuid_usuarios . "'";
             }, $uuid_usuarios)) : "";
             $clause["HEX(cl.id_asignado) IN(" . $uuid_usuarios . ")"] = NULL;
         }
         if (!empty($nombre_cliente)) {
             $clause["cl.nombre LIKE '%{$nombre_cliente}%'"] = NULL;
         }
         if (!empty($nombre_comercial)) {
             $clause["csoc.nombre_comercial LIKE '%{$nombre_comercial}%'"] = NULL;
         }
         if (!empty($cedula_ruc)) {
             $clause["IF( cl.id_tipo_cliente = 1, csoc.ruc, cl.cedula ) LIKE '%{$cedula_ruc}%'"] = NULL;
         }
         /*if(!empty($fecha_creacion)){
           	$clause["date(cl.fecha_creacion) = '$fecha_creacion'"] = NULL;
           }*/
         if (!empty($fecha_creacion_inicio)) {
             $fecha_creacion_inicio = date("Y-m-d H:i:s", strtotime($fecha_creacion_inicio));
             $clause["cl.fecha_creacion >="] = $fecha_creacion_inicio;
         }
         if (!empty($fecha_creacion_fin)) {
             $fecha_creacion_fin = date("Y-m-d 23:59:59", strtotime($fecha_creacion_fin));
             $clause["cl.fecha_creacion <="] = $fecha_creacion_fin;
         }
         if (!empty($usuario_asignado)) {
             $clause["CONCAT_WS(' ', IF(usr.nombre != '', usr.nombre, ''), IF(usr.apellido != '', usr.apellido, '')) LIKE '%{$usuario_asignado}%'"] = NULL;
         }
         if (!empty($correo)) {
             //$clause["cco.correo LIKE '%$correo%'"] = NULL;
             $clause["cl.correo LIKE '%{$correo}%'"] = NULL;
         }
         if (!empty($telefono)) {
             $clause["ctel.no_telefono LIKE '%{$telefono}%'"] = NULL;
         }
         if (!empty($contacto_principal)) {
             //            	$clause["CONCAT_WS(' ', IF(con.nombre != '', con.nombre, ''), IF(con.apellido != '', con.apellido, '')) LIKE '%$contacto_principal%' AND con.principal = 1 AND cl.id_tipo_cliente <> 78"] = NULL;
             $clause["CONCAT_WS(' ', IF(con.nombre != '', con.nombre, ''), IF(con.apellido != '', con.apellido, '')) LIKE '%{$contacto_principal}%'"] = NULL;
         }
         //Query a Base de Datos para listar todos los clientes
         $contarClientes = $this->clientes_model->contar_clientes($clause);
         /**
          * Total rows found in the query.
          * @var int
          */
         $count = !empty($contarClientes) && count($contarClientes) > 0 ? count($contarClientes) : 0;
         /**
          * Calcule total pages if $coutn is higher than zero.
          * @var int
          */
         $total_pages = $count > 0 ? ceil($count / $limit) : 0;
         // if for some reasons the requested page is greater than the total
         // set the requested page to total page
         if ($page > $total_pages) {
             $page = $total_pages;
         }
         /**
          * calculate the starting position of the rows
          * do not put $limit*($page - 1).
          * @var int
          */
         $start = $limit * $page - $limit;
         // do not put $limit*($page - 1)
         // if for some reasons start position is negative set it to 0
         // typical case is that the user type 0 for the requested page
         if ($start < 0) {
             $start = 0;
         }
         //Query a Base de Datos para listar todos los clientes
         $listaClientes = $this->clientes_model->listar_clientes($clause, $sidx, $sord, $limit, $start);
         //Constructing a JSON
         $response = new stdClass();
         $response->page = $page;
         $response->total = $total_pages;
         $response->records = $count;
         $i = 0;
         if (!empty($listaClientes)) {
             foreach ($listaClientes as $i => $row) {
                 $permiso = false;
                 $hidden_options = '';
                 //Usuario Asignado al cliente
                 $usuario_asignado = !empty($row['usuario_asignado']) ? $row['usuario_asignado'] : "";
                 //echo CRM_Controller::$uuid_usuario."=>".$row['uuid_asignado']."</BR>";
                 if (CRM_Controller::$uuid_usuario == $row['uuid_asignado']) {
                     $permiso = true;
                 }
                 $cliente_score = $this->clientes_model->calculo_score_cliente($row['uuid_cliente']);
                 $link_option = '<button class="viewOptions btn btn-success btn-sm" type="button" data-cliente="' . $row['uuid_cliente'] . '"><i class="fa fa-cog"></i> <span class="hidden-xs hidden-sm hidden-md">Opciones</span></button>';
                 if ($row['id_tipo_cliente'] == 78) {
                     $tipo_cliente = 'natural';
                     if ($this->auth->has_permission('acceso', 'clientes/ver-cliente-natural/(:any)')) {
                         $hidden_options .= '<a href="' . base_url('clientes/ver-cliente-natural/' . $row['uuid_cliente']) . '" class="btn btn-block btn-outline btn-success">Ver Cliente</a>';
                     }
                 } else {
                     $tipo_cliente = 'juridico';
                     if ($this->auth->has_permission('acceso', 'clientes/ver-cliente-juridico/(:any)')) {
                         $hidden_options .= '<a href="' . base_url('clientes/ver-cliente-juridico/' . $row['uuid_cliente']) . '" class="btn btn-block btn-outline btn-success">Ver Cliente</a>';
                     }
                 }
                 $hidden_options .= '<a href="' . base_url('clientes/desactivar/' . $row['uuid_cliente']) . '" class="btn btn-block btn-outline btn-success">Desactivar Cliente</a>';
                 /* if( $this->auth->has_permission("acceso","contactos/crear-contacto/(:any)") ){
                                         $hidden_options .= '<a href="'. base_url('contactos/crear-contacto/'.$row['uuid_cliente']).'" class="btn btn-block btn-outline btn-success">Agregar Contacto</a>';
                                       }
                 
                                       //$hidden_options .= '<a href="#" class="btn btn-block btn-outline btn-success">Nueva Oportunidad</a>';
                                       if( Auth::has_permission("acceso","oportunidades/crear-oportunidad/(:any)") ){
                                           $hidden_options .= '<a href="'.base_url("oportunidades/crear-oportunidad/".$row['uuid_cliente'].'-cliente').'" class="btn btn-block btn-outline btn-success">Agregar Oportunidad</a>';
                                       }*/
                 if (Auth::has_permission("acceso", "documentos/crear-documentos") && $permiso == true) {
                     $hidden_options .= '<a href="#" class="btn btn-block btn-outline btn-success"  data-cliente="' . $row['uuid_cliente'] . '"  id="subirArchivosBtn">Subir Documentos</a>';
                 }
                 /**
                  * LISTAR RUC/CEDULA DEL CLIENTE
                  * DEPENDIENDO DEL TIPO DE CLIENTE
                  */
                 $cedula_ruc = "";
                 $nombre_comercial = "";
                 $nombre = "";
                 if ($row["id_tipo_cliente"] == 1) {
                     /**
                      * LISTAR RUC DEL CLIENTE
                      */
                     $cedula_ruc = $this->clientes_model->seleccionar_cliente_sociedades($row['uuid_cliente']);
                     $cedula_ruc = !empty($cedula_ruc) ? implode(', ', array_map(function ($cedula_ruc) {
                         return $cedula_ruc['ruc'];
                     }, $cedula_ruc)) : "";
                     $nombre = $row["nombre"];
                     /**
                      * LISTAR NOMBRE COMERCIALES DEL CLIENTE
                      */
                     $nombre_comercial = $this->clientes_model->seleccionar_cliente_sociedades($row['uuid_cliente']);
                     $nombre_comercial = !empty($nombre_comercial) ? implode(', ', array_map(function ($nombre_comercial) {
                         return $nombre_comercial['nombre_comercial'];
                     }, $nombre_comercial)) : "";
                     if (Auth::has_permission("acceso", "clientes/ver-cliente-juridico/(:any)")) {
                         $nombre = "<a href='" . base_url("clientes/ver-cliente-juridico/" . $row['uuid_cliente']) . "'>" . $nombre_comercial . "</a>";
                     }
                 } else {
                     $nombre = $row["nombre"] . ' ' . $row["apellido"];
                     if (Auth::has_permission("acceso", "clientes/ver-cliente-natural/(:any)")) {
                         $nombre = "<a href='" . base_url("clientes/ver-cliente-natural/" . $row['uuid_cliente']) . "'>" . $nombre . "</a>";
                     }
                     $nombre_comercial = '';
                     $cedula_ruc = $row['cedula'];
                 }
                 /**
                  * LISTAR TELEFONOS DEL CLIENTE
                  */
                 $telefonos = $this->clientes_model->seleccionar_cliente_telefonos($row['uuid_cliente']);
                 $telefonos = !empty($telefonos) ? implode(', ', array_map(function ($telefonos) {
                     return $telefonos['no_telefono'];
                 }, $telefonos)) : "";
                 /**
                  * LISTAR CORREOS DEL CLIENTE
                  */
                 /*$correos = $this->clientes_model->seleccionar_cliente_correos($row['uuid_cliente']);
                                  $correos = (!empty($correos) ? implode(', ', array_map(function($correos){ return $correos['correo']; }, $correos)) : "");
                 		*/
                 /**
                  * Este boton es para seleccionar un cliente
                  * desde el modal del modulo de contacto.
                  */
                 $link_selecccionar_cliente = '<button class="viewOptions btn btn-success btn-sm" type="button" data-cliente="' . $row['uuid_cliente'] . '"><i class="fa fa-check hidden-lg"></i> <span class="hidden-xs hidden-sm hidden-md">Seleccionar</span></button>';
                 /**
                  * Consultar el total de oportunidades que tiene el cliente.
                  */
                 $total_oportunidades = $this->oportunidades_model->selecciona_total_oportunidades_cliente($row['uuid_cliente']);
                 $total_oportunidades = !empty($total_oportunidades) ? $total_oportunidades[0]["total"] : 0;
                 $score_cliente = $this->clientes_model->calculo_score_cliente($row['uuid_cliente']);
                 $response->rows[$i]["id"] = $row['uuid_cliente'];
                 $response->rows[$i]["cell"] = array(strip_tags($nombre), $nombre, $row['contacto_principal'], $score_cliente . '%', $row['origen_cliente'], $telefonos, $row['correo'], $usuario_asignado, date("d/m/Y", strtotime($row['fecha_creacion'])), $row['ultimo_contacto'], $total_oportunidades, $link_option, $hidden_options, $link_selecccionar_cliente);
                 $i++;
             }
         }
         echo json_encode($response);
         exit;
     }
 }
?>

	    <div class="col-lg-3">
        	          <div class="ibox float-e-margins">
                        <div class="ibox-content">
                            <div class="file-manager">
                                <h5>Mostrar:</h5>
                                <select id="mostrar_tipo_archivo" class="form-control">
                                <option value="todos">Todos</option>
                                <option value="documentos">Documentos</option>
                                <option value="audio">Audio y Video</option>
                                <option value="imagenes">Imagenes</option>
                                </select>
                                <div class="hr-line-dashed"></div>
                                <?php 
if (Auth::has_permission("acceso", "documentos/crear-documentos")) {
    ?>
                                <button id="subirDocumemntoBtn" class="btn btn-primary btn-block">Subir Archivos</button>
                                <div class="hr-line-dashed"></div>
                                <?php 
}
?>
                                <h5>Folders</h5>
                                <ul class="folder-list" style="padding: 0">
                                    <?php 
foreach ($folders as $folder) {
    ?>
                                    	<?php 
    if (Auth::has_module_access(strtolower($folder['nombre']))) {
        ?>
<li><a href="javascript:" class="folder-documentos" data-folder="<?php