function editar_caso($id_caso = NULL)
 {
     // Verificar si tiene permiso
     if (!$this->auth->has_permission('acceso', 'casos/ver-caso/(:any)')) {
         // No, tiene permiso, redireccionarlo.
         redirect('/');
     }
     $data = array("caso" => $this->casos_model->seleccionar_informacion_de_caso($id_caso));
     /*if($data["caso"]["uuid_cliente"]=!null){
           if($data["caso"]["tipo_cliente"]=="juridico"){
               $url="clientes/ver-cliente-juridico/".$data["caso"]["uuid_cliente"];
               redirect(base_url($url));
           }
           elseif($data["caso"]["tipo_cliente"]=="natural"){
               $url="clientes/ver-cliente-natural/".$data["caso"]["uuid_cliente"];
               redirect(base_url($url));
           }
       }*/
     //Detecta si la persona es asignado a ese caso
     $permiso_asignado = 0;
     if (CRM_Controller::$uuid_usuario == $data['caso']['id_asignado']) {
         $permiso_asignado = 1;
     }
     if (!empty($_POST)) {
         $response = $this->casos_model->actualizar_caso($id_caso);
         //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('casos/listar-casos'));
             } else {
                 //Establecer el mensaje a mostrar
                 $data["mensaje"]["clase"] = "alert-danger";
                 $data["mensaje"]["contenido"] = "Hubo un error al tratar de crear el caso.";
             }
         }
     }
     //Arreglo de modulo de subpabeles que estan activos
     $modulo_subpaneles = Subpanel::lista_modulos_activos_relacionados();
     //Recorer el arreglo e introducirlo en
     //el menu de opciones si existe
     if (!empty($modulo_subpaneles)) {
         foreach ($modulo_subpaneles as $nombre_modulo) {
             if (!empty($opcionesModulos[$nombre_modulo])) {
                 $menuOpciones[$opcionesModulos[$nombre_modulo]["url"]] = $opcionesModulos[$nombre_modulo]["nombre"];
             }
         }
     }
     $_persmiso_administrador = $this->auth->has_permission('listar-casos__administrador_caso', 'casos/listar-casos') == true ? 'true' : 'false';
     //Agregra variables PHP como variables JS
     $this->assets->agregar_var_js(array("uuid_usuario" => CRM_Controller::$uuid_usuario, "permiso_editar_caso" => $this->auth->has_permission('ver-caso__editarCaso', 'casos/ver-caso/(:any)') == true ? 'true' : 'false', "permiso_administrador" => $_persmiso_administrador, "permiso_asignado" => $permiso_asignado));
     $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/jquery/jquery.sticky.js', '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/casos/editar_caso.js'));
     $this->template->agregar_titulo_header('Casos');
     $this->template->agregar_breadcrumb(array("titulo" => '<i class="fa fa-flag-o"></i> Casos', "ruta" => array(0 => array("nombre" => 'Casos', "url" => 'casos/listar-casos', "activo" => false), 1 => array("nombre" => '<b>Editar</b>', "activo" => true))));
     $this->template->agregar_contenido($data);
     $this->template->visualizar();
 }
 function editar_cliente_juridico($id_cliente = NULL)
 {
     // Verificar si tiene permiso
     if (!$this->auth->has_permission('acceso', 'clientes/ver-cliente-juridico/(:any)')) {
         // No, tiene permiso, redireccionarlo.
         redirect('/');
     }
     $uuid_caso = '';
     if (strpos($id_cliente, '-')) {
         $parametro = explode('-', $id_cliente);
         $id_cliente = $parametro[0];
         $uuid_caso = $parametro[1];
     }
     $mensaje = array();
     $permiso_asignado = 0;
     $informacion_cliente = $this->clientes_model->seleccionar_informacion_de_cliente($id_cliente);
     $data = array("oportunidades" => $this->clientes_model->seleccionar_oportunidades_clientes($id_cliente), "clientes" => $informacion_cliente, "id_cliente" => $id_cliente, "porcentaje_completado" => $this->clientes_model->calculo_score_cliente($id_cliente), "modulos" => $this->documentos_model->listar_modulos());
     //Detecta si la persona es asignado a ese cliente
     if (CRM_Controller::$uuid_usuario == $data['clientes']['id_asignado']) {
         $permiso_asignado = 1;
     }
     if ($this->session->userdata('updatedCliente')) {
         //Borrar la variable de session
         $this->session->unset_userdata('updatedCliente');
         //Establecer el mensaje a mostrar
         $data["mensaje"]["clase"] = "alert-success";
         $data["mensaje"]["contenido"] = "Se actualizaron los datos del cliente satisfactoriamente.";
     }
     if ($this->session->userdata('updatedPropiedad')) {
         //Borrar la variable de session
         $this->session->unset_userdata('updatedPropiedad');
         //Establecer el mensaje a mostrar
         $data["mensaje"]["clase"] = "alert-success";
         $data["mensaje"]["contenido"] = "Se guardaron las propiedades del cliente satisfactoriamente.";
     }
     if ($this->session->userdata('idCliente')) {
         //Borrar la variable de session
         $this->session->unset_userdata('idCliente');
         //Establecer el mensaje a mostrar
         $data["mensaje"]["clase"] = "alert-success";
         $data["mensaje"]["contenido"] = "Se ha creado el Cliente satisfactoriamente.";
     }
     if (!empty($_POST["propiedades"])) {
         $response = $this->clientes_model->guardar_propiedades_juridico($id_cliente);
         if ($response == true) {
             redirect(base_url("clientes/ver-cliente-juridico/{$id_cliente}"));
         } else {
             //Establecer el mensaje a mostrar
             $data["mensaje"]["clase"] = "alert-danger";
             $data["mensaje"]["contenido"] = "Hubo un error al tratar de guardar las propiedades del cliente.";
         }
     } else {
         if (!empty($_POST["campo"]) || !empty($_POST["poliza"]) || !empty($_POST["agentes"])) {
             $response = $this->clientes_model->actualizar_cliente($id_cliente);
             if ($response == true) {
                 redirect(base_url("clientes/ver-cliente-juridico/{$id_cliente}"));
             } else {
                 //Establecer el mensaje a mostrar
                 $data["mensaje"]["clase"] = "alert-danger";
                 $data["mensaje"]["contenido"] = "Hubo un error al tratar de actualizar el cliente.";
             }
         }
     }
     /*
      * Verificar si existe alguna variable de session
      * proveniente de algun formulario de crear/editar
      */
     if ($this->session->userdata('updatedCliente')) {
         //Borrar la variable de session
         $this->session->unset_userdata('updatedCliente');
         //Establecer el mensaje a mostrar
         $data["mensaje"]["clase"] = "alert-success";
         $data["mensaje"]["contenido"] = "Se actualizaron los datos del cliente satisfactoriamente.";
     }
     $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/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/bootstrap/bootstrap-datepicker3.min.css', 'public/assets/css/plugins/jquery/magnific-popup/magnific-popup.css', 'public/assets/css/plugins/jquery/fileinput/fileinput.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/jQuery.resizeEnd.js', 'public/assets/js/plugins/jquery/jquery.sticky.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/bootstrap/bootstrap-datepicker/bootstrap-datepicker.min.js', 'public/assets/js/plugins/bootstrap/bootstrap-datepicker/locales/bootstrap-datepicker.es.js', 'public/assets/js/plugins/jquery/jquery-inputmask/inputmask.js', 'public/assets/js/plugins/jquery/jquery-inputmask/jquery.inputmask.js', 'public/assets/js/plugins/bootstrap/bootstrap-tabdrop.js', 'public/assets/js/plugins/jquery/chosen.jquery.min.js', 'public/assets/js/default/lodash.min.js', 'public/assets/js/plugins/jquery/fileinput/fileinput.js', 'public/assets/js/plugins/jquery/fileinput/fileinput_locale_es.js', 'public/assets/js/plugins/jquery/magnific-popup/jquery.magnific-popup.js', 'public/assets/js/default/subir_documento_modulo.js', 'public/assets/js/moment-with-locales.js', 'public/assets/js/plugins/bootstrap/bootstrap-datetimepicker.js', 'public/assets/js/default/formulario.js', 'public/assets/js/modules/clientes/editar_cliente_juridico.js', 'public/assets/js/modules/documentos/documentos.js', 'public/assets/js/modules/documentos/opciones_documentos.js'));
     $_persmiso_administrador = $this->auth->has_permission('listar-clientes__administrador_cliente', 'clientes/listar-clientes') == true ? 'true' : 'false';
     //Agregra variables PHP como variables JS
     $this->assets->agregar_var_js(array("uuid_cliente" => $id_cliente, "id_cliente" => $id_cliente, "uuid_usuario" => CRM_Controller::$uuid_usuario, "permiso_editar_cliente" => $this->auth->has_permission('ver-cliente-juridico__editarClienteJuridico', 'clientes/ver-cliente-juridico/(:any)') == true ? 'true' : 'false', 'modulo' => CRM_Controller::$id_modulo, 'uuid_caso' => $uuid_caso, 'permiso_asignado' => $permiso_asignado, "permiso_administrador" => $_persmiso_administrador));
     //Opcion Default
     $menuOpciones = array("#datosClienteLnk" => "Datos del Cliente");
     //Verificar permisos para el menu de opciones
     if ($this->auth->has_permission('acceso', 'contactos/crear-contacto/(:any)') && $permiso_asignado == 1 || $_persmiso_administrador == 'true') {
         $opcionesModulos["contactos"] = array("url" => "#crearContactoLnk", "nombre" => "Crear Contacto");
     }
     //Verificar permisos para el menu de opciones
     if ($this->auth->has_permission('acceso', 'actividades/crear-actividad') && $permiso_asignado == 1 || $_persmiso_administrador == 'true') {
         $opcionesModulos["actividades"] = array("url" => "#crearActividadLnk", "nombre" => "Registrar Actividad");
     }
     //Verificar permisos para el menu de opciones
     if ($this->auth->has_permission('acceso', 'casos/crear-caso/(:any)') && $permiso_asignado == 1 || $_persmiso_administrador == 'true') {
         $opcionesModulos["casos"] = array("url" => "#crearCasoLnk", "nombre" => "Crear Caso");
     }
     //Verificar permisos para el menu de opciones
     if ($this->auth->has_permission('acceso', 'oportunidades/crear-oportunidad/(:any)') && $permiso_asignado == 1 || $_persmiso_administrador == 'true') {
         $opcionesModulos["oportunidades"] = array("url" => "#crearOportunidadLnk", "nombre" => "Crear Oportuniudad");
     }
     //Verificar permisos para el menu de opciones
     if ($this->auth->has_permission('acceso', 'documentos/crear-documentos') && $permiso_asignado == 1 || $_persmiso_administrador == 'true') {
         $opcionesModulos["documentos"] = array("url" => "#subirDocumentosLnk", "nombre" => "Subir Documentos");
     }
     //Arreglo de modulo de subpabeles que estan activos
     $modulo_subpaneles = Subpanel::lista_modulos_activos_relacionados();
     //Recorer el arreglo e introducirlo en
     //el menu de opciones si existe
     if (!empty($modulo_subpaneles)) {
         foreach ($modulo_subpaneles as $nombre_modulo) {
             if (!empty($opcionesModulos[$nombre_modulo])) {
                 $menuOpciones[$opcionesModulos[$nombre_modulo]["url"]] = $opcionesModulos[$nombre_modulo]["nombre"];
             }
         }
     }
     $this->template->agregar_titulo_header('Editar Cliente');
     $this->template->agregar_breadcrumb(array("titulo" => '<i class="fa fa-building"></i> Clientes', "ruta" => array(0 => array("nombre" => "Ventas", "activo" => false), 1 => array("nombre" => 'Clientes', "url" => 'clientes/listar-clientes', "activo" => false), 2 => array("nombre" => '<b>Editar</b>', "activo" => true)), "filtro" => false, "menu" => array("nombre" => "Crear", "url" => "clientes/crear-cliente-juridico", "opciones" => $menuOpciones)));
     $this->template->agregar_contenido($data);
     $this->template->visualizar();
 }