PTG-722 Carangui Herera Marlon Israel.pdf

Anuncio
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y
FISICAS
CARRERA DE INGENIERÍA EN SISTEMAS
COMPUTACIONALES
“DESARROLLO DEL MÓDULO DE INGRESO DE SOLICITUDES Y
CERTIFICADOS PARA EL PROTOTIPO DEL SISTEMA
ACADEMICO DE LAS FACULTADES DE CIENCIAS
ADMINISTRATIVAS Y DE CIENCIAS
MATEMATICAS Y FISICAS
DE LA UNIVERSIDAD
DE GUAYAQUIL”
TESIS DE GRADO
Previa a la obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
MARLON ISRAEL CARANGUI HERRERA
TUTOR:
ING. LEILI GENOVEVA LOPEZDOMINGUEZ RIVAS
GUAYAQUIL – ECUADOR
2015
REPOSITORIO NACIONAL EN CIENCIAS Y TECNOLOGÍA
FICHA DE REGISTRO DE TESIS
TÍTULO: “DESARROLLO DEL MÓDULO DE INGRESO DE SOLICITUDES Y
CERTIFICADOS PARA EL PROTOTIPO DEL SISTEMA ACADEMICO DE LAS
FACULTADES DE CIENCIAS ADMINISTRATIVAS Y DE CIENCIAS
MATEMATICAS Y FISICAS DE LA UNIVERSIDAD DE GUAYAQUIL”
REVISORES:
FACULTAD: Ciencias Matemáticas y Físicas
INSTITUCIÓN:
Universidad de
Guayaquil
CARRERA: Ingeniería en Sistemas Computacionales
FECHA DE PUBLICACIÓN: Julio
N° DE PÁGS.: 191
del 2015
ÁREA TEMÁTICA: Instituciones Académicas
PALABRAS CLAVES: Ingreso, Solicitudes, Certificados, Estudiante
RESUMEN: Se propone un módulo dinámico, con un workflow modificable, el cual
será configurable de acuerdo a las decisiones tomadas por las autoridades
encargadas, evitando así un sistema que quede obsoleto en años siguientes, y
que evite realizar modificaciones en su desarrollo para cumplir con futuras
decisiones.
N° DE REGISTRO(en base de
datos):
DIRECCIÓN URL (tesis en la web):
ADJUNTO PDF
CONTACTO CON AUTOR:
CONTACTO DE LA INSTITUCIÓN
N° DE CLASIFICACIÓN:
Nº
X
SI
Teléfono:
E-mail:
0996739711
[email protected]
042241380
Nombre: Ab. Juan Chávez
Telefono: 2307729
NO
APROBACION DEL TUTOR
En mi calidad de Tutor del
trabajo de investigación, “DESARROLLO DEL
MÓDULO DE INGRESO DE SOLICITUDES Y CERTIFICADOS PARA EL
PROTOTIPO DEL SISTEMA ACADEMICO DE LAS FACULTADES DE
CIENCIAS ADMINISTRATIVAS Y DE CIENCIAS MATEMATICAS Y FISICAS
DE LA UNIVERSIDAD DE GUAYAQUIL”
ISRAEL CARANGUI HERERA, egresado
elaborado por el Sr. MARLON
de la
Carrera de Ingeniería en
Sistemas Computacionales, Facultad de Ciencias Matemáticas y Físicas de la
Universidad de Guayaquil,
previo a la obtención del Título de Ingeniero en
Sistemas, me permito declarar que luego de haber orientado, estudiado y
revisado, la Apruebo en todas sus partes.
Atentamente
Ing. Leili Lopezdominguez Mgs.
TUTOR
II
DEDICATORIA
La elaboración de este documento
es gracias al esfuerzo, sacrificio y
dedicación, el cual lo dedico a toda
mi familia y a mi querida esposa por
todo el apoyo brindado durante todo
este tiempo de estudio y desarrollo.
III
AGRADECIMIENTO
Agradezco en primer lugar a Dios por
darme vida, salud y amor para con mi
familia, que me permite cumplir esta meta,
a mis padres que me apoyaron en cada
momento de mi vida universitaria, que sin
ellos no lo habría logrado, y finalmente
agradezco a mi amada esposa, que
estuvo siempre a mi lado dándome su
apoyo y amor incondicional.
IV
TRIBUNAL DE GRADO
V
DECLARACIÓN EXPRESA
“La responsabilidad del contenido de esta
Tesis
de
Grado,
le
corresponden
exclusivamente; y el patrimonio intelectual de
la
misma
a
la
UNIVERSIDAD
DE
GUAYAQUIL”
MARLON ISRAEL CARANGUI HERERA
VI
.
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERIA EN SISTEMAS
COMPUTACIONALES
“DESARROLLO DEL MÓDULO DE INGRESO DE SOLICITUDES Y
CERTIFICADOS PARA EL PROTOTIPO DEL SISTEMA
ACADEMICO DE LAS FACULTADES DE CIENCIAS
ADMINISTRATIVAS Y DE CIENCIAS
MATEMATICAS Y FISICAS
DE LA UNIVERSIDAD
DE GUAYAQUIL”
Tesis de Grado que se presenta como requisito para optar por el título de
INGENIERO EN SISTEMAS COMPUTACIONALES
Auto/a: MARLON ISRAEL CARANGUI HERERA
C.I. 0926245861
Tutor: ING.LEILI LOPEZDOMINGUEZ RIVAS
Guayaquil, 27 de Julio
VII
CERTIFICADO DE ACEPTACIÓN DEL TUTOR
En mi calidad de Tutor de Tesis de Grado, nombrado por el Consejo Directivo de
la Facultad de Ciencias Matemáticas y Físicas de la Universidad de Guayaquil.
CERTIFICO:
Que he analizado el Proyecto de Grado presentado por el/la
estudiante MARLON ISRAEL CARANGUI HERERA, como requisito previo para
optar por el título de Ingeniero en Sistemas Computacionales cuyo problema es:
“DESARROLLO DEL MÓDULO DE INGRESO DE SOLICITUDES Y
CERTIFICADOS PARA EL PROTOTIPO DEL SISTEMA
ACADEMICO DE LAS FACULTADES DE CIENCIAS
ADMINISTRATIVAS Y DE CIENCIAS
MATEMATICAS Y FISICAS
DE LA UNIVERSIDAD
DE GUAYAQUIL”
Considero aprobado el trabajo en su totalidad.
Presentado por:
Marlon Israel Carangui Herera
Cédula de ciudadanía N° 0926245861
Tutor: Ing. Leili Lopezdominguez
Guayaquil 27 de Julio de 2015
VIII
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERIA EN SISTEMAS
COMPUTACIONALES
AUTORIZACIÓN PARA PUBLICACIÓN DE TESIS EN
FORMATO DIGITAL
1. Identificación de la Tesis
Nombre Alumno: Marlon Israel Carangui Herrera
Dirección: Alborada Etapa 12, Manzana 4, Villa 26
Teléfono: 2-241380
E-mail: [email protected]
Facultad: Ciencias Matemáticas y Físicas
Carrera: Ingeniería en Sistemas Computacionales
Título al que opta: Ingeniería en Sistemas Computacionales
Profesor guía: Ing. Leili Lopezdominguez Rivas
Título de la Tesis: “Desarrollo del módulo de ingreso de solicitudes y
certificados para el prototipo del sistema academico de las facultades de
ciencias administrativas y de ciencias matematicas y fisicas de la universidad
de guayaquil”
Temas Tesis: : Sistema del Módulo de Solicitudes y Certificados
2. Autorización de Publicación de Versión Electrónica de la
Tesis
A través de este medio autorizo a la Biblioteca de la Universidad de Guayaquil y
a la Facultad de Ciencias Matemáticas y Físicas a publicar la versión electrónica
de esta tesis.
Publicación electrónica:
X
Inmediata
Firma Alumno:
Después de 1 año
3. Forma de envío:
El texto de la Tesis debe ser enviado en formato Word, como archivo .Doc. O
.RTF y .Puf para PC. Las imágenes que la acompañen pueden ser: .gif, .jpg o
.TIFF.
X
DVDROM
CDROM
IX
ÍNDICE GENERAL
APROBACION DEL TUTOR .................................................................................. II
DEDICATORIA ...................................................................................................... III
AGRADECIMIENTO .............................................................................................. IV
TRIBUNAL DE GRADO ......................................................................................... V
DECLARACIÓN EXPRESA .................................................................................. VI
CERTIFICADO DE ACEPTACIÓN DEL TUTOR ............................................... VIII
AUTORIZACIÓN PARA PUBLICACIÓN DE TESIS EN FORMATO DIGITAL ... IX
ABREVIATURAS ..................................................................................................XV
SIMBOLOGÍA ......................................................................................................XVI
RESUMEN ..........................................................................................................XVII
ABSTRACT ........................................................................................................XVIII
INTRODUCCIÓN .................................................................................................... 1
CAPÍTULO I ............................................................................................................ 2
PLANTEAMIENTO DEL PROBLEMA................................................................. 2
UBICACIÓN DEL PROBLEMA EN UN CONTEXTO ......................................... 2
SITUACIÓN CONFLICTO NUDOS CRÍTICOS .................................................. 3
CAUSAS Y CONSECUENCIAS DEL PROBLEMA ............................................ 3
DELIMITACIÓN DEL PROBLEMA ..................................................................... 3
FORMULACIÓN DEL PROBLEMA .................................................................... 4
EVALUACIÓN DEL PROBLEMA ........................................................................ 4
OBJETIVO GENERAL ........................................................................................ 5
OBJETIVOS ESPECÍFICOS ............................................................................... 5
ALCANCES DEL PROBLEMA ............................................................................ 6
JUSTIFICACIÓN E IMPORTANCIA .................................................................. 7
CAPÍTULO II ........................................................................................................... 8
ANTECEDENTES DEL ESTUDIO ...................................................................... 8
LENGUAJES DE DESARROLLO ....................................................................... 9
FUNDAMENTACIÓN TEÓRICA ......................................................................... 9
FUNDAMENTACIÓN LEGAL............................................................................ 20
HIPÓTESIS PREGUNTAS A CONTESTARSE ................................................ 38
X
VARIABLES DE LA INVESTIGACIÓN ............................................................. 38
CAPÍTULO III ........................................................................................................ 39
DISEÑO DE LA INVESTIGACIÓN .................................................................... 39
METODOLOGÍA DEL DISEÑO DE INVESTIGACIÓN ..................................... 39
DEFINICIONES BÁSICAS ................................................................................ 40
POBLACIÓN Y MUESTRA ............................................................................... 43
INSTRUMENTO DE RECOLECCIÓN DE DATOS .......................................... 45
DISEÑO DEL CUESTIONARIO ........................................................................ 46
DESCRIPCIÓN Y CODIFICACIÓN DE VARIABLES ....................................... 46
INTERPRETACIÓN Y ANÁLISIS DE LOS RESULTADOS ............................. 54
DIAGNOSTICO ACTUAL DE LA ORGANIZACIÓN ......................................... 76
PROPUESTAS DE MEJORAS DE PROCESOS ............................................. 79
MAPA DE PROCESOS ..................................................................................... 83
PANTALLAS MODULO TRAMITES ................................................................. 84
DESARROLLO DE SOFTWARE ...................................................................... 90
CAPÍTULO IV...................................................................................................... 123
CRONOGRAMA .............................................................................................. 123
PRESUPUESTO ............................................................................................. 125
CAPÍTULO V....................................................................................................... 126
CONCLUSIONES ............................................................................................ 126
RECOMENDACIONES ................................................................................... 127
REFERENCIAS BIBLIOGRÁFICAS ............................................................... 128
XI
ÍNDICE DE CUADROS
Cuadro 01. Causas y Consecuencias del Problema ..................................................3
Cuadro 02. Delimitación del Problema .........................................................................3
Cuadro 03. Evaluación del Problema ...........................................................................4
Cuadro 04. Población Objetivo. ...................................................................................44
Cuadro 05. Descripción de Variables. ........................................................................47
Cuadro 06. Variable Edad. ...........................................................................................49
Cuadro 07. Variable Sexo ............................................................................................49
Cuadro 08. Variable Facultad ......................................................................................49
Cuadro 09. Variable Semestre ....................................................................................50
Cuadro 10. Variable Ingreso_Solicitud .......................................................................50
Cuadro 11. Variable Tipo_Solicitud .............................................................................50
Cuadro 12. Variable Perdida_Solicitud .......................................................................51
Cuadro 13. Variable Acuerdo_Solicitud ......................................................................51
Cuadro 14. Variable Peticion_Solicitud.......................................................................51
Cuadro 15. Variable Tipo_Certificado .........................................................................52
Cuadro 16. Variable Acuerdo_Certificado ..................................................................52
Cuadro 17. Variable Automizar_Tramites ..................................................................52
Cuadro 18. Variable Cert_Digital ................................................................................52
Cuadro 19. Variable Solic_Web ...................................................................................53
Cuadro 20. Tabla de Frecuencia - Edad ....................................................................54
Cuadro 21. Análisis Estadístico - Edad ......................................................................55
Cuadro 22. Tabla de Frecuencia - Semestre ............................................................57
Cuadro 23. Análisis Estadístico - Semestre ..............................................................57
Cuadro 24. Tabla de Frecuencia - Tiempo_Solicitud ...............................................59
Cuadro 25. Análisis Estadístico - Tiempo_Solicitud .................................................59
Cuadro 26. Tabla de Frecuencia - Sexo ....................................................................62
Cuadro 27. Tabla de Frecuencia - Facultad .............................................................63
Cuadro 28. Tabla de Frecuencia - Ingreso_Solicitud ...............................................65
Cuadro 29. Tabla de Frecuencia - Tipo_Solicitud ....................................................66
Cuadro 30. Tabla de Frecuencia - Perdida_Solicitud ..............................................67
XII
Cuadro 31. Tabla de Frecuencia - Acuerdo_Solicitud .............................................68
Cuadro 32. Tabla de Frecuencia - Peticion_Certificado ..........................................69
Cuadro 33. Tabla de Frecuencia - Tipo_Certificado ................................................71
Cuadro 34. Tabla de Frecuencia - Acuerdo_Certificado .........................................72
Cuadro 35. Tabla de Frecuencia - Automatizar_Tramites.......................................73
Cuadro 36. Tabla de Frecuencia - Cert_Digital ........................................................75
Cuadro 37. Tabla de Frecuencia - Solic_Web .........................................................76
Cuadro 38. Tabla Cruzada Sexo Vs Tipo_Certificado .............................................77
Cuadro 39. Pruebas de chi-cuadrado Sexo Vs Tipo_Certificado ...........................78
Cuadro 40. Tabla Cruzada Acuerdo_Solicitud Vs Tipo_Solicitud ..........................79
Cuadro 41. Pruebas de chi-cuadrado Tipo_Solicitud Vs Acuerdo_Solicitud ........79
Cuadro 42. Presupuesto - Ingresos ..........................................................................130
Cuadro 43. Presupuesto - Egresos ..........................................................................130
XIII
ÍNDICE DE GRÁFICOS
Gráfico 01. Esquema de AJAX ............................................................................. 12
Gráfico 02. Funcionamiento Básico de Hibernate ................................................ 15
Gráfico 03. Histograma de Frecuencia Relativa - Edad ....................................... 55
Gráfico 04. Diagrama de Cajas y Bigotes - Edad ................................................ 56
Gráfico 05. Histograma de Frecuencia Relativa - Semestre................................ 57
Gráfico 06. Diagrama de Cajas y Bigotes - Semestre ......................................... 58
Gráfico 07. Histograma de Frecuencia Relativa - Tiempo_Solicitud .................. 59
Gráfico 08. Diagrama de Cajas y Bigotes - Tiempo_Solicitud ............................ 60
Gráfico 09. Frecuencia Relativa - Sexo ................................................................ 62
Gráfico 10. Frecuencia Relativa - Facultad ......................................................... 63
Gráfico 11. Frecuencia Relativa - Ingreso_Solicitud ............................................ 65
Gráfico 12. Frecuencia Relativa - Tipo_Solicitud ................................................ 66
Gráfico 13. Frecuencia Relativa - Perdida_Solicitud ........................................... 68
Gráfico 14. Frecuencia Relativa - Acuerdo_Solicitud.......................................... 69
Gráfico 15. Frecuencia Relativa - Peticion_Certificado ...................................... 70
Gráfico 16. Frecuencia Relativa - Tipo_Certificado ............................................ 71
Gráfico 17. Frecuencia Relativa - Acuerdo_Certificado ...................................... 72
Gráfico 18. Frecuencia Relativa - Automatizar_Tramites ................................... 73
Gráfico 19. Frecuencia Relativa - Cert_Digital ..................................................... 75
Gráfico 20. Frecuencia Relativa Var. Solic_Web ................................................ 76
Gráfico 21. Barras de Tablas Cruzadas Sexo Vs Tipo_Certificado ..................... 78
Gráfico 22. Barras de Tablas Cruzadas Tipo_Solicitud Vs Acuerdo_Solicitud ... 79
XIV
ABREVIATURAS
DOS:
Disk Operating System, sistema Operativo de Disco.
IE:
Internet Explorer.
IIS:
Internet Information Server.
FTP:
File Transfer Protocol. Protocolo de Transferencia de Datos.
MVC:
Modelo Vista Controlador.
SQL:
Structured Query Language (Lenguaje de Base de Datos).
DR:
Recuperación de Desastres
BI:
Inteligencia de Negocios.
RDBMS:
Sistema de Gestión de Base de Datos Relacionales.
IDE:
Integrated development environment.
JDK:
Java Development Kit.
URL:
Uniform resource locator (Identificador de Recursos Uniforme).
CISC:
Carrera de Ingeniería en Sistemas Computacionales.
CINT:
Carrera de Ingeniería en Networking y Telecomunicaciones.
XV
SIMBOLOGÍA
E
Espacio Muestral.
S
Desaviación Estándar.
E(Y)
Esperanza Matemática de la v.a. y
E
Error
S
Estimador de la Desviación Estándar.
E
Exponencial.
XVI
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERIA EN SISTEMAS
COMPUTACIONALES
“DESARROLLO DEL MÓDULO DE INGRESO DE SOLICITUDES Y
CERTIFICADOS PARA EL PROTOTIPO DEL SISTEMA
ACADEMICO DE LAS FACULTADES DE CIENCIAS
ADMINISTRATIVAS Y DE CIENCIAS
MATEMATICAS Y FISICAS
DE LA UNIVERSIDAD
DE GUAYAQUIL”
Autor: MARLON ISRAEL CARANGUI HERERA
Tutor: ING. LEILI LOPEZDOMINGUEZ RIVAS
RESUMEN
Concluir exitosamente el desarrollo del módulo de trámites, (Solicitudes y
Certificados) con una base de datos bien estructurada que evitara perdida de
datos, y mantener una información veraz y actualizada, potenciada con el ORM
Hibernate como motor organizacional de persistencia de base de datos. Se
propone un módulo dinámico, con un workflow modificable, el cual será
configurable de acuerdo a las decisiones tomadas por las autoridades
encargadas, evitando así un sistema que quede obsoleto en años siguientes, y
que evite realizar modificaciones en su desarrollo para cumplir con futuras
decisiones. El modulo se propone su desarrollo en java con el framework ZK que
destaca en su óptimo rendimiento transaccional y de aspecto fluido, integrando
AJAX en su desarrollo principal, incluye CSS3 como estilo personalizado de los
colores de la universidad de Guayaquil, y usando el estándar de desarrollo MVC.
XVII
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERIA EN SISTEMAS
COMPUTACIONALES
“DEVELOPMENT OF ADMISSION REQUESTS AND CERTIFICATES
MODULE FOR THE ACADEMIC SYSTEM PROTOTYPE OF
FACULTIES OF ADMINISTRATIVE SCIENCES &
MATHEMATICS AND PHYSICAL SCIENCES
OF THE UNIVERSITY OF GUAYAQUIL”
Autor: MARLON ISRAEL CARANGUI HERERA
Tutor: ING. LEILI LOPEZDOMINGUEZ RIVAS
ABSTRACT
We will successfully complete the development of the module procedures,
(Applications and Certificates) with a well-structured database that would prevent
data loss, and maintain accurate and current information, enhanced with ORM
Hibernate persistence engine as organizational database. A dynamic module is
proposed, with a modifiable workflow, which will be configured according to the
decisions taken by the authorities, avoiding obsolescence system following years,
and modifications in its development with future decisions. The module
development is proposed in java language with Framework ZK, which is a
powerful tool for optimal transactional performance and fluid appearance,
integrating AJAX in its main development, including CSS3 and personalized style
of the colors of the University of Guayaquil using the standard MVC development
XVIII
INTRODUCCIÓN
El presente prototipo el cual se desarrolló, se analizó y se investigó, fue
fundamentada por la necesidad de crear una herramienta que brinde fiabilidad y
seguridad al momento de realizar el proceso de trámites, se llegó a la conclusión
que es factible porque la solución brindada es 25% investigativo, 25%
bibliográfico y 50% de la propuesta.
La propuesta presentada indica la pronta puesta en marcha para cubrir con las
necesidades presentadas por el problema. Los resultados obtenidos en el
análisis de campo realizado, corresponden a un periodo de 3 meses, desde el
mes de enero del año 2015 hasta el mes de marzo del año 2015.
Se presentara conceptos básicos de algunos métodos estadísticos para el
análisis del problema planteado, se desarrolla una encuesta de 15 preguntas, de
donde se puede extraer 12 variables cualitativas y 3 variables cuantitativas, con
su respectiva descripción y codificación.
1
CAPÍTULO I
EL PROBLEMA
PLANTEAMIENTO DEL PROBLEMA
UBICACIÓN DEL PROBLEMA EN UN CONTEXTO
En
la
actualidad
la
Universidad
de
Guayaquil
realiza
sus
procesos
administrativos y académicos en Sistemas independientes por cada facultad,
denominados Integradores (que son desarrollados según la necesidad de cada
facultad o carrera) los cuales ayudan en gran parte a programar horarios, ingreso
de información de docentes y alumnos, mallas, asignación de curso,
matriculación, pagos, entre otros. Estos sistemas varían según la facultad o
carrera, son manejados de manera interna por el departamento de cada recinto.
La información que es ingresada en estos sistemas integradores está
almacenada así mismo en diferentes repositorios (Base de Datos, archivos
físicos, archivos en Excel, etc.), es decir existe un repositorio de información por
cada facultad o carrera.
En la Universidad de Guayaquil en la Administración Central también existe un
repositorio central (Centro de Cómputo), en el cual debe estar toda la
información de todas las facultades y carreras, para que esta regla se cumpla
cada sistema integrador replica información hacia este repositorio central ya sea
por procesos automáticos o pase de información de modo manual.
2
Este pase de información no es seguro y muchas veces provoca perdida de
información, duplicidad de datos, o inconsistencia de datos entre los dos
repositorios antes mencionados, lo cual provoca que la información No sea
Integra.
SITUACIÓN CONFLICTO NUDOS CRÍTICOS
El problema surge porque seguimos con el mismo sistema académico desde
hace muchos años, ya que en la actualidad al momento de realizar los trámites
por los estudiantes, como son de manera manual suelen demorar su entrega, y
esto continuará sino implementamos el nuevo módulo para mejorar los trámites
que solicitan los estudiantes.
CAUSAS Y CONSECUENCIAS DEL PROBLEMA
Cuadro 01. Causas y Consecuencias del Problema
Causas
Consecuencias
Falta de un sistema optimizado para
realizar la implementación de ingreso Demora y poca agilidad en el proceso
de solicitudes del perfil de estudiantes, de entrega de las solicitudes y
para el módulo de solicitudes y certificados a los estudiantes.
certificados de una manera eficaz.
Perdida de las solicitudes y certificados Doble gasto en las impresiones de las
al
ser
proporcionados
a
los solicitudes y certificados debido a la
estudiantes.
perdida de las mismas.
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
DELIMITACIÓN DEL PROBLEMA
Cuadro 02. Delimitación del Problema
Campo
Educativo.
Área
Gestión administrativa y tecnológica.
Aspecto
Tema
Automatización en el proceso del módulo de ingreso de trámites
(solicitudes y certificados).
Implementación del Ingreso de Solicitudes del Perfil de
Estudiantes, para el Módulo de Solicitudes y Certificados.
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
3
FORMULACIÓN DEL PROBLEMA
¿Con el desarrollo del nuevo módulo de Ingreso de Solicitudes y Certificados se
solucionarán todos los problemas que existen en el proceso actual de ingreso de
Trámites en las facultades de Ciencias Matemáticas y
Físicas, y Ciencias
Administrativas?
EVALUACIÓN DEL PROBLEMA
En base a lo expuesto de acuerdo al análisis realizado, se concluye que los
aspectos generales de evaluación ante el problema mencionado son:
Cuadro 03. Evaluación del Problema
Acontecido en el campo educativo de la Facultad de Ciencias
Delimitado Matemáticas y Físicas, y la facultad de Ciencias Administrativas de
la Universidad de Guayaquil.
Claro
Implementar un módulo de trámites en el sistema académico,
ayudará a mejorar la calidad en la atención hacia los estudiantes
de una manera fácil sin la necesidad de ir hasta la Universidad.
Evidente
El problema existe, causa molestia en los estudiantes esperar
mucho tiempo para que una solicitud o Certificado sea entregada.
Relevante
Es muy importante simplificar el proceso de ingreso de solicitudes
y trámites, evitando molestias a los estudiantes.
Concreto
Mediante la implementación de este nuevo módulo se optimizara
el proceso de ingreso de solicitudes.
Factible
Dara soluciones inmediatas al momento de realizar los trámites, a
diferencia del proceso actual que se realiza manualmente y
requiere tiempo y recursos económicos.
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
4
OBJETIVO GENERAL
Desarrollar un proceso automatizado para el ingreso de solicitudes y petición de
certificados que realizan los estudiantes en base a los procesos y requerimientos
levantados por el personal de Levantamiento y Análisis de Procesos, como parte
del módulo de Trámites, integrándolo al prototipo de Sistema Académico de la
Universidad de Guayaquil.
OBJETIVOS ESPECÍFICOS

Diseñar la base de datos del módulo de ingreso de Solicitudes y
Certificados, con una estructura dinámica que soporte el crecimiento del
módulo, con los respectivos campos de auditoria y tipos de datos
requeridos por el Sistema Académico.

Desarrollar el módulo de ingreso de Solicitudes y Certificados, del perfil
de estudiantes, utilizando Java ZK Framework como lenguaje de
programación, cumpliendo las normas de seguridad y los estándares de
diseño de la interfaz gráfica del módulo, requeridos por el Sistema
Académico.

Realizar pruebas unitarias de todas las opciones que tiene el módulo de
ingreso de Solicitudes y Certificados, demostrando el cumplimiento en su
totalidad de las leyes establecidas por la Universidad de Guayaquil con
respecto a solicitudes en el proceso de matriculación y emisión de
Certificados.
5
ALCANCES DEL PROBLEMA
El presente proyecto tendrá como finalidad satisfacer todas las necesidades que
tienen los estudiantes al momento de ingresar Solicitudes y Peticiones de
Certificados estudiantiles en la Facultad de Ciencias Administrativas y en la
Facultad de Ciencias Matemáticas y Físicas.
Se realizará un análisis de los procesos que actualmente se siguen para el
ingreso de Solicitudes y Certificados por parte del estudiante, donde no será
necesario su presencia física en las instalaciones de la Universidad Guayaquil.
Automatizar todo el proceso de ingreso de solicitudes mediante el desarrollo de
una pantalla de ingreso, donde el estudiante podrá seleccionar automáticamente
todas las opciones disponibles que ofrece la Universidad de Guayaquil con
respecto a trámites.
De acuerdo al levantamiento de información realizado, se desarrollará el ingreso
de peticiones de los siguientes certificados:

Certificado de Materias y Notas

Ser Estudiante

No Estar Matriculado

No Ser Estudiante

No Tener Deudas Pendientes

Horario de Clases

Culminación de Pensum Académico

Cursos Aprobados
De acuerdo al levantamiento de información de los procesos de este módulo
para la implementación del ingreso de Solicitudes se destacan los siguientes
tipos:

Inclusión de Materias

Dejar sin efecto una Materia

Cambio de Paralelo
6

Cambio de Jornada

Cambio de Modalidad

Cambio de Veces

Anulación de Matricula

