Ir al contenido principal

Proyecto:

Cantidad de horas trabajadas:
  • Oswaldo: 26
  • Jenaro: 26

Debido a la elaboración de la primera tarea programada podemos concluir que:
  • Se tiene un mejor conocimiento y una mejor practica en la elaboración de una base de datos
  • Aprendimos sobre leer archivos XML en SQL Server y como añadir los datos del XML a las tablas respectivas de la base de datos, sobre como modificar estos archivos, y como "jugar" con estos
  • Se instruyo  la elaboración de una pagina web utilizando HTML y Python, usando la librería de Flask y el framework de Bootstrap y conectar la pagina web con la base de datos para poder añadir, editar, buscar y eliminar datos en la página web y que estos procesos se reflejen en la base de datos

Análisis de resultados:
  • En general nos sentimos bastante orgullosos del trabajo realizado, tanto en la pagina como en la base de datos implementamos todas las funcionalidadeey dado el tiempo, el estres de semana 11 y 12, y los cambios repentinos que habian en los requerimientos, considero que esto es una gran asaña, el programa final se ve bastante profesional visualmente, el conocimiento obtenido al hacer el proyecto es bastante amplio, y si bien al principio nos sentíamos abrumados por la cantidad de cosas que había que aprender, una vez terminados hay un sentimiento de satisfacción muy grande
Estadisticas y github:

 

-----------------------------------------------------------------------------------------------------------


Esta sera la entrada final, se hablara sobre lo que se hizo, no hubo tantas entradas por que nuestra prioridad fue tener un proyecto mínimamente presentable para la fecha de entrega

En lo que más trabajamos durante todos estos días fue en los movimientos que se hacen desde el xml, corrigiendo diversos errores de calculo que hubiera por el camino, y además teniendo que ir adaptando el sistema cada vez que se cambiaba el formato del xml.

Uno de los principales problemas que tuvimos fue el tener que cambiar gran parte de nuestro sistema, pues originalmente usabamos trigger para muchas operacines, peor luego de que el profesor dijera que esa no era la manera adecuada, debimos empezar a modificar todo a contra reloj.


Respecto a la carga del sql de forma dinámica, debido a que el query tarda su tiempo en ejecutarse, era ideal el colocar una pantalla de carga, para así evitar que el usuario cambie de pagina en media ejecución y provoque errores al pedir por ejemplo los empleados al mismo tiempo que estos se insertan, para esto se investigó respecto a si la libreria que usabamos en python para comunicarnos con la BD, nos permitia saber si el SP que llamamos habia sido ejecutado o no, luego de varias horas de investigacion  no se encontró solucion a este problema, por lo que se decidió simplificar las cosas y usar un timer de 2 minutos, para así tener un buen margen de error al ejecutar el stored procedure

Además, se pensó insertar un miniuego en la pantalla de cargs, para no hacer la espera tan pezada, originalmente se queria usar un juego que habia creado Oswaldo, pero debido a que este era en html5, y usaba varios archivos, su implementacion dentro de la pagina no se puedo completar, por lo que se usó un juego de snake que encontramos aquí: Repositorio del juego


Otro error que tuvimos en el camino fue que los salarios neot no se estaban calculando corectamente, debido a la falta de tiempo se hizo un SP cuya unica funcion es remplazar el salario neo por ser  (salario bruto - deducciones), este luce de la siguiente forma:

