miércoles, 18 de mayo de 2016

Creación de la Página Web

El día de hoy se lleva a cabo la creación de la página web, donde se diseñan todas las ventanas, sus relaciones, algunas clases, las master page, entre otros componentes necesarios para la misma.
Con el fin de ilustrar los diferentes elementos que la conforman, se presenta a continuación una imagen con los mismos:

Componentes de la Página WEB

Por otro lado pero no menos importante, se insertan todos los controles de la parte gráfica que van a ser necesarios para la implementación del sistema de vacaciones. Para ilustrar las diferentes "pestañas" que conforman el sitio, se mostrarán las siguientes imágenes:

Ventana Login (Principal)

En la imagen previa se ilustra la ventana principal, donde el usuario puede ingresar su cuenta(de administrador, empleado o jefe) y con ello ingresar al sistema, donde dependiendo del tipo de empleado que sea el usuario, este será redireccionado a una serie de pestañas, las cuales son relacionadas al grado de jerarquía que el user tenga..

Ventana Autores
Como su nombre lo dice, esta ventana es la encargada de mostrar la respectiva información de los autores, esto con el fin de brindar cualquier tipo de ayuda al lector y usuario de la aplicación..

Ventana Jefe
La ventana jefe es la encargada de realizar la aprobación y rechazo de solicitudes de vacaciones, por ende en la misma se deberá mostrar un gridview("tabla") con todas las solicitudes pendientes de ser tramitadas. Cabe resaltar que a este sitio sólo podrá ser accedido si el usuario de la aplicación es un jefe.

Ventana Empleado
En esta sección es donde el empleado común puede llevar a cabo la petición de solicitudes de vacaciones, desde una fecha de inicio a una fecha fin.

Ventana Ingreso Manual
de Movimientos #1
Ventana Ingreso Manual
de Movimientos #2
Esta sección es la encargada de llevar a cabo el ingreso manual de movimientos sobre un usuario o empleado.
Consulta de Créditos
Consulta de Débitos

Estas dos pestañas presentadas anteriormente son las encargadas de mostrar y filtrar todos aquellos empleados que han recibido crédito o débito de vacaciones en una fecha determinada..

Consulta de Costos
La diapositiva anterior es la que ilustra la ventana de consulta de costos, donde se deberán cargarse todos los empleados que recibieron un disfrute de vacaciones entre fechaInicio y fechaFin, y por cada uno de estos se deberá sacar un costo de las vacaciones recibidas y por último un promedio de días y del costo total

Consulta de Procesos
Masivos
Por último se encuentra el diseño de la ventana de consulta para los procesos masivos, donde se deberán mostrar todos, con el estado en que terminaron, la fecha en que se ejecutaron y el ID de c/u.


Tiempo Invertido en este avance:
10 horas, aproximadamente 3,33 / Integrante


martes, 17 de mayo de 2016

Investigación XML, XLS y SQL

XML

Para la creación de los datos de prueba que se requiere entregar a todo el grupo de trabajo, se pretendía utilizar archivos xml para la insercion masiva de datos a la base.

Se investigó del tema y se realizaron documentos de prueba durante 1 hora y 30 mins. Pero se llega a la conclusión de que los xml tienen mayor complejidad de realizar que un script de sql para insercion de datos. Además el proceso de ejecutar la inserción es más prolongado.

XLS

Se procedió posteriormente a realizar investigación y pruebas con el formato de Excel, xls. Durante 1 hora 15 mins, se hacen pruebas e investigación. Pero la importación de los datos desde una hoja de excel parece producir muchos errores y no se logra agregar datos a una tabla ya existente.

El error obtenido no resuelto fue:
"MS Jet OLEDB 4.0 cannot be used for distributed queries because the provider is used to run in apartment mode."

Otros errores obtenidos pero resueltos fueron:
"Cannot create an instance of OLE DB provider "MICROSOFT.ACE.OLEDB.12.0" for linked server "(null)"

SQL

En conclusión se decide utilizar un query de SQL, para la inserción masiva de solicitudes aprobadas en la base de datos.

domingo, 15 de mayo de 2016

Creación de Procedimientos Almacenados

Se crearon algunos de los procedimientos almacenados que se deducen de la especificación del proyecto enviado por el profesor. Entre ellos:


  • SP ComprobarLogin
    • Comprueba si el usuario en sesión existe dentro del sistema. Retorna 0 si no es así. O el ID del username ingresado si existiese.
  • SP InsertMov
    • Inserta un movimiento único. Actualiza el saldo del empleado. Se cerciora de que el movimiento sea válido. Inserta en tabla debito si es necesario. Retorna -1 en caso de movimiento invalido.
  • SP GetAllEmployees
    • Retorna el listado de empleados.
  • SP InsertSolicitud
    • Lee el saldo de dias vacacionales del empleado. Inserta la solicitud del empleado para vacaciones.
  • SP UpdateSolicitud
    • Lee el empleado asociado a la solicitud. Lee el saldo de este empleado. Lee el monto de la solicitud. Si la solicitud es valida, le cambia el estado a 'Aprobada' y retorna 1. Si es invalida retorna -1.
Para la creacion de los procedimientos almacenados, se tuvo que hacer investigación sobre la comparacion de diferencia de dias entre fechas. 
Se adjunta un codigo de ejemplo de los resultados encontrados: 

DECLARE @fecha1 DATETIME
DECLARE @fecha2 DATETIME
SELECT @fecha1 = MIN(fecha) FROM dbo.fechas
SELECT @fecha2 = MAX(fecha) FROM dbo.fechas
print DATEDIFF(day, @fecha1, @fecha2)

Tiempo utilizado para la creacion de procedimientos junto con la investigacion: 3 horas. 

sábado, 14 de mayo de 2016

Tabla de Historial de Procesos Masivos

Se agregó al modelo de bases la tabla que lleva el control de los procesos de actualización masivos que se realizan por día.

Aún no se define con certeza si la tabla debe ir relacionada a la tabla de movimientos.



Segmento de creación de la tabla mencionada.


Tomando en cuenta la discusión acerca de la necesidad o no de relacionar la tabla, el tiempo aproximado fue de 30 mins en esta tarea.

Creación de la Base de Datos

Realización del Script para la creación de la base de datos, con sus respectivas tablas.

Se tomó en cuenta el diagrama:

 

Luego, el script de creación de las tablas se define de la siguiente manera:

Definir la base a usar. Tabla Empleados:


Tablas de Jefes y Solicitudes


Tablas de Movimientos y Tipos de Movimientos


Tablas de Emails y Debitos


Con las tablas creadas se procede a crear las relaciones entre tablas o llaves foráneas. Con el script siguiente:



En la realización de la base de datos y la creación de esta entrada se necesitó aproximadamente 1:45 mins. 

El modelo actual es solo la base, se necesita agregar una tabla mas para el control de la ejecución del los procesos masivos.