Inscripción por Tercera Vez
Para las opciones de Inclusión de Materias, se enlistará solo las materias que el
estudiante podrá incluir según el flujo de su malla curricular y materias
aprobadas, evitando así realizar una solicitud que será denegada.
El desarrollo respetará las normas de diseño de interface realizado por los
encargados del módulo principal de arquitectura.
JUSTIFICACIÓN E IMPORTANCIA
En la actualidad, los recursos tecnológicos son de gran ayuda para
las
entidades educativas ya que se ha convertido en la clave para la realización de
todo tipo de actividades para los estudiantes, docentes y personal administrativo.
Por este motivo es importante que se haga uso de estos medios tecnológicos,
por lo cual es necesario crear un módulo de ingreso solicitudes y certificados,
para los estudiantes, como parte del nuevo sistema académico de la Universidad
de Guayaquil.
Existe la necesidad de implementar el módulo de trámites con la finalidad de dar
comodidad y seguridad al momento de solicitar información, olvidándose de los
registros manuales, causando malestar y atraso. Esto permitirá brindar un
servicio de calidad y mayor soporte a las actividades administrativas de la
Universidad.
7
CAPÍTULO II
MARCO TEÓRICO
ANTECEDENTES DEL ESTUDIO
La elaboración del módulo de Tramites (Ingreso de Solicitudes y petición de
Certificados), fue desarrollado en base al análisis del proceso actual que se lleva
a cabo en la Universidad de Guayaquil, en las facultades de Ciencias
Matemáticas y Físicas, y Ciencias Administrativas, el cual se hace hasta la
actualidad de manera manual, obteniendo inconsistencias, pérdidas o retrasos
al momento de procesar dichas solicitudes,
causando muchos malestares
dentro del gremio estudiantil.
UNIVERSIDAD GUAYAQUIL
(Guayaquil, 2015)
“La Universidad de Guayaquil fue creada como tal por Pedro
Carbo, Jefe Supremo del Guayas en 1883, pero este decreto no fue
ratificado por la Asamblea Constituyente de 1884; sin embargo, el pueblo
ya no dejó de llamar Universidad de Guayaquil a la modesta Junta
Universitaria del Guayas. Con el triunfo de la Revolución Liberal se dictó
en 1897 la Ley que creó la Universidad de Guayaquil, y fue una de las
primeras en acoger la Reforma Universitaria de Córdova de 1918 que se
levantó bajo la consigna de "Una sociedad mejor para una educación
mejor". (Guayaquil, 2015)
8
LENGUAJES DE DESARROLLO
Para el desarrollo del módulo de Trámites se usó como lenguaje principal Java,
siendo un lenguaje orientado a objetos, fue creado en 1991 por el seudónimo de
OAK, para luego ser cambiando a GREEN debido a problemas legales en ese
entonces, y finalmente fue renombrado a JAVA.
A inicios de los 90, la mayoría de los usuarios que en ese entonces se
conectaban a Internet no superaban los 28 kbps de velocidad, ya comenzaban a
desarrollarse las primeras aplicaciones web, estos incluían en su programación
código muy complejo, y esto evidenciaba un problema con formularios complejos
y una conexión muy lenta, se necesitaba ya de un lenguaje de programación que
se ejecutara en el navegador del usuario.
Según la web oficial ZK (www.zkoss.org,2012), ZK es un framework de código
abierto para el desarrollo de clientes web realizado en AJAX, se creó gracias a
una comunidad de desarrolladores que se propusieron a crear una interfaz de
usuario mucho más ágil, fácil de implementar y desarrollar. Fundado por Tom
Yeh y Henri Chen en 1990 trabajando conjuntamente en desarrollo fundan la
empresa POTIX, y su primera versión es entregada en el año 2005.
(www.zkoss.org,2012)
FUNDAMENTACIÓN TEÓRICA
El proceso de Solicitudes está elaborado mediante la investigación, análisis y
diseño de toda la información obtenida en el levantamiento de información del
proceso actual, basándose en las leyes y normas pertenecientes a la
Universidad de Guayaquil.
El ingreso de solicitudes y petición de certificados es parametrizable, permitiendo
a los administradores ingresar nuevos tipos de solicitudes y certificados que
pueda ofrecer la universidad a sus estudiantes, siendo un proceso dinámico en
cada una de sus opciones, para obtener un óptimo rendimiento se estableció el
uso de Framework ZK para desarrollar el módulo de Tramites.
9
FRAMEWORK ZK
Según la web oficial (www.zkoss.org, 2012), ZK está basado en el lenguaje Java
pero es multiplataforma, esto quiere decir que se puede relacionar con cualquier
otro lenguaje de programación, el punto más importante para los desarrolladores
en ZK es que se olvidan de JavaScript y solo enfocan todo su tiempo en el
desarrollo, ya que el framework ZK genera automáticamente el código en
JavaScript, a diferencia de otros Frameworks basados en AJAX que si necesitan
tener
conocimientos
solidos
de
JavaScript,
para
la
facilidad
de
los
desarrolladores el framework ZK utiliza el lenguaje ZULM para la creación de
componentes web. (www.zkoss.org, 2012)
WORKFLOW
Según la WFMC (www.wfmc.org, 2010), se define proceso como: "Un conjunto
de uno o más procedimientos o actividades directamente ligadas, que
colectivamente realizan un objetivo del negocio, normalmente dentro del
contexto de una estructura organizacional que define roles funcionales y
relaciones entre los mismos."
Y se define Workflow como: "Workflow implica la automatización de
procedimientos organizacionales donde tareas, documentos e información son
pasados de un participante a otro de acuerdo a un conjunto definido de reglas
para alcanzar o contribuir a alcanzar un objetivo de la organización".
Una síntesis habitual de las definiciones anteriores es la que define Workflow
como: "Un conjunto de tareas realizadas por dos o más miembros de una
organización para alcanzar un objetivo común".
En resumen, podemos definir Workflow como: El área de la informática que trata
de la automatización de los procesos empresariales que involucran secuencias
de tareas bien definidas, ejecutadas por personas o sistemas.
En esencia, Workflow implica procesos de la organización bien definidos, un
sistema informático para modelar esas reglas de negocio y un agente "invisible"
que hace que esos procesos se desarrollen de acuerdo a lo especificado.
(www.wfmc.org, 2010)
10
XUL
Según la página oficial de Mozilla (developer.mozilla.org, 2014), XUL es un
lenguaje basado en XML (Extensible Markup Language) utilizado para describir y
crear interfaces de usuario, que ha sido diseñado para brindar la portabilidad de
las mismas, por lo que permite desarrollar aplicaciones multi-plataforma
sofisticadas o complejas sin necesidad de herramientas especiales.
Inicialmente XUL fue creado para desarrollar los productos de Mozilla
(navegador y cliente de e-mail, entre otros) de una forma más rápida y fácil. Al
ser un lenguaje basado en XML, contiene todas las características disponibles
para XML y sus mismas ventajas.
Estas aplicaciones son fácilmente personalizadas con textos, gráficos y demás,
por lo que pueden ser rápidamente localizadas en diferentes mercados. Los
desarrolladores Web que estén familiarizados con DHTML podrán aprender XUL
rápidamente
e
incorporarlo
en
el
desarrollo
de
sus
aplicaciones.
(developer.mozilla.org, 2014)
ZUML
Según la página oficinal ZK (books.zkoss.org, 2010), ZUML abreviación de ZK
User Interface Markup Language, está basado en XML, el Framework ZK se
basó en todo el rico conocimiento de XUL para su desarrollo, posee una línea de
conocimiento casi plana, ya que su estructura es muy parecida a la de las
paginas XHTML. (books.zkoss.org, 2010)
AJAX
AJAX proviene de las siglas Asynchronous JavaScript And XML, no es un
lenguaje de programación, sino un conjunto de tecnologías web tales como
(HTML-JavaScript-CSS-DHTML-PHP/ASP.NET/JSP-XML), la cual nos permite
realizar páginas web muy dinámicas e interactivas con respuesta rápida a
necesidades del usuario final. Lo complejo de AJAX es dominar todas las
tecnologías antes mencionadas.
11
Gráfico 01. Esquema de AJAX
Elaboración: Jesse James Garrett
Fuente: www.adaptivepath.com
Según Christian Gross de Ajax Patterns and Best Practices, La característica
fundamental de AJAX es permitir actualizar parte de una página con información
que se encuentra en el servidor sin tener que refrescar completamente la página.
De modo similar podemos enviar información al servidor.” (Christian Gross, Ajax
Patterns and Best Practices, 2006)
12
HTML 5
Según Mozilla (developer.mozilla.org/es/docs/HTML/HTML5, 2014), HTML5 es
la última evolución de la norma que define HTML. El término representa dos
conceptos diferentes, uno se trata de una nueva versión del lenguaje HTML, con
nuevos elementos, atributos y comportamientos, y el otro concepto es que un
conjunto más amplio de tecnologías que permite a los sitios Web y a las
aplicaciones ser más diversas y de gran alcance. Este conjunto se le llama
HTML5 y amigos, a menudo reducido a sólo a HTML5.
(developer.mozilla.org/es/docs/HTML/HTML5, 2014)
JAVA
Según la página oficial de Java (www.java.com, 2012), Java es una tecnología
que se usa para el desarrollo de aplicaciones que convierten a la Web en un
elemento más interesante y útil. Java no es lo mismo que JavaScript, que se
trata de una tecnología sencilla que se usa para crear páginas web y solamente
se ejecuta en el explorador.
Por defecto, Java le notificará inmediatamente que hay nuevas actualizaciones
listas para instalarse. Si desea estar al día y mantener la seguridad de su
computadora, es importante que acepte e instale las actualizaciones. Si recibe
una notificación de actualización de Java en su computadora Windows y no
recuerda haberla descargado o instalado, lo más probable es que Java estuviera
ya instalado en la nueva computadora. (www.java.com, 2012)
JAVASCRIPT
Según la página oficial de Mozilla (developer.mozilla.org, 2014), JavaScript® (a
veces abreviado como JS) es un lenguaje ligero e interpretado, orientado a
objetos con funciones de primera clase, más conocido como el lenguaje de
script para páginas web, pero también usado en muchos entornos sin
navegador, tales como node.js o Apache CouchDB. Es un lenguaje script multiparadigma, basado en prototipos, dinámico, soporta estilos de programación
funcional, orientada a objetos e imperativa. Leer más sobre JavaScript.
(developer.mozilla.org, 2014)
13
ORM
Según librosweb.es (librosweb.es, 2010), el termino ORM corresponde a
OBJECT-RELATIONAL MAPPING, que en español significa a mapeo de objetorelacional, consiste en transformar ordinarias tablas de una base de datos, en
una serie de entidades que simplifican significativamente las tareas básicas de
acceso a los datos para el desarrollador.
Aunque por años el lenguaje SQL ha sido fundamental para el acceso a mucha
de las bases de datos existentes, existen muchas diferencias en su estructura
dependiente de la base, tales como SqlServer, MySql y Oracle, esto para el
desarrollador significa conocer este lenguaje para cada Base de datos, y peor
aún si en un futuro se desee migrar la aplicación a otra base, debería cambiar
casi en su totalidad las consultas existentes.
“Otro punto importante es la facilidad de trabajo, un ORM, nos facilita las labores
básicas de cualquier acceso a datos, el CRUD (Create, Read, Update y Delete).
Realizando todas estas labores a través de un lenguaje de alto nivel orientado a
objetos.
Ventajas y desventajas de un ORM


Ventajas
o
Facilidad y velocidad de uso
o
Abstracción de la base de datos usada.
o
Seguridad de la capa de acceso a datos contra ataques.
Desventajas
o
En entornos con gran carga poner una capa más en el proceso
puede mermar el rendimiento.
o
Aprender el nuevo lenguaje del ORM.
(librosweb.es, 2010)
HIBERNATE
Para (González, 2003):
Hibérnate es una capa de persistencia objeto/relacional y un generador
de sentencias SQL. Te permite diseñar objetos persistentes que podrán
incluir polimorfismo, relaciones, colecciones, y un gran número de tipos
14
de datos. De una manera muy rápida y optimizada podremos generar
BBDD en cualquiera de los entornos soportados: Oracle, DB2, MySql,
etc. Y lo más importante de todo, es open source, lo que supone, entre
otras cosas, que no tenemos que pagar nada. (“Hibérnate”). (González,
2003):
.
Gráfico 2 . Funcionamiento Básico de Hibernate
Elaboración: www.hibernate.org
Fuente: www.hibernate.org
(Hibernate, 2014) “Este diagrama ilustra la manera en que Hibernate utiliza la
base de datos y los datos de configuración para proporcionar servicios de
persistencia y objetos persistentes a la aplicación.” (Hibernate, 2014)
15
SQL SERVER 2012
Según (Microsoft, 2015)
SQL Server, ofrece un rendimiento fiable gracias a la integración
de tecnologías en memoria, una rápida obtención de información útil a
partir de cualquier tipo de datos, con herramientas que todos conocemos,
como Excel, y una plataforma para compilar, implementar y administrar
soluciones tanto locales como en nube. (parr.1) (Microsoft, 2015)
(Microsoft, 2015)
SQL Server permite a los clientes crear aplicaciones críticas y
soluciones Big Data mediante tecnología en memoria y de alto
rendimiento a través de OLTP, almacenamiento de datos, Business
Intelligence y cargas de trabajo analíticas sin tener que comprar costosos
complementos ni aplicaciones de alta gama. SQL Server 2014 utiliza un
conjunto de herramientas comunes para implementar y administrar bases
de datos tanto en la nube como en el entorno local, lo que facilita que los
clientes puedan aprovechar la nube con los conocimientos existentes.
(parr.2) (Microsoft, 2015)
APACHE TOMCAT 7
Según (Guayaquil, 2015)
Apache, también conocido como simplemente Tomcat o Jakarta Tomcat,
es un servidor web multiplataforma que funciona como contenedor de
servlets y que se desarrolla bajo el proyecto denominado Jackarta
perteneciente a la Apache Software Foundation bajo la licencia Apache
2.0 y que implementa las especificaciones de los servlets y de
JavaServer Pages o JSP de Sun Microsystem. (parr.1) (Guayaquil, 2015)
CSS3
CSS se refiere a Cascading HTML Style Sheets, y corresponde a hojas de estilo,
que se utilizan para dar estilo al diseño de páginas web, esto corresponde a un
nuevo mundo en el diseño web, ya que antes los desarrolladores para darle algo
de estilo a su plantilla web, utilizaban etiquetas HTML especiales, y así
modificaban en algo el aspecto de su diseño. CSS permite separar la
16
información sobre su diseño y la página en sí, se pueden establecer estilos con
menos esfuerzo y sin dañar el código HTML.
Según la web (www.w3c.es, 2014), CSS funciona a base de reglas, es decir,
declaraciones sobre el estilo de uno o más elementos. Las hojas de estilo están
compuestas por una o más de esas reglas aplicadas a un documento HTML o
XML. La regla tiene dos partes: un selector y la declaración. A su vez la
declaración está compuesta por una propiedad y el valor que se le asigne.
(www.w3c.es, 2014)
HQL
Según la página oficial de Red Hat (Red Hat Inc, 2004), Hibernate utiliza un
lenguaje de consulta potente (HQL) que se parece a SQL, sin embargo,
comparado con SQL, HQL es completamente orientado a objetos y comprende
nociones como herencia, polimorfismo y asociación.
Sensibilidad a mayúsculas
Las consultas no son sensibles a mayúsculas, a excepción de los nombres de
las clases y propiedades Java. De modo que SeLeCT es lo mismo que sELEct e
igual
a
SELECT,
pero
org.hibernate.eg.FOO
no
es
lo
mismo
que
org.hibernate.eg.Foo y foo.barSet no es igual a foo.BARSET.
La cláusula from
La consulta posible más simple de Hibernate es de esta manera:
from eg.Cat
Esto retorna todas las instancias de la clase eg.Cat. Usualmente no es necesario
calificar el nombre de la clase ya que auto-import es el valor predeterminado. Por
ejemplo:
from Cat
Con el fin de referirse al Cat en otras partes de la petición, necesitará asignar un
alias. Por ejemplo:
from Cat as cat
17
Esta consulta asigna el alias cat a las instancias Cat, de modo que puede utilizar
ese alias luego en la consulta. La palabra clave as es opcional. También podría
escribir:
from Cat cat
Pueden aparecer múltiples clases, lo que causa un producto cartesiano o una
unión "cruzada" (cross join).
from Formula, Parameter
from Formula as form, Parameter as param
Asociaciones y uniones (joins)
También puede asignar alias a entidades asociadas o a elementos de una
colección de valores utilizando una join. Por ejemplo:
from Cat as cat
inner join cat.mate as mate
left outer join cat.kittens as kitten
from Cat as cat left join cat.mate.kittens as kittens
from Formula form full join form.parameter param
Los tipos de uniones soportadas se tomaron prestados de ANSI SQL
•
inner join
•
left outer join
•
right outer join
•
full join (no es útil usualmente)
Las construcciones inner join, left outer join y right outer join se pueden abreviar.
from Cat as cat
join cat.mate as mate
left join cat.kittens as kitten
Puede proveer condiciones extras de unión utilizando la palabra clave with de
HQL.
from Cat as cat
left join cat.kittens as kitten
with kitten.bodyWeight > 10.0
18
Un "fetch" join permite asociaciones o colecciones de valores para ser
inicializados luego con los objetos padres usando un simple select. Esto es
particularmente útil en el caso de una colección.
from Cat as cat
inner join fetch cat.mate
left join fetch cat.kittens
Usualmente no se necesita asignársele un alias a una unión de recuperación ya
que los objetos asociados no se deben utilizar en la cláusula where (ni en
cualquier otra cláusula). Los objetos asociados no se retornan directamente en
los resultados de la consulta. En cambio, se pueden acceder por medio del
objeto padre. La única razón por la que necesitaríamos un alias es si estamos
uniendo recursivamente otra colección:
from Cat as cat
inner join fetch cat.mate
left join fetch cat.kittens child
left join fetch child.kittens
La construcción fetch no puede utilizarse en consultas llamadas que usen
iterate() (aunque se puede utilizar scroll()). Fetch se debe usar junto con
setMaxResults() o setFirstResult() ya que estas operaciones se basan en las
filas de resultados, las cuales usualmente contienen duplicados para la
recuperación de colección temprana, por lo tanto, el número de filas no es lo que
se esperaría. Fetch no se debe usar junto con una condición with improvisadas.
Es posible crear un producto cartesiano por medio de una recuperación por
union más de una colección en una consulta, así que tenga cuidado en este
caso. La recuperación por unión de múltiples roles de colección también da
resultados a veces inesperados para mapeos de bag, así que tenga cuidado de
cómo formular sus consultas en este caso. Finalmente, observe que full join fetch
y right join fetch no son significativos. (Red Hat Inc, 2004)
19
FUNDAMENTACIÓN LEGAL
La fundamentación legal para realizar el prototipo del Módulo de Tramites
citamos las siguientes leyes:
LEY DE EDUCACIÓN SUPERIOR
PRINCIPIOS DEL SISTEMA DE EDUCACIÓN SUPERIOR
Art. 13.- Funciones del Sistema de Educación Superior.- Son funciones del
Sistema de Educación Superior:
a) Garantizar el derecho a la educación superior mediante la docencia, la
investigación y su vinculación con la sociedad, y asegurar crecientes
niveles de calidad, excelencia académica y pertinencia.
b) Promover la creación, desarrollo, transmisión y difusión de la ciencia, la
técnica, la tecnología y la cultura.
c) Formar académicos, científicos y profesionales responsables, éticos y
solidarios, comprometidos con la sociedad, debidamente preparados para
que sean capaces de generar y aplicar sus conocimientos y métodos
científicos, así como la creación y promoción cultural y artística.
LEY DE PROPIEDAD INTELECTUAL SECCION V
DISPOSICIONES ESPECIALES SOBRE CIERTAS OBRAS
PARAGRAFO PRIMERO DE LOS PROGRAMAS DE ORDENADOR
Art. 28.-
Los programas de ordenador se consideran obras literarias y se
protegen como tales. Dicha protección se otorga independientemente de que
hayan sido incorporados en un ordenador y cualquiera sea la forma en
que estén expresados, ya sea en forma legible por el hombre (código
fuente) o en forma legible por máquina ( código objeto), ya sean programas
operativos y programas aplicativos, incluyendo diagramas de flujo, planos,
manuales
de uso,
y en
general, aquellos elementos que conformen la
estructura, secuencia y organización del programa.
20
Art. 29.-
Es titular de un programa de ordenador, el productor, esto es la
persona natural o jurídica que toma la iniciativa y responsabilidad de la
realización de la obra. Se considerará titular, salvo prueba en contrario, a la
persona cuyo nombre conste en la obra o sus copias de la forma usual.
Dicho titular está además legitimado para ejercer en nombre propio los derechos
morales sobre la obra, incluyendo la facultad para decidir sobre su divulgación.
El productor tendrá el derecho exclusivo de realizar, autorizar o prohibir la
realización
de modificaciones o versiones sucesivas del programa, y de
programas derivados del mismo.
Las disposiciones del presente artículo podrán ser modificadas mediante
acuerdo entre los autores y el productor.
Art. 30.- La adquisición de un ejemplar de un programa de ordenador que haya
circulado lícitamente, autoriza a su propietario a realizar exclusivamente:

Una copia de la versión del programa legible por máquina (código
objeto) con fines de seguridad o resguardo;

Fijar el programa en la memoria interna del aparato, ya sea que dicha
fijación desaparezca o no al apagarlo, con el único fin y en la medida
necesaria para utilizar el programa; y,

Salvo prohibición expresa, adaptar el programa para su exclusivo uso
personal, siempre que se limite al uso normal previsto en la licencia. El
adquirente no podrá transferir a ningún título el soporte que contenga el
programa así adaptado, ni podrá utilizarlo de ninguna otra forma
sin autorización expresa, según las reglas generales.

Se requerirá de autorización del titular de los derechos para cualquier
otra utilización, inclusive la reproducción para fines de uso personal o el
aprovechamiento del programa por varias personas, a través de redes u
otros sistemas análogos, conocidos o por conocerse.
Art. 31. -No se considerará que exista arrendamiento de un programa de
ordenador cuando éste no sea el objeto esencial de dicho contrato. Se
considerará que el programa es el objeto esencial cuando la funcionalidad del
objeto
materia
del
contrato,
dependa
directamente
del
programa
de
21
ordenador suministrado con dicho objeto; como cuando se arrienda un
ordenador con programas de ordenador instalados previamente.
Art. 32. -Las excepciones al derecho de autor establecidas en los artículos 30 y
31 son las únicas aplicables respecto a los programas de ordenador. Las
normas contenidas en el presente Parágrafo se interpretarán de manera
que
su
aplicación
no perjudique la normal explotación de la obra o los
intereses legítimos del titular de los derechos.
DECRETO 1014
SOBRE EL USO DEL SOFTWARE LIBRE
Art. 1.- Establecer como política pública para las entidades de administración
Pública central la utilización del Software Libre en sus sistemas y equipamientos
informáticos.
Art. 2.- Se entiende por software libre, a los programas de computación que se
pueden utilizar y distribuir sin restricción alguna, que permitan el acceso a los
códigos fuentes y que sus aplicaciones puedan ser mejoradas.
Estos programas de computación tienen las siguientes libertades:

Utilización de programa con cualquier propósito de uso común.

Distribución de copias sin restricción alguna.

Estudio y modificación de programa (Requisito: código fuente disponible)