ALTER PROCEDURE [dbo].[SETNETO]
AS
    declare @cntx int
    declare @cntrendx int

    set @cntx = 1;
    select @cntrendx = COUNT(0from dbo.PlanillaXSemanaXEmpleado;

    while @cntx <= @cntrendx
    begin
        UPDATE dbo.PlanillaXSemanaXEmpleado
        SET SalarioNeto = (
                 SalarioBruto - TotalDeducciones
                 )
        WHERE ID = @cntx
        
        set @cntx = @cntx +1
    end

    set @cntx = 1;
    select @cntrendx = COUNT(0from dbo.PlanillaXMesXEmpleado;

    while @cntx <= @cntrendx
    begin
        UPDATE dbo.PlanillaXMesXEmpleado
        SET SalarioNeto = (
                 SalarioBruto - TotalDeducciones
                 )
        WHERE ID = @cntx
        
        set @cntx = @cntx +1
    end



Con total seguridad podemos decir que 

15 de mayo: Se trabajo en la inserción de nuevos empleados en la base de datos, al principio solo ingresaba los nuevos empleados en el momento de ver la operación en el XML, no tomaba en cuenta si era fin de semana o no.

16 de mayo: Se modificaron las tablas de Feriados y Usuarios y se implemento la operación de eliminar empleados.

17 de mayo: Se agrego la operación de añadir Jornadas y se empezó y finalizo asociar y desasociar deducción a empleado según en el momento que se lee en el XML.

18 de mayo: Se finalizo el procedimiento de marca asistencia, sin embargo lo único que hacia era calcular horas y el pago, luego nos reunimos para planear como realizar los movimientos. La decisión tomada en esos momentos fue un trigger. Además nos dimos cuenta que teníamos una fuga de memoria, la cual solucionamos.

19 de mayo: Se implemento un trigger que introdujera datos en movimiento plantilla y en movimiento hora y se procedió a arreglar el trigger de asociar empleado con la deducción obligatoria.

20 de mayo: Se termino el trigger que se activaba con Marca Asistencia  y se empezó con el trigger de los movimientos de las deducciones.

21 de mayo : El profe dijo en clase que no era una buena practica hacer los movimientos con un trigger por lo que se procedió a transcribir todo el trigger en un SP.

22 de mayo: Se modificaron los SP, se utilizaron 2 SP para ingresar marca asistencia y las deducciones a movimiento planilla y se creo un SP que se encarga de elaborar eso movimientos a la planilla del mes y la de semana.

23 de mayo: Se conecto de cierta forma la BD con la página además se creo un SP que ingresa datos en la tabla DeduccionesXMesXEmpleado y se agrego a marca asistencia el proceso de calcular horas extra y su pago correspondiente.

24 de mayo: Se logran introducir datos en las ultimas dos tablas que faltaban las cuales eran MovimientoDeducciones y Movimiento Horas. 

    




Autoevaluacion:


Documentación

Explicamos bastante bien las dificultades y cómo las resolvimos

Crear BD

La BD se crea de manera correcta, siguiendo las recomendaciones del profesor

Migración datos básicos

Los catálogos se cargan correctamente

Trigger

EL trigger funciona correctamente

Cargar XML

La carga del XML funciona correctamente, siguiendo buenas prácticas. se usa sql dinámico y en la página web se implementa una pantalla de carga, el tiempo de operacion aproxima en 1:20

      Agregar Empleado

La agregación de empleados funciona correctamente

      Eliminar Empleado

Eliminar empleado funciona correctamente

      Asociar Deducciones

La asociación y cálculo de deducciones funciona correctamente

      Desasociar Deducciones

El desasociar deducciones funciona correctamente

      Procesar Asistencias

El cargar las marcas de asistencia funciona correctamente

      Hacer cierre y apertura de mes

Funciona bien con algunos errores de cálculo

      hacer cierre y apertura de semana

Funciona bien con algunos errores de cálculo

Listar últimas 15 planillas

La lista de las últimas 15 semanas funciona correctamente

Detalle deducciones

ver el detalle funciona correctamente, se usa javascript para mostrar dinámicamente

Detalle salario bruto

los detalles del salario bruto se muestran correctamente,se usa javascript para mostrar dinámicamente


Lista de pushes hechos al repositorio:



Otros graficos repositorio:












Comentarios

Entradas populares de este blog

TAREA 3

Cantidad de horas trabajadas: Oswaldo: 26 Jenaro: 26 Debido a la elaboración de la tercera tarea programada podemos concluir que: Se tiene un mejor conocimiento y una mejor practica en la elaboración de una base de datos Aprendimos sobre leer archivos XML en SQL Server y como añadir los datos del XML a las tablas respectivas de la base de datos, sobre como modificar estos archivos, y como "jugar" con estos Se instruyo  la elaboración de una pagina web utilizando HTML y Python, usando la librería de Flask y el framework de Bootstrap y conectar la pagina web con la base de datos para poder añadir, editar, buscar y eliminar datos en la página web y que estos procesos se reflejen en la base de datos Se tiene un mejor conocimiento en la creación de vistas, manejo de errores y uso de transacciones Análisis de resultados: En general nos sentimos bastante orgullosos del trabajo realizado, tanto en la pagina como en la base de datos implementamos todas las funcionalidades, el programa...

Casi Finalización de la Pagina Web y Placeholders para Conexión con la BD

Esta ultima semana fue dedicada a la casi completa finalización de la pagina web del sistema de administración, todas las partes que faltaban de implementar están listas, además se realizo una conexión con la parte de datos de forma provisional, a continuación se hace un resumen de lo realizado: La opción de listar empleados  fue mejorada con iconos para editar y eliminar, aunque de momento debido al no tener una BD real estos no hacen nada. Edición de empleado y puesto fue mejorada drásticamente, con sus datos tomados de un catalogo y siendo mostrados en forma de drop menu, además la inserción de la fecha de nacimiento se hace mediante un calendario, por lo que de esta forma es imposible que se inserten datos no validos o en el formato incorrecto. Respecto a lo que mencioné anteriormente de los iconos de editar y borrar, hay una implementación básica realizada: En la lista de puestos si se seleccionan estos iconos, nos en...

Últimos 2 días de trabajo

Los últimos 2 días de trabajo, correspondientes al jueves 15 y viernes 16, fueron los días mas productivos que hemos tenido. La pagina web fue finalizada su totalidad, esto correspone a cambios esteticos minimos y la creacion de un menú de ajustes, se creó la BD con sus respectivas tablas, y se hicieron los stored procedures para conectar todo, además se finalizó el parseo de los archivos xml. Respecto a la creación de los procedures para hacer los CRUD, no hubo muchas complicaciones, como ya antes habíamos hecho pruebas con una Bd de prueba, crear las versiones finales de los procedures se redujo a simplemente crearlos siguiendo la plantilla dada por el profesor, e ir modificándolos según cada tabla. se puede ver nuestro repositorio de GitHub para notar que prácticamente ya son creadas en sus versiones finales, y son modificadas solo para hacer correcciones menores. La lectura de los xml si tuvo varios problemas, si bien la version creada pot el compañero era perfectamente funcional, ...