public function index() { $query = 0; $data = array(); $data['vacio'] = ''; $data['titulo'] = 'Seguimiento de Trámites en Línea'; $resp = '<br/><div class="alert alert-warning"><strong>Sin datos Disponibles</strong></div>'; $fecha = $this->input->post('fecha'); $nrotramite = trim($this->input->post('nrotramite')); $this->form_validation->set_rules('fecha', 'Fecha', 'trim|required|numeric|max_length[20]|xss_clean'); $this->form_validation->set_rules('nrotramite', 'Nro. Trámite', 'trim|required|numeric|max_length[20]|xss_clean'); if ($this->form_validation->run() == TRUE) { $this->form_validation->set_message('required', 'El %s es requerido'); $this->form_validation->set_message('max_length', 'El %s debe tener no más de %s carácteres'); $this->form_validation->set_message('numeric', 'El %s debe ser numerico'); } if (is_numeric($nrotramite) && is_numeric($fecha)) { $query = $this->consultas->listDatoSeguimiento($nrotramite, $fecha, Cuenta::cuentaSegunDominio()); $data['vacio'] = $resp; } $data['tareas'] = $query; $data['fecha'] = $fecha; $data['nrotramite'] = $nrotramite; $this->load->view('consultas/index', $data); }
public function disponibles() { $orderby = $this->input->get('orderby') ? $this->input->get('orderby') : 'nombre'; $direction = $this->input->get('direction') ? $this->input->get('direction') : 'asc'; $data['procesos'] = Doctrine::getTable('Proceso')->findProcesosDisponiblesParaIniciar(UsuarioSesion::usuario()->id, Cuenta::cuentaSegunDominio(), $orderby, $direction); $data['orderby'] = $orderby; $data['direction'] = $direction; $data['sidebar'] = 'disponibles'; $data['content'] = 'tramites/disponibles'; $data['title'] = 'Trámites disponibles a iniciar'; $this->load->view('template', $data); }
public function sinasignar() { if (!UsuarioSesion::usuario()->registrado) { $this->session->set_flashdata('redirect', current_url()); redirect('autenticacion/login'); } $data['etapas'] = Doctrine::getTable('Etapa')->findSinAsignar(UsuarioSesion::usuario()->id, Cuenta::cuentaSegunDominio()); $data['sidebar'] = 'sinasignar'; $data['content'] = 'etapas/sinasignar'; $data['title'] = 'Sin Asignar'; $this->load->view('template', $data); }
public function editar_password() { $data['usuario'] = UsuarioSesion::usuario(); $data['redirect'] = $this->input->server('HTTP_REFERER'); $data['content'] = 'cuenta/editar_password'; $data['title'] = 'Edita tu información'; $config = Doctrine::getTable('CuentaHasConfig')->findOneByIdparAndCuentaId(1, Cuenta::cuentaSegunDominio()->id); if ($config) { $config = Doctrine::getTable('Config')->findOneByIdAndIdparAndCuentaIdOrCuentaId($config->config_id, $config->idpar, Cuenta::cuentaSegunDominio()->id, 0); $nombre = $config->nombre; if ($nombre == 'default') { $data['template_path'] = 'uploads/themes/default/'; $this->load->view('themes/default/template', $data); } else { $data['template_path'] = 'uploads/themes/' . Cuenta::cuentaSegunDominio()->id . '/' . $nombre . '/'; $this->load->view('themes/' . Cuenta::cuentaSegunDominio()->id . '/' . $nombre . '/template', $data); } } else { $data['template_path'] = 'uploads/themes/default/'; $this->load->view('themes/default/template', $data); } }
function check_usuario_existe($usuario) { $usuario = Doctrine::getTable('UsuarioBackend')->findOneByEmail($usuario); if ($usuario) { $cuenta = Cuenta::cuentaSegunDominio(); if ($usuario->cuenta->id == $cuenta->id) { return TRUE; } } $this->form_validation->set_message('check_usuario_existe', 'Usuario no existe.'); return FALSE; }
public function sinasignar($offset = 0) { if (!UsuarioSesion::usuario()->registrado) { $this->session->set_flashdata('redirect', current_url()); redirect('autenticacion/login'); } $this->load->library('pagination'); $buscar = $this->input->get('query'); $matches = ""; $rowetapas = ""; $resultotal = false; $contador = "0"; $perpage = 50; if ($buscar) { $this->load->library('sphinxclient'); $this->sphinxclient->SetLimits($offset, 10000); $result = $this->sphinxclient->query(json_encode($buscar), 'tramites'); if ($result['total'] > 0) { $resultotal = true; } else { $resultotal = false; } } if ($resultotal == true) { $matches = array_keys($result['matches']); $contador = Doctrine::getTable('Etapa')->findSinAsignar(UsuarioSesion::usuario()->id, Cuenta::cuentaSegunDominio(), $matches, $buscar, 0, $perpage)->count(); $rowetapas = Doctrine::getTable('Etapa')->findSinAsignar(UsuarioSesion::usuario()->id, Cuenta::cuentaSegunDominio(), $matches, $buscar, 0, $perpage); error_log("true" . " cantidad " . $contador); } else { $contador = Doctrine::getTable('Etapa')->findAllSinAsignar(UsuarioSesion::usuario()->id, Cuenta::cuentaSegunDominio())->count(); $rowetapas = Doctrine::getTable('Etapa')->findSinAsignar(UsuarioSesion::usuario()->id, Cuenta::cuentaSegunDominio(), "0", $buscar, $offset, $perpage); error_log("false" . " cantidad " . $contador); } $config['base_url'] = site_url('etapas/sinasignar'); $config['total_rows'] = $contador; $config['per_page'] = $perpage; $config['full_tag_open'] = '<div class="pagination pagination-centered"><ul>'; $config['full_tag_close'] = '</ul></div>'; $config['page_query_string'] = false; $config['query_string_segment'] = 'offset'; $config['first_link'] = 'Primero'; $config['first_tag_open'] = '<li>'; $config['first_tag_close'] = '</li>'; $config['last_link'] = 'Último'; $config['last_tag_open'] = '<li>'; $config['last_tag_close'] = '</li>'; $config['next_link'] = '»'; $config['next_tag_open'] = '<li>'; $config['next_tag_close'] = '</li>'; $config['prev_link'] = '«'; $config['prev_tag_open'] = '<li>'; $config['prev_tag_close'] = '</li>'; $config['cur_tag_open'] = '<li class="active"><a href="#">'; $config['cur_tag_close'] = '</a></li>'; $config['num_tag_open'] = '<li>'; $config['num_tag_close'] = '</li>'; $this->pagination->initialize($config); //$data['etapas'] = Doctrine::getTable('Etapa')->findSinAsignar(UsuarioSesion::usuario()->id, Cuenta::cuentaSegunDominio()); $data['links'] = $this->pagination->create_links(); $data['etapas'] = $rowetapas; $data['query'] = $buscar; $data['sidebar'] = 'sinasignar'; $data['content'] = 'etapas/sinasignar'; $data['title'] = 'Sin Asignar'; $this->load->view('template', $data); }
public function olvido_form() { $this->form_validation->set_rules('usuario', 'Usuario', 'required|callback_check_usuario_existe'); $respuesta = new stdClass(); if ($this->form_validation->run() == TRUE) { $random = random_string('alnum', 16); $usuario = Doctrine::getTable('Usuario')->findOneByUsuarioAndOpenId($this->input->post('usuario'), 0); if (!$usuario) { $usuario = Doctrine::getTable('Usuario')->findOneByEmailAndOpenId($this->input->post('usuario'), 0); } $usuario->reset_token = $random; $usuario->save(); $cuenta = Cuenta::cuentaSegunDominio(); if (is_a($cuenta, 'Cuenta')) { $this->email->from($cuenta->nombre . '@' . $this->config->item('main_domain'), $cuenta->nombre_largo); } else { $this->email->from('simple@' . $this->config->item('main_domain'), 'Simple'); } $this->email->to($usuario->email); $this->email->subject('Reestablecer contraseña'); $this->email->message('<p>Haga click en el siguiente link para reestablecer su contraseña:</p><p><a href="' . site_url('autenticacion/reestablecer?id=' . $usuario->id . '&reset_token=' . $random) . '">' . site_url('autenticacion/reestablecer?id=' . $usuario->id . '&reset_token=' . $random) . '</a></p>'); $this->email->send(); $this->session->set_flashdata('message', 'Se le ha enviado un correo con instrucciones de como reestablecer su contraseña.'); $respuesta->validacion = TRUE; $respuesta->redirect = site_url('autenticacion/login'); } else { $respuesta->validacion = FALSE; $respuesta->errores = validation_errors(); } echo json_encode($respuesta); }
</ul> </div> <?php endif ?> <?php if(Cuenta::cuentaSegunDominio()->descarga_masiva): ?> <?php if($file): ?> <a href="#" onclick="return descargarDocumentos(<?=$t->id?>);" class="btn btn-success"><i class="icon-download icon-white"></i> Descargar</a> <?php endif; ?> <?php endif; ?> </td> </tr> <?php endforeach; ?> </tbody> </table> <?php if(Cuenta::cuentaSegunDominio()->descarga_masiva): ?> <?php if($registros): ?> <div class="pull-right"> <div class="checkbox"> <input type="hidden" id="tramites" name="tramites" /> <label> <input type="checkbox" id="select_all" name="select_all" /> Seleccionar todos <a href="#" onclick="return descargarSeleccionados();" class="btn btn-success preventDoubleRequest"><i class="icon-download icon-white"></i> Descargar seleccionados</a> </label> </div> </div> <div class="modal hide fade" id="modal"> </div> <?php endif; ?>
public function descargar_form() { if (!Cuenta::cuentaSegunDominio()->descarga_masiva) { echo 'Servicio no tiene permisos para descargar.'; exit; } if (!UsuarioSesion::usuario()->registrado) { echo 'Usuario no tiene permisos para descargar.'; exit; } $tramites = $this->input->post('tramites'); $opcionesDescarga = $this->input->post('opcionesDescarga'); $tramites = explode(",", $tramites); $ruta_documentos = 'uploads/documentos/'; $ruta_generados = 'uploads/datos/'; $ruta_tmp = 'uploads/tmp/'; $fecha = new DateTime(); $fecha = date_format($fecha, "Y-m-d"); $tipoDocumento = ""; switch ($opcionesDescarga) { case 'documento': $tipoDocumento = 'documento'; break; case 'dato': $tipoDocumento = 'dato'; break; } //Recorriendo los trámites $this->load->library('zip'); foreach ($tramites as $t) { if (empty($tipoDocumento)) { $files = Doctrine::getTable('File')->findByTramiteId($t); } else { $files = Doctrine::getTable('File')->findByTramiteIdAndTipo($t, $tipoDocumento); } if (count($files) > 0) { //Recorriendo los archivos foreach ($files as $f) { $tr = Doctrine::getTable('Tramite')->find($t); $participado = $tr->usuarioHaParticipado(UsuarioSesion::usuario()->id); if (!$participado) { echo 'Usuario no ha participado en el trámite.'; exit; } $nombre_documento = $tr->id; $tramite_nro = ''; foreach ($tr->getValorDatoSeguimiento() as $tra_nro) { if ($tra_nro->valor == $f->filename) { $nombre_documento = $tra_nro->nombre; } if ($tra_nro->nombre == 'tramite_ref') { $tramite_nro = $tra_nro->valor; } } if ($f->tipo == 'documento' && !empty($nombre_documento)) { $path = $ruta_documentos . $f->filename; $tramite_nro = $tramite_nro != '' ? $tramite_nro : $tr->Proceso->nombre; $tramite_nro = str_replace(" ", "", $tramite_nro); $nombre_archivo = pathinfo($path, PATHINFO_FILENAME); $ext = pathinfo($path, PATHINFO_EXTENSION); $new_file = $ruta_tmp . $nombre_documento . "." . $nombre_archivo . "." . $tramite_nro . "." . $ext; copy($path, $new_file); $this->zip->read_file($new_file); //Eliminación del archivo para no ocupar espacio en disco unlink($new_file); } elseif ($f->tipo == 'dato' && !empty($nombre_documento)) { $path = $ruta_generados . $f->filename; $this->zip->read_file($path); } } if (count($tramites) > 1) { $tr = Doctrine::getTable('Tramite')->find($t); $tramite_nro = ''; foreach ($tr->getValorDatoSeguimiento() as $tra_nro) { if ($tra_nro->nombre == 'tramite_ref') { $tramite_nro = $tra_nro->valor; } } $tramite_nro = $tramite_nro != '' ? $tramite_nro : $tr->Proceso->nombre; $nombre = $fecha . "_" . $t . "_" . $tramite_nro; //creando un zip por cada trámite $this->zip->archive($ruta_tmp . $nombre . '.zip'); $this->zip->clear_data(); } } } if (count($tramites) > 1) { foreach ($tramites as $t) { $tr = Doctrine::getTable('Tramite')->find($t); $tramite_nro = ''; foreach ($tr->getValorDatoSeguimiento() as $tra_nro) { if ($tra_nro->nombre == 'tramite_ref') { $tramite_nro = $tra_nro->valor; } } $tramite_nro = $tramite_nro != '' ? $tramite_nro : $tr->Proceso->nombre; $nombre = $fecha . "_" . $t . "_" . $tramite_nro; $this->zip->read_file($ruta_tmp . $nombre . '.zip'); } //Eliminando los archivos antes de descargar foreach ($tramites as $t) { $tr = Doctrine::getTable('Tramite')->find($t); $tramite_nro = ''; foreach ($tr->getValorDatoSeguimiento() as $tra_nro) { if ($tra_nro->nombre == 'tramite_ref') { $tramite_nro = $tra_nro->valor; } } $tramite_nro = $tramite_nro != '' ? $tramite_nro : $tr->Proceso->nombre; $nombre = $fecha . "_" . $t . "_" . $tramite_nro; unlink($ruta_tmp . $nombre . '.zip'); } $this->zip->download('tramites.zip'); } else { $tr = Doctrine::getTable('Tramite')->find($tramites); $tramite_nro = ''; foreach ($tr->getValorDatoSeguimiento() as $tra_nro) { if ($tra_nro->nombre == 'tramite_ref') { $tramite_nro = $tra_nro->valor; } } $tramite_nro = $tramite_nro != '' ? $tramite_nro : $tr->Proceso->nombre; $nombre = $fecha . "_" . $t . "_" . $tramite_nro; $this->zip->download($nombre . '.zip'); } }
<meta charset="utf-8"> <title><?php echo Cuenta::cuentaSegunDominio() != 'localhost' ? Cuenta::cuentaSegunDominio()->nombre_largo : 'SIMPLE'; ?> - <?php echo $title; ?> </title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- Le styles --> <link href="<?php echo base_url(); ?> assets/css/bootstrap.css" rel="stylesheet"> <link href="<?php echo base_url(); ?> assets/css/responsive.css" rel="stylesheet"> <link href="<?php echo base_url(); ?> assets/js/bootstrap-datepicker/css/datepicker.css" rel="stylesheet"> <link href="<?php echo base_url(); ?> assets/js/jquery.chosen/chosen.css" rel="stylesheet"> <link href="<?php echo base_url(); ?> assets/js/file-uploader/fileuploader.css" rel="stylesheet">
<div class="span3"> <ul id="sideMenu" class="nav nav-list"> <li class="iniciar <?php echo isset($sidebar) && $sidebar == 'disponibles' ? 'active' : ''; ?> "><a href="<?php echo site_url('tramites/disponibles'); ?> ">Iniciar trámite</a></li> <?php if (UsuarioSesion::usuario()->registrado) { ?> <?php $npendientes = Doctrine::getTable('Etapa')->findPendientes(UsuarioSesion::usuario()->id, Cuenta::cuentaSegunDominio())->count(); $nsinasignar = Doctrine::getTable('Etapa')->findSinAsignar(UsuarioSesion::usuario()->id, Cuenta::cuentaSegunDominio())->count(); $nparticipados = Doctrine::getTable('Tramite')->findParticipados(UsuarioSesion::usuario()->id, Cuenta::cuentaSegunDominio())->count(); ?> <li class="<?php echo isset($sidebar) && $sidebar == 'inbox' ? 'active' : ''; ?> "><a href="<?php echo site_url('etapas/inbox'); ?> ">Bandeja de Entrada (<?php echo $npendientes; ?> )</a></li> <?php if ($nsinasignar) { ?> <li class="<?php
<script src="<?= base_url() ?>assets/js/go/go.js" type="text/javascript"></script> <script type="text/javascript" src="<?= base_url() ?>assets/js/diagrama-procesos2.js"></script> <script type="text/javascript" src="<?= base_url() ?>assets/js/seguimiento2.js"></script> <?php else: ?> <link href="<?= base_url() ?>assets/css/diagrama-procesos.css" rel="stylesheet"> <script src="<?= base_url() ?>assets/js/jquery.jsplumb/jquery.jsPlumb-1.3.16-all-min.js" type="text/javascript"></script> <script type="text/javascript" src="<?= base_url() ?>assets/js/diagrama-procesos.js"></script> <script type="text/javascript" src="<?= base_url() ?>assets/js/seguimiento.js"></script> <?php endif ?> <script type="text/javascript"> $(document).ready(function(){ <?php $conector = 'Bezier'; $config =Doctrine::getTable('CuentaHasConfig')->findOneByIdparAndCuentaId(2,Cuenta::cuentaSegunDominio()->id); if($config){ $config =Doctrine::getTable('Config')->findOneByIdAndIdpar($config->config_id,$config->idpar); $conector = $config->nombre; } ?> var conector = '<?= $conector; ?>'; tramiteId=<?= $tramite->id ?>; drawFromModel(<?= $tramite->Proceso->getJSONFromModel() ?>,"<?=$tramite->Proceso->width?>","<?=$tramite->Proceso->height?>",conector); drawSeguimiento(<?= json_encode($tramite->getTareasActuales()->toArray()) ?>,<?= json_encode($tramite->getTareasCompletadas()->toArray()) ?>, <?= json_encode($tramite->getTareasVencidas()->toArray()) ?>, <?= json_encode($tramite->getTareasVencenHoy()->toArray()) ?>); }); function auditarRetrocesoEtapa(etapaId) { $("#auditar").load(site_url + "backend/seguimiento/ajax_auditar_retroceder_etapa/" + etapaId); $("#auditar").modal();
public function procesos($proceso_id = null, $recurso = null) { $api_token = $this->input->get('token'); $cuenta = Cuenta::cuentaSegunDominio(); if (!$cuenta->api_token) { show_404(); } if ($cuenta->api_token != $api_token) { show_error('No tiene permisos para acceder a este recurso.', 401); } if ($proceso_id) { $proceso = Doctrine::getTable('Proceso')->find($proceso_id); if (!$proceso) { show_404(); } if ($proceso->Cuenta != $cuenta) { show_error('No tiene permisos para acceder a este recurso.', 401); } if ($recurso == 'tramites') { $offset = $this->input->get('pageToken') ? 1 * base64_decode(urldecode($this->input->get('pageToken'))) : null; $limit = $this->input->get('maxResults') && $this->input->get('maxResults') <= 20 ? 1 * $this->input->get('maxResults') : 10; $query = Doctrine_Query::create()->from('Tramite t, t.Proceso p')->where('p.id = ?', array($proceso->id))->orderBy('id desc'); if ($offset) { $query->andWhere('id < ?', $offset); } $ntramites_restantes = $query->count() - $limit; $query->limit($limit); $tramites = $query->execute(); $nextPageToken = null; if ($ntramites_restantes > 0) { $nextPageToken = urlencode(base64_encode($tramites[count($tramites) - 1]->id)); } $respuesta = new stdClass(); $respuesta->tramites->titulo = 'Listado de Trámites'; $respuesta->tramites->tipo = '#tramitesFeed'; $respuesta->tramites->nextPageToken = $nextPageToken; $respuesta->tramites->items = null; foreach ($tramites as $t) { $respuesta->tramites->items[] = $t->toPublicArray(); } } else { $respuesta = new stdClass(); $respuesta->proceso = $proceso->toPublicArray(); } } else { $procesos = Doctrine::getTable('Proceso')->findByCuentaId($cuenta->id); $respuesta = new stdClass(); $respuesta->procesos->titulo = 'Listado de Procesos'; $respuesta->procesos->tipo = '#procesosFeed'; $respuesta->procesos->items = null; foreach ($procesos as $t) { $respuesta->procesos->items[] = $t->toPublicArray(); } } header('Content-type: application/json'); echo json_indent(json_encode($respuesta)); }
"><img src="<?php echo Cuenta::cuentaSegunDominio() != 'localhost' ? Cuenta::cuentaSegunDominio()->logoADesplegar : base_url('assets/img/logo.png'); ?> " alt="<?php echo Cuenta::cuentaSegunDominio() != 'localhost' ? Cuenta::cuentaSegunDominio()->nombre_largo : 'Simple'; ?> " /></a></h1> </div> <div class="span10"> <h1 style="font-size:22px;"><?php echo $titulo; ?> </h1> <p style="font-size:14px;"> <i class="icon icon-home"></i> <?php echo Cuenta::cuentaSegunDominio()->nombre_largo; ?> </p> <!-- <p style="font-size:14px;"> <i class="icon icon-random"></i> Trámites: Seguimiento de Expedientes oficiales (Notas y documentos ingresados por mesa de entrada) </p> --> <p style="font-size:10px; text-shadown:#CCCCCC 2px 2px 2px 2px;"> <i class="icon icon-info-sign"></i> A través de esta pequeña y simple aplicación puedes dar seguimiento a cualquier trámite que se ha ingresado </p> </div> <div class="offset3 span3"></div> </div> </div> </header>
public function disponibles() { //$orderby=$this->input->get('orderby')?$this->input->get('orderby'):'nombre'; //$direction=$this->input->get('direction')?$this->input->get('direction'):'asc'; $data['procesos'] = Doctrine::getTable('Proceso')->findProcesosDisponiblesParaIniciar(UsuarioSesion::usuario()->id, Cuenta::cuentaSegunDominio(), 'nombre', 'asc'); //$data['orderby']=$orderby; //$data['direction']=$direction; $data['sidebar'] = 'disponibles'; $data['content'] = 'tramites/disponibles'; $data['title'] = 'Trámites disponibles a iniciar'; $config = Doctrine::getTable('CuentaHasConfig')->findOneByIdparAndCuentaId(1, Cuenta::cuentaSegunDominio()->id); if ($config) { $config = Doctrine::getTable('Config')->findOneByIdAndIdparAndCuentaIdOrCuentaId($config->config_id, $config->idpar, Cuenta::cuentaSegunDominio()->id, 0); $nombre = $config->nombre; if ($nombre == 'default') { $data['template_path'] = 'uploads/themes/default/'; $this->load->view('themes/default/template', $data); } else { $data['template_path'] = 'uploads/themes/' . Cuenta::cuentaSegunDominio()->id . '/' . $nombre . '/'; $this->load->view('themes/' . Cuenta::cuentaSegunDominio()->id . '/' . $nombre . '/template', $data); } } else { $data['template_path'] = 'uploads/themes/default/'; $this->load->view('themes/default/template', $data); } }
private function force_cuenta() { if (!Cuenta::cuentaSegunDominio()) { exit; } }