Publicación del programa mejorado (Requisito: código fuente disponible
Art. 3.- Las entidades de la administración pública central previa a la instalación
del software libre en sus equipos, deberán verificar la existencia de capacidad
técnica que brinde el soporte necesario para este tipo de software.
Art. 4.- Se faculta la utilización de software propietario (no libre) únicamente
cuando no exista una solución de software libre que supla las necesidades
requeridas, o cuando esté en riesgo de seguridad nacional, o cuando el proyecto
informático se encuentre en un punto de no retorno.
22
Art. 5.- Tanto para software libre como software propietario, siempre y cuando se
satisfagan los requerimientos.
Art. 6.- La subsecretaría de Informática como órgano regulador y ejecutor de las
políticas y proyectos informáticos en las entidades de Gobierno Central deberá
realizar el control y seguimiento de este Decreto.
Art. 7.- Encargue de la ejecución de este decreto los señores Ministros
Coordinadores y el señor Secretario General de la Administración Pública y
Comunicación.
LEY ORGANICA DE EDUCACIÓN SUPERIOR
Art. 32.- Programas informáticos.- Las empresas que distribuyan programas
informáticos tienen la obligación de conceder tarifas preferenciales para el
uso de las licencias obligatorias de los respectivos programas, a favor de
las instituciones de educación superior, para fines académicos. Las instituciones
de
educación superior
obligatoriamente incorporarán el uso de programas
informáticos con software libre.
REGLAMENTO DE REGIMEN ACADEMICO CODIFICADO DEL CONSEJO DE
EDUCACION SUPERIOR
Que, el artículo 26 de la Ley Orgánica De Educación Superior, establece: “La
educación es un derecho de las personas a lo largo de su vida y un deber
ineludible e inexcusable del Estado. Constituye un área prioritaria de la política
pública y de la inversión estatal, garantía de la igualdad e inclusión social y
condición indispensable para el buen vivir. […]”;
Que, el artículo 356 de la Constitución de la República del Ecuador, prescribe
que la educación pública será gratuita hasta el tercer nivel. El ingreso a las
instituciones públicas de educación superior se regulará a través de un sistema
23
de nivelación y admisión, definido en la ley. La gratuidad se vinculará a la
responsabilidad académica de las estudiantes y los estudiantes.
Que, el Art. 71 de la Ley Orgánica De Educación Superior, establece que el
principio de igualdad de oportunidades consiste en garantizar a todos los actores
del Sistema de Educación Superior las mismas posibilidades en el acceso,
permanencia, movilidad y egreso del sistema, sin discriminación de género,
credo, orientación sexual, etnia, cultura, preferencia política, condición
socioeconómica o discapacidad.
Que, el Art. 80 de la Ley Orgánica De Educación Superior, prescribe que se
garantiza la gratuidad de la educación superior, prescribe que se garantiza la
gratuidad de la educación superior pública hasta el tercer nivel, la misma que
observará el criterio de responsabilidad académica de los y las estudiantes (…).
Que, el Art. 84 de la Ley Orgánica De Educación Superior, establece los
requisitos para aprobación de cursos y carreras y señala que los requisitos de
carácter académico y disciplinario necesarios para la aprobación de cursos y
carreras, constaran en el Reglamento de Régimen Académico, en los
respectivos estatutos, reglamentos y demás normas que rigen al Sistema de
Educación Superior. Solamente en casos establecidos excepcionalmente en el
estatuto de cada institución, un estudiante podrá matricularse hasta por tercera
ocasión en una misma materia o en el mismo ciclo, curos o nivel académico.
En la tercera matrícula de la materia, curso o nivel académico no existirá opción
a examen de gracia o de mejoramiento.
Que, el Art. 33 de la Ley Orgánica De Educación Superior, señala que la
matrícula es el acto de carácter académico-administrativo, mediante el cual una
persona adquiere la condición de estudiante, a través del registro de las
asignaturas, cursos o sus equivalentes, en un periodo académico determinado y
conforme a los procedimientos internos de una IES. La condición de estudiante
se mantendrá hasta el inicio del nuevo periodo académico ordinario o hasta su
titulación.
24
Que, el Art. 34 del reglamento ibidem establece los tipos de matrícula y señala
que dentro del Sistema de Educación Superior, se establecen los siguientes
tipos de matrícula: a. Matrícula ordinaria.- Es aquella que se realiza en el plazo
establecido por la IES para el proceso de matriculación, que en ningún caso
podrá ser mayor a 15 días. B. Matricula extraordinaria.- Es aquella que se realiza
en el plazo máximo de 15 días posteriores a la culminación del periodo de
matrícula ordinaria. C. Matrícula Especial.- Es aquella que, en casos individuales
excepcionales, otorga el órgano colegiado académico superior de las
universidades y escuelas politécnicas, así como el organismo de gobierno de los
institutos y conservatorios superiores, para quien, por circunstancias de caso
fortuito o fuerza mayor debidamente documentadas, no se haya podido
matricular de manera ordinaria o extraordinaria. Esta matrícula se podrá realizar
hasta dentro de 15 días posteriores a la culminación del periodo de matrícula
extraordinaria.
Para los programas de postgrado, las Universidades y Escuelas Politécnicas
establecerán únicamente periodos de matrícula ordinaria y extraordinaria.
Se considera como inicio de la carrera o programa la fecha de la matriculación
de la primera cohorte de los mismos.
Que, es necesario que la normativa de matrículas y tasas vele por el principio de
igualdad de oportunidades y garantice a todos los estudiantes las mismas
posibilidades en el acceso, permanencia, movilidad y egreso del sistema de
educación.
25
REGLAMENTO DE MATRICULAS Y TASAS
DE LA UNIVERSIDAD DE GUAYAQUIL
CAPITULO I
OBJETO Y ÁMBITO DE LA APLICACIÓN
Art. 1.- Objeto.- Este reglamento tiene por objeto establecer las normas y
procedimientos de las matrículas, además las tasas y los rubros cubiertos por la
gratuidad en la Universidad de Guayaquil.
Art. 2.- Ámbito de Aplicación.- El presente reglamento es de obligatoria
aplicación para los postulantes y para los estudiantes de la Universidad de
Guayaquil.
CAPITULO II
DE LA MATRÍCULA
Art. 3.- Definición de matrícula.- La matrícula es el acto administrativo y legal,
con el cual una persona adquiere la condición de estudiante y se vincula
académicamente con la Universidad de Guayaquil, accede al registro de las
asignaturas, cursos o sus equivalentes, para el periodo académico determinado
que va a cursar.
La condición de estudiante se mantendrá hasta el inicio del nuevo periodo
académico ordinario o hasta su titulación. En cada matrícula el estudiante se
somete a la normativa que se encuentre vigente a la fecha de su matriculación y
los procedimientos internos que mantenga la Universidad de Guayaquil para
formalizar dicho vínculo.
Art. 4.- Los tipos de matrícula.- La universidad de Guayaquil cuenta con los
siguientes tipos de matrícula:
a) Matrícula Ordinaria.- Es aquella que se realiza de conformidad al calendario
académico
de
la
institución
durante
los
meses
de
abril y
octubre,
respectivamente, durará 10 días laborables.
26
b) Matrícula extraordinaria.- Es Aquella que se realiza luego de finalizado el
plazo para el periodo de matrícula ordinaria, durará 10 días laborables.
c) Matrícula especial.- Es aquella que en casos individuales excepcionales la
otorga el Consejo Universitario, debido a circunstancias de caso fortuito o fuerza
mayores debidamente documentadas. Esta matrícula se podrá realizar hasta
dentro de los 10 días laborables posteriores a la culminación del periodo de
matrícula extraordinaria.
Se considera inicio de la carrera la fecha de matriculación de la primera cohorte.
Las
unidades
académicas
que
presenten
problemas
académicos
o
administrativos no imputables al estudiante, que dificulten la gestión de
matriculación, podrán solicitar la prórroga del periodo de matrículas ordinarias,
siempre que lo argumenten antes de que concluya el periodo de matriculación
ordinaria. El Vicerrectorado
Académico de considerarlos pertinente, concederá la prórroga del periodo de
matrículas ordinarias hasta por 5 días laborables posteriores a dicho periodo.
Art. 5.- Tipos de matrícula en los programas de postgrado.- Los programas de
postgrado tendrán únicamente periodos de matrícula ordinaria y extraordinaria.
Se considera como inicio del programa la fecha de matriculación de la primera
cohorte.
La matrícula y colegiatura en los programas de postgrado se fijarán en la
aprobación del proyecto del curso de postgrado, el mismo contendrá los
requisitos que deben cumplir los aspirantes y las formas en las que se receptará
el pago de los dividendos.
Los rubros y los valores a cobrar por los programas de postgrado lo establecerá
la Institución en la oferta académica de cada programa.
27
Art. 6.- Anulación de la matrícula.- El Consejo Universitario podrá declarar nula
una matrícula cuando esta haya sido realizada violando la Ley y la normativa
pertinente, previo informe de la autoridad competente que contendrá las
formalidades legales y reglamentarias aplicables en cada caso.
Art. 7.- Del retiro de una asignatura o programa.- Un estudiante podrá retirarse
de una o varias asignaturas en un periodo académico en situaciones de caso
fortuito o fuerza mayor debidamente documentadas, que le impidan continuar
sus estudios. El plazo para este retiro serpa de 30 días contados a partir de la
fecha de inicio de actividades académicas. Estos casos serán conocidos y
aprobados por la Comisión Académica. En caso de retiro la matrícula
correspondiente a esta asignatura quedará sin efecto y no se contabilizará para
efectos del cumplimiento de los requisitos para aprobación de cursos y carreras
establecidos en el artículo 84 de la LOES.
CAPITULO III
DE LOS PERIODOS ACADÉMICOS
Art. 8.- Del periodo académico ordinario.- El inicio de las actividades de cada
periodo académico ordinario, se realizará en los meses de abril y octubre,
respectivamente.
Los programas de postgrado podrán planificar sus periodos académicos de
modo diferente.
Art. 9.- Del periodo académico extraordinario.- La Universidad de Guayaquil
podrá implementar, adicionalmente periodos académicos extraordinarios de
conformidad a lo establecido en el Reglamento de Régimen Académico CES.
CAPITULO IV
DEL POSTULANTE A LA MATRÍCULA
Art. 10.- De los requisitos para los postulantes al primer semestre.- Para ser
estudiante de la Universidad de Guayaquil se requiere:
28
• Haber aprobado la prueba de admisión, el curso de nivelación o haber
exonerado.
• Copia de cedula a color.
• 2 fotos tamaño carnet.
• Copia del certificado de votación (mayores de 18 años).
• Copia certificado por el Ministerio de Educación o copia notariada del Título de
Bachiller (previamente debe estar refrendado), se podrá aceptar transitoriamente
por un semestre copia certificada o notariada del acta de grado refrendada por el
Ministerio de Educación.
La entrega de esta información no parte de los coordinadores del Curso de
Nivelación de cada Facultad a Vicerrector Académico de la Institución para su
verificación será hasta la fecha en que indique el Vicerrectorado Académico y
validado a Centro de Computo a los siete días de la verificación.
Como un proceso de control de ingreso de información de las facultades, según
los literales anteriores, el Sistema Académico Institucional se bloqueará en las
fechas establecidas por el Vicerrectorado Académico.
La división de Cómputo establecerá un cronograma anual para la capacitación
del Sistema Académico Institucional, el cual va a estar dirigido al personal de
Secretaría encargado del proceso de matriculación, el mismo que será dado
semestralmente a los diferentes grupos de las facultades.
Art.11.- De los requisitos para los postulantes a partir del segundo semestre.Para matricularse por primera vez, a partir del segundo semestre, y, por segunda
vez o, excepcionalmente, por tercera ocasión, en una o varias asignaturas, se
requiere la orden de matriculación extendida por el secretario de cada Unidad
Académica, previa presentación del os siguientes documentos:
• Solicitud de matrícula dirigida al Decano de la Facultad;
• Ficha de asignaturas en las que se matriculará; y
• Recibo de pago de la tasa por concepto de segunda o tercera matrícula. (Para
el caso de tercera matricula deberá tener informe favorable de la comisión
Académica de la Universidad).
29
Art.12.- De los requisitos para los postulantes a postgrados.- Para el ingreso a
los programas de postgrado se deberán cumplir los requisitos, contenidos en el
programa del curso de postgrado y los establecidos en el reglamento de régimen
académico.
Art.13.- De los aspirantes de otras Universidades.- Los aspirantes a ingresar a
cualquiera de las Unidades Académicas que provengan de otra Universidad,
previo el pago de las tasas correspondientes, deberán presentar la solicitud de
cambio con toda la documentación original contenida en el artículo 11 de este
Reglamento,
además
deberán
presentar
record
académico
original
(
calificaciones, obtenidas, el año en que aprobó cada asignatura y el sistema de
calificación), programas de estudios o syllabus de las materias aprobadas
debidamente certificadas por la Universidad de origen, copia de cédula de
ciudadanía y papeleta de votación actualizada.
Las solicitudes deberán presentarse 60 días antes del inicio del periodo de
matriculación.
Art.14.-De los aspirantes de otras Unidades Académicas.- En el caso de cambio
de Facultad, dentro de la Universidad de Guayaquil, el estudiante presentará la
solicitud dirigida al director(a) de la carrera, record académico original
(calificaciones obtenidas, en el año en que aprobó cada asignatura y el Sistema
de calificación). Los documentos deberán estar certificados por la Secretaría de
la Facultad de origen y las originales quedarán en la Unidad Académica de
procedencia. Las solicitudes deberán presentarse 15 días antes del inicio del
periodo de matrículas ordinarias.
Estos postulantes no deberán someterse al SNNA y deberán cumplir con las
normas de reconocimiento u homologación de estudios contempladas en el
artículo 61 del Reglamento de Régimen Académico.
Art.15.-De los requisitos para los postulantes extranjeros.- Para el caso de los
postulantes extranjeros se observaran los mismos requisitos que para los
postulantes nacionales. Y además deberán cumplir con los siguientes:
30
Título de bachiller apostillado o refrendado en el Ministerio de Educación y en el
Ministerio de Relaciones Exteriores; y, Copia notariada del visado por estudio.
El postulante extranjero que está imposibilitado, de cumplir con los requisitos
prescritos en este artículo, debido a sus necesidades específicas de protección.
Tales como: refugio, asilo. etc. no perderá el derecho a la matricula. La
institución le dará un trato favorable al encontrarse en un estado de protección
especial prorrogándole el plazo de presentación de los documentos hasta el
inicio del siguiente periodo académico.
Art.16.- De la condición de estudiante regular.- la condición de estudiante regular
de la Universidad de Guayaquil se la adquiere cuando se entrega la constancia
de matrícula en la Secretaria de cada Unidad Académica y se haya matriculado
en al menos el 60% de las asignaturas, cursos o sus equivalentes, que permite
su plan de estudios en el periodo académico ordinario correspondiente. También
se consideran estudiantes regulares aquellos que se encuentran cursando el
periodo académico de culminación de estudios; es decir, aquel en el que el
estudiante se matriculo en todas las actividades académicas que requiere
aprobar para concluir su carrera.
CAPITULO VI
DE LA GRATUIDAD
Art.20.- Ámbito de la gratuidad.- La gratuidad beneficiara a los estudiantes que
cumplan los siguientes requisitos:
a) Ser estudiante regular de la Universidad de Guayaquil, de conformidad a lo
estipulado en el artículo 16 de este reglamento.
b) Cursar por primera vez una sola carrera en la universidad. También será
beneficiarios los estudiantes que cambien de carrera por primera vez, siempre
que hayan aprobado una o barias asignaturas, cursos o sus equivalentes del
periodo académico ordinario o extraordinario de carácter obligatorio, que puedan
ser homologadas de conformidad a lo establecido en el reglamento de Régimen
Académico.
31
Si un estudiante se retira de una carrera y se reincorpora cómo estudiante
regular dentro del tiempo máximo establecido en el reglamento de Régimen
Académico, continuara gozando del derecho de la gratuidad de la educación
superior.
c) Cursar las asignaturas, cursos o sus equivalentes del periodo académico en el
tiempo y en las condiciones ordinarias establecidas en el programa de la carrera
correspondiente.
Art.21.- De los rubros cubiertos por la gratuidad.- Los estudiantes que gocen del
derecho a la gratuidad, así como aquellos que paguen los aranceles
correspondientes por tasas y otros durante el periodo académico al que
corresponda la misma, gozaran de los derechos o servicios que la escolaridad
en cada periodo académico abarca entre estos:
a) Las asignaturas, cursos o sus equivalentes que, en el correspondiente periodo
académico
ordinario
o
extraordinario,
el
estudiante
puede
cursar,
independientemente de sus avances de aprobación del respectivo plan de
estudios;
b) Las asignaturas, cursos sus equivalentes que forman parte del plan de
estudios y que un estudiante debe aprobar en una institución de educación
superior para acceder al título de la respectiva carrera, incluyendo los cursos de
lengua extranjera, cursos de computación, itinerarios académicos, seminarios u
otras actividades académicas obligatorias;
c) El acceso y uso de bibliotecas, laboratorios especializados, servicios
informáticos, de lengua extranjera, infraestructura científica y tecnológica,
recursos bibliográficos, hemerotecas, servicios básicos, utilización de bienes y
servicios institucionales relacionados al bienestar estudiantil, así como aquellos
que garanticen desarrollo efectivo de actividades de aprendizaje que conlleven
riesgo, al igual que aquellos bienes, insumos, materiales, reactivos para
prácticas de laboratorio y servicios necesarios para el ejercicio de practica de
32
laboratorio y servicios necesarios para el ejercicio de la actividad académica, con
excepción de bienes de uso exclusivamente personal e individual;
d) Seguro de vida y accidente, la Universidad de Guayaquil está obligada al a
provisión de este servicio para los estudiantes; y,
e) Rubros correspondientes a las actividades de aprendizaje que tienen que ver
con formación integral, itinerarios académicos, actividades de investigación
formativa, las practicas pre profesionales y actividades de vinculación con la
sociedad debidamente planificadas.
Las matriculas de carácter extraordinario o especial, estarán exentas de pagos
en
las
circunstancias
de
caso
fortuito
o
fuerza
mayor
debidamente
documentadas.
Art.22.- Perdida parcial y temporal de la gratuidad.- Los estudiantes de la
Universidad de Guayaquil perderán solamente de manera parcial y temporal la
gratuidad cuando repruebe una o varias asignaturas, cursos o sus equivalentes.
Los estudiantes que pierdan la gratuidad de manera parcial y temporal deberán
pagar únicamente la parte correspondiente al valor de la matrícula, y la parte
relativa al arancel por las asignaturas, cursos o sus equivalentes que hubiere
reprobado.
Cuando en estudiante no sea regular; es decir, no se matricule en por lo menos
el 60% de las asignaturas, cursos o sus equivalentes que el plan de estudio le
permite tomar en el periodo académico respectivo deberá pagar los valores
correspondientes a las matriculas, aranceles y derechos de las asignaturas,
cursos o sus equivalentes que tome en el respectivo periodo académico. Se
exceptúan de lo establecido en el presente inciso los casos de imposibilidad
física o mental temporal.
En caso de pérdida de una o varias asignaturas, cursos o sus equivalentes, a
causa de situaciones de caso fortuito o fuerza mayor, enfermedad, discapacidad,
33
embarazo de alto riesgo u otra similares debidamente documentadas, que le
impidan al estudiante dar continuidad sus estudios, el Consejo Universitario
podrá declarar que esta pérdida no se contabilizará por efectos del derecho a la
gratuidad.
Art.23.- Perdida definitiva de la gratuidad.- El estudiante regular pierde
definitivamente el beneficio de gratuidad al reprobar, en términos acumulativos,
más de 30% de los créditos correspondientes a las asignaturas, cursos o sus
equivalentes, constante en el respectivo plan de estudios de la carrera que se
encuentren
cursando,
incluyendo
aquellas
asignaturas,
cursos
o
sus
equivalentes que haya reprobado en la carrera que se para determinar matriculo
por primera vez.
Para determinar la pérdida definitiva de la gratuidad se debe hacer relación entre
número de crédito correspondientes a las asignaturas, cursos o sus equivalentes
reprobadas y el número total de créditos correspondientes a las asignaturas,
cursos o sus equivalentes del plan de estudios en los que el estudiante se
matriculo desde el inicio de su carrera.
DISPOSICIONES GENERALES
TERCERA.- El número máximo de asignaturas, cursos o sus equivalentes que
puede matricularse en estudiante regular en un periodo académico será la
cantidad total de materias que están asignadas en cada nivel o semestre más
una materia adicional y el nivel del estudiante será en el que se encuentre
cursando la mayor cantidad de asignaturas, cursos o sus equivalentes
Cuarta.- Si el estudiante se matricula en diferentes niveles podrá tomar un
máximo de 6 asignaturas, cursos o sus equivalentes y el nivel del estudiante
será en el que se encuentre cursando la mayor cantidad de asignaturas, cursos
o sus equivalentes.
RESOLUCIÓN CU 42-04-14
APROBACION DE MATRICULA POR TERCERA VEZ
El órgano Colegiado Académico Superior, en sesión extraordinaria celebrada el
19 de marzo del año en curso, respecto de la petición de otorgar tercera
34
matricula a los estudiantes de la Universidad de Guayaquil, en el periodo lectivo
2014-2015, resolvió que, de manera transitoria, hasta que se apruebe el Estatuto
Orgánico de la Universidad de Guayaquil se otorgue tercera matricula a bs
estudiantes que lo soliciten, debiendo fundamentar su solicitud en las siguientes
excepciones:
a) Calamidad doméstica debidamente comprobada.
b) Enfermedad debidamente comprobada con certificado médico del IESS o
del Ministerio de Salud Pública.
c) Maternidad: segundo y tercer trimestre de gestación, embarazo
patológico y puerperio inmediato.
d) Problemas académicos y administrativos no imputables al estudiante.
e) Cuando no se hayan asentado calificaciones en la materia al menos en
una de las dos matriculas anteriores
f)
Si un estudiante por representar deportiva, cultural y científicamente a la
Institución o a alguna institución del país hubiese perdido una matrícula
en la materia en cuestión.
g) Si el estudiante presenta un registro de asistencia general igual o
superior al 75% durante toda la carrera.
h) Si el estudiante presenta un promedio general igual o superior al 8.5 en el
ciclo inmediato anterior.
i)
Si el estudiante presenta un promedio general igual o superior al 7,5
durante toda la carrera.
j)
Si el estudiante presenta un certificado laboral que demuestre el
impedimento para asistir normalmente a clases en la materia que perdió
la segunda matricula,
k) Si el estudiante ha debido salir del país o a otra ciudad a capacitarse
laboralmente.
l)
Que en circunstancias en que la argumentación para obtener tercera
matricula no quepa en ninguna de estas excepcionalidades, la solicitud,
desde el Decanato que incorpora la solicitud del estudiante, vaya
directamente al Vicerrectorado Académico que presentará el informe
respectivo, para decisión del H. Consejo Universitario.
35
m) Que el estudiante declare que conoce que es su última oportunidad de
estudiar esa materia, que es la tercera matricula, y que sabiendo que es
su última oportunidad la va a aprovechar como corresponde.
La resolución antes citada cuenta con visto bueno condicionado, en oficio No.
CES-ClFlUG-2014-0184-O, de abril 8 del 2014, suscrito por el Ec. Jorge Kalil
Barreiro, Presidente de la Comisión Interventora, con la siguiente indicación:
Dicho visto bueno está condicionado para su aplicación, a la observancia
exclusiva de las siguientes excepciones para el otorgamiento de tercera
matrícula:
"Los estudiantes que tengan un registro de asistencia general igual o superior al
75% durante toda la carrera o que presenten un promedio general igual o
superior a 8.5 en el período académico inmediato anterior o que presenten un
promedio general igual o superior a 7.5 durante toda la carrera, podrán solicitar
de manera debidamente fundamentada, el otorgamiento de tercera matrícula de
una materia, en los siguientes casos:
a) El o la estudiante que se haya encontrado impedido de cumplir sus
actividades académicas, a causa de una calamidad doméstica grave
debidamente comprobada;
b) El o la estudiante que se haya encontrado impedido de cumplir sus
actividades académicas a causa de una enfermedad grave debidamente
comprobada con certificado médico del IESS, certificado médico privado
validado por IESS o certificado del Ministerio de Salud Pública;
c) La estudiante que se haya encontrado impedida de cumplir sus
actividades académicas a causa de su estado riesgoso debidamente
comprobado con certificado médico del IESS, certificado médico privado
validado por IESS o certificado del Ministerio de Salud Pública;
d) El o la estudiante que se haya encontrado impedido de cumplir sus
actividades académicas a causa de representar deportiva, cultural y
científicamente a la Institución o alguna institución del país;
e) El o la estudiante que se haya encontrado impedido de asistir
normalmente a clases debido a causa laboral, siempre que se acredite
36
con el respectivo certificado del empleador en el que conste el estudiante
como afiliado de dicho empleador;
f)
El o la estudiante que se haya encontrado impedido de cumplir sus
actividades académicas a causa de su capacitación laboral en la ciudad,
fuera de la ciudad o del país, siempre que dicha capacitación se acredite:
i.-Con el certificado del empleador en el que conste su autorización para
tal capacitación; y, ii.-Con el certificado extendido por la institución o
empresa capacitadora respecto al tiempo y asistencia del estudiante.
Además de las excepciones señaladas, todo estudiante podrá también
solicitar de manera debidamente fundamentada, el otorgamiento de
tercera matricula de una materia, en los siguientes casos: a.-) Si el
estudiante o la estudiante ha perdido la segunda matricula por problemas
académicos y administrativos no imputables a él. 2.-) Cuando por
razones no imputables al estudiante, no se hayan asentado calificaciones
en la materia, al menos en una de las dos matriculas anteriores.
El Órgano Colegiado Académico Superior, en sesión ordinaria de abril 10 del
año en curso (continuación de la sesión de abril 2 del 2014), conoció y resolvió lo
siguiente:
1) Allanarse al visto bueno condicionado, participado por la Comisión
Interventora, sobre la tercera matrícula. y,
2) Enviar al Ec. Jorge Kalil Barreiro, Presidente de la Comisión Interventora, el
posicionamiento de los miembros del H. Consejo Universitario, respecto del visto
bueno condicionado, para que sean analizados, revisados y/o modificados los
puntos de vista que continuación se detallan, con la finalidad que se tomen en
consideración y se flexibilice la postura sobre el tema.
a) Se señala el otorgamiento de tercera matricula de una materia,
contraviniendo Io establecido en el inciso primero del Art. 34 de la LOES,
que dispone IO Siguiente, "podrá matricularse hasta por tercera ocasión
en la misma materia o en el mismo curso, ciclo o nivel académico", es
decir que se puede otorgar tercera matricula en más de una materia Se
solicita la revisión de esta condicionante.
b) Se plantea la ampliación, revisión o aclaración de esta resolución
debiendo fundamentarse la decisión en disposiciones legales.
37
c) Se considera que el porcentaje de asistencia a clases debería ser 70%
por así señalarlo el Reglamento interno de la Universidad de Guayaquil
sobre el porcentaje de asistencia a clases.
d) Se considera que es exagerado el promedio general igual o superior a
8.5 en el periodo académico inmediato anterior ya que la nota con la cual
se aprueba asignaturas en la Universidad de Guayaquil es 7/10aproximado de 65.1 ll 00-,
e) Que se incluya a los estudiantes que realizan actividades comerciales
informales que no tienen relación laboral formal con una empresa
establecida y no están afiliados al IESS.
Posteriormente, el Órgano Colegiado Académico Superior, en sesión de abril 21
del 2014, considerando que, habiéndose allanado el H. Consejo Universitario el
visto bueno condicionado de la Comisión Interventora, respecto a la tercera
matricula, resolvió su aplicación inmediata.
HIPÓTESIS PREGUNTAS A CONTESTARSE
¿Con el desarrollo del nuevo módulo de Ingreso de Solicitudes y Certificados se
solucionarán todos los problemas que existen en el proceso actual de Trámites
de los estudiantes en las facultades de Ciencias Matemáticas y
Físicas, y
Ciencias Administrativas?
VARIABLES DE LA INVESTIGACIÓN
Variable Independiente
Desarrollo del Módulo de Tramites, perfil de Estudiantes, del Prototipo Sistema
Académico de la Universidad de Guayaquil.
Variable Dependiente
Ayudar a controlar el ingreso y seguimiento de Trámites, de las facultades de
Ciencias Matemáticas y Físicas, y Ciencias Administrativas de la Universidad de
Guayaquil.
38
CAPÍTULO III
METODOLOGÍA
DISEÑO DE LA INVESTIGACIÓN
METODOLOGÍA DEL DISEÑO DE INVESTIGACIÓN
Introducción del capítulo
El presente prototipo el cual se desarrolló, se analizó y se investigó, fue
fundamentado por la necesidad de crear una herramienta que brinde fiabilidad y
seguridad al momento de realizar el proceso de trámites, se llegó a la conclusión
que es factible porque la solución brindada es 25% investigativo, 25%
bibliográfico y 50% de la propuesta.
La propuesta presentada indica la pronta puesta en marcha para cubrir con las
necesidades presentadas por el problema. Los resultados obtenidos en el
análisis de campo realizado, corresponden a un periodo de 3 meses, desde el
mes de enero del año 2015 hasta el mes de marzo del año 2015.
Se presentara conceptos básicos de algunos métodos estadísticos para el
análisis del problema planteado, se desarrolla una encuesta de 15 preguntas, de
donde se puede extraer 12 variables cualitativas y 3 variables cuantitativas, con
su respectiva descripción y codificación.
39
DEFINICIONES BÁSICAS
Antes de continuar con los procesos estadísticos en este capítulo, se definirán
algunos conceptos básicos de metodologías utilizadas para el desarrollo del
mismo.
Espacio Muestral
Según la web (Thales.cica.es, 2010), el conjunto de todos los resultados posibles
diferentes de un determinado experimento aleatorio se denomina Espacio
Muestral asociado a dicho experimento y se suele representar por Ω. A los
elementos de Ω se les denomina sucesos elementales. Así por ejemplo, el
espacio muestral asociado al experimento aleatorio consistente en el
lanzamiento de una moneda es Ω= {Cara, Cruz}; el espacio muestral asociado al
lanzamiento de un dado es Ω={1, 2, 3, 4, 5, 6}, siendo Cara y Cruz los sucesos
elementales asociados al primer experimento aleatorio y 1, 2, 3, 4, 5 y 6 los seis
sucesos elementales del segundo experimento aleatorio.” (Thales.cica.es, 2010)
Variable Aleatoria
Según el libro (Fundamentos de Estadística, 2008), una variable aleatoria es una
función, que asigna eventos (p.e., los posibles resultados de tirar un dado dos
veces: (1, 1), (1, 2), etc.) a números reales (p.e., su suma). Una variable
aleatoria o variable estocástica es una variable estadística cuyos valores se
obtienen de mediciones en experimento aleatorio.
Los valores posibles de una variable aleatoria pueden representar los posibles
resultados de un experimento aún no realizado, o los posibles valores de una
cantidad cuyo valor actualmente existente es incierto (p.e., como resultado de
medición incompleta o imprecisa). Intuitivamente, una variable aleatoria puede
tomarse como una cantidad cuyo valor no es fijo pero puede tomar diferentes
valores; una distribución de probabilidad se usa para describir la probabilidad de
que se den los diferentes valores.” (Fundamentos de Estadística, 2008)
40
Variable Aleatoria Discreta
Según el libro (Fundamentos de Estadística, 2008), una Variable aleatoria es
discreta si su recorrido es un conjunto discreto. Sus probabilidades se recogen
en la función de cuantía.” (Fundamentos de Estadística, 2008)
Variable Aleatoria Continua
Según el manual de estadística empresarial (2009), una variable aleatoria es
continua si su recorrido no es un conjunto numerable. Intuitivamente esto
significa que el conjunto de posibles valores de la variable abarca todo un
intervalo de números reales. Por ejemplo, la variable que asigna la estatura a
una persona extraída de una determinada población es una variable continua ya
que, teóricamente, todo valor entre, pongamos por caso, 0 y 2,50 m, es posible.”
(Manual de estadística empresarial, 2009)
Población objetivo
Según (Walpole R. , 1999) Menciona que, “Son agrupaciones de todos los
individuos o elementos individuales de un tipo particular”
Población Investigada
Según (Morales, 2012)
es el “Conjunto completo de individuos, objetos, o
medidas los cuales poseen una característica común observable y que serán
considerados en un estudio” (p.4) (Morales, 2012).
Concepto de Muestreo
La (Real Académia Española, 2015) lo define como “Selección de una pequeña
parte estadísticamente determinada, utilizada para inferir el valor de una o varias
características del conjunto”
Muestra
Según Sáez, A (2012). “Se denomina muestra a cualquier subconjunto de datos
seleccionados de una población”. (Sáez, A ,2012)
41
Marco Muestral
Según Anna Franco (2006), el marco muestral es un instrumento que simboliza
la “Población Objetivo“, sirve para determinar qué elementos de la población
deben integrar la muestra.
El marco muestral para esta investigación consta de una listado de los nombres
de las escuelas primarias incluyendo la dirección donde se encuentra ubicada,
véase el anexo II. Dicho listado, correspondiente al periodo
2005 – 2006, ha
sido proporcionado por la Dirección Provincial de Educación del Guayas en el
mes de julio del 2006.” (Anna Franco, 2006)
Muestra Aleatoria
Según Anna Franco (2006), una muestra aleatoria es cualquier subconjunto de
tamaño n, tomando de la población objetivo, usando técnicas de muestreo
probabilístico.” (Anna Franco, 2006)
Tipos de muestreo
Según Anna Franco (2006), las técnicas de muestreo a revisarse son: Muestreo
Aleatorio Simple, Muestreo Estratificado y Muestreo de Conglomerados.” (Anna
Franco, 2006)
Muestreo Aleatorio Simple
Según Anna Franco (2006), el Muestreo Aleatorio simple es la técnica usada
para seleccionar n unidades de una población de tamaño N, de tal manera que
N
 
n
cada uno de los   subconjuntos de tamaño n en la población, tengan igual
probabilidad de constituir la muestra.” (Anna Franco, 2006)
Muestreo Aleatorio Estratificado
Según Anna Franco (2006), el Muestreo estratificado es la técnica con la cual se
divide la población en subpoblaciones o estratos. Cada estrato debe ser
mutuamente excluyente, es decir que cada elemento de la población debe
asignarse a un solo estrato; y colectivamente exhaustivo o en otras palabras que
no debe omitirse elementos de la población. Para la selección de los elemento
42
en cada estrato se utiliza el concepto de “afinación”, y un procedimiento
aleatorio que por lo general es Muestreo Aleatorio Simple.” (Anna Franco, 2006)
Análisis Univariado
Según Mendoza, H, Bautista, G. (2002), es un análisis básico, primario, en el
cual, las características o propiedades de las personas o cosas han de medirse
una a una, de modo univariado. Los tipos de medidas que se utilizan en los
análisis univariados son, medidas de tendencia central, medidas de dispersión y
distribución de frecuencias. (Mendoza, H, Bautista, G. ,2002)
Análisis Bivariado
Según Ferrán, A. (1996), el interés en el análisis de tablas de contingencia reside
en resumir la información contenida en la tabla midiendo la asociación entre las
dos variables que forman la tabla y nunca la relación entre las categorías de las
variables, habitualmente estas variables son de naturaleza cualitativa, el objetivo
es determinar la independencia que existe entre las variables de estudio para
ello lo analizaremos a través de la prueba de independencia de Chi-cuadrado, la
cual contrasta la hipótesis de que las variables son independientes frente a una
hipótesis alternativa de que una variable se distribuye de modo diferente para
diversos niveles de la otra. Si el p-valor asociado al estadístico de contraste es
menor que , se rechazará la hipótesis nula al nivel de significancia
(Ferrán,
A. 1996).
POBLACIÓN Y MUESTRA
Diseño Muestral
Según Alfredo Aliaga (2012), el Diseño Muestral se caracteriza por ser
probabilístico, por lo cual los resultados obtenidos de la encuesta se generalizan
a toda la población. A su vez es polietápico, estratificado y por conglomerados,
donde la unidad última de selección es la vivienda y la unidad de observación es
la persona.” (Alfredo Aliaga, 2012)
43
Población Objetivo.
La población establecida para el actual proceso de automatización del módulo
de Trámites corresponde a la Facultad de Ciencias Matemáticas y Físicas, y a la
Facultad de Ciencias Administrativas, donde la cantidad de estudiantes es de
20242, estos datos fueron obtenidos de la página de la universidad de
Guayaquil, esta población objetivo se escogió porque los estudiantes son las
personas que interactúan directamente con el proceso de ingreso de tramites en
las dos facultades.
Cuadro 04. Población Objetivo.
POBLACIÓN DE ESTUDIANTES
N
Facultad de Ciencias Matemáticas y Físicas
5188
Facultad de Ciencias Administrativas
15054
TOTAL
20242
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Marco Muestral.
El marco muestral escogido para este proyecto de prototipo del módulo de
ingreso de solicitudes y petición de certificados, fueron estudiantes al azar de la
facultad de Ciencias Matemáticas y de la facultad de Ciencias Administrativas,
ya que son los principales actores en este proceso.
El tamaño de la muestra
Para nuestro análisis hemos obtenido el tamaño de la muestra con la siguiente
formula:
44
n=
0.50 x 0.50 x 20242____
(20242-1)0.052 /22 + 0.50x0.50
n=
5060,5__________
(20241)(0.0025) /4 + 0.25
n=
5060,5________
(20241)(0.000625) + 0.25
n=
5060,5_____
12.650625 + 0.25
n= 5060,5 _
12.900625
n=377
P = Probabilidad de éxito (0.50)
Q = Probabilidad de fracaso (0.50)
N= Tamaño de la población
(20242)
E= error de estimación
(5%)
K= # de desviac. Típicas “Z” (1:
68%, 2: 95,5%, 3: 99.7%)
n = Tamaño de la muestra (377)
Desviación estándar de la población: p= 0,5 q=0.5.
Z = Valor obtenido mediante niveles de confianza. Es un valor constante que, si
no se tiene su valor, se lo toma en relación al 95% de confianza equivale a 1,96
d = Límite aceptable de error muestral que, generalmente cuando no se tiene su
valor, suele utilizarse un valor de 0.05 (5%).
INSTRUMENTO DE RECOLECCIÓN DE DATOS
LA TÉCNICA
En conjunto de reglas de sistematización mejoramiento, facilitación y seguridad
en el trabajo.
Conjunto de mecanismos y de máquinas, sistemas y medios de dirigir,
recolectar, conservar, reelaborar y transmitir datos, información, energía.
Es la estructura del proceso de Investigación.
Técnicas:
Documentales
De Campo
Documentales
De Campo
- Fichaje
- Observación
- Lectura Científica
- Entrevista
- Análisis de Contenido
- Encuesta
- Gramaticales
- Psicometría
- De redacción y estilo
- Sociometría
- Antropometría
45
LOS INSTRUMENTOS.
-Herramientas que se utilizan para producir información o datos.
-Empleados para tener un resultado.
Cuando se selecciona una técnica para la recolección de la información que
requiere una investigación; ésta, le determina el o los instrumentos que se debe
utilizar.
Por ejemplo:
Técnica
Instrumento
- Observación
- Registro de observación
- Entrevista
- Guion de entrevista
- Encuesta
- Cuestionario
Instrumentos de la Investigación
El instrumento utilizado para la recolección de datos es El cuestionario que está
compuesto por 15 preguntas, 12 de las cuales son cualitativas y 3 cuantitativas,
con una sola pregunta de SI o No.
DISEÑO DEL CUESTIONARIO
El cuestionario que está compuesto por 4 secciones, la primera sección obtiene
la información básica del encuestado, como edad y sexo, la segunda sección
tiene como contenido la situación estudiantil del encuestado, la tercera sección
corresponde a preguntas relacionadas con el problema, y la cuarta sección
obtiene la información sobre la posible solución que ofreceremos.
DESCRIPCIÓN Y CODIFICACIÓN DE VARIABLES
Las variables que se utilizaran en este prototipo serán cuantitativas y cualitativas.
46
DESCRIPCIÓN DE VARIABLES
Cuadro 05. Descripción de Variables.
#
VARIABLE
DESCRIPCION
Es una variable cuantitativa que obtendrá la
1 Edad
información del encuestado en años.
Es una variable cualitativa que obtendrá el género
2 Sexo
del encuestado.
Variable cualitativa que obtendrá la información de
la
3 Facultad
facultad
a
encuestada,
la
que pertenece
siendo
esta
la
persona
Matemáticas
o
Administración.
Variable cuantitativa que obtendrá información del
4
Semestre
nivel de estudio actual del encuestado, información
que será de Primero a Octavo Semestre.
Variable cualitativa que obtiene la frecuencia con la
5
Ingreso_Solicitud
que el encuestado ha realizado solicitudes en sus
correspondientes Facultades.
Variable cualitativa que indica la manera como se
6
Tipo_Solicitud
lleva a cabo el proceso de solicitudes en las
respectivas facultades del encuestado.
Variable cuantitativa que obtiene el valor del
7
tiempo que demora el proceso actual de ingreso de
Tiempo_Solicitud
solicitudes en las facultades respectivas de cada
encuestado, medido en días.
Variable cualitativa que obtiene la frecuencia con la
8
que las secretarias de sus respectivas facultades
Perdida_Solicitud
les
hayan
perdido
la
hoja
de
solicitud
al
encuestado.
Variable cualitativa que obtiene información sobre
9
Acuerdo_Solicitud
qué tan de acuerdo está el encuestado sobre el
proceso actual de ingreso de solicitudes en sus
47
respectivas facultades.
Variable cualitativa que obtiene información sobre
10
Peticion_Certificado
la frecuencia con la que el encuestado realiza
peticiones de certificados en su respectiva facultad.
Variable cualitativa que obtiene el tipo de proceso
11
que se lleva actualmente en la respectiva facultad
Tipo_Certificado
del encuestado, siendo las opciones, manual o vía
web.
Variable cualitativa que obtiene información sobre
12
qué tan de acuerdo está el encuestado sobre el
Acuerdo_Certificado
proceso actual de emisión de certificados que se
lleva a cabo en su respectiva facultad.
Variable cualitativa que obtiene información sobre
13
Automatizar_Tramite
s
si el encuestado está o no
de acuerdo con
automatizar el proceso de ingreso de solicitudes y
petición de certificados.
Variable cualitativa que obtiene información sobre
14
Cert_Digital
qué tan de acuerdo está el encuestado en recibir
sus solicitudes de manera digital.
Variable cualitativa que obtiene información sobre
15
qué tan de acuerdo está el encuestado sobre
Solic_Web
realizar las solicitudes desde la página web de la
carrera sin necesidad de salir de su casa.
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
48
CODIFICACIÓN DE VARI ABLES
Variable Edad
1. ¿Cuál es su edad?
Cuadro 06. Variable Edad.
Descripción
[18 - 21)
Valor
1
[22 - 25)
2
[26- 29)
3
[30- 33]
4
[34- 35]
5
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Variable Sexo
2. Sexo:
Cuadro 07. Variable Sexo
Descripción
Valor
Masculino
1
Femenino
2
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Variable Facultad
3. ¿A qué facultad pertenece?
Cuadro 08. Variable Facultad
Descripción
Valor
Matemáticas
1
Administración
2
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
49
Variable Semestre
4. ¿A qué semestre pertenece?
Cuadro 09. Variable Semestre
Descripción
Primero
Valor
1
Segundo
2
Tercero
3
Cuarto
4
Quinto
5
Sexto
6
Séptimo
7
Octavo
8
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Variable Ingreso_Solicitud
5. ¿Con que frecuencia usted realiza ingreso de solicitudes?
Cuadro 10. Variable Ingreso_Solicitud
Valor
Descripción
1
Siempre
2
Casi Siempre
3
Frecuentemente
4
Rara Vez
5
Nunca
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Variable Tipo_Solicitud
6. El proceso de ingreso de Solicitudes que usted realiza es:
Cuadro 11. Variable Tipo_Solicitud
Descripción
Valor
Manual
1
Automatizado
2
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
50
Variable Perdida_Solicitud
8. ¿Con que frecuencia se le han perdido las solicitudes a las secretarias
después de usted habérselas entregado?
Cuadro 12. Variable Perdida_Solicitud
Valor
Descripción
1
Siempre
2
Casi Siempre
3
Frecuentemente
4
Rara Vez
5
Nunca
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Variable Acuerdo_Solicitud
9. ¿Está usted de acuerdo con el actual proceso ingreso de Solicitudes?
Cuadro 13. Variable Acuerdo_Solicitud
Valor
Descripción
1
Totalmente De Acuerdo
2
Parcialmente De Acuerdo
3
Ni De Acuerdo Ni Desacuerdo
4
Parcialmente En Desacuerdo
5
Totalmente En Desacuerdo
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Variable Peticion_Certificado
10. ¿Con que frecuencia usted realiza peticiones de certificados?
Cuadro 14. Variable Peticion_Solicitud
Valor
1
2
3
Descripción
Siempre
Casi Siempre
Frecuentemente
51
4
Rara Vez
5
Nunca
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Variable Tipo_Certificado
11. El proceso de petición de Certificados que usted realiza es:
Cuadro 15. Variable Tipo_Certificado
Descripción
Valor
Manual
1
Via Web
2
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Variable Acuerdo_Certificado
12. ¿Qué tan de acuerdo está usted con el actual proceso de emisión de
certificados?
Cuadro 16. Variable Acuerdo_Certificado
Valor
Descripción
1
Totalmente De Acuerdo
2
Parcialmente De Acuerdo
3
Ni De Acuerdo Ni Desacuerdo
4
Parcialmente En Desacuerdo
5
Totalmente En Desacuerdo
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Variable Automatizar_Tramites
13. ¿Está usted de acuerdo con la creación de un proceso automatizado de
ingreso de solicitudes y petición de certificados?
Cuadro 17. Variable Automizar_Tramites
Descripción
Valor
No
1
Si
2
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
52
Variable Cert_Digital
14. ¿Estad usted de acuerdo con recibir los certificados de manera digital?
Cuadro 18. Variable Cert_Digital
Valor
Descripción
1
Totalmente De Acuerdo
2
Parcialmente De Acuerdo
3
Ni De Acuerdo Ni Desacuerdo
4
Parcialmente En Desacuerdo
5
Totalmente En Desacuerdo
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Variable Solic_Web
15. ¿Qué tan de acuerdo está usted en realizar las solicitudes desde la página
web de la carrera sin necesidad de salir de su casa?
Cuadro 19. Variable Solic_Web
Valor
Descripción
1
Totalmente De Acuerdo
2
Parcialmente De Acuerdo
3
Ni De Acuerdo Ni Desacuerdo
4
Parcialmente En Desacuerdo
5
Totalmente En Desacuerdo
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
53
INTERPRETACIÓN Y ANÁLISIS DE LOS RESULTADOS
Análisis Univariado De Los Datos Cuantitativos
Metodologías estadísticas
Se ha tomado en consideración realizarlo mediante procedimientos y técnicas
estadísticas tales como, Estadística Descriptiva Univariada, Bivariado
Estadística Descriptiva Univariada
Se llama univariada cuando de cada elemento en estudio se toma una sola
variable. Por ejemplo se estudian personas y se toma solo su edad. La
Estadística que se aplicará será la univariada en contraposición a la multivariada
que aparece cuando se toma más de una variable por elemento del universo.
VARIABLE: EDAD DEL ENTREVISTADO
Cuadro 20. Tabla de Frecuencia - Edad
Frecuencia Frecuencia
Absoluta
Relativa
[18 – 21]
35
9,28%
[22 – 25]
[26 - 29]
[30 - 33]
[34 - 35]
Total
118
112
84
28
377
31,30%
29,71%
22,28%
7,43%
100%
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
54
Gráfico 03. Histograma de Frecuencia Relativa - Edad
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Cuadro 21. Análisis Estadístico - Edad
EDAD
Media
2,87
Mediana
3,00
Moda
2
Desviación estándar
1,091
Varianza
1,191
Asimetría
,168
Curtosis
-,723
Rango
4
Mínimo
1
Máximo
5
Cuartiles
25%
2
50%
3
75%
4
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
55
Gráfico 04. Diagrama de Cajas y Bigotes - Edad
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
De una muestra de 377 estudiantes de la facultad de Matemáticas y
Administración encuestados al azar, observamos una edad promedio de 25.89
años, una mediana de 26 años y una moda de 26 años, analizando estos valores
podemos observar que la edad que más se repite es la de 26 años, con respecto
al valor máximo, 17 años, y valor mínimo, 35 años, obtenemos un rango de 18
años entre los encuestados, con una desviación estándar de 5,44 lo que indica
la distancia desde la media 25.89 +- 5.44 a cada punto de la curva.
Analizando la Curtósis, podemos observar que es menor a 0, lo que nos indica
que la curva de Gauss es poco elevada, es decir tiene una distribución
platicurtica.
Analizando el diagrama de cajas o Bigotes, podemos observar
Con el valor de asimetría positivo podemos llegar a la conclusión que es una
distribución simétrica con tendencia hacia el lado derecho, lo cual da a entender
que la mayoría de las edades están distribuidas del lado izquierdo.
56
VARIABLE: SEMESTRE DEL ENTREVISTADO
Cuadro 22. Tabla de Frecuencia - Semestre
Frecuencia Frecuencia
Semestre
Absoluta
Relativa
1er
50
13,3%
2do
3ero
4to
5to
6to
7mo
8vo
Total
59
46
37
39
59
42
45
377
15,6%
12,2%
9,8%
10,3%
15,6%
11,1%
11,9%
100%
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 05. Histograma de Frecuencia Relativa - Semestre
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Cuadro 23. Análisis Estadístico - Semestre
SEMESTRE
Media
4,40
Mediana
4,00
57
2a
Moda
Desviación estándar
2,333
Varianza
5,442
Asimetría
,044
Curtosis
-1,319
Rango
7
Mínimo
1
Máximo
8
Percentiles
25%
2
50%
4
75%
6
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 06. Diagrama de Cajas y Bigotes - Semestre
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
De la muestra de 377 encuestados tomados aleatoriamente en la universidad,
podemos observar que para el primer semestre corresponden al 13.3% de la
muestra, para segundo semestre 15.6%, para tercer semestre 12.2%, para
cuarto semestre 9.8%, quinto semestre 10.3%, sexto semestre 15.6%, séptimo
semestre corresponde al 11.1% y finalmente para octavo semestre obtuvimos el
11.9% de los encuestados, dándonos como conclusión que la mayoría de los
encuestados estaban en sexto semestre.
58
VARIABLE: TIEMPO_SOLICITUD
Cuadro 24. Tabla de Frecuencia - Tiempo_Solicitud
Frecuencia Frecuencia
DIAS
Absoluta
Relativa
<= 1
31
8,2
2–5
109
28,9
6–9
92
24,4
10 - 13
42
11,1
14+
103
27,3
Total
377
100,0
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 07. Histograma de Frecuencia Relativa - Tiempo_Solicitud
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Cuadro 25. Análisis Estadístico - Tiempo_Solicitud
Tiempo_Solicitud
Media
3,20
Mediana
3,00
Moda
2
Desviación estándar
1,336
Varianza
1,785
Asimetría
,106
59
Curtosis
Rango
Mínimo
Máximo
Cuartiles
-1,287
4
1
5
25% 2
50% 3
75% 5
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 08. Diagrama de Cajas y Bigotes - Tiempo_Solicitud
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
Analizando el grafico podemos observar que la moda obtenida es de 1 día de
tiempo de espera para que le atiendan las solicitudes, pero solo corresponde a
un 8.2% de la muestra que equivalen a 31 estudiantes, de acuerdo al cuadro
relacional, observamos que existe una media 7.81 días, y una mediana de 8
días, lo que nos indica que el proceso actual en ambas facultades no es óptimo,
también obtuvimos la cantidad máxima de días de espera que es de 15 días, y la
mínima de 1 día en el mejor de los casos. Podemos observar una curtosis
negativa, lo que nos indica que la curva de Gauss tiene una picudez muy baja, lo
que indica que la mayor cantidad de datos están cerca al cero.
60
ANÁLISIS UNIVARIADO DE LOS DATOS CUALITATIVOS
VARIABLE: SEXO DEL ENCUESTADO
Cuadro 26. Tabla de Frecuencia - Sexo
Frecuencia Frecuencia
Absoluta
Relativa
MASCULINO
205
54,4%
FEMENINO
172
45,6%
Total
377
100%
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 09. Frecuencia Relativa - Sexo
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
Para esta variable cualitativa podemos observar en la tabla, el 54.4%
corresponde a encuestados del sexo masculino, lo que equivale a 205
estudiantes, y el 45.6% corresponde a encuestados del sexo femenino, con 172
estudiantes, concluyendo así que se obtuvo mayor apertura a la encuesta de
parte de los estudiantes de sexo masculino, aunque la diferencia entre ambos es
mínima.
61
VARIABLE: FACULTAD DEL ENTREVISTADO
Cuadro 27. Tabla de Frecuencia - Facultad
Frecuencia Frecuencia
Absoluta
Relativa
MATEMATICAS
203
53,8%
ADMINISTRACION
174
46,2%
Total
377
100%
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 10. Frecuencia Relativa - Facultad
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
Para esta variable cualitativa podemos observar en la tabla, el 53.8%
corresponde a encuestados de la Facultad de Matemáticas, lo que equivale a
203 estudiantes, y el 46.2% corresponde a encuestados de la facultad de
Administración, con 174 estudiantes, de manera que con un porcentaje casi
igual, los encuestados en su mayoría fueron de la facultad de Matemáticas.
62
VARIABLE: INGRESO_SOLICITUD
Cuadro 28. Tabla de Frecuencia - Ingreso_Solicitud
Frecuencia Frecuencia
Absoluta
Relativa
SIEMPRE
54
14,3%
CASI SIEMPRE
76
20,2%
FRECUENTEMENTE
83
22%
RARA VEZ
75
19,9%
NUNCA
89
23,6%
Total
377
100%
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 11. Frecuencia Relativa - Ingreso_Solicitud
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
De la muestra de 377 encuestados tomados aleatoriamente en la universidad,
podemos observar que el mayor porcentaje equivalente al 23.6% nunca han
realizado un proceso de solicitudes, el porcentaje menor que equivale al 14.3%
siempre realizan procesos de solicitudes.
63
VARIABLE: TIPO_SOLICITUD
Cuadro 29. Tabla de Frecuencia - Tipo_Solicitud
Frecuencia Frecuencia
Absoluta
Relativa
MANUAL
372
98,7%
AUTOMATIZADO
5
1,3%
Total
377
100%
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 12. Frecuencia Relativa - Tipo_Solicitud
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
La tabla de frecuencia relativa de la variable Tipo_Solicitud indica que un 98.7%
de la muestra de 377 que corresponde a 372 estudiantes encuestados, realizan
sus solicitudes de manera manual actualmente, mientras que se obtuvo el 1.3%
de datos aberrantes que indican que realizan el proceso de manera
automatizada.
64
VARIABLE: PERDIDA_SOLICITUD
Cuadro 30. Tabla de Frecuencia - Perdida_Solicitud
Frecuencia Frecuencia
FRECUENCIA
Absoluta
Relativa
SIEMPRE
58
15,4%
CASI SIEMPRE
83
22,0%
FRECUENTEMENTE
80
21,2%
RARA VEZ
84
22,3%
NUNCA
72
19,1%
Total
377
100%
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 13. Frecuencia Relativa - Perdida_Solicitud
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
El grafico de frecuencia relativa de la variable Perdida_Solicitud indica con qué
frecuencia a los estudiantes encuestados se les han perdido las solicitudes en
manos de las secretarias, esto nos indica que el proceso actual es desordenado,
al punto tal que los estudiantes deben perder mucho tiempo realizando más de
una vez el proceso.
65
VARIABLE: ACUERDO_SOLICITUD
Cuadro 31. Tabla de Frecuencia - Acuerdo_Solicitud
Frecuenci Frecuenci
a Absoluta a Relativa
TOTALMENTE DE ACUERDO
67
17,8
PARCIALMENTE DE ACUERDO
72
19,1
NI DE ACUERDO NI DESACUERDO
69
18,3
PARCIALMENTE EN DESACUERDO
89
23,6
TOTALMENTE EN DESACUERDO
80
21,2
Total
377
100,0
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 14. Frecuencia Relativa - Acuerdo_Solicitud
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
La encuesta de la variable Acuerdo_Solicitud indica que tan de acuerdo están
los estudiantes encuestados con respecto al proceso actual de ingreso de
solicitudes. Se observa un 17.8% de estudiantes que están totalmente de
acuerdo con el proceso actual, lo que corresponde a 67 estudiantes de 377.
66
VARIABLE: PETICION_CERTIFICADO
Cuadro 32. Tabla de Frecuencia - Peticion_Certificado
Frecuencia Frecuencia
FRECUENCIA
Absoluta
Relativa
SIEMPRE
66
17,5%
CASI SIEMPRE
78
20,7%
FRECUENTEMENTE
71
18,8%
RARA VEZ
74
19,6%
NUNCA
88
23,3%
Total
377
100%
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 15. Frecuencia Relativa - Peticion_Certificado
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
El grafico de Frecuencia relativa de la variable Peticion_Certificado indica la
frecuencia con la que los estudiantes encuestados realizan el proceso de
petición de certificados. De los cuales se observa que 88 estudiantes nunca han
realizado este proceso, mientras que 289 estudiantes lo han realizado por lo
menos una vez.
67
VARIABLE: TIPO_CERTIFICADO
Cuadro 33. Tabla de Frecuencia - Tipo_Certificado
Frecuencia Frecuencia
Absoluta
Relativa
MANUAL
194
51,5%
VIA WEB
183
48,5%
Total
377
100%
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 16. Frecuencia Relativa - Tipo_Certificado
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
La variable Tipo_Certificado indica que los estudiantes realizan su proceso de
petición de certificados actualmente de manera manual y vía web, donde se
presume que los estudiantes que realizan vía web que corresponde al 51.5% de
la muestra de 377 estudiantes, son de la Facultad de Administración donde el
proceso es semi automático, mientras que los que realizan el proceso de manera
manual son estudiantes de la Faculta de Matemáticas.
68
VARIABLE: ACUERDO_CERTIFICADO
Cuadro 34. Tabla de Frecuencia - Acuerdo_Certificado
FRECUENCIA
TOTALMENTE DE ACUERDO
Frecuencia Frecuencia
Absoluta
Relativa
86
22,8%
PARCIALMENTE DE ACUERDO
NI DE ACUERDO NI DESACUERDO
69
80
18,3%
21,2%
PARCIALMENTE EN DESACUERDO
TOTALMENTE EN DESACUERDO
69
73
18,3%
19,4%
377
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
100%
Total
Gráfico 17. Frecuencia Relativa - Acuerdo_Certificado
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
El grafico de frecuencia relativa de la variable Acuerdo_Certificado indica que tan
de acuerdo están los estudiantes encuestados con respecto al proceso actual de
emisión de Certificados que se llevan a cabo en la Facultad de Matemáticas y
Administración. Donde se puede observar un 22.8% de estudiantes que están
totalmente de acuerdo con el proceso actual, lo cual nos indica que hay
estudiantes conformes con el proceso semi-automatizado, y no ven la necesidad
de mejorar este proceso, mientras que 291 estudiantes encuestados de la
muestra de 377 no están totalmente de acuerdo con el proceso actual.
69
VARIABLE: AUTOMATIZAR_TRAMITES
Cuadro 35. Tabla de Frecuencia - Automatizar_Tramites
Frecuencia Frecuencia
Absoluta
Relativa
377
100%
SI
NO
Total
0
377
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
0%
100%
Gráfico 18. Frecuencia Relativa - Automatizar_Tramites
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
En la encuesta a los estudiantes, la variable Automatizar_Tramites nos indica
que el 100% de los estudiantes están de acuerdo con automatizar
completamente este proceso de emisión de certificados.
70
VARIABLE: CERT_DIGITAL
Cuadro 36. Tabla de Frecuencia - Cert_Digital
Frecuencia Frecuencia
FRECUENCIA
Absoluta
Relativa
TOTALMENTE DE ACUERDO
69
18,3%
PARCIALMENTE DE ACUERDO
NI DE ACUERDO NI DESACUERDO
69
92
18,3%
24,4%
PARCIALMENTE EN DESACUERDO
TOTALMENTE EN DESACUERDO
74
73
19,6%
19,4%
377
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
100%
Total
Gráfico 19. Frecuencia Relativa - Cert_Digital
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
La variable Cert_Digital indica que tan de acuerdo están los estudiantes
encuestados con respecto a recibir sus certificados de manera digital, donde se
encuentra un 19.3% de la muestra indicaron que están totalmente en
desacuerdo, ya que necesitan sus certificados de manera física para su trabajo o
currículo, etc.
71
VARIABLE: SOLIC_WEB
Cuadro 37. Tabla de Frecuencia - Solic_Web
Frecuencia Frecuencia
FRECUENCIA
Absoluta
Relativa
TOTALMENTE DE ACUERDO
72
19,1%
PARCIALMENTE DE ACUERDO
83
22,0%
NI DE ACUERDO NI DESACUERDO
69
18,3%
PARCIALMENTE EN DESACUERDO
68
18,0%
TOTALMENTE EN DESACUERDO
85
22,5%
Total
377
100%
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 20. Frecuencia Relativa Var. Solic_Web
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Análisis:
La variable Solic_Web nos indica que tan de acuerdo están los estudiantes
encuestados en realizar el proceso de Tramites vía web, donde se puede
observar un 19.1% de los encuestados que no están totalmente de acuerdo, ya
que opinan que sus solicitudes nunca serán atendidas.
72
ANÁLISIS BIVARIADO DE LAS VARIABLES CUALITATIVAS
TABLAS CRUZADAS Y ANÁLISIS DE CONTINGENCIA
Estadística Descriptiva Bivariado
Según Dr. José Supo (2012), representa el análisis bivariado más básico con
una variable fija y una variable aleatoria. Su finalidad es identificar
las
diferencias entre los grupos participantes; se puede comparar dos o más grupos.
La comparación inicial es a dos colas; si hay varios grupos la variable de
agrupación debe dicotomizarse y complementarse con un test de una sola cola.
Estadísticos de prueba: Si variable aleatoria es categórica se usa Chi cuadrado
de homogeneidad y si la variable aleatoria es numérica t de Student para grupos
independientes.
Ho: No existen diferencias entre los grupos evaluados.
H1: Existen diferencias entre los grupos evaluados.” (Dr. José Supo, 2012)
En el análisis bivariado se va analizar dos variables cualitativas para obtener el
grado de dependencia lineal que tienen entre sí, realizando el cálculo de chicuadrado, para determinar la hipótesis nula planteada Ho, podemos encontrar si
se rechaza o se acepta la hipótesis planteada. El análisis de la variable se
realizara solo si su valor P es menor a 0.05.
En este análisis se va a realizar tablas Cruzadas y Análisis de contingencia.
SEXO VS TIPO_CERTIFICADO
Cuadro 38. Tabla Cruzada Sexo Vs Tipo_Certificado
SEXO
TIPO_CERTIFICADO
MASCULIN
O
MANUAL
VIA WEB
Total
FEMENIN
O
92
Total
102
194
113
70
205
172
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
183
377
Cuadro 39. Pruebas de chi-cuadrado Sexo Vs Tipo_Certificado
X2
Chi-cuadrado de Pearson 7,790
gl
P
N
1
,005
377
73
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 21. Barras de Tablas Cruzadas Sexo Vs Tipo_Certificado
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Ho: Los criterios de las variables Sexo y Tipo_Certificado son independientes
entre sí.
H1: Los criterios no son independientes.
Análisis:
Se realizó la relación de las variables tipo_certificado vs Sexo, el cuadro 38
muestra que p= 0.005, por lo que es menor a 0.5, se rechaza H0, se acepta H1
lo que demuestra que las dos variables son dependientes entre sí.
ACUERDO_SOLICITUD VS TIPO_SOLICITUD
Cuadro 40. Tabla Cruzada Acuerdo_Solicitud Vs Tipo_Solicitud
MANUAL AUTOMATIZADO total
67
Totalmente De Acuerdo
Parcialmente De Acuerdo
71
69
Ni De Acuerdo Ni Desacuerdo
89
Parcialmente En Desacuerdo
76
Totalmente En Desacuerdo
372
Total
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
0
1
0
0
4
5
67
72
69
89
80
377
74
Cuadro 41. Pruebas de chi-cuadrado Tipo_Solicitud Vs Acuerdo_Solicitud
2
X
Chi-cuadrado de Pearson
gl
a
11,277
P
4
,024
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Gráfico 22. Barras de Tablas Cruzadas Tipo_Solicitud Vs Acuerdo_Solicitud
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Ho: Los criterios de las variables Sexo y Tipo_Certificado son independientes
entre sí.
H1: Los criterios no son independientes.
Análisis:
En el análisis Bivariado de las variables Tipo_Solicitud y Acuerdo_Solicitud, se
contempló que el valor P es 0.024, siendo menor a 0.5, lo cual indica que se
rechaza Ho en favor de H1. Y se observar que las variables son dependientes.
75
DIAGNOSTICO ACTUAL DE LA ORGANIZACIÓN
La facultad de Administración en la actualidad maneja un sistema semiautomatizado del proceso de solicitudes, y un proceso manual de emisión de
certificados.
Los estudiantes de la facultad de administración deben ir personalmente a las
ventanillas de secretaria de cada carrera correspondiente, donde no solo se
atienden
procesos
de
solicitudes
sino
también
de
otros
procesos
correspondientes a temas educativos como administrativos, las cuales no
siempre están para brindar una atención ágil y amable.
Los estudiantes deben ingresar a la página web de la facultad y mediante su
usuario y clave deben realizar la solicitud que necesiten, pero en la página web
no realizan ninguna consulta a la base de datos, solo es un ingreso sencillo de
una solicitud, y después deberán acercarse directamente a la facultad a retirarla,
si es que esta lista, la cual de igual modo que un proceso manual, demora hasta
que esta sea atendida por algún personal administrativo.
Los estudiantes de la facultad de matemáticas, tienen dos instalaciones en dos
ubicaciones diferentes, una está ubicada en la ciudadela universitaria, donde se
aloja la carrera de Ingeniería Civil, la otra está ubicada en el centro de la ciudad
de Guayaquil que atiende a los estudiantes de las carreras de Ingeniería en
Sistemas Computacionales, e Ingeniería en Networking, lugar donde habita el
tráfico a toda hora del día, lo cual para una gran cantidad de estudiantes es una
molestia ya que les toma demasiado tiempo en llegar.
El proceso en ambas instalaciones de la facultad de matemáticas es manual, los
estudiantes deben imprimir una solicitud donde indicarían los requerimientos que
necesitan solicitar, así mismo como los certificados que deseen que les emitan,
luego de esto los estudiantes deberán esperar un plazo no establecido para
retirarlo, el cual dependiendo del tipo de solicitud puede demorar hasta 15 días o
más en ser atendido.
76
ANALISIS DE PROCESOS
En ambas facultades el proceso de solicitudes y certificados no es óptimo, ya
que los estudiantes pierden tiempo y dinero, por tal motivo se realizó este
proyecto del módulo de Solicitudes y Certificados del prototipo de Sistema
Académico de las Facultades de Administración y Matemáticas.
SOLICITUDES
Los estudiantes no deberían acercarse a las instalaciones de la Universidad para
realizar un proceso que puede ser atendido de manera automatizada, mediante
un módulo especializado solo para atender estas dos opciones, las cuales se
denominan trámites.
77
CERTIFICADOS
Los estudiantes actualmente deben hacer fila en las instalaciones de sus
facultades respectivas, y esperar mucho tiempo para ser atendidos, muchas
veces les niegan la solicitud a los estudiantes después de haber esperado por
horas en la fila, lo cual genera indignación y malestar para el personal estudiantil.
78
PROPUESTAS DE MEJORAS DE PROCESOS
Se propone realizar un módulo para el prototipo de Sistema Académico de la
Universidad de Guayaquil que atienda solicitudes y certificados que los
estudiantes requieran, denominado Trámites, el cual tendrá dos perfiles
principales, uno es para los estudiantes donde los estudiantes podrán realizar el
trámite requerido, y el otro perfil es de administrador, donde la persona
encargada atiende dichos tramites.
SOLICITUDES
Los estudiantes tendrán disponibles las siguientes opciones de solicitudes:

Inclusión de Materias

Dejar sin efecto una Materia

Cambio de Paralelo

Cambio de Jornada

Cambio de Modalidad

Cambio de Veces

Anulación de Matricula

Inscripción por Tercera Vez
Inclusión de Materias
Para realizar esta solicitud los estudiantes tendrán a su disposición un listado de
todas las materias que puede incluir en el periodo actual, evitando así perder
tiempo realizando solicitudes de inclusión de materias que no debe ver, según
los reglamentos de la Universidad, ya sean estos por flujo, por superar el número
de semestres permitido entre materias, o por cruce de horarios.
Los estudiantes tendrán acceso a realizar solicitudes de materias sin cupo, se
tomó esta decisión porque hay la posibilidad dependiendo del número de
solicitudes existentes, de que las autoridades tomen decisiones de abrir un
nuevo paralelo para dicha materia sin cupo en el mismo horario, lo cual es
denominado clonación de paralelos.
79
Dejar sin efecto una Materia
Los estudiantes tendrán la capacidad de dejar sin efecto una materia, o
comúnmente llamado anulación de materias, en esta pantalla el estudiante podrá
escoger las materias inscritas en el periodo actual, y solicitar su anulación sin
necesidad de enviar algún justificativo.
Los estudiantes tendrán restricciones al solicitar la anulación de las materias que
este viendo por 2da vez, según el reglamento de la universidad de Guayaquil,
ningún estudiante podrá dejar sin efecto una materia por 2da vez, por tal motivo
el modulo evita perder tiempo al estudiante como al personal administrativo
encargado de procesar las solicitudes.
Cambio de Paralelo
Esta opción incluye los dos procesos anteriores en uno solo, evitando así realizar
dos solicitudes al estudiante que requería realizar el cambio del paralelo de una
misma materia inscrita, con las mismas restricciones de los procesos anteriores,
a excepción de las materias por segunda vez, que en este caso si está permitido
realizar solicitud de cambio de paralelo.
Cambio de Jornada
Para este tipo de solicitud el estudiante podrá realizar el cambio de la jornada del
periodo actual, esta opción es validad para la facultad de Administración, que
manejan su inscripción por jornada, ya sean estas matutinas, vespertinas y
nocturnas.
El estudiante al realizar la solicitud de cambio de jornada, no tendrá la
posibilidad de solicitar algún curso específico, el sistema asignara el curso que
tenga menos estudiantes registrados en la jornada solicitada por el estudiante.
Cambio de Modalidad
Se propone esta opción de cambio de modalidad como una opción abierta para
la Facultad que lo requiera, en esta opción se presentará 2 tipos de modalidad:

Presencial

Distancia.
80
Cambio de Veces
Se propone esta opción de cambio de veces, para los estudiantes que requieran
solicitar un reclamo por tener una materia por 2da vez, cuando su situación
actual no es así, o por tener materias por 3era vez por no haber realizado una
solicitud de dejar sin efecto dicha materia anteriormente. El estudiante tiene la
posibilidad de enviar un justificativo que permita al administrador poder aceptar
la solicitud de cambio de vez.
Anulación de Matricula
Los estudiantes tendrán la opción de dejar sin efecto todas las materias inscritas
en el periodo lectivo, hasta un mes y medio después del comienzo de las
matriculas
del
periodo
actual,
al
realizar
esta
solicitud
el
sistema
automáticamente anulara la inscripción, y se enviará al módulo de pagos la
notificación de no emitir una orden de pago, o si ya está emitida, anularla para
evitar tener deudas pendientes inexistentes.
Inscripción por Tercera Vez
Se propone la opción de Solicitud de Inscripción por tercera vez para los
estudiantes que no tengan la posibilidad de matricularse al periodo lectivo actual
por tener una o más materias por tercera vez, según la Resolución CU 42-04-14
de la universidad, especificado en el marco legal, se puede permitir la
matriculación por tercera vez a los estudiantes que cumplan con las siguientes
excepciones:
a) Calamidad doméstica debidamente comprobada.
b) Enfermedad debidamente comprobada con certificado médico del IESS o
del Ministerio de Salud Pública.
c) Maternidad: segundo y tercer trimestre de gestación, embarazo
patológico y puerperio inmediato.
d) Problemas académicos y administrativos no imputables al estudiante.
e) Cuando no se hayan asentado calificaciones en la materia al menos en
una de las dos matriculas anteriores
f)
Si un estudiante por representar deportiva, cultural y científicamente a la
Institución o a alguna institución del país hubiese perdido una matrícula
en la materia en cuestión.
81
g) Si el estudiante presenta un registro de asistencia general igual o
superior al 75% durante toda la carrera.
h) Si el estudiante presenta un promedio general igual o superior al 8.5 en el
ciclo inmediato anterior.
i)
Si el estudiante presenta un promedio general igual o superior al 7,5
durante toda la carrera.
j)
Si el estudiante presenta un certificado laboral que demuestre el
impedimento para asistir normalmente a clases en la materia que perdió
la segunda matricula,
k) Si el estudiante ha debido salir del país o a otra ciudad a capacitarse
laboralmente.
l)
Que en circunstancias en que la argumentación para obtener tercera
matricula no quepa en ninguna de estas excepcionalidades, la solicitud,
desde el Decanato que incorpora la solicitud del estudiante, vaya
directamente al Vicerrectorado Académico que presentará el informe
respectivo, para decisión del H. Consejo Universitario.
m) Que el estudiante declare que conoce que es su última oportunidad de
estudiar esa materia, que es la tercera matricula, y que sabiendo que es
su última oportunidad la va a aprovechar como corresponde
Estas excepciones están disponibles a escoger en la pantalla del módulo, donde
el
estudiante
debe
adjuntar
en
formato
de
imagen
la
justificación
correspondiente, de manera obligatoria.
Esta solicitud será procesada por el administrador de manera manual, ya que
deberá realizar todas las operaciones correspondientes a este caso, como
análisis e investigación de la situación. El estudiante podría ser solicitado en las
instalaciones de la Facultad correspondiente para tratar de manera más personal
el caso.
82
MAPA DE PROCESOS
El mapa de procesos es la representación gráfica de los procesos que
están presentes en una organización, mostrando la relación entre ellos y
sus relaciones con el exterior.
MAPA DE PROCESOS SOLICITUDES
El siguiente mapa de procesos representa el proceso actual que se lleva a cabo
en la Facultad de Ciencias Matemáticas y Físicas, y en la Facultad de Ciencias
Administrativas.
Gráfico 23. Mapa de Procesos de Solicitudes
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
83
PANTALLAS MODULO TRAMITES
Pantalla principal de ingreso de trámites, para el perfil de estudiante.
Tipos de Tramites
Puede seleccionar el tipo de trámite deseado.
Certificados
84
Se despliegan los diferentes tipos de certificados para seleccionar.
Bandeja de trámites ingresados
Una vez ingresado el trámite lo puede revisar en la bandeja del
estudiante.
85
Dejar sin efecto una materia
Se le presentan las materias inscritas en el periodo actual, de los
cuales podrá escoger una materia para dejarla sin efecto.
Cambio de modalidad
Se despliega las diferentes modalidades para seleccionar.
86
Cambio de veces
Esta opción se deja planteada cuando existen inconvenientes a la hora de
anular una materia, y la materia queda como 2da o 3era vez, el estudiante
podrá solicitar la materia que tiene un número de vez que no representa a
la situación real, y podrá solicitar su cambio.
Inscripción por tercera vez
Para realizar una solicitud de inscripción por tercera vez se despliegan las
excepciones disponibles según la ley, para seleccionarla.
87
Luego el estudiante deberá ingresar un justificativo de dicha excepción.
Y finalmente se ingresa la solicitud.
88
Cambio de jornada
El estudiante puede realizar la solicitud de cambio de jornada si la
facultad lo permita, se deja planteada esta solicitud por el levantamiento
de información que se realizó en la facultad de Ciencias Administrativas.
89
DESARROLLO DE SOFTWARE
/********************************************************************************************************
* Clase
: IngresoTramites.java
* Autor
: Marlon Israel Carangui Herrera
* Descripción
: Clase principal de la pantalla de la opción Genera Tramite, IngresoTramites.zul,
*
del modulo Tramites del Sistema Academico,
*
contiene metodos que cargan materias inscritas,
*
paralelos de cada materia seleccionada, tipos de tramites, solicitudes, certificados,
*
validaciones correspondientes de acuerdo a la ley estudiantil.
* Creación
: 10/06/2015
*********************************************************************************************************/
package ug.sistema.academico.controladores.tramites;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.Sessions;
import org.zkoss.zk.ui.event.UploadEvent;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Button;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Div;
import org.zkoss.zul.Image;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
import ug.sistema.academico.service.ruteador.IRuteadorSRV;
import ug.sistema.academico.service.ruteador.RuteadorSOAP;
import ug.sistema.clases.ToastMessage;
import ug.sistema.clases.TramitesHeaderView;
import ug.sistema.libs.Utils;
import com.google.gson.Gson;
import ec.edu.ug.academico.type.MensajesGenericos;
public class IngresoTramites extends SelectorComposer<Component> {
private static final long serialVersionUID = 1L;
private Utils
objUtils,objUtilsConstants;
ArrayList<Object>
objArrayTransporteParametros;
IRuteadorSRV
portTramites;
@Wire Div
pSolcitidudes, pCertificados, btSolicitud, btCertificado, pEmail,
divMatInsc, divMatDisp, divParalelo, divVeces, pics,
div_upload,
divModalidad, divJornada, divExcepciones;
@Wire Combobox
cmbCertificados, cmbTipoTramite, cmbSolicitudes,
cmbExcepciones,cmbParalelos,cmbVeces,cmbJornadas,cmbModalidades;
@Wire Window
winAdminCertificados;
@Wire Textbox
objTxtCodPersona,objTxtUsuario,objTxtCedula,objTxtCarrera,objTxtEmail,txtEmail;
@Wire Button
btnNuevoC, btnNuevoS, btnAnular;
@Wire Listbox
lstRegistros, lstMatInsc, lstMatDisp;
String
lv_carrera, lv_userID, lv_mensajeOK,
id_excepciones,id_paralelos,id_imagen,
id_veces,id_modalidad,id_jornada,id_tramite,id_certificado,id_solicitud, id_matInsc,
id_lstMatDisp,id_lstRegistros,email;
@Wire Image
image;
byte[]
bFile;
90
/********************************************************************************************************
* Método
: doAfterCompose.
* Acceso
: público.
* Descripción
: metodo de inicializacion de pantalla
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* Modificacion
: 19/06/2015
* ********************************************************************************************************/
@Override
public void doAfterCompose(Component objComp) {
objUtils = new Utils();
objUtilsConstants=new Utils();
try {
objUtilsConstants.setProperties("/resources/constants.properties");
objUtils.setProperties("/resources/mensajes.properties");
if ((String) Executions.getCurrent().getAttribute("mainPage") != null) {
portTramites =RuteadorSOAP.getIRuteadorSOAP("tramites");
objArrayTransporteParametros=new ArrayList<>();
super.doAfterCompose(objComp);
this.setDatosUsuario();
this.getTipoTramite();
this.getSolicitudes();
this.getCertificados();
this.getExcepciones();
this.getRegistros();
//this.getMatInsc();
//this.getMatDisp();
this.getJornada();
//this.getVeces();
this.getModalidad();
} else {
Sessions.getCurrent().removeAttribute("objGlobalInformation");
Executions.sendRedirect("../SegLoginForm.zul");
}
}catch (Exception e) {
System.out.println(getClass() + " " + e.getMessage());
}
}
/********************************************************************************************************
* Método
: setDatosUsuario.
* Acceso
: Privado.
* Descripción
: Obtiene datos de la sesion y los almacena en variables,
*
cedula, carrera, nombre y apellidos del usuario.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
private void setDatosUsuario() throws Exception {
objTxtCedula.setValue(objUtils.getInformacionSession().getvStrGlobalIdentificacion());
objTxtCarrera.setValue(objUtils.getInformacionSession().getvStrGlobalNombreCarrera());
objTxtUsuario.setValue(objUtils.getInformacionSession().getvStrGlobalPrimerNombre()
+" "+
objUtils.getInformacionSession().getvStrGlobalApellidoPaterno() +" "+
objUtils.getInformacionSession().getvStrGlobalApellidoMaterno());
}
/********************************************************************************************************
* Método
: getTipoTramite.
* Acceso
: Privado.
* Descripción
: Obtiene de la base de datos los tipos de Tramites,
*
y los guarda en el ComboBox cmbTipoTramite
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
private void getTipoTramite() throws Exception {
String vStrTraza ="ACTIVO";
objArrayTransporteParametros=new ArrayList<>();
objArrayTransporteParametros.add("HQL_TRAMITES_TIPO_TRAMITE");
objArrayTransporteParametros.add(vStrTraza);
objArrayTransporteParametros.add(false);
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add(objUtilsConstants.getInformacionSession().getvStrGlobalUserID());
91
MensajesGenericos objMensGenericos = new
Gson().fromJson(portTramites.getGsonFromRoute("tramites",
"ug.sistema.academico.bo.tramites.IngresoTramitesBO","getTipoTramite", new
Gson().toJson(objArrayTransporteParametros),
objUtilsConstants.getInformacionSession().getvStrGlobalUserID()),MensajesGenericos.class);
if (objMensGenericos.getvStrCode().equals(objUtils.getObjProperties().getProperty("fStrSUCCESS"))) {
cmbTipoTramite.getChildren().clear();
if (objMensGenericos.getObjContenido().size() > 1) {
int vIntCabecera = 0;
for (ArrayList<String> objRegister : objMensGenericos.getObjContenido()) {
if (vIntCabecera > 0) {
cmbTipoTramite.appendChild(objUtilsConstants.getComboItem(objRegister));
}
vIntCabecera++;
}
}
} else {
ToastMessage.showNotify(objMensGenericos.getvStrMessage(),"alertify." +
objMensGenericos.getvStrCode());
}
}
/********************************************************************************************************
* Método
: clearAll.
* Acceso
: Privado.
* Descripción
: Limpia las selecciones en los comboBox, el textbox Email,
*
y borra la imagen cargada de justificativo.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
private void clearAll() throws Exception{
cmbExcepciones.setSelectedIndex(-1);
cmbParalelos.setSelectedIndex(-1);
cmbVeces.setSelectedIndex(-1);
cmbJornadas.setSelectedIndex(-1);
cmbModalidades.setSelectedIndex(-1);
image.setContent((org.zkoss.image.Image) null);
txtEmail.setValue("");
}
/********************************************************************************************************
* Método
: getJornada.
* Acceso
: Privado.
* Descripción
: Obtiene de la base de datos las jornadas, y las guarda en el comboBox cmbJornadas.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
private void getJornada() {
String vStrTraza ="A";
objArrayTransporteParametros=new ArrayList<>();
objArrayTransporteParametros.add("HQL_TRAMITES_GET_JORNADA");
objArrayTransporteParametros.add(vStrTraza);
objArrayTransporteParametros.add(false);
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add(objUtilsConstants.getInformacionSession().getvStrGlobalUserID());
MensajesGenericos objMensGenericos = new Gson().fromJson(portTramites.getGsonFromRoute(
"Tramites",
"ug.sistema.academico.bo.tramites.IngresoTramitesBO",
"getJornadas",
new Gson().toJson(objArrayTransporteParametros),
objUtilsConstants.getInformacionSession().getvStrGlobalUserID()),
MensajesGenericos.class);
//si la consulta no fue satisfactoria termina proceso
if (objMensGenericos.getvStrCode().equals(objUtils.getObjProperties().getProperty("fStrSUCCESS"))) {
cmbJornadas.getChildren().clear();
if (objMensGenericos.getObjContenido().size() > 1) {
int vIntCabecera = 0;
for (ArrayList<String> objRegister : objMensGenericos.getObjContenido()) {
if (vIntCabecera > 0) {
92
cmbJornadas.appendItem(objRegister.get(1)).setValue(objRegister.get(0));
}
vIntCabecera++;
}
}
} else {
ToastMessage.showNotify(objMensGenericos.getvStrMessage(),"alertify." +
objMensGenericos.getvStrCode());
}
}
/********************************************************************************************************
* Método
: getModalidad.
* Acceso
: Privado.
* Descripción
: Guarda en el comboBox las modalidades propuestas.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
*********************************************************************************************************/
private void getModalidad() {
cmbModalidades.appendItem("PRESENCIAL").setValue("E337BA1A-736F-4A59-8DD5460F9F60BC6B");
cmbModalidades.appendItem("DISTANCIA").setValue("E337BA1A-736F-4A59-8DD5-460F9F60BC6C");
}
/********************************************************************************************************
* Método
: getParalelos.
* Acceso
: Privado.
* Descripción
: Obtiene de la base de datos los paralelos y los almacena en el comboBox cmbParalelos
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
private void getParalelos() {
setVariables();
//String vStrTraza =vStrIdMateria;
objArrayTransporteParametros=new ArrayList<>();
objArrayTransporteParametros.add("");
objArrayTransporteParametros.add(id_matInsc);
objArrayTransporteParametros.add(false);
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add(objUtilsConstants.getInformacionSession().getvStrGlobalUserID());
System.out.println("mich3");
MensajesGenericos objMensGenericos = new Gson().fromJson(portTramites.getGsonFromRoute(
"Tramites",
"ug.sistema.academico.bo.tramites.IngresoTramitesBO",
"getParalelos",
new Gson().toJson(objArrayTransporteParametros),
objUtilsConstants.getInformacionSession().getvStrGlobalUserID()),
MensajesGenericos.class);
System.out.println("mich4 "+objMensGenericos.getvStrCode().toString());
//si la consulta no fue satisfactoria termina proceso
if (objMensGenericos.getvStrCode().equals(objUtils.getObjProperties().getProperty("fStrSUCCESS"))) {
System.out.println("mich5");
cmbParalelos.getChildren().clear();
System.out.println("mich6");
if (objMensGenericos.getObjContenido().size() > 0) {
System.out.println("mich7");
//cmbParalelos.appendItem("si").setValue("vale");
//int vIntCabecera = 0;
for (ArrayList<String> objRegister : objMensGenericos.getObjContenido()) {
//if (vIntCabecera > 0) {
System.out.println("mich8");
93
cmbParalelos.appendItem(objRegister.get(1)).setValue(objRegister.get(0));
//}
//
vIntCabecera++;
}
}
} else {
ToastMessage.showNotify(objMensGenericos.getvStrMessage(),"alertify." +
objMensGenericos.getvStrCode());
}
}
/********************************************************************************************************
* Método
: getMatDisp.
* Acceso
: Privado.
* Descripción
: Obtiene de la base de datos todas las materias disponibles
*
que el estudiante puede escoger para realizar una inclusion,
*
y las guarda en el ListBox lstMatDisp.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
private void getMatDisp() {
String Estado= "A";
String IdPersona = objUtils.getInformacionSession().getvStrGlobalIdPersona();
String vStrSeparador = objUtilsConstants.getObjProperties().getProperty("fStrSeparadorParametros");
String vStrTraza= IdPersona + vStrSeparador + Estado;
//vStrTraza="";
objArrayTransporteParametros=new ArrayList<>();
objArrayTransporteParametros.add("HQL_TRAMITES_MATERIAS_INSCRITAS");
objArrayTransporteParametros.add(vStrTraza);
objArrayTransporteParametros.add(false);
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add(objUtilsConstants.getInformacionSession().getvStrGlobalUserID());
MensajesGenericos objMensGenericos = new
Gson().fromJson(portTramites.getGsonFromRoute(
"tramites",
"ug.sistema.academico.bo.tramites.IngresoTramitesBO",
"getMatInsc",
new Gson().toJson(objArrayTransporteParametros),
objUtilsConstants.getInformacionSession().getvStrGlobalUserID()),
MensajesGenericos.class
);
lstMatInsc.getChildren().clear();
lstMatInsc.appendChild(TramitesHeaderView.getHeaderMateriasInscritas());
if (objMensGenericos.getvStrCode().equals(objUtils.getObjProperties().getProperty("fStrSUCCESS")))
{
if (objMensGenericos.getObjContenido().size() > 1)
{
int vIntCabecera = 0;
for (ArrayList<String> objRegister : objMensGenericos.getObjContenido())
{
if (vIntCabecera != 0)
{
lstMatInsc.appendChild(objUtilsConstants.getListItem(objRegister));
}
vIntCabecera++;
}
}
} else {
ToastMessage.showNotify(objMensGenericos.getvStrMessage(),"alertify." +
objMensGenericos.getvStrCode());
}
94
}
/********************************************************************************************************
* Método
: getSolicitudes.
* Acceso
: Privado.
* Descripción
: Obtiene de la base de datos todas las solicitudes
*
y las guarda en el comboBox cmbSolicitudes.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
private void getSolicitudes() throws Exception {
//String estado ="A";
String tipoTram ="S";
//String vStrSeparador = objUtilsConstants.getObjProperties().getProperty("fStrSeparadorParametros");
String vStrTraza= "ACTIVO";
objArrayTransporteParametros=new ArrayList<>();
objArrayTransporteParametros.add("HQL_TRAMITES_ESPECIFICACION");
objArrayTransporteParametros.add(vStrTraza);
objArrayTransporteParametros.add(tipoTram);
objArrayTransporteParametros.add(false);
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add(objUtilsConstants.getInformacionSession().getvStrGlobalUserID());
MensajesGenericos objMensGenericos = new
Gson().fromJson(portTramites.getGsonFromRoute("tramites",
"ug.sistema.academico.bo.tramites.IngresoTramitesBO","getEspecificacionTramite", new
Gson().toJson(objArrayTransporteParametros),
objUtilsConstants.getInformacionSession().getvStrGlobalUserID()),MensajesGenericos.class);
if (objMensGenericos.getvStrCode().equals(objUtils.getObjProperties().getProperty("fStrSUCCESS"))) {
cmbSolicitudes.getChildren().clear();
if (objMensGenericos.getObjContenido().size() > 1) {
int vIntCabecera = 0;
for (ArrayList<String> objRegister : objMensGenericos.getObjContenido()) {
if (vIntCabecera > 0) {
//cmbSolicitudes.appendChild(objUtilsConstants.getComboItem(objRegister));
cmbSolicitudes.appendItem(objRegister.get(1)).setValue(objRegister.get(0));
}
vIntCabecera++;
}
}
} else {
ToastMessage.showNotify(objMensGenericos.getvStrMessage(),
"alertify." + objMensGenericos.getvStrCode());
}
}
/********************************************************************************************************
* Método
: getCertificados.
* Acceso
: Privado.
* Descripción
: Obtiene de la base de datos todas los Certificados
*
y las guarda en el comboBox cmbCertificados.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
private void getCertificados() throws Exception {
String tipoTram ="C";
String vStrTraza= "ACTIVO";
objArrayTransporteParametros=new ArrayList<>();
objArrayTransporteParametros.add("HQL_TRAMITES_ESPECIFICACION");
objArrayTransporteParametros.add(vStrTraza);
objArrayTransporteParametros.add(tipoTram);
objArrayTransporteParametros.add(false);
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add(objUtilsConstants.getInformacionSession().getvStrGlobalUserID());
MensajesGenericos objMensGenericos = new
Gson().fromJson(portTramites.getGsonFromRoute("Tramites",
95
"ug.sistema.academico.bo.tramites.IngresoTramitesBO","getEspecificacionTramite", new
Gson().toJson(objArrayTransporteParametros),
objUtilsConstants.getInformacionSession().getvStrGlobalUserID()),MensajesGenericos.class);
if (objMensGenericos.getvStrCode().equals(objUtils.getObjProperties().getProperty("fStrSUCCESS"))) {
cmbCertificados.getChildren().clear();
if (objMensGenericos.getObjContenido().size() > 1) {
int vIntCabecera = 0;
for (ArrayList<String> objRegister : objMensGenericos.getObjContenido()) {
if (vIntCabecera > 0) {
//cmbCertificados.appendChild(objUtilsConstants.getComboItem(objRegister));
cmbCertificados.appendItem(objRegister.get(1)).setValue(objRegister.get(0));
}
vIntCabecera++;
}
}
} else {
ToastMessage.showNotify(objMensGenericos.getvStrMessage(),
"alertify." + objMensGenericos.getvStrCode());
}
}
/********************************************************************************************************
* Método
: getExcepciones.
* Acceso
: Privado.
* Descripción
: Obtiene de la base de datos todas las excepciones
*
y las guarda en el comboBox cmbExcepciones.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
private void getExcepciones() throws Exception {
String vStrTraza ="ACTIVO";
objArrayTransporteParametros=new ArrayList<>();
objArrayTransporteParametros.add("HQL_TRAMITES_EXCEPCIONES");
objArrayTransporteParametros.add(vStrTraza);
objArrayTransporteParametros.add(false);
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add(objUtilsConstants.getInformacionSession().getvStrGlobalUserID());
MensajesGenericos objMensGenericos = new
Gson().fromJson(portTramites.getGsonFromRoute("tramites",
"ug.sistema.academico.bo.tramites.IngresoTramitesBO","getExcepciones", new
Gson().toJson(objArrayTransporteParametros),
objUtilsConstants.getInformacionSession().getvStrGlobalUserID()),MensajesGenericos.class);
if (objMensGenericos.getvStrCode().equals(objUtils.getObjProperties().getProperty("fStrSUCCESS"))) {
cmbExcepciones.getChildren().clear();
if (objMensGenericos.getObjContenido().size() > 1) {
int vIntCabecera = 0;
for (ArrayList<String> objRegister : objMensGenericos.getObjContenido()) {
if (vIntCabecera > 0) {
//cmbExcepciones.appendChild(objUtilsConstants.getComboItem(objRegister));
cmbExcepciones.appendItem(objRegister.get(1)).setValue(objRegister.get(0));
}
vIntCabecera++;
}
}
} else {
ToastMessage.showNotify(objMensGenericos.getvStrMessage(),"alertify." +
objMensGenericos.getvStrCode());
}
}
96
/********************************************************************************************************
* Método
: tipoTramite.
* Acceso
: Privado.
* Descripción
: Al realizar una seleccion en el comboBox cmbTipoTramite,
*
se ocultan botones, comboBox, Divs y TextBoxs, y llama al metodo clearAll.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
@Listen("onChange = #cmbTipoTramite")
public void tipoTramite() throws Exception{
//value_s=cmbTipoTramite.getSelectedItem().getValue().toString();
//System.out.println ("value del combobox de Tipo_Tramite: "+ value_s);
if (cmbTipoTramite.getSelectedItem().getValue().toString().equals("SOLICITUD")){
pSolcitidudes.setVisible(true);
pCertificados.setVisible(false);
btSolicitud.setVisible(false);
btCertificado.setVisible(false);
pEmail.setVisible(false);
divMatInsc.setVisible(false);
divExcepciones.setVisible(false);
divMatDisp.setVisible(false);
cmbCertificados.setSelectedIndex(-1);
clearAll();
}
if (cmbTipoTramite.getSelectedItem().getValue().toString().equals("CERTIFICADO")){
pSolcitidudes.setVisible(false);
pCertificados.setVisible(true);
btSolicitud.setVisible(false);
btCertificado.setVisible(false);
pEmail.setVisible(false);
divMatInsc.setVisible(false);
divExcepciones.setVisible(false);
divMatDisp.setVisible(false);
divJornada.setVisible(false);
divModalidad.setVisible(false);
cmbSolicitudes.setSelectedIndex(-1);
clearAll();
}
}
/********************************************************************************************************
* Método
: opSolicitudes.
* Acceso
: Privado.
* Descripción
: Al realizar una seleccion en el comboBox cmbSolicitudes,
*
se ocultan botones, comboBox, Divs y TextBoxs, y llama al metodo clearAll.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
*********************************************************************************************************/
@Listen("onChange = #cmbSolicitudes")
public void opSolicitudes() throws Exception{
lstMatDisp.setSelectedIndex(-1);
lstMatInsc.setSelectedIndex(-1);
div_upload.setVisible(false);
divExcepciones.setVisible(false);
divMatDisp.setVisible(false);
divMatInsc.setVisible(false);
divParalelo.setVisible(false);
divVeces.setVisible(false);
divModalidad.setVisible(false);
divJornada.setVisible(false);
cmbSolicitudes.setVisible(false);
cmbParalelos.getChildren().clear();
btnAnular.setVisible(false);
btSolicitud.setVisible(false);
btCertificado.setVisible(false);
clearAll();
//inclusion de materia
if (cmbSolicitudes.getSelectedItem().getValue().toString().equals("E432AE9C-0EC2-486F-9085-7AB0AD153009")){
divMatInsc.setVisible(true);
getMatDisp();
}//dejar sin efecto
97
if (cmbSolicitudes.getSelectedItem().getValue().toString().equals("C64C412F-09DD-47FF-BA05263A2E066740")){
divMatInsc.setVisible(true);
getMatInsc();
}//cambio de paralelo
if (cmbSolicitudes.getSelectedItem().getValue().toString().equals("894D1727-A507-489D-B1318DDF3BD2017D")){
divMatInsc.setVisible(true);
//divParalelo.setVisible(true);
getMatInsc();
}//cambio de veces
if (cmbSolicitudes.getSelectedItem().getValue().toString().equals("D18853C6-10A4-44E8-997A-86145C5C3C0D")){
divMatInsc.setVisible(true);
//divVeces.setVisible(true);
getMatInsc2daVez();
}//cambio de modalidad
if (cmbSolicitudes.getSelectedItem().getValue().toString().equals("4C3259BF-3806-43E3-86F9-352D0C6A8D58")){
divModalidad.setVisible(true);
}//cambio de jornada
if (cmbSolicitudes.getSelectedItem().getValue().toString().equals("080E8414-3C2E-4C1E-B943-E16385BBCB82")){
divJornada.setVisible(true);
}//anular Inscripcion
if (cmbSolicitudes.getSelectedItem().getValue().toString().equals("3FF47371-CC75-4528-B136-F816328ACBCE")){
//btSolicitud.setVisible(true);
divMatInsc.setVisible(true);
getInscripcion();
}//3era vez
if (cmbSolicitudes.getSelectedItem().getValue().toString().equals("FD50640A-315A-45D5-9617-D3A9213DE237")){
divExcepciones.setVisible(true);
}
}
/********************************************************************************************************
* Método
: getRegistros.
* Acceso
: Privado.
* Descripción
: Obtiene de la base de datos todas Registros de la tabla RegistrosTramites
*
y las guarda en el ListBox lstRegistros.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
public void getRegistros() throws Exception{
String vStrTraza= objUtils.getInformacionSession().getvStrGlobalUserID();
objArrayTransporteParametros=new ArrayList<>();
objArrayTransporteParametros.add("HQL_TRAMITES_REGISTROS_TRAMITES");
objArrayTransporteParametros.add(vStrTraza+"<|>"+"ACTIVO");
objArrayTransporteParametros.add(false);
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add(objUtilsConstants.getInformacionSession().getvStrGlobalUserID());
MensajesGenericos objMensGenericos = new
Gson().fromJson(portTramites.getGsonFromRoute("Tramites",
"ug.sistema.academico.bo.tramites.IngresoTramitesBO","cargarRegistros", new
Gson().toJson(objArrayTransporteParametros),
objUtilsConstants.getInformacionSession().getvStrGlobalUserID()),MensajesGenericos.class);
System.out.println("getRegistros WS:"+objMensGenericos.getvStrCode()+ " =
"+objUtils.getObjProperties().getProperty("fStrSUCCESS"));
if (objMensGenericos.getvStrCode().equals(objUtils.getObjProperties().getProperty("fStrSUCCESS")))
{
lstRegistros.getChildren().clear();
lstRegistros.appendChild(TramitesHeaderView.getHeaderRegistrosTramites());
if (objMensGenericos.getObjContenido().size() > 1)
{
int vIntCabecera = 0;
for (ArrayList<String> objRegister :
objMensGenericos.getObjContenido())
{
if (vIntCabecera != 0)
{
lstRegistros.appendChild(objUtilsConstants.getListItem(objRegister));
}
vIntCabecera++;
}
}
98
} else {
ToastMessage.showNotify(objMensGenericos.getvStrMessage(),
"alertify." + objMensGenericos.getvStrCode());
}
btnAnular.setVisible(false);
}
/********************************************************************************************************
* Método
: getMatInsc.
* Acceso
: Privado.
* Descripción
: Obtiene de la base de datos todas las materias Inscritas en el periodo actual
*
de Matriculacion que el estudiante puede escoger para realizar una anulación y
*
cambio de paralelo y las guarda en el ListBox lstMatInsc.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
public void getMatInsc() throws Exception{
String Estado= "A";
String IdPersona = objUtils.getInformacionSession().getvStrGlobalIdPersona();
String vStrSeparador = objUtilsConstants.getObjProperties().getProperty("fStrSeparadorParametros");
String vStrTraza= IdPersona + vStrSeparador + Estado;
//vStrTraza="";
objArrayTransporteParametros=new ArrayList<>();
objArrayTransporteParametros.add("HQL_TRAMITES_MATERIAS_INSCRITAS");
objArrayTransporteParametros.add(vStrTraza);
objArrayTransporteParametros.add(false);
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add(objUtilsConstants.getInformacionSession().getvStrGlobalUserID());
MensajesGenericos objMensGenericos = new
Gson().fromJson(portTramites.getGsonFromRoute(
"tramites",
"ug.sistema.academico.bo.tramites.IngresoTramitesBO",
"getMatInsc",
new Gson().toJson(objArrayTransporteParametros),
objUtilsConstants.getInformacionSession().getvStrGlobalUserID()),
MensajesGenericos.class
);
lstMatInsc.getChildren().clear();
lstMatInsc.appendChild(TramitesHeaderView.getHeaderMateriasInscritas());
if (objMensGenericos.getvStrCode().equals(objUtils.getObjProperties().getProperty("fStrSUCCESS")))
{
if (objMensGenericos.getObjContenido().size() > 1)
{
int vIntCabecera = 0;
for (ArrayList<String> objRegister : objMensGenericos.getObjContenido())
{
if (vIntCabecera != 0)
{
lstMatInsc.appendChild(objUtilsConstants.getListItem(objRegister));
}
vIntCabecera++;
}
}
} else {
ToastMessage.showNotify(objMensGenericos.getvStrMessage(),"alertify." +
objMensGenericos.getvStrCode());
}
}
/********************************************************************************************************
* Método
: getMatInsc2daVez.
* Acceso
: Privado.
99
* Descripción
: Obtiene de la base de datos todas las materias Inscritas en el periodo actual
*
de Matriculacion que sean por 2da vez, para que el estudiante pueda realizar
*
un cambio de vez y las guarda en el ListBox lstMatInsc.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
public void getMatInsc2daVez() throws Exception{
String Estado= "A";
String IdPersona = objUtils.getInformacionSession().getvStrGlobalIdPersona();
String vStrSeparador = objUtilsConstants.getObjProperties().getProperty("fStrSeparadorParametros");
String vStrTraza= IdPersona + vStrSeparador + Estado;
//vStrTraza="";
objArrayTransporteParametros=new ArrayList<>();
objArrayTransporteParametros.add("HQL_TRAMITES_MATERIAS_INSCRITAS2");
objArrayTransporteParametros.add(vStrTraza);
objArrayTransporteParametros.add(false);
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add(objUtilsConstants.getInformacionSession().getvStrGlobalUserID());
MensajesGenericos objMensGenericos = new
Gson().fromJson(portTramites.getGsonFromRoute(
"tramites",
"ug.sistema.academico.bo.tramites.IngresoTramitesBO",
"getMatInsc",
new Gson().toJson(objArrayTransporteParametros),
objUtilsConstants.getInformacionSession().getvStrGlobalUserID()),
MensajesGenericos.class
);
lstMatInsc.getChildren().clear();
lstMatInsc.appendChild(TramitesHeaderView.getHeaderMateriasInscritas());
if (objMensGenericos.getvStrCode().equals(objUtils.getObjProperties().getProperty("fStrSUCCESS")))
{
if (objMensGenericos.getObjContenido().size() > 1)
{
int vIntCabecera = 0;
for (ArrayList<String> objRegister : objMensGenericos.getObjContenido())
{
if (vIntCabecera != 0)
{
lstMatInsc.appendChild(objUtilsConstants.getListItem(objRegister));
}
vIntCabecera++;
}
}
} else {
ToastMessage.showNotify(objMensGenericos.getvStrMessage(),"alertify." +
objMensGenericos.getvStrCode());
}
}
/********************************************************************************************************
* Método
: getInscripcion.
* Acceso
: Privado.
* Descripción
: Obtiene de la base de datos todas la inscripcion del periodo actual,
*
para que el estudiante puede seleccionarla y anular la inscripcion,
*
y las guarda en el ListBox lstMatInsc.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
*********************************************************************************************************/
public void getInscripcion() throws Exception{
String Estado= "A";
String IdPersona = objUtils.getInformacionSession().getvStrGlobalIdPersona();
100
String vStrSeparador = objUtilsConstants.getObjProperties().getProperty("fStrSeparadorParametros");
String vStrTraza= IdPersona + vStrSeparador + Estado;
//vStrTraza="";
objArrayTransporteParametros=new ArrayList<>();
objArrayTransporteParametros.add("HQL_TRAMITES_INSCRIPCION_MATRICULA");
objArrayTransporteParametros.add(vStrTraza);
objArrayTransporteParametros.add(false);
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add("0");
objArrayTransporteParametros.add(objUtilsConstants.getInformacionSession().getvStrGlobalUserID());
MensajesGenericos objMensGenericos = new
Gson().fromJson(portTramites.getGsonFromRoute(
"tramites",
"ug.sistema.academico.bo.tramites.IngresoTramitesBO",
"getInscripcion",
new Gson().toJson(objArrayTransporteParametros),
objUtilsConstants.getInformacionSession().getvStrGlobalUserID()),
MensajesGenericos.class
);
lstMatInsc.getChildren().clear();
lstMatInsc.appendChild(TramitesHeaderView.getHeaderInscripcion());
if (objMensGenericos.getvStrCode().equals(objUtils.getObjProperties().getProperty("fStrSUCCESS")))
{
if (objMensGenericos.getObjContenido().size() > 1)
{
int vIntCabecera = 0;
for (ArrayList<String> objRegister : objMensGenericos.getObjContenido())
{
if (vIntCabecera != 0)
{
lstMatInsc.appendChild(objUtilsConstants.getListItem(objRegister));
}
vIntCabecera++;
}
}
} else {
ToastMessage.showNotify(objMensGenericos.getvStrMessage(),"alertify." +
objMensGenericos.getvStrCode());
}
}
/********************************************************************************************************
* Método
: refreshWindow.
* Acceso
: Privado.
* Descripción
: Realiza un refresh de todos los elementos de la pantala ingresoTramites.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
********************************************************************************************************/
public void refreshWindow() throws Exception{
cmbTipoTramite.setSelectedIndex(-1);
cmbCertificados.setSelectedIndex(-1);
cmbSolicitudes.setSelectedIndex(-1);
pSolcitidudes.setVisible(false);
pCertificados.setVisible(false);
btSolicitud.setVisible(false);
btCertificado.setVisible(false);
pEmail.setVisible(false);
divMatInsc.setVisible(false);
divMatDisp.setVisible(false);
divParalelo.setVisible(false);
divVeces.setVisible(false);
101
div_upload.setVisible(false);
divModalidad.setVisible(false);
divJornada.setVisible(false);
divExcepciones.setVisible(false);
btnAnular.setVisible(false);
this.clearAll();
this.setDatosUsuario();
this.getTipoTramite();
this.getSolicitudes();
this.getCertificados();
this.getExcepciones();
this.getRegistros();
this.getMatInsc();
this.getJornada();
}
/********************************************************************************************************
* Método
: setVariables.
* Acceso
: Privado.
* Descripción
: Almacena todos los valores de los comboBox, ListBox y TextBox en variables
*
para realizar el ingreso de Solicitudes y Certificados.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
********************************************************************************************************/
public void setVariables(){
//byte[] bFile
=
image.getContent().getByteData();
//
String vByteImagenByte
=
new Gson().toJson(bFile);
/*
if(image.getContent() == null)
id_imagen="";
else
id_imagen=new Gson().toJson(image.getContent().getByteData());
*/
if(cmbExcepciones.getValue().equals(""))
id_excepciones="";
else
id_excepciones=cmbExcepciones.getSelectedItem().getValue().toString();
try{
if(cmbParalelos.getValue().equals(""))
id_paralelos="";
else
id_paralelos=cmbParalelos.getSelectedItem().getValue().toString();
}catch(Exception e){
id_paralelos="";
}
if(cmbVeces.getValue().equals(""))
id_veces="";
else
id_veces=cmbVeces.getSelectedItem().getValue().toString();
if(cmbModalidades.getValue().equals(""))
id_modalidad="";
else
id_modalidad=cmbModalidades.getSelectedItem().getValue().toString();
if(cmbJornadas.getValue().equals(""))
id_jornada="";
else
id_jornada=cmbJornadas.getSelectedItem().getValue().toString();
if(cmbTipoTramite.getValue().equals(""))
id_tramite="";
else
id_tramite=cmbTipoTramite.getSelectedItem().getValue().toString();
if(cmbCertificados.getValue().equals(""))
id_certificado="";
else
id_certificado=cmbCertificados.getSelectedItem().getValue().toString();
102
if(txtEmail.getValue().equals(""))
email="";
else
email=txtEmail.getValue().toString();
if(cmbSolicitudes.getValue().equals(""))
id_solicitud="";
else
id_solicitud=cmbSolicitudes.getSelectedItem().getValue().toString();
try{
if(lstMatInsc.getSelectedItem().getValue().equals(""))
id_matInsc="";
else
id_matInsc=lstMatInsc.getSelectedItem().getValue().toString();
}catch(Exception e){
id_matInsc="";
}
try{
if(lstRegistros.getSelectedItem().getValue().equals(""))
id_lstRegistros="";
else
id_lstRegistros=lstRegistros.getSelectedItem().getValue().toString();
}catch(Exception e){
id_lstRegistros="";
}
try{
if(lstMatDisp.getSelectedItem().getValue().equals(""))
id_lstMatDisp="";
else
id_lstMatDisp=lstMatDisp.getSelectedItem().getValue().toString();
}catch(Exception e){
id_lstMatDisp="";
}
}
/********************************************************************************************************
* Método
: mostrarBtSolic.
* Acceso
: Privado.
* Descripción
: Si los comboBox cmbParalelos, cmbVeces, cmbJornadas o cmbModalidades son
seleccionados
*
muestra el boton de guardar solicitud, btSolicitud.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
********************************************************************************************************/
@Listen("onChange = #cmbParalelos, #cmbVeces, #cmbJornadas, #cmbModalidades")
public void mostrarBtSolic(){
btSolicitud.setVisible(true);
//btCertificado.setVisible(false);
}
/********************************************************************************************************
* Método
: mostrarBtSolic2.
* Acceso
: Privado.
* Descripción
: Si los ListBox lstMatInsc o lstMatDisp son seleccionados
*
muestra el boton de guardar solicitud, btSolicitud.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
********************************************************************************************************/
@Listen("onClick = #lstMatInsc, #lstMatDisp")
public void mostrarBtSolic2() throws Exception{
clearAll();
if (cmbSolicitudes.getSelectedItem().getValue().toString().equals("894D1727-A507-489D-B1318DDF3BD2017D")){
getParalelos();
divParalelo.setVisible(true);
btSolicitud.setVisible(false);
}else{
btSolicitud.setVisible(true);
}
}
/********************************************************************************************************
103
* Método
: mostrarUploadImagen.
* Acceso
: Privado.
* Descripción
: Si el comboBox cmbExcepciones es seleccionado, muestra el
*
div div_upload para cargar el justificativo.
*
muestra el boton de guardar solicitud, btSolicitud.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
********************************************************************************************************/
@Listen("onChange = #cmbExcepciones")
public void mostrarUploadImagen(){
div_upload.setVisible(true);
//btCertificado.setVisible(false);
}
/********************************************************************************************************
* Método
: mostrarBtCertif.
* Acceso
: Privado.
* Descripción
: Si el comboBox cmbCertificados es seleccionado, muestra el
*
boton btCertificado y pEmail.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
********************************************************************************************************/
@Listen("onChange = #cmbCertificados")
public void mostrarBtCertif(){
btSolicitud.setVisible(false);
btCertificado.setVisible(true);
pEmail.setVisible(true);
}
/********************************************************************************************************
* Método
: mostrarAnular.
* Acceso
: Privado.
* Descripción
: Si el ListBox lstRegistros" es seleccionado, llama al metodo llamarPantalla(),
*
y luego a refreshWindow().
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
*********************************************************************************************************/
@Listen("onDoubleClick = #lstRegistros")
public void mostrarAnular() throws Exception{
//btnAnular.setVisible(true);
llamarPantalla();
this.refreshWindow();
}
/********************************************************************************************************
* Método
: upload.
* Acceso
: Privado.
* Descripción
: Carga una imagen en la variable image.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
********************************************************************************************************/
public void upload(UploadEvent event) {
int vIntMinHeightFoto = Integer.valueOf(objUtilsConstants.getObjProperties()
.getProperty("fStrMinHeighImagenesX"));
int vIntMaxHeightFoto = Integer.valueOf(objUtilsConstants.getObjProperties()
.getProperty("fStrMaxHeightImagenesX"));
int vIntMinWidthFoto = Integer.valueOf(objUtilsConstants.getObjProperties()
.getProperty("fStrMinWidthImagenesX"));
int vIntMaxWidthFoto = Integer.valueOf(objUtilsConstants.getObjProperties()
.getProperty("fStrMaxWidthImagenesX"));
org.zkoss.util.media.Media media = event.getMedia();
boolean lbError = false;
if (media instanceof org.zkoss.image.Image) {
if (((org.zkoss.image.Image) media).getHeight() > vIntMinHeightFoto
&& ((org.zkoss.image.Image) media).getHeight() < vIntMaxHeightFoto)
{
if (((org.zkoss.image.Image) media).getWidth() > vIntMinWidthFoto
&& ((org.zkoss.image.Image) media).getWidth() <
vIntMaxWidthFoto) {
lbError = true;
}
}
104
if (lbError) {
btSolicitud.setVisible(true);
image.setContent((org.zkoss.image.Image) media);
pics.getChildren().clear();
image.setParent(pics);
bFile = image.getContent().getByteData();
id_imagen = new Gson().toJson(bFile);
System.out.println("byte de imagen MC: "+id_imagen);
} else {
Messagebox.show(
objUtils.getObjProperties()
.getProperty("fStrMessageTamanioImagen")
.replace("@(content)",
String.valueOf(vIntMinHeightFoto))
.replace("@(content2)",
String.valueOf(vIntMaxHeightFoto))
.replace("@(content3)",
String.valueOf(vIntMinWidthFoto))
.replace("@(content4)",
String.valueOf(vIntMaxWidthFoto)),
"Error", Messagebox.OK, Messagebox.EXCLAMATION);
}
} else {
Messagebox.show("El Archivo Cargado no es una Imagen: " + media,
"Error", Messagebox.OK, Messagebox.ERROR);
}
}
/********************************************************************************************************
* Método
: ingresarCertificado.
* Acceso
: Privado.
* Descripción
: Guarda el certificado a la base de datos, enviando las
*
variables que el metodo setVariables() guardo en primer lugar.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
************************************************************************************************** *******/
@Listen("onClick = #btnNuevoC")
public void ingresarCertificado() throws Exception
{
setVariables();
boolean vBoolResult = false;
if(cmbCertificados.getValue().equals(""))
{
ToastMessage.showNotify("Debe seleccionar un Certificado", "alertify."
+ objUtils.getObjProperties().getProperty("fStrWARNING"));
vBoolResult = true;
}
else {
/*alert("id de excepcion : "+id_excepciones+ "\n"+
"id de paralelos : "+id_paralelos+ "\n"+
"id de veces : "+id_veces+ "\n"+
"id de modalidad : "+id_modalidad+ "\n"+
"id de jornada : "+id_jornada+ "\n"+
"id de tipo tramite : "+id_tramite+ "\n"+
"id de solicitud : "+id_solicitud+ "\n"+
"id de imagen : "+id_imagen+ "\n"+
"id de certificado : "+id_certificado);*/
if(!vBoolResult){
try{
objArrayTransporteParametros=new ArrayList<>();
//PARA PRIMERA TABLA
objArrayTransporteParametros.add(objUtils.getInformacionSession().getvStrGlobalUserID());
objArrayTransporteParametros.add(objUtilsConstants.getInformacionSession().getvStrGlobalCarrera());
objArrayTransporteParametros.add(objUtils.getInformacionSession().getvStrGlobalPeriodoActivo());
objArrayTransporteParametros.add(cmbCertificados.getSelectedItem().getValue().toString());
//SEGUNDA TABLA
105
objArrayTransporteParametros.add(id_excepciones);
objArrayTransporteParametros.add(id_paralelos);
objArrayTransporteParametros.add(id_veces);
objArrayTransporteParametros.add(id_modalidad);
objArrayTransporteParametros.add(id_jornada);
objArrayTransporteParametros.add(email);
MensajesGenericos objMensGenericos = new
Gson().fromJson(portTramites.getGsonFromRoute("Tramites",
"ug.sistema.academico.bo.tramites.IngresoTramitesBO","GuardarCertificado", new
Gson().toJson(objArrayTransporteParametros),
objUtilsConstants.getInformacionSession().getvStrGlobalUserID()),MensajesGenericos.class);
ToastMessage.showNotify(objMensGenericos.getvStrMessage(),
"alertify." + objMensGenericos.getvStrCode());
if
(objMensGenericos.getvStrCode().equals(objUtils.getObjProperties().getProperty("fStrSUCCESS"))) {
this.refreshWindow();
}
}
catch(Exception e)
{
e.printStackTrace();
ToastMessage.showNotify(objUtils.getObjProperties().getProperty("fStrMessageErrorServices")
+ " " + e.getMessage(),
objUtils.getObjProperties().getProperty("fStrERROR"));
}
}
}
}
/********************************************************************************************************
* Método
: ingresarSolicitud.
* Acceso
: Privado.
* Descripción
: Guarda las solicitudes a la base de datos, enviando las
*
variables que el metodo setVariables() guardo en primer lugar.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
*********************************************************************************************************/
@Listen("onClick = #btnNuevoS")
public void ingresarSolicitud() throws Exception
{
setVariables();
boolean vBoolResult = false;
if(cmbSolicitudes.getValue().equals(""))
{
ToastMessage.showNotify("Debe seleccionar una solicitud", "alertify."
+ objUtils.getObjProperties().getProperty("fStrWARNING"));
vBoolResult = true;
}
else {
//alert("id de MatInsc : "+lstMatInsc.getSelectedItem().getValue());
/*alert("id de excepcion : "+id_excepciones+ "\n"+
"id de paralelos : "+id_paralelos+ "\n"+
"id de veces : "+id_veces+ "\n"+
"id de modalidad : "+id_modalidad+ "\n"+
"id de jornada : "+id_jornada+ "\n"+
"id de tipo tramite : "+id_tramite+ "\n"+
"id de solicitud : "+id_solicitud+ "\n"+
"id de imagen : "+id_imagen.substring(0, 10)+ "\n"+
"id de certificado : "+id_certificado);*/
if(!vBoolResult){
try{
objArrayTransporteParametros=new ArrayList<>();
//PARA PRIMERA TABLA
objArrayTransporteParametros.add(objUtils.getInformacionSession().getvStrGlobalUserID());
objArrayTransporteParametros.add(objUtilsConstants.getInformacionSession().getvStrGlobalCarrera());
objArrayTransporteParametros.add(objUtils.getInformacionSession().getvStrGlobalPeriodoActivo());
objArrayTransporteParametros.add(id_solicitud);
//SEGUNDA TABLA
106
objArrayTransporteParametros.add(id_excepciones);
objArrayTransporteParametros.add(id_paralelos);
objArrayTransporteParametros.add(id_veces);
objArrayTransporteParametros.add(id_modalidad);
objArrayTransporteParametros.add(id_jornada);
objArrayTransporteParametros.add(id_imagen);
objArrayTransporteParametros.add(id_matInsc);
objArrayTransporteParametros.add(id_lstMatDisp);
MensajesGenericos objMensGenericos = new
Gson().fromJson(portTramites.getGsonFromRoute("Tramites",
"ug.sistema.academico.bo.tramites.IngresoTramitesBO","GuardarSolicitud", new
Gson().toJson(objArrayTransporteParametros),
objUtilsConstants.getInformacionSession().getvStrGlobalUserID()),MensajesGenericos.class);
ToastMessage.showNotify(objMensGenericos.getvStrMessage(),
"alertify." + objMensGenericos.getvStrCode());
if
(objMensGenericos.getvStrCode().equals(objUtils.getObjProperties().getProperty("fStrSUCCESS"))) {
this.refreshWindow();
}
}
catch(Exception e)
{
e.printStackTrace();
ToastMessage.showNotify(objUtils.getObjProperties().getProperty("fStrMessageErrorServices")
+ " " + e.getMessage(),
objUtils.getObjProperties().getProperty("fStrERROR"));
}
}
}
}
/********************************************************************************************************
* Método
: llamarPantalla.
* Acceso
: Privado.
* Descripción
: Crea una ventana modal, llamando al zul ModalDetalleTramite.zul,
*
envia mediante HashMap el id del Tramite seleccionado del ListBox lstRegistros.
* Tipo de retorno
: no retorna valor
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
private void llamarPantalla(){
Map<String, Object> map = new HashMap<String, Object>();
map.put("idPersona", objUtils.getInformacionSession().getvStrGlobalIdPersona());
map.put("idTramite", lstRegistros.getSelectedItem().getValue().toString());
//map.put("tipUsr", intParTipPan.getValue());
try {
Window objWinModal = (Window)
Executions.createComponents("tramites/ModalDetalleTramite.zul", winAdminCertificados, map);
objWinModal.doModal();
//
onClick$btnBuscar();
//this.chargeView("","null");
} catch (Exception e) {
e.printStackTrace();
}
}
}
/********************************************************************************************************
* Clase
: IngresoTramitesBO.java
* Autor
: Marlon Israel Carangui Herrera
* Descripción
: Clase BO para la clase IngresoTramites.java que contiene metodos de consulta a
*
la base de datos, utilizando el ORM Hibernate.
* Creación
: 18/06/2015
************************************************************************************************ *********/
package ug.sistema.academico.bo.tramites;
import java.awt.Image;
import java.sql.CallableStatement;
107
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
import org.hibernate.JDBCException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import ug.sistema.academico.eao.extcalendario.EventosCalendarioEAO;
import ug.sistema.academico.eao.horario.DetHorarioClaseEAO;
import ug.sistema.academico.eao.horario.JornadaEAO;
import ug.sistema.academico.eao.matriculacion.DetalleMatriculacionEAO;
import ug.sistema.academico.eao.matriculacion.MatriculacionEAO;
//import ug.sistema.academico.eao.certificados.CertificadosRegistroEAO;
import ug.sistema.academico.eao.seguridad.UsuariosLoginControlEAO;
import ug.sistema.academico.eao.tramites.DetalleRegistroEAO;
import ug.sistema.academico.eao.tramites.EspecificacionTramiteEAO;
import ug.sistema.academico.eao.tramites.EstadoGeneralEAO;
import ug.sistema.academico.eao.tramites.EstadoProcesoEAO;
import ug.sistema.academico.eao.tramites.ExcepcionesEAO;
import ug.sistema.academico.eao.tramites.ProcesosEAO;
import ug.sistema.academico.eao.tramites.RegistroTramitesEAO;
import ug.sistema.academico.utils.ListaGenerica;
import ug.sistema.academico.utils.Utils;
import ug.sistema.academico.models.horario.CabHorarioClase;
import ug.sistema.academico.models.horario.DetHorarioClase;
import ug.sistema.academico.models.horario.Jornada;
import ug.sistema.academico.models.horario.Paralelo;
import ug.sistema.academico.models.malla.Carrera;
import ug.sistema.academico.models.malla.CarreraImpl;
import ug.sistema.academico.models.malla.MateriaImpl;
import ug.sistema.academico.models.matriculacion.DetalleMatriculacion;
import ug.sistema.academico.models.matriculacion.Matriculacion;
import ug.sistema.academico.models.notificaciones.EventosCalendario;
import ug.sistema.academico.models.tramites.DetalleRegistro;
//import ug.sistema.academico.models.certificados.Registros;
import ug.sistema.academico.models.tramites.EspecificacionTramite;
import ug.sistema.academico.models.tramites.EstadoGeneral;
import ug.sistema.academico.models.tramites.EstadoProceso;
import ug.sistema.academico.models.tramites.Excepciones;
import ug.sistema.academico.models.tramites.Procesos;
import ug.sistema.academico.models.tramites.RegistroTramites;
import ug.sistema.academico.models.tramites.TipoTramite;
import com.google.gson.Gson;
import ec.edu.ug.academico.type.MensajesGenericos;
public class IngresoTramitesBO {
MensajesGenericos objMsjGenerico = new MensajesGenericos("","");
/********************************************************************************************************
* Método
: getEspecificacionTramite.
* Acceso
: Publico.
* Descripción
: Obtiene de la base de datos todas las solicitudes
*
y las retorna
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
public String getEspecificacionTramite(String vStrQuery, String vStrParametros, String tipoTram,
boolean vBoolPaginador, String vIntMinimo, String vIntMaximo, String vIntPagina, String
vStrUsuario) {
String vStrResultado = "";
108
Utils objUtils = new Utils();
EspecificacionTramiteEAO objTramitesEAO = new EspecificacionTramiteEAO();
ArrayList<ArrayList<String>> objContenido = new ArrayList<ArrayList<String>>();
objTramitesEAO.setearConexion("sistemaacademico");
Session objSession = objTramitesEAO.getSession();
objSession.flush();
objUtils.setProperties("/resources/constants.properties");
String vStrSeparador = objUtils.getObjProperties().getProperty("fStrSeparadorParametros");
if(tipoTram.equals("S")){
vStrParametros= vStrParametros + vStrSeparador + "SOLICITUD";
}
if(tipoTram.equals("C")){
vStrParametros= vStrParametros + vStrSeparador + "CERTIFICADO";
}
try {
ArrayList<Object> vArrayParameters =
objUtils.getArrayListObject(vStrParametros,objUtils.getObjProperties().getProperty("fStrSeparadorParametros"));
ListaGenerica objListaGenerica =
objTramitesEAO.getResultListCustomAcademico(vStrQuery, vArrayParameters,vBoolPaginador, vIntMinimo, vIntMaximo,
vIntPagina);
ArrayList<String> arrayfilas = new ArrayList<String>();
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMaximo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMinimo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntPagina()));
arrayfilas.add(String.valueOf(objListaGenerica.getvNumPaginas()));
objContenido.add(arrayfilas);
ArrayList<Object> objArrayContenido = objListaGenerica.getArrayContenido();
for (Object object : objArrayContenido) {
arrayfilas = new ArrayList<String>();
EspecificacionTramite objSolicitud = (EspecificacionTramite) object;
arrayfilas.add(objSolicitud.getId());
arrayfilas.add(objSolicitud.getNombre());
arrayfilas.add(objSolicitud.getNemonico());
//arrayfilas.add(objSolicitud.getUsuarioCreacion());
//arrayfilas.add(objSolicitud.getUsuarioModificacion());
//arrayfilas.add(objSolicitud.getFechaCreacion().toString());
//arrayfilas.add(objSolicitud.getFechaModificacion().toString());
//arrayfilas.add(objSolicitud.getEstadoGeneral().getNombre());
//arrayfilas.add(objSolicitud.getRutaArchivo());
objContenido.add(arrayfilas);
}
objUtils.setProperties("/resources/mensajes.properties");
objMsjGenerico.setvStrMessage(objUtils.getMessage("","fStrMessageOK"));
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty("fStrSUCCESS"));
} catch (Exception e) {
objMsjGenerico.setvStrMessage(objUtils.getMessage("","fStrMessageErrorDatabase") + "---"
+ e.getLocalizedMessage());
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty("fStrERROR"));
} finally {
objSession.close();
}
objMsjGenerico.setObjContenido(objContenido);
vStrResultado = new Gson().toJson(objMsjGenerico);
return vStrResultado;
}
/********************************************************************************************************
* Método
: getTipoTramite.
* Acceso
: Publico.
* Descripción
: Obtiene de la base de datos los tipos de Tramites,
*
y los retorna
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
public String getTipoTramite(String vStrQuery, String vStrParametros,
boolean vBoolPaginador, String vIntMinimo, String vIntMaximo,
String vIntPagina, String vStrUsuario) {
String v_error="1";
109
String vStrResultado = "";
//DateFormat formato = new SimpleDateFormat("dd/mm/yyyy");
EspecificacionTramiteEAO objTramitesEAO = new EspecificacionTramiteEAO();
v_error="2";
objTramitesEAO.setearConexion("sistemaacademico");
Session objSession = objTramitesEAO.getSession();
objSession.flush();
Utils objUtils = new Utils();
objUtils.setProperties("/resources/constants.properties");
ArrayList<ArrayList<String>> objContenido = new ArrayList<ArrayList<String>>();
v_error="3";
try {
ArrayList<Object> vArrayParameters = objUtils.getArrayListObject(
vStrParametros,
objUtils.getObjProperties().getProperty(
"fStrSeparadorParametros"));
v_error="4";
ListaGenerica objListaGenerica =
objTramitesEAO.getResultListCustomAcademico(vStrQuery, vArrayParameters,
vBoolPaginador, vIntMinimo, vIntMaximo,
vIntPagina);
v_error="5";
ArrayList<String> arrayfilas = new ArrayList<String>();
v_error="6";
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMaximo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMinimo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntPagina()));
arrayfilas.add(String.valueOf(objListaGenerica.getvNumPaginas()));
objContenido.add(arrayfilas);
v_error="7";
ArrayList<Object> objArrayContenido = objListaGenerica.getArrayContenido();
for (Object object : objArrayContenido) {
arrayfilas = new ArrayList<String>();
TipoTramite objTipoTramite = (TipoTramite) object;
arrayfilas.add(objTipoTramite.getId());
arrayfilas.add(objTipoTramite.getNombre());
objContenido.add(arrayfilas);
}
v_error="7";
objUtils.setProperties("/resources/mensajes.properties");
objMsjGenerico.setvStrMessage(objUtils.getMessage("",
"fStrMessageOK"));
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty(
"fStrSUCCESS"));
v_error="8";
} catch (Exception e) {
System.out.println ("ERROR MC: "+ v_error + " Query: "+vStrQuery);
objMsjGenerico.setvStrMessage(objUtils.getMessage("",
"fStrMessageErrorDatabase")
+ "---"
+ e.getLocalizedMessage());
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty(
"fStrERROR"));
} finally {
objSession.close();
}
objMsjGenerico.setObjContenido(objContenido);
vStrResultado = new Gson().toJson(objMsjGenerico);
return vStrResultado;
}
/********************************************************************************************************
* Método
: cargarRegistros.
* Acceso
: Publico.
* Descripción
: Obtiene de la base de datos todas Registros de la tabla RegistrosTramites
110
*
y los retorna.
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
public String cargarRegistros(String vStrQuery, String vStrParametros,boolean vBoolPaginador, String vIntMinimo,
String vIntMaximo,
String vIntPagina, String vStrUsuario)
{
String vStrResultado = "";
RegistroTramitesEAO objRegTramEAO = new RegistroTramitesEAO();
objRegTramEAO.setearConexion("sistemaacademico");
Session objSession = objRegTramEAO.getSession();
objSession.flush();
Utils objUtils = new Utils();
objUtils.setProperties("/resources/constants.properties");
ArrayList<ArrayList<String>> objContenido = new ArrayList<ArrayList<String>>();
try {
ArrayList<Object> vArrayParameters = objUtils.getArrayListObject(
vStrParametros,
objUtils.getObjProperties().getProperty("fStrSeparadorParametros"));
ListaGenerica objListaGenerica =
objRegTramEAO.getResultListCustomAcademico(vStrQuery, vArrayParameters,
vBoolPaginador, vIntMinimo, vIntMaximo,
vIntPagina);
ArrayList<String> arrayfilas = new ArrayList<String>();
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMaximo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMinimo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntPagina()));
arrayfilas.add(String.valueOf(objListaGenerica.getvNumPaginas()));
objContenido.add(arrayfilas);
ArrayList<Object> objArrayContenido = objListaGenerica.getArrayContenido();
for (Object object : objArrayContenido) {
arrayfilas = new ArrayList<String>();
RegistroTramites objRegistros = (RegistroTramites) object;
arrayfilas.add(objRegistros.getId());
arrayfilas.add(String.format("%03d",objRegistros.getNumeroRegistro()));
arrayfilas.add(objRegistros.getEspecificacionTramite().getTipoTramite().getNombre());
arrayfilas.add(objRegistros.getEspecificacionTramite().getNombre());
//arrayfilas.add(objRegistros.getIdCarrera().getNombre());
arrayfilas.add(objRegistros.getFechaCreacion().toString());
arrayfilas.add(objRegistros.getProcesos().getDescripcion());
arrayfilas.add(objRegistros.getEstadoProceso().getDescripcion());
arrayfilas.add(objRegTramEAO.getObservacion(objRegistros.getId()));
objContenido.add(arrayfilas);
}
objUtils.setProperties("/resources/mensajes.properties");
objMsjGenerico.setvStrMessage(objUtils.getMessage("",
"fStrMessageOK"));
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty(
"fStrSUCCESS"));
} catch (Exception e) {
objMsjGenerico.setvStrMessage(objUtils.getMessage("",
"fStrMessageErrorDatabase")
+ "---"
+ e.getLocalizedMessage());
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty(
"fStrERROR"));
} finally {
objSession.close();
111
}
objMsjGenerico.setObjContenido(objContenido);
vStrResultado = new Gson().toJson(objMsjGenerico);
return vStrResultado;
}
/********************************************************************************************************
* Método
: getExcepciones.
* Acceso
: Publico.
* Descripción
: Obtiene de la base de datos todas las excepciones
*
y las retorna.
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
public String getExcepciones(String vStrQuery, String vStrParametros,
boolean vBoolPaginador, String vIntMinimo, String vIntMaximo,String vIntPagina, String
vStrUsuario) {
String vStrResultado = "";
Utils objUtils = new Utils();
ExcepcionesEAO objTramitesEAO = new ExcepcionesEAO();
ArrayList<ArrayList<String>> objContenido = new ArrayList<ArrayList<String>>();
objTramitesEAO.setearConexion("sistemaacademico");
Session objSession = objTramitesEAO.getSession();
objSession.flush();
objUtils.setProperties("/resources/constants.properties");
try {
ArrayList<Object> vArrayParameters =
objUtils.getArrayListObject(vStrParametros,objUtils.getObjProperties().getProperty("fStrSeparadorParametros"));
ListaGenerica objListaGenerica =
objTramitesEAO.getResultListCustomAcademico(vStrQuery, vArrayParameters,vBoolPaginador, vIntMinimo, vIntMaximo,
vIntPagina);
ArrayList<String> arrayfilas = new ArrayList<String>();
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMaximo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMinimo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntPagina()));
arrayfilas.add(String.valueOf(objListaGenerica.getvNumPaginas()));
objContenido.add(arrayfilas);
ArrayList<Object> objArrayContenido = objListaGenerica.getArrayContenido();
for (Object object : objArrayContenido) {
arrayfilas = new ArrayList<String>();
Excepciones objExcepciones = (Excepciones) object;
arrayfilas.add(objExcepciones.getId());
arrayfilas.add(objExcepciones.getDescripcion());
arrayfilas.add(objExcepciones.getNemonico());
objContenido.add(arrayfilas);
}
objUtils.setProperties("/resources/mensajes.properties");
objMsjGenerico.setvStrMessage(objUtils.getMessage("","fStrMessageOK"));
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty("fStrSUCCESS"));
} catch (Exception e) {
objMsjGenerico.setvStrMessage(objUtils.getMessage("","fStrMessageErrorDatabase")+ "---"+
e.getLocalizedMessage());
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty("fStrERROR"));
} finally {
objSession.close();
}
objMsjGenerico.setObjContenido(objContenido);
112
vStrResultado = new Gson().toJson(objMsjGenerico);
return vStrResultado;
}
/********************************************************************************************************
* Método
: GuardarSolicitud.
* Acceso
: Publico.
* Descripción
: Guarda las solicitudes a la base de datos, en las tablas RegistroTramites y DetalleRegistro
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
public String GuardarSolicitud(
String vStrPersona,
String vStrCarrera,
String vStrPeriodo,
String vSTrSolicitudes,
String vStrExcepcion, String cmbParalelos,
String cmbVeces, String
cmbModalidades,
String cmbJornadas, String vByteImagen,
String lstMatInsc, String
lstMatDisp) throws ParseException {
Utils
objUtils
= new Utils();
RegistroTramites
objCertificadosR
= new RegistroTramites();
Procesos
objProcesos
= new Procesos();
EspecificacionTramite objEspTram
= new EspecificacionTramite();
EstadoGeneral
objEstGeneral
= new EstadoGeneral();
EstadoProceso
objEstProceso
= new EstadoProceso();
CarreraImpl
objCarrera
= new CarreraImpl();
DetalleRegistro
objDetalleRegistro
= new DetalleRegistro();
String
vStrResultado
= "";
String
idMateriaFinal
= "";
byte[]
vByteImagenByte
= new
Gson().fromJson(vByteImagen, byte[].class);
int
validaTramite = 0;
//instancia EAO
RegistroTramitesEAO objRegistrosEAO = new RegistroTramitesEAO();
DetalleRegistroEAO objDetalleRegistroEAO = new DetalleRegistroEAO();
EstadoGeneralEAO
objEstadoGeneralEAO
= new
EstadoGeneralEAO();
EstadoProcesoEAO
objEstadoProcesoEAO
= new
EstadoProcesoEAO();
//Setea conexion
objRegistrosEAO.setearConexion("sistemaacademico");
objDetalleRegistroEAO.setearConexion("sistemaacademico");
objEstadoGeneralEAO.setearConexion("sistemaacademico");
objEstadoProcesoEAO.setearConexion("sistemaacademico");
//Abre conexion
Session objSession = objRegistrosEAO.getSession();
objUtils.setProperties("/resources/mensajes.properties");
//Instancia clase Transaction
Transaction objTransaction = null;
System.out.println ("id de excepcion : "+vStrExcepcion+ "\n"+
"id de periodo : "+vStrPeriodo+ "\n"+
"id de paralelos : "+cmbParalelos+ "\n"+
"id de veces : "+cmbVeces+ "\n"+
"id de modalidad : "+cmbModalidades+ "\n"+
"id de Materia : "+lstMatInsc+ "\n"+
"id de jornada : "+cmbJornadas+ "\n"+
"id de solicitud : "+vSTrSolicitudes+ "\n"+
"Imagen MC : "+vByteImagen+ "\n"+
"id de carrera : "+vStrCarrera);
if ( cmbJornadas.equals("") ) {cmbJornadas=null;}
if ( vStrPeriodo.equals("") ) {vStrPeriodo=null;}
if ( cmbModalidades.equals("") ) {cmbModalidades=null;}
if ( cmbParalelos.equals("") ) {cmbParalelos=null;}
if ( lstMatDisp.equals("") ) {
113
idMateriaFinal=null;
}else{
idMateriaFinal=lstMatDisp;
}
if ( lstMatInsc.equals("") ) {
idMateriaFinal=null;
}else{
idMateriaFinal=lstMatInsc;
}
if ( vStrExcepcion.equals("") ) {vStrExcepcion=null;}
System.out.println ("\nid de excepcion : "+vStrExcepcion+ "\n"+
"id de periodo : "+vStrPeriodo+ "\n"+
"id de paralelos : "+cmbParalelos+ "\n"+
"id de veces : "+cmbVeces+ "\n"+
"id de modalidad : "+cmbModalidades+ "\n"+
"id de Materia : "+lstMatInsc+ "\n"+
"id de jornada : "+cmbJornadas+ "\n"+
"id de solicitud : "+vSTrSolicitudes+ "\n"+
"Imagen MC : "+vByteImagenByte+ "\n"+
"id de carrera : "+vStrCarrera);
try
{
String estadoGen=objEstadoGeneralEAO.getRegistroIdentificador("ACTIVO",
"nombre").getId();
//Activo
validaTramite=Integer.parseInt(objRegistrosEAO.validaTramite(vStrPersona,
vSTrSolicitudes,idMateriaFinal,estadoGen));
if(validaTramite == 0){
String id_Rtramite = objRegistrosEAO.getGenerateID();
int cod = Integer.parseInt(objRegistrosEAO.getSecuencia(vStrPersona));
cod++;
objProcesos.setId(objRegistrosEAO.getIdProceso(vSTrSolicitudes));
objEspTram.setId(vSTrSolicitudes);
//objCarrera.setId(vStrCarrera);
//objEstGeneral.setId("E2C80F95-D602-4954-9B00-A8332E001F95");//Activo
//objEstProceso.setId("E2C80F95-D602-4954-9B00-A8332E001F95");//Generado
objCertificadosR.setId(id_Rtramite);
objCertificadosR.setNumeroRegistro(cod);
objCertificadosR.setEspecificacionTramite(objEspTram);
objCertificadosR.setIdusuario(vStrPersona);
objCertificadosR.setIdCarrera(vStrCarrera);
objCertificadosR.setFechaCreacion(objUtils.getTodayTimestamp());
objCertificadosR.setProcesos(objProcesos);
objCertificadosR.setEstadoGeneral(objEstadoGeneralEAO.getRegistroIdentificador("ACTIVO", "nombre"));//Activo
objCertificadosR.setEstadoProceso(objEstadoProcesoEAO.getRegistroIdentificador("GENERADO",
"descripcion"));//Generado
System.out.println();
objDetalleRegistro.setJutificativo(vByteImagenByte);
objDetalleRegistro.setId(objRegistrosEAO.getGenerateID());
objDetalleRegistro.setRegistroTramites(objCertificadosR);//MCcr
objDetalleRegistro.setIdPeriodo(null);
objDetalleRegistro.setIdMateria(idMateriaFinal);
objDetalleRegistro.setIdParalelo(cmbParalelos);
objDetalleRegistro.setIdJornada(cmbJornadas);
objDetalleRegistro.setIdModalidad(cmbModalidades);
objDetalleRegistro.setIdExcepcion(vStrExcepcion);
if ( cmbVeces.equals("") ) {
System.out.println("No existe data de numero de veces");
}else{
objDetalleRegistro.setNumVeces(Integer.parseInt(cmbVeces));
}
//objDetalleRegistro.setVesAnterior(Integer.getInteger(cmbVeces));
//objDetalleRegistro.setDatoAnterior("");
114
//ejecuta insert
objRegistrosEAO.guardar(objCertificadosR);
objDetalleRegistroEAO.guardar(objDetalleRegistro);
objTransaction = objSession.beginTransaction();
objTransaction.commit();
objMsjGenerico.setvStrMessage(objUtils.getMessage("","fStrMessageOK"));
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty("fStrSUCCESS"));
}else{
objMsjGenerico.setvStrMessage("Ya realizo este tramite.");
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty("fStrERROR"));
}
}
catch(JDBCException objEx){
if (objTransaction != null) {
objTransaction.rollback();
}
String vStrError = "";
if (objEx.getErrorCode() == 2627) {
vStrError = objUtils.getMessage("", "fStrMessageErrorUNK");
}
objMsjGenerico.setvStrMessage(objUtils.getMessage("","fStrMessageErrorDatabase") + "---"
+ vStrError);
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty("fStrERROR"));
} finally {
//Cierra Conexion
objSession.close();
}
vStrResultado = new Gson().toJson(objMsjGenerico);
return vStrResultado;
}
/********************************************************************************************************
* Método
: GuardarCertificado.
* Acceso
: Publico.
* Descripción
: Guarda los Certificados a la base de datos, en las tablas RegistroTramites y DetalleRegistro
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
public String GuardarCertificado( String vStrPersona,
String vStrCarrera,
String vStrPeriodo,
String vSTrSolicitudes,
String vStrExcepcion, String cmbParalelos,
String cmbVeces, String cmbModalidades, String cmbJornadas, String email ) throws
ParseException {
Utils
objUtils
= new Utils();
RegistroTramites
objCertificadosR
= new RegistroTramites();
Procesos
objProcesos
= new Procesos();
EstadoGeneral
objEstGeneral
= new EstadoGeneral();
DetalleRegistro
objDetalleRegistro
= new DetalleRegistro();
EspecificacionTramite objEspTram
= new EspecificacionTramite();
CarreraImpl
objCarrera
= new CarreraImpl();
String
vStrResultado
= "";
int
validaCertificado
= 0;
//instancia EAO
RegistroTramitesEAO objRegistrosEAO
= new RegistroTramitesEAO();
DetalleRegistroEAO
objDetalleRegistroEAO
= new DetalleRegistroEAO();
ProcesosEAO
objProcesosEAO
= new
ProcesosEAO();
EstadoGeneralEAO
objEstadoGeneralEAO
= new
EstadoProcesoEAO
objEstadoProcesoEAO
= new
EstadoGeneralEAO();
EstadoProcesoEAO();
//Setea conexion
objRegistrosEAO.setearConexion("sistemaacademico");
objDetalleRegistroEAO.setearConexion("sistemaacademico");
115
objProcesosEAO.setearConexion("sistemaacademico");
objEstadoGeneralEAO.setearConexion("sistemaacademico");
objEstadoProcesoEAO.setearConexion("sistemaacademico");
//Abre conexion
Session objSession = objRegistrosEAO.getSession();
objUtils.setProperties("/resources/mensajes.properties");
//Instancia clase Transaction
Transaction objTransaction = null;
Transaction objTransaction2 = null;
if ( email.equals("") ) {email=null;}
try
{
String estadoGen=objEstadoGeneralEAO.getRegistroIdentificador("ACTIVO",
"nombre").getId();
//Activo
validaCertificado=Integer.parseInt(objRegistrosEAO.validaTramite(vStrPersona,
vSTrSolicitudes,null,estadoGen));
if(validaCertificado == 0){
String id_Rtramite = objRegistrosEAO.getGenerateID();
int cod = Integer.parseInt(objRegistrosEAO.getSecuencia(vStrPersona));
cod++;
//cod = objUtils.getDateNow("yyyyMMddHHmmss");
objProcesos.setId(objRegistrosEAO.getIdProceso(vSTrSolicitudes));
objEspTram.setId(vSTrSolicitudes);
//objCarrera.setId(vStrCarrera);
//objEstGeneral.setId("C03AB7DA-A408-4731-A28ACD0E5636A82D");//Generado
System.out.println("EstadoGenaral:
"+objEstadoGeneralEAO.getRegistroIdentificador("ACTIVO", "nombre").getId());
System.out.println("EstadoProceso:
"+objEstadoProcesoEAO.getRegistroIdentificador("GENERADO", "descripcion").getId());
objCertificadosR.setId(id_Rtramite);
objCertificadosR.setNumeroRegistro(cod);
objCertificadosR.setEspecificacionTramite(objEspTram);
objCertificadosR.setIdusuario(vStrPersona);
objCertificadosR.setIdCarrera(vStrCarrera);
objCertificadosR.setFechaCreacion(objUtils.getTodayTimestamp());
objCertificadosR.setProcesos(objProcesos);
objCertificadosR.setEstadoGeneral(objEstadoGeneralEAO.getRegistroIdentificador("ACTIVO", "nombre"));//Activo
objCertificadosR.setEstadoProceso(objEstadoProcesoEAO.getRegistroIdentificador("GENERADO",
"descripcion"));//Generado
objRegistrosEAO.guardar(objCertificadosR);
objTransaction = objSession.beginTransaction();
objTransaction.commit();
objDetalleRegistro.setId(objRegistrosEAO.getGenerateID());
objDetalleRegistro.setRegistroTramites(objCertificadosR);//MCcr
objDetalleRegistro.setEmail(email);
//ejecuta insert
objDetalleRegistroEAO.guardar(objDetalleRegistro);
objTransaction2 = objSession.beginTransaction();
objTransaction2.commit();
objMsjGenerico.setvStrMessage(objUtils.getMessage("","fStrMessageOK"));
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty("fStrSUCCESS"));
}else{
objMsjGenerico.setvStrMessage("Ya realizo este tramite.");
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty("fStrERROR"));
}
116
}
catch(JDBCException objEx){
if (objTransaction != null) {
objTransaction.rollback();
}
String vStrError = "";
if (objEx.getErrorCode() == 2627) {
vStrError = objUtils.getMessage("", "fStrMessageErrorUNK");
}
objMsjGenerico.setvStrMessage(objUtils.getMessage("","fStrMessageErrorDatabase") + "---"
+ vStrError);
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty("fStrERROR"));
} finally {
//Cierra Conexion
objSession.close();
}
vStrResultado = new Gson().toJson(objMsjGenerico);
return vStrResultado;
}
/********************************************************************************************************
* Método
: getJornadas.
* Acceso
: Publico.
* Descripción
: Obtiene de la base de datos las jornadas, y las retorna.
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
public String getJornadas(String vStrQuery, String vStrParametros,
boolean vBoolPaginador, String vIntMinimo, String vIntMaximo,
String vIntPagina, String vStrUsuario) {
String vStrResultado = "";
//DateFormat formato = new SimpleDateFormat("dd/mm/yyyy");
JornadaEAO objJornadaEAO = new JornadaEAO();
objJornadaEAO.setearConexion("sistemaacademico");
Session objSession = objJornadaEAO.getSession();
objSession.flush();
Utils objUtils = new Utils();
objUtils.setProperties("/resources/constants.properties");
ArrayList<ArrayList<String>> objContenido = new ArrayList<ArrayList<String>>();
try {
ArrayList<Object> vArrayParameters = objUtils.getArrayListObject(
vStrParametros,
objUtils.getObjProperties().getProperty(
"fStrSeparadorParametros"));
ListaGenerica objListaGenerica =
objJornadaEAO.getResultListCustomAcademico(vStrQuery, vArrayParameters,
vBoolPaginador, vIntMinimo, vIntMaximo,
vIntPagina);
ArrayList<String> arrayfilas = new ArrayList<String>();
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMaximo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMinimo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntPagina()));
arrayfilas.add(String.valueOf(objListaGenerica.getvNumPaginas()));
objContenido.add(arrayfilas);
ArrayList<Object> objArrayContenido = objListaGenerica.getArrayContenido();
for (Object object : objArrayContenido) {
arrayfilas = new ArrayList<String>();
Jornada objJornada = (Jornada) object;
arrayfilas.add(objJornada.getId());
arrayfilas.add(objJornada.getDescripcion());
objContenido.add(arrayfilas);
}
objUtils.setProperties("/resources/mensajes.properties");
objMsjGenerico.setvStrMessage(objUtils.getMessage("",
"fStrMessageOK"));
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty(
"fStrSUCCESS"));
117
} catch (Exception e) {
objMsjGenerico.setvStrMessage(objUtils.getMessage("",
"fStrMessageErrorDatabase")
+ "---"
+ e.getLocalizedMessage());
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty(
"fStrERROR"));
} finally {
objSession.close();
}
objMsjGenerico.setObjContenido(objContenido);
vStrResultado = new Gson().toJson(objMsjGenerico);
return vStrResultado;
}
/********************************************************************************************************
* Método
: getInscripcion.
* Acceso
: Publico.
* Descripción
: Obtiene de la base de datos la Inscripcion del usuario, y las retorna.
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
public String getInscripcion(String vStrQuery, String vStrParametros,boolean vBoolPaginador, String vIntMinimo,
String vIntMaximo,
String vIntPagina, String vStrUsuario)
{
String vStrResultado = "";
MatriculacionEAO objMatricEAO = new MatriculacionEAO();
objMatricEAO.setearConexion("sistemaacademico");
Session objSession = objMatricEAO.getSession();
objSession.flush();
Utils objUtils = new Utils();
objUtils.setProperties("/resources/constants.properties");
ArrayList<ArrayList<String>> objContenido = new ArrayList<ArrayList<String>>();
try {
ArrayList<Object> vArrayParameters = objUtils.getArrayListObject(
vStrParametros,
objUtils.getObjProperties().getProperty("fStrSeparadorParametros"));
ListaGenerica objListaGenerica = objMatricEAO.getResultListCustomAcademico(vStrQuery,
vArrayParameters,
vBoolPaginador, vIntMinimo, vIntMaximo,
vIntPagina);
ArrayList<String> arrayfilas = new ArrayList<String>();
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMaximo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMinimo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntPagina()));
arrayfilas.add(String.valueOf(objListaGenerica.getvNumPaginas()));
objContenido.add(arrayfilas);
ArrayList<Object> objArrayContenido = objListaGenerica.getArrayContenido();
for (Object object : objArrayContenido) {
arrayfilas = new ArrayList<String>();
//RegistroTramites objRegistros = (RegistroTramites) object;
Matriculacion objMatriculacion = (Matriculacion) object;
/*MateriaImpl objMateria = (MateriaImpl) object;
Paralelo objParalelo = (Paralelo) object;
objMateria.setId(objDetalleMatriculacion.getIdMateria());
objParalelo.setId(objDetalleMatriculacion.getIdParalelo());
*/
118
//System.out.println(objDetalleMatriculacion.getMatriculacion().getPeriodo().getPeriodoLectivo().toString());
//arrayfilas.add(objDetalleMatriculacion.getId());
arrayfilas.add(objMatriculacion.getId());
//arrayfilas.add(objMatriculacion.getPeriodo().getDescripcion());
arrayfilas.add(objMatricEAO.getCarrera(objMatriculacion.getIdCarrera().toString()));
arrayfilas.add(objMatricEAO.getPeriodoCiclo(objMatriculacion.getIdPeriodo()));
//arrayfilas.add(objMatriculacion.getPeriodo().getDescripcion());
arrayfilas.add(String.valueOf(objMatriculacion.getFechaCreacion()));
arrayfilas.add(objMatriculacion.getEstado());
//System.out.println("Periodo:"+objMatriculacion.getPeriodo().getId());
//
System.out.println("PeriodoId:"+objMatricEAO.getPeriodo(objMatriculacion.getPeriodo().getId()));
//arrayfilas.add("2015-2016");
//arrayfilas.add(objMatricEAO.getPeriodo(objMatriculacion.getId()));
objContenido.add(arrayfilas);
}
objUtils.setProperties("/resources/mensajes.properties");
objMsjGenerico.setvStrMessage(objUtils.getMessage("",
"fStrMessageOK"));
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty(
"fStrSUCCESS"));
} catch (Exception e) {
objMsjGenerico.setvStrMessage(objUtils.getMessage("",
"fStrMessageErrorDatabase")
+ "---"
+ e.getLocalizedMessage());
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty(
"fStrERROR"));
} finally {
objSession.close();
}
objMsjGenerico.setObjContenido(objContenido);
vStrResultado = new Gson().toJson(objMsjGenerico);
return vStrResultado;
}
/********************************************************************************************************
* Método
: getMatInsc.
* Acceso
: Publico.
* Descripción
: Obtiene de la base de datos la Materias inscritas del usuario, y las retorna.
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
public String getMatInsc(String vStrQuery, String vStrParametros,boolean vBoolPaginador, String vIntMinimo, String
vIntMaximo,
String vIntPagina, String vStrUsuario)
{
String vStrResultado = "";
DetalleMatriculacionEAO objDetMatricEAO = new DetalleMatriculacionEAO();
objDetMatricEAO.setearConexion("sistemaacademico");
Session objSession = objDetMatricEAO.getSession();
objSession.flush();
Utils objUtils = new Utils();
objUtils.setProperties("/resources/constants.properties");
ArrayList<ArrayList<String>> objContenido = new ArrayList<ArrayList<String>>();
try {
ArrayList<Object> vArrayParameters = objUtils.getArrayListObject(
vStrParametros,
objUtils.getObjProperties().getProperty("fStrSeparadorParametros"));
119
ListaGenerica objListaGenerica =
objDetMatricEAO.getResultListCustomAcademico(vStrQuery, vArrayParameters,
vBoolPaginador, vIntMinimo, vIntMaximo,
vIntPagina);
ArrayList<String> arrayfilas = new ArrayList<String>();
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMaximo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMinimo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntPagina()));
arrayfilas.add(String.valueOf(objListaGenerica.getvNumPaginas()));
objContenido.add(arrayfilas);
ArrayList<Object> objArrayContenido = objListaGenerica.getArrayContenido();
for (Object object : objArrayContenido) {
arrayfilas = new ArrayList<String>();
//RegistroTramites objRegistros = (RegistroTramites) object;
DetalleMatriculacion objDetalleMatriculacion = (DetalleMatriculacion) object;
/*MateriaImpl objMateria = (MateriaImpl) object;
Paralelo objParalelo = (Paralelo) object;
objMateria.setId(objDetalleMatriculacion.getIdMateria());
objParalelo.setId(objDetalleMatriculacion.getIdParalelo());
*/
//System.out.println(objDetalleMatriculacion.getMatriculacion().getPeriodo().getPeriodoLectivo().toStr ing());
//arrayfilas.add(objDetalleMatriculacion.getId());
arrayfilas.add(objDetalleMatriculacion.getIdBancoMateria().getId());
arrayfilas.add(objDetalleMatriculacion.getIdBancoMateria().getCodMateria());
arrayfilas.add(objDetalleMatriculacion.getIdBancoMateria().getNombreMateria());
//arrayfilas.add(objDetalleMatriculacion.getIdParalelo().getParaleloId());
//arrayfilas.add("PARALELO");
arrayfilas.add(objDetMatricEAO.getParalelo(objDetalleMatriculacion.getIdBancoMateria().getId()));
arrayfilas.add(String.valueOf(objDetalleMatriculacion.getNumeroVeces()));
//arrayfilas.add("JORNADA");
arrayfilas.add(objDetMatricEAO.getJornada(objDetalleMatriculacion.getIdBancoMateria().getId()));
//arrayfilas.add(objDetalleMatriculacion.getMatriculacion().getPeriodo().getPeriodoLectivo().toString());
//arrayfilas.add("2015-2016");
arrayfilas.add(objDetMatricEAO.getPeriodo(objDetalleMatriculacion.getId()));
arrayfilas.add("PRESENCIAL");
arrayfilas.add(objDetalleMatriculacion.getMatriculacion().getEstado());
/*
arrayfilas.add(objRegistros.getId());
arrayfilas.add(objRegistros.getNemonico());
arrayfilas.add(objRegistros.getIdEspecificacionTramite().getTipoTramite().getNombre());
arrayfilas.add(objRegistros.getIdEspecificacionTramite().getNombre());
arrayfilas.add(objRegistros.getIdCarrera().getNombre());
arrayfilas.add(objRegistros.getFechaCreacion().toString());
arrayfilas.add(objRegistros.getProcesos().getEstadoProceso().getDescripcion());*/
objContenido.add(arrayfilas);
}
objUtils.setProperties("/resources/mensajes.properties");
objMsjGenerico.setvStrMessage(objUtils.getMessage("",
"fStrMessageOK"));
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty(
"fStrSUCCESS"));
} catch (Exception e) {
120
objMsjGenerico.setvStrMessage(objUtils.getMessage("",
"fStrMessageErrorDatabase")
+ "---"
+ e.getLocalizedMessage());
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty(
"fStrERROR"));
} finally {
objSession.close();
}
objMsjGenerico.setObjContenido(objContenido);
vStrResultado = new Gson().toJson(objMsjGenerico);
return vStrResultado;
}
/********************************************************************************************************
* Método
: getParalelos.
* Acceso
: Publico.
* Descripción
: Obtiene de la base de datos los paralelos del usuario, y las retorna.
* Autor
: Marlon Israel Carangui Herrera
* Creación
: 10/05/2015
* ********************************************************************************************************/
public String getParalelos(String vStrQuery, String vStrParametros,boolean vBoolPaginador, String vIntMinimo,
String vIntMaximo,
String vIntPagina, String vStrUsuario)
{
String vStrResultado = "";
DetalleMatriculacionEAO objDetMatricEAO = new DetalleMatriculacionEAO();
objDetMatricEAO.setearConexion("sistemaacademico");
Session objSession = objDetMatricEAO.getSession();
objSession.flush();
Utils objUtils = new Utils();
objUtils.setProperties("/resources/constants.properties");
ArrayList<ArrayList<String>> objContenido = new ArrayList<ArrayList<String>>();
try {
/*
ArrayList<Object> vArrayParameters = objUtils.getArrayListObject(
vStrParametros,
objUtils.getObjProperties().getProperty("fStrSeparadorParametros"));
ListaGenerica objListaGenerica =
objDetMatricEAO.getResultListCustomAcademico(vStrQuery, vArrayParameters,
vBoolPaginador, vIntMinimo, vIntMaximo,
vIntPagina);
*/
ArrayList<String> arrayfilas = new ArrayList<String>();
/*
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMaximo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntMinimo()));
arrayfilas.add(String.valueOf(objListaGenerica.getvIntPagina()));
arrayfilas.add(String.valueOf(objListaGenerica.getvNumPaginas()));
objContenido.add(arrayfilas);
*/
//
ArrayList<Object> objArrayContenido = objListaGenerica.getArrayContenido();
ArrayList<String> objArrayContenido =
objDetMatricEAO.getCambioParalelo(vStrParametros);
System.out.println("Se encontraron: "+objArrayContenido);
for (String linea : objArrayContenido) {
arrayfilas = new ArrayList<String>();
for ( String campo: linea.split(";")){
System.out.println(campo);
arrayfilas.add(campo);
}
objContenido.add(arrayfilas);
121
}
objUtils.setProperties("/resources/mensajes.properties");
objMsjGenerico.setvStrMessage(objUtils.getMessage("",
"fStrMessageOK"));
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty(
"fStrSUCCESS"));
} catch (Exception e) {
objMsjGenerico.setvStrMessage(objUtils.getMessage("",
"fStrMessageErrorDatabase")
+ "---"
+ e.getLocalizedMessage());
objMsjGenerico.setvStrCode(objUtils.getObjProperties().getProperty(
"fStrERROR"));
} finally {
objSession.close();
}
objMsjGenerico.setObjContenido(objContenido);
vStrResultado = new Gson().toJson(objMsjGenerico);
return vStrResultado;
}
}
122
CAPÍTULO IV
MARCO ADMINISTRATIVO
CRONOGRAMA
Un Cronograma es una representación gráfica y ordenada con tal detalle para
que un conjunto de funciones y tareas se lleven a cabo en un tiempo estipulado
y bajo unas condiciones que garanticen la optimización del tiempo. Los
cronogramas son herramientas básicas de organización en un proyecto, en la
realización de una serie pasos para la culminación de tarea, son ideales para
eventos, son la base principal de ejecución de una producción organizada.
123
124
PRESUPUESTO
Cuadro 42. Presupuesto - Ingresos
INGRESOS
Financiamiento propio
$700,00
TOTAL DE INGRESO
$700,00
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
Detalle de egresos del proyecto
Cuadro 43. Presupuesto - Egresos
EGRESOS
DÓLARES
Suministros de oficina
$
Fotocopias
100.00
35.00
Folletos y Libros
150.00
Servicios de Internet
65.00
Transporte
50.00
Refrigerio
50.00
6 Anillados de tesis
50.00
4 Empastados de tesis
200.00
TOTAL
$
700.00
Elaboración: Marlon Carangui Herrera
Fuente: Marlon Carangui Herrera.
125
CAPÍTULO V
CONCLUSIONES Y RECOMENDACIONES
CONCLUSIONES
Con la ayuda de las metodologías de la investigación (Encuesta, Análisis
Estadístico, Mapa de procesos) aplicadas en este proyecto se determinó la
necesidad de implementar un nuevo módulo de ingreso de solicitudes, por la
deficiencia en el proceso actual que se realiza de manera manual, que genera
mucho tiempo para el estudiante poder realizar sus trámites en la universidad de
Guayaquil.
A través de la encuesta realizada a los estudiantes de las facultades de Ciencias
Matemáticas y Físicas, y Ciencias Administrativas, se concluyó que los
estudiantes necesitan de manera imperativa la creación de un proceso
automático que disminuya los tiempos de ingreso de solicitudes y certificados.
Se desarrolló el módulo de ingreso de solicitudes y certificados de manera
dinámica, con un workflow configurable de acuerdo a las decisiones tomadas por
las autoridades encargadas, evitando así un sistema que quede obsoleto en
años siguientes, y que se evite realizar modificaciones en su desarrollo para
cumplir con futuras decisiones.
126
Se desarrolló el módulo de trámites, (Solicitudes y Certificados) con una base de
datos bien estructurada que evitará perdida de datos, y mantendrá una
información veraz y actualizada, potenciada con el ORM Hibernate como motor
organizacional de persistencia de base de datos.
El desarrollo del módulo se realizó en java con el framework ZK, que se destaca
por su óptimo rendimiento transaccional y de aspecto fluido, integrando AJAX en
su desarrollo principal, para el diseño del módulo se incorpora el uso de CSS3
como estilo personalizado de los colores de la universidad de Guayaquil, y
usando el estándar de desarrollo MVC.
RECOMENDACIONES
Se recomienda al personal de pruebas, realizar las pruebas exhaustivas del
módulo de ingreso de solicitudes y Certificados para determinar su óptimo
funcionamiento y que cumplan con todas las funciones establecidas por el
personal de Casos de Uso.
Para versiones posteriores del módulo de ingreso de solicitudes y certificados se
recomienda tener sólidos conocimientos en Java, Framework ZK, SQL Server,
JavaScript, ORM Hibernate, HTML5 y CSS3 principalmente para poder realizar
cambios o agregar nuevas funciones según lo requieran las autoridades.
Documentar todos los cambios realizados en el módulo si así se lo requiriese,
teniendo de manera ordenada un control de cambios en el desarrollo, mediante
el versionamiento de código fuentes, evitando así degradar el código original con
código basura que pueda evitar el óptimo funcionamiento del módulo.
Integrar el módulo de ingreso de solicitudes y certificados con los demás
módulos del sistema académico de la Universidad de Guayaquil, y realizar
pruebas para posteriormente realizar su implementación en la Facultad de
Ciencias Matemáticas y Físicas, y la Facultad de Ciencias Administrativas.
127
REFERENCIAS BIBLIOGRÁFICAS
BIBLIOGRAFÍA
Facultad de Ciencias Administrativas. (2015). Recuperado el 05 de 05 de 2015,
de http://www.fca.ug.edu.ec/?page_id=61
Facultad de Ciencias Matemáticas y Físicas. (2015). Recuperado el 05 de 05 de
2015, de http://www.matematicas-ug.edu.ec/?page_id=117
Real Académia Española. (2015). Obtenido de Real Académia Española:
http://www.rae.es/
AIU. (2009). Atlantic International University. Obtenido de Atlantic International
University:
http://www.aiu.edu/cursos/probabilidad%20y%20estadistica%20i/temario.
html
Alicante. (2003 de 09 de 2003). (G. ISSI, Ed.) Recuperado el 2015 de 05 de 24,
de http://issi.dsic.upv.es/archives/f-1069167248521/actas.pdf
Álvarez, M. A. (18 de julio de 2001). desarrolloweb. Recuperado el 25 de 04 de
2015, de http://www.desarrolloweb.com/articulos/497.php
Alvarez, R. (01 de 01 de 2001). desarrolloweb. Recuperado el 26 de 04 de 2015,
de http://www.desarrolloweb.com/articulos/262.php
Alvarez, R. (01 de 01 de 2001). desarrolloweb. Recuperado el 26 de 04 de 2015,
de http://www.desarrolloweb.com/articulos/262.php
Babin, L. (2007). Introducción a Ajax. En L. Babin, Introducción a Ajax.
Barker, T. (1997). Doing Social Research (segunda ed.). McGraw.
Bell, D., & Parr, M. (2003). Java para estudiantes (Tercera ed.). México: Pearson
Educación.
Bernd, & Dutoit. (2002). Ingeniería del Software Orientado a Objetos. México:
Pearson Educación.
Boehm, B. (1978). Characteristics Of Software Quality. TRW Series Software
Technology.
Burnstein, I. (2002). Practical Software Testing. New York: Springer.
Caicedo, M. (2015). Estadistica Descriptiva. Mexico: Prentice Hall.
Chen, H., & Cheng, R. (2007). Ajax whithout JavaScript Framework.
128
Colomo, R. (2008). Ingeniería del Software II. España: Universidad Carlos III de
Madrid.
Dijkastra, E. (1970). The Univeristy of Texas at Austin, Segunda. Obtenido de
The
Univeristy
of
Texas
at
Austin:
http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD249.PDF
Eckstein, R. (marzo de 2007). Oracle. Recuperado el 04 de 2015, de
http://www.oracle.com/technetwork/articles/javase/index-142890.html
Esteban, M. O. (24 de ABRIL de 2012). http://repositorio.espe.edu.ec. Obtenido
de
http://repositorio.espe.edu.ec:
http://repositorio.espe.edu.ec/bitstream/21000/5250/1/T-ESPE033263.pdf
González, H. S. (22 de 04 de 2003). javahispano. Recuperado el 25 de 04 de
2015,
de
http://static1.1.sqspcdn.com/static/f/923743/14427535/1317484934257/M
anualHibernate.pdf?token=4qPlHyWxA5TET0jjWkSd82UaNWE%3D
Groussard, T. (2012). JAVA 7 Los fundamentos del lenguaje de java.
Guayaquil, U. d. (2015). Historia | Jurisprudencia. Recuperado el 26 de 04 de
2015, de http://www.fjcsp.ug.edu.ec/?page_id=13
Gutierrez Pulido, H., & De la Vara Salazar, R. (2009). Control Estadístico de
Calidad y Seis Sigma (Segunda ed.). México: McGraw Hill Educación.
Henderson, C. (1984). Estimation of variances and covariances under multiple
trait models. Dairy.
Hibernate. (2014). http://hibernate.org/. Recuperado el 25 de 04 de 2015, de
https://docs.jboss.org/hibernate/orm/3.5/reference/esES/html/architecture.html
Instituto Nacional de Estadística e Informática. (mayo de 2006). Glosario básico
de términos estadísticos. Recuperado el 28 de 04 de 2015, de
http://www.inei.gob.pe/media/MenuRecursivo/publicaciones_digitales/Est/
Lib0900/Libro.pdf
Jhonson, R., & Kuby, P. (2008). Estadística Elemental / Just the Essentials of
Elementary Statistics.
Jiantao, P. (1999). Brooklyn College. Obtenido de Brooklyn College:
http://www.sci.brooklyn.cuny.edu/~sklar/teaching/s08/cis20.2/papers/soft
ware-testing.pdf
129
Joskowicz, J. (02 de 10 de 2008). Recuperado el 01 de 06 de 2015, de
http://iie.fing.edu.uy/~josej/docs/XP%20-%20Jose%20Joskowicz.pdf
Kinnear, T., & Taylor, J. (1998). Investigación de Mercados. México: McGraw Hill.
Krall, C. (2012). aprenderaprogramar. Obtenido de aprenderaprogramar:
www.aprenderaprogramar.com
Lapuente, M. J. (12 de 08 de 2013). http://www.hipertexto.info. Recuperado el 26
de 04 de 2015, de http://www.hipertexto.info/documentos/serv_web.htm
Lessin, J. (06 de 11 de 2013). jorgelessin.com. Recuperado el 25 de 04 de 2015,
de http://jorgelessin.com/que-es-bootstrap-y-como-funciona-en-el-disenoweb/
López Torets, J. M. (2013). MTP. Obtenido de Software Quality Assurance:
http://www.mtp.es/noticias/264-los-cinco-grandes-errores-de-la-historiadel-software
Maceda, H. C. (2008 de Septiembre). humbertocervantes.net/. Recuperado el 26
de
04
de
2015,
de
http://www.humbertocervantes.net/cursos/ingsoft/PresentacionCurso.pdf
Méndez, E., Pérez, M., & Mendoza, L. (2007|). Laboratorio de Investigación en
Sistemas
de
Información.
Obtenido
de
http://www.lisi.usb.ve/publicaciones/13%20pruebas/pruebas_01.pdf
Méndez, G. (2008). Recuperado el 26 de 04 de
https://www.fdi.ucm.es/profesor/gmendez/docs/is0809/02ProcesoCicloDeVida.pdf
2015,
de
Microsoft. (2015). microsoft.com. Recuperado el 06 de 04 de 2015, de
https://www.microsoft.com/es-es/server-cloud/products/sql-server/
Morales, G. A. (Ed.). (2012). Recuperado el 28 de 04 de 2015, de
http://www.x.edu.uy/inet/EstadisticayProbabilidad.pdf
Murray R., S. (1977). Probabilidad y Estadística. México: McGraw Hill.
Myers, G. (1976). The Art of Software Testing. New York: John Wiley.
MYERS, G. (2004). The Art of Software Testing. Wiley.
Pressman, R. S. (2005). Ingeniería del Software un Enfoque Práctico (Sexta ed.).
Mc Graw Hill.
Project Management Institute. (2008). Fundamentos para la direccion de
Proyecto (4 ed.).
130
Rodríguez, L. (2007). "Probabilidad y Estadística Básica para Ingenieros".
Escuela Superior Politécnica del Litoral.
Sommerville, I. (2005). Ingeniería de Software. Madrid: Pearson Educacion.
sommerville, i. (2005). Ingeniería del Software (7 ed.). Madrid.
Tomcat, A. (2015). apachefoundation.wikispaces. Recuperado el 26 de 04 de
2015, de http://apachefoundation.wikispaces.com/Apache+Tomcat
Tomcat, A. (2015). tomcat.apache. Recuperado el 26 de 04 de 2015, de
http://tomcat.apache.org/
Triola, M. (2004). Estadística. México: Pearson.
UPEL. (1998). Trabajos de Grado, Maestrías o Tesis Doctorales. Caracas:
Universidad Pedagógica Experimental Libertador.
Uspenskiy, S. (2010). A Survey and Clasification of software testing tools.
LAPPEENRANTA UNIVERSITY OF TECHNOLOGY.
Walpole, R. (1999). Probabilidad y Estadística para Ingenieros (Sexta ed.).
México: Prentice Hall.
Walpole, R., & Myers, R. (2007). Probabilidad y Estadística para Ingeniería y
Ciencias (Octava ed.). Pearson, Prentice Hall.
WALPOLE, R., MYERS, R., MYERS, S., & YE, K. (2012). Probabilidad y
estadística para ingeniería y ciencias (9 ed.). México.
131
MANUAL TECNICO
1
ÍNDICE GENERAL
MANUAL TECNICO ................................................................................................ 1
CONFIGUACION DE HERRAMIENTAS DE DESARROLLO ................................ 6
DESCARGA Y CONFIGURACION DE ECLIPSE Y ZK ..................................... 6
CONFIGURACION ZK ........................................................................................ 9
INSTALACION DE ZK ....................................................................................... 10
DESCARGAR Y CONFIGURAR APACHE CXF .............................................. 13
DESCARGA DE APACHE TOMCAT Y CONFIGURACION DE SERVIDORES
WS Y WEB EN ECLIPSE ..................................................................................... 17
CREACION Y CONFIGURACION DE SERVERWEB...................................... 20
CREACION Y CONFIGURACION DE SERVERWS ........................................ 23
INSTALACION DE HIBERNATE PARA MAPEO DE BASE DE DATOS ............ 26
ABRIR PERSPECTIVA EN HIBERNATE ......................................................... 27
CONFIGURACION DE ARCHIVOS PARA MAPEO ........................................ 28
2
Indicé de Gráficos
Gráfico 1.- Pagina descarga Eclipse ...................................................................... 6
Gráfico 2.- Proceso descarga Eclipse .................................................................... 6
Gráfico 3.- Proceso de descargar y almacenaje de archivo eclipse ...................... 7
Gráfico 4.- Carpeta contenedora eclipse ................................................................ 7
Gráfico 5.- Ejecución de Eclipse ............................................................................. 8
Gráfico 6.- Pantalla principal Eclipse ...................................................................... 8
Gráfico 7.- Pagina web ZK ...................................................................................... 9
Gráfico 8.- registro Zk ............................................................................................. 9
Gráfico 9.- Ingreso a Eclipse Market Place .......................................................... 10
Gráfico 10.- Búsqueda de Zk Studio………………………………………………..10
Gráfico 11.- Confirmación de Instalación ............................................................. 11
Gráfico 12.- Página de Bienvenida de Zk ............................................................. 11
Gráfico 13.- Activación de Zk Studio .................................................................... 12
Gráfico 14.- Ingreso de usuario y contraseña ...................................................... 12
Gráfico 15.- Pagina Apache CXF ......................................................................... 13
Gráfico 16.- Pagina descarga Apache CXF ......................................................... 13
Gráfico 17.- Descarga y almacenamiento Apache CXF ...................................... 14
Gráfico 18.- Creación de Carpeta Apache CXF ................................................... 14
Gráfico 19.- Confuiguracion de Apache CXF ....................................................... 15
Gráfico 20.- Pasos de seleccion carpeta Apache CXF ........................................ 15
Gráfico 21.- Selección de opción Apache CXF .................................................... 16
Gráfico 22.- Pagina descargar Apache Tomcat ................................................... 17
Gráfico 23.- Archivo y carpeta descomprimida apache tomcat ........................... 17
Gráfico 24.- Creación de carpetas para servidores. ............................................ 18
3
Gráfico 25.- Carpetas de Servidores WEB y WS ................................................. 18
Gráfico 26.- cambio de perspectiva a servidores ................................................. 18
Gráfico 27.- Seleccion de Perspectiva Servers .................................................... 19
Gráfico 28.- Creación de Servidores .................................................................... 20
Gráfico 29.- Selección del tipo de Servidor .......................................................... 21
Gráfico 30.- Creación y selección de SERVERWEB ........................................... 22
Gráfico 31.- Configuración de servidor creado..................................................... 22
Gráfico 32.- Configuración y parametrización serverweb .................................... 23
Gráfico 33.- Pasos de Creacion y configuracion SERVERWS ............................ 24
Gráfico 34.-Configuración y parametrización SERVERWS ................................. 25
Gráfico 35.- Instalación mediante MarketPlace.................................................... 26
Gráfico 36.- Búsqueda de HIBERNATE ............................................................... 26
Gráfico 37.- Confirmación de Instalación ............................................................. 27
Gráfico 38.- Abrir perspectiva HIBERNATE ......................................................... 27
Gráfico 39.- Selección de perspectiva HIBERNATE ............................................ 28
Gráfico 40.- Selección de archivo de configuración ............................................. 28
Gráfico 41.- Selección de la ruta para guardar el archivo de configuración ........ 29
Gráfico 42.- Configuración de conexión a la Base de Datos ............................... 29
Gráfico 43.- configuración de Console Configuration .......................................... 30
Gráfico 44.- Console Configuration ...................................................................... 30
Gráfico 45.-Pre visualización de conexión a la Base ........................................... 31
Gráfico 46.- Configuración de Ingeniería Inversa ................................................ 31
Gráfico 47.- Selección de ruta y nombre de archivo Reverse Engineering ......... 32
Gráfico 48.- Selección de las tablas para el Mapeo............................................. 32
Gráfico 49.- Generación de código Hibernate ...................................................... 33
4
Gráfico 50.- Configuración para la generación de código. ................................... 33
Gráfico 51.- Selección de archivo reveng.xml ...................................................... 34
Gráfico 52.- Configuración de Exporters .............................................................. 35
Gráfico 53.- Generación de código Hibernate ...................................................... 35
Gráfico 54.- Verificación de Clases generadas .................................................... 36
5
CONFIGUACION DE HERRAMIENTAS DE DESARROLLO
DESCARGA Y CONFIGURACION DE ECLIPSE Y ZK
Vamos
a
la
página
de
descarga
de
Eclipse:
https://www.eclipse.org/downloads/
Gráfico 1.- Pagina descarga Eclipse
Elaboración: Marlon Carangui
Fuente: ww.eclipse.org
Seleccionamos la versión que necesitemos según la versión de Windows que
tengamos (32bit – 64bit).
Gráfico 2.- Proceso descarga Eclipse
6
Elaboración: Marlon Carangui
Fuente: ww.eclipse.org
Damos clic justo donde muestra la imagen.
Gráfico 3.- Proceso de descargar y almacenaje de archivo eclipse
Elaboración: Marlon Carangui
Fuente: ww.eclipse.org
Escogemos la opción guardar y damos click en aceptar.
Gráfico 4.- Carpeta contenedora eclipse
Elaboración: Marlon Carangui
Fuente: ww.eclipse.org
7
Una vez que este descargado completamente, creamos una carpeta llamada
eclipse, en la carpeta que creamos descomprimimos los que hemos descargado
y ejecutamos el archivo que dice eclipse.exe (para que el programa se ejecute
es necesario tener instalado el JDK-7)
Gráfico 5.- Ejecución de Eclipse
Elaboración: Álvaro Vizueta
Fuente: ww.eclipse.org
Al ejecutar la aplicación nos indicara en que carpeta se inicia la ejecución de la
aplicación, de ser el caso y así desearlo podemos cambiar la ruta de la carpeta
dando clic en el botón Browse.
Gráfico 6.- Pantalla principal Eclipse
Elaboración: Marlon Carangui
Fuente: ww.eclipse.org
8
Esta es la página principal de eclipse la primera vez que se inicia.
CONFIGURACION ZK
Ingresamos a la página de Zk: http://www.zkoss.org/ y damos clic en Register.
Gráfico 7.- Pagina web ZK
Elaboración: Marlon Carangui
Fuente: ww.zkoss.org
Para realizar las descargar necesarias y poder utilizar librerías en nuestro
proyecto debemos crear una cuenta y registrarnos.
Gráfico 8.- registro Zk
Elaboración: Marlon Carangui
Fuente: ww.zkoss.org
Una vez creado y registrado el usuario ejecutamos Eclipse.exe
9
INSTALACION DE ZK
Gráfico 9.- Ingreso a Eclipse Market Place
Elaboración: Marlon Carangui
Fuente: ww.zkoss.org
PASO 1: En la pantalla principal de eclipse seleccionamos: Help -> Eclipse
Marketplace
Gráfico 10.- Búsqueda de Zk Studio
Elaboración: Marlon Carangui
Fuente: ww.zkoss.org
PASO 2: Se abrirá una ventana de dialogo, en esta ventana tal como muestra la
imagen, en el cuadro de búsqueda (Find), escribimos la palabra Zk. A
10
continuación se presentara la opción de Zk Estudio, daremos clic en Install para
proceder a instalar este plugin.
Gráfico 11.- Confirmación de Instalación
Elaboración: Marlon Carangui
Fuente: ww.zkoss.org
PASO 3: Confirmamos la instalación, después de haberse realizado con éxito la
instalación, eclipse procederá a reiniciarse.
Gráfico 12.- Página de Bienvenida de Zk
Elaboración: Marlon Carangui
Fuente: ww.zkoss.org
11
Después que Eclipse se haya reiniciado, se mostrara la pantalla de bienvenida
de Zk.
Gráfico 13.- Activación de Zk Studio
Elaboración: Marlon Carangui
Fuente: ww.zkoss.org
PASO 4: En la pantalla principal de Eclipse damos clic en: Help -> Activate ZK
Studio.
Gráfico 14.- Ingreso de usuario y contraseña
Elaboración: Marlon Carangui
Fuente: ww.zkoss.org
12
PASO 5: En este cuadro de dialogo, ingresamos el usuario y contraseña con el
cual nos registramos en http: //www.zkoss.org/, damos clic en Activate,
después de activar podremos acceder de manera más fácil a contenido de Zk.
DESCARGAR Y CONFIGURAR APACHE CXF
Ingresamos a la página de Apache CXF: http://cxf.apache.org/
Gráfico 15.- Pagina Apache CXF
Elaboración: Marlon Carangui
Fuente: www.cxf.apache.org
Realizamos la descarga de Apache CXF, para eso damos clic en Download.
Gráfico 16.- Pagina descarga Apache CXF
Elaboración: Marlon Carangui
Fuente: www.cxf.apache.org
13
En esta página seleccionamos el paquete apache-cxf-2.7.16.zip.
Gráfico 17.- Descarga y almacenamiento Apache CXF
Elaboración: Marlon Carangui
Fuente: www.cxf.apache.org
En esta página, seleccionamos uno de los enlaces de descarga, posteriormente
aparecerá un cuadro de dialogo en donde seleccionamos Guardar y damos clic
en Aceptar.
Gráfico 18.- Creación de Carpeta Apache CXF
Elaboración: Marlon Carangui
Fuente: www.cxf.apache.org
Una vez descargado, descomprimimos el archivo donde encontraremos una
carpeta similar a la de la imagen, esto nos servirá para compilar los
WebServices.
14
Gráfico 19.- Confuiguracion de Apache CXF
Elaboración: Marlon Carangui
Fuente: www.cxf.apache.org
Damos clic en Window -> Preferences, aparecerá un cuadro de dialogo en el
cual iremos a Web Service - > CXF 2.x Preferences.
Gráfico 20.- Pasos de seleccion carpeta Apache CXF
2
1
3
4
Elaboración: Marlon Carangui
Fuente: www.cxf.apache.org
En el cuadro de dialogo de CXF 2.x Preferences damos clic en:
15
1. –Add
2. Browser
3. Buscamos la carpeta apache-cxf-2.7.16 que descomprimimos en un
paso anterior.
4. Seleccionamos la carpeta di damos clic en Aceptar.
Gráfico 21.- Selección de opción Apache CXF
2
1
3
Elaboración: Marlon Carangui
Fuente: www.cxf.apache.org
En este cuadro damos clic en Finish, en el cuadro de Preference,
seleccionamos la instalación de CXF que recién configuramos y damos clic en
OK.
16
DESCARGA DE APACHE TOMCAT Y CONFIGURACION DE
SERVIDORES WS Y WEB EN ECLIPSE
Ingresamos a la página de Apache Tomcat: http://tomcat.apache.org/
Gráfico 22.- Pagina descargar Apache Tomcat
1
3
4
2
Elaboración: Marlon Carangui
Fuente: www.tomcat.apache.org
En la parte de descarga seleccionamos Tomcat 7.0,
posteriormente
seleccionaremos la versión acorde a nuestro sistema operativo (32bit – 64bit),
aparecerá un cuadro de dialogo en donde escogeremos Guardar Archivo y
después Aceptar.
Descomprimimos el archivo que descargamos quedando una carpeta similar a la
que se muestra en la imagen.
Gráfico 23.- Archivo y carpeta descomprimida apache tomcat
Elaboración: Marlon Carangui
Fuente: www.cxf.apache.org
17
Después procedemos a copiar la carpeta que recién ha sido extraída, y pegarla
en la misma ubicación que la original.
Gráfico 24.- Creación de carpetas para servidores.
Elaboración: Marlon Carangui
Fuente: www.cxf.apache.org
Después de realizar esto procedemos a cambiar de nombre a las dos carpetas
que hemos creado.
Gráfico 25.- Carpetas de Servidores WEB y WS
Elaboración: Marlon Carangui
Fuente: www.cxf.apache.org
Una carpeta será renombrada como SERVERWEB y la otra como SERVERWS
Ahora procederemos a realizar lo siguiente:
Gráfico 26.- cambio de perspectiva a servidores
Elaboración: Marlon Carangui
Fuente: www.cxf.apache.org
18
En la pantalla principal de Eclipse damos clic en: Window -> Show view ->
Other
Gráfico 27.- Seleccion de Perspectiva Servers
1
2
3
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
En esta parte en el panel de búsqueda escribiremos servers, ahí aparecerá la
opción para visualizar los servidores que hay configurados, seleccionamos y
damos clic en Ok.
19
CREACION Y CONFIGURACION DE SERVERWEB
CREACION DE SERVERWEB
Gráfico 28.- Creación de Servidores
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
PASO 1: Seleccionamos la pestaña Servers, en un espacio en blanco de esta
pestaña damos clic derecho, aparecerá un menú donde escogeremos New ->
Servers
20
Gráfico 29.- Selección del tipo de Servidor
1
2
3
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
PASO 2: Aparecerá este cuadro de dialogo donde escogeremos:
1. Apache-> Tomcat v7.0 Server
2. Colocamos como Server Name : SERVERWEB
3. Damos clic en Next.
21
Gráfico 30.- Creación y selección de SERVERWEB
2
1
3
5
4
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
PASO 3: En esta pantalla realizamos lo siguiente:
1. Seleccionamos el JRE (jre7)
2. Damos clic en Browse
3. Buscamos en el directorio la carpeta que renombramos como
SERVERWEB, la seleccionamos dándole clic.
4. Damos clic en Aceptar.
5. Damos clic en Finish.
Gráfico 31.- Configuración de servidor creado
Dar
doble
clic
sobre
el
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
Ya está creado nuestro servidor WEB, dar doble clic sobre el servidor creado
para configurar las opciones
CONFIGURACIÓN DE SERVERWEB
22
Gráfico 32.- Configuración y parametrización serverweb
2
4
1
5
3
6
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
En esta pantalla realizaremos lo siguiente:
1. Seleccionar Use Tomcat installation
2. En la pestaña Timeouts, cambiar el tiempo de Start a 100.
3. En Deploy path cambiar el directorio dando clic en Browse.
4. Se abrirá una un cuadro de dialogo donde tendrá que buscar en el
directorio la carpeta SERVERWEB que creamos.
5. Dentro de la carpeta SERVERWEB buscamos y seleccionamos con un
clic la carpeta webapps.
6. Y por último damos clic en Aceptar.
Para guardar los cambios que hemos realizado basta con presionar Ctrl + S, o
en su defecto dar clic en la opción guardar que es el icono de un diskette
ubicado en la parte superior izquierda de Eclipse.
CREACION Y CONFIGURACION DE SERVERWS
CREACION DE SERVERWS
Haremos el mismo Paso 1 para la creación de SERVERWEB
23
Gráfico 33.- Pasos de Creacion y configuracion SERVERWS
2
3
1
4
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
Después realizamos lo siguiente:
1. Damos clic en Add.
2. En la ventana que se abre damos clic en Browse.
3. Buscamos y seleccionamos la carpeta SERVERWS y luego damos clic
en Aceptar y en Finish
4. Cambiamos el nombre de Server Name a SERVERWS y damos clic en
Finish
CONFIGURACIÓN DE SERVERWS
Se sigue el mismo orden con el que se configuro el SERVERWEB, pero con la
diferencia que todo lo que se hizo se trabaje en base a la carpeta SERVERWS
que se había creado anteriormente.
24
Gráfico 34.-Configuración y parametrización SERVERWS
NOTA
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
Nota: Al momento de realizar la configuración, tomar en cuenta que los puertos
de SERVERWEB y SERVERWS no se repitan, ya que esto ocasionaría
problemas al momento de ejecutar los servidores.
25
INSTALACION DE HIBERNATE PARA MAPEO DE BASE DE
DATOS
Gráfico 35.- Instalación mediante MarketPlace
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
PASO 1: En la pantalla principal de eclipse seleccionamos: Help -> Eclipse
Marketplace
Gráfico 36.- Búsqueda de HIBERNATE
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
26
PASO 2: Se abrirá una ventana de dialogo, en esta ventana tal como muestra la
imagen, en el cuadro de búsqueda (Find), escribimos la palabra HIBERNATE. A
continuación se presentara la opción de HEDL – HIBERNATE DEFINITION
LANGUAGE 2.2.1, daremos clic en Install para proceder a instalar este plugin.
Gráfico 37.- Confirmación de Instalación
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
PASO 3: En esta pantalla daremos clic en Confirmar para continuar con la
instalación. Después de que se haya instalado la aplicación Eclipse se reiniciara
para completar la actualización.
ABRIR PERSPECTIVA EN HIBERNATE
Gráfico 38.- Abrir perspectiva HIBERNATE
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
27
Para abrir la perspectiva realizamos lo siguiente: damos clic en Window ->
Open Perspective -> Other
Gráfico 39.- Selección de perspectiva HIBERNATE
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
En la ventana que nos aparece seleccionamos Hibernate.
CONFIGURACION DE ARCHIVOS PARA MAPEO DE BASE SQL-SERVER
Una vez ya instalado y seleccionada la perspectiva de Hibernate procedemos a
configurar los archivos necesarios para el mapeo de la base de datos. Se
procede a crear el archivo de configuración (cfg.xml), esto los podemos realizar
seleccionando en el menú de opciones: File ->New -> Hibernate Configuration
File (cfg.xml). Esto debe ser realizado en la perspectiva Hibernate
Gráfico 40.- Selección de archivo de configuración
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
28
Gráfico 41.- Selección de la ruta para guardar el archivo de configuración
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
En esta parte escogemos la ruta donde guardaremos el archivo de configuración,
y en esta misma pantalla le daremos el nombre con el que lo identificaremos
para nuestro proyecto. Después de eso daremos clic en Next
Gráfico 42.- Configuración de conexión a la Base de Datos
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
29
En esta parte seleccionaremos el tipo de Base de Datos, Driver Class,
Connection
Url, Default Schema, Username y Password para establecer la
conexión con la Base.
Ahora procederemos a crear el archivo de Consola, esto lo haremos desde el
menú: File -> New -> Hibernate Console configurtion.
Gráfico 43.- configuración de Console Configuration
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
En esta parte utilizaremos el archivo que creamos anteriormente.
Gráfico 44.- Console Configuration
1
2
2
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
30
Aquí seleccionamos en que paquete del proyecto guardaremos la configuración
(1), y en donde también seleccionaremos el archivo de configuración (cfg.xml)
que creamos en primera instancia (2).
Gráfico 45.-Pre visualización de conexión a la Base
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
En la perspectiva de Hibernate podremos verificar la conexión establecida con la
base, y así probar que esta haya sido realizada correctamente. Fig. 46
Gráfico 46.- Configuración de Ingeniería Inversa
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
31
Después de realizar esto, crearemos el archivo de ingeniería inversa, esto lo
podremos realizar desde el menú:
File-> New-> Hibernate
Reverse
Engineering File.
Gráfico 47.- Selección de ruta y nombre de archivo Reverse Engineering
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
Después de realizar esto daremos clic en Next.
Gráfico 48.- Selección de las tablas para el Mapeo
1
2
3
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
32
En esta pantalla seleccionaremos la configuración de consola que creamos
anteriormente (1).
Para enlistar las tablas que deseamos mapear damos clic en Refresh, después
de eso se mostraran las tablas de la Base de datos, según el esquema que
hayamos escogido, en esta parte podremos seleccionar las tablas que vamos a
mapear sombreando la tabla respectiva y dando clic en Include (2).
Después de seleccionar las tablas que necesitaremos daremos clic en Finish
(3).
Gráfico 49.- Generación de código Hibernate
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
Ya con el archivo de ingeniería inversa creado, procederemos a generar el
código respectivo de las tablas mapeadas.
Gráfico 50.- Configuración para la generación de código.
33
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
En esta pantalla daremos doble clic en Hibernate Code Generation, para
habilitar la configuración de la generación de código.
Gráfico 51.- Selección de archivo reveng.xml
1
2
4
3
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
En esta pantalla realizaremos lo siguiente:
1. Configuración de Consola ya creada.
2. Seleccionamos Reverse engineer from JDBC Connection.
3. Presionamos
en
Setup
para
seleccionar
el
archivo
reveng
correspondiente.
4. En esta pantalla seleccionaremos el archivo reveng y damos clic en ok.
34
Gráfico 52.- Configuración de Exporters
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
En la pestaña Exporters, seleccionaremos Domain code (.java), Después de
eso ingresaremos el nombre del paquete que deseamos para el proyecto,
aplicamos los cambios y daremos clic en Run para generar los archivos de
mapeo de la base de datos.
Gráfico 53.- Generación de código Hibernate
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
35
Gráfico 54.- Verificación de Clases generadas
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
Cambiando de perspectiva y abriendo el explorador de proyecto, podremos
verificar en la ruta que seleccionamos los archivos de mapeo generados.
36
Crecimiento de la base de datos
Según el levantamiento de información realizado en la carrera de Ingeniería en
Sistemas y Networking, se obtuvo los siguientes datos acerca del ingreso de
trámites:
INGRESO DE TRAMITES
MENSUAL
SOLICITUDES
141
30%
CERTIFICADOS
329
70%
TOTAL
470
100%
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
Lo que nos indica que mensualmente los estudiantes realizan 470 tramites
aproximadamente, de los cuales el 30% son solicitudes, y el 70% son
certificados.
Gráfico 55.- Tramites Ingresados Mensualmente
Tramites Ingresados Mensualmente
SOLICITUDES
CERTIFICADOS
30%
70%
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
37
Analizando la base de datos propuesta se obtuvieron los siguientes resultados:
TAMAÑO POR CERTIFICADO
Ingreso
2000 bytes
Procesamiento
3000 bytes
TOTAL
5000 bytes
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
TAMAÑO POR SOLICITUD
Ingreso
2000
Imagen o Pdf
700000
Procesamiento
3000
TOTAL
705000
bytes
bytes
bytes
bytes
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
Para las solicitudes se tomó en cuenta el ingreso de imágenes de máximo
700kb.
Teniendo esta información se pudo obtener un estimado del crecimiento de la
base de datos al mes:
TAMAÑO MENSUAL
TRAMITE
TOTAL
SOLICITUDES
99405000
CERTIFICADOS
1645000
TOTAL
101050000
TOTAL EN MB
96,37
bytes
bytes
bytes
bytes
MB
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
38
Lo que nos indica que el 98% del tamaño en base al mes corresponde a las
solicitudes y el 2% a certificados.
Gráfico 56.- Tamaño Mensual de Trámites
TAMAÑO MENSUAL DE TRAMITES
CERTIFICADOS
2%
SOLICITUDES
98%
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
Anualmente se ingresan 5640 trámites aproximadamente.
TRAMITES
ANUAL
SOLICITUDES
CERTIFICADOS
TOTAL
1692 30%
3948 70%
5640 100%
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
39
Calculando el tamaño al año del módulo de trámites se obtuvo la siguiente
información:
TAMAÑO ANUAL
TRAMITE
SOLICITUDES
CERTIFICADOS
TOTAL
TOTAL
TOTAL
1192860000
19740000
1212600000
1,13
bytes
bytes
bytes
bytes
GB
Elaboración: Marlon Carangui
Fuente: Marlon Carangui
En total al año el módulo de tramites genera un tamaño de 1.13 GB
aproximadamente, lo que indica que el modulo no genera demasiado
requerimiento de disco duro en los servidores anualmente.
40
Descargar