miércoles, 27 de noviembre de 2019

Análisis de resultados

Horas trabajadas:
Anthony: 6 horas
Carlos: 10 horas
Total: 15 horas

Para ejecutar la simulación se utilizó un año de datos, debido al tiempo que estos tardan en cargar, una año tarda aproximadamente 5 horas, como se muestra en la imagen.
Se intentó reducir el tiempo de ejecución cambiando algunos procesos masivos a iterativos pero no hubo cambio alguno al hacer esto.

-Diseño de la BD.
Ese es el diagrama utilizado para montar la BD, sin embargo no el diseño final ya que la BD sufrió cambios, pero debido a que no encontramos como solucionar el problema de que el Management Studio se cierra cuando se intenta abrir el diagrama, no podemos adjuntar la ultima versión.

-Carga de datos básicos
La carga de datos funciona sin ningún problema ya que los scripts son prácticamente iguales a los del primer proyecto, excepto que esta vez los XML tenían parámetros pero esto se explica más a fondo en el post de Scripts de datos básicos.

-Cálculo de aguinaldo
No se detectó ningún problema con el SP para el cálculo de los aguinaldos, la mayor dificultad de este SP fue excluir diciembre del año actual y cambiarlo por diciembre del año anterior ya que el aguinaldo se calculaba de diciembre a noviembre.

-Planilla semanal y Planilla mensual
Ambas planillas se generan de manera exitosa, sin embargo el principio las planillas mensuales tenían salarios exagerados que rodaban los billones, luego de revisar el cálculo de estos se logró solucionar el problema.

-Carga de asistencia y aplicación de movimientos por horas trabajadas
Las horas trabajas no se pudieron ingresar hora por hora sino que se registra en una fila el monto total de las horas ordinarias y en otra fila el monto de horas extra del día.
Aparte de lo anterior mencionado no se detectó ningún otro problema.

-Carga de empleados y deducciones
Los empleados se cargan correctamente y las deducciones se aplican sin problema.

martes, 26 de noviembre de 2019

SP aguinaldo

Horas: 10:00 am a 11:00 am- 2:00 pm a 3:00 pm

-Creación del SP para el cálculo de aguinaldos.

El SP recibe como parámetro el año del cual se quieren calcular los aguinaldos, se creó también otro SP que calcula el aguinaldo de un empleado en especifico en un determinado año. Para hacer el cálculo el SP recorre cada uno de los empleados y hace la suma del salario neto de la planilla mensual a la cual el año de la fecha de dicha planilla corresponda al año que se ingresó como parámetro, dado que el aguinaldo se calcula de diciembre del año anterior hasta noviembre del año actual, busca si existe una planilla de diciembre del año actual y se lo resta al monto, luego vuelve a buscar la planilla de diciembre pero del año anterior y se al suma al monto en caso de que exista. Una vez sumadas las planillas mensuales se divide entre 12 y se inserta en la tabla de aguinaldos.

- Creación de datos para probar el SP.
Para probar el SP tuve que insertar al menos 12 plantillas mensuales para un empleado, agregué otra planilla mensual pero con otro id de empleado para comprobar que solo tomaba las planillas del empleado deseado y una plantilla del año anterior para comprobar que buscaba el año anterior de forma correcta.

Se adjunta una imagen con el código de dicho SP.



Fuentes:
https://es.stackoverflow.com/questions/160402/modificar-una-fecha-en-sql-server
https://social.msdn.microsoft.com/Forums/es-ES/2fbd2745-e30f-45e1-a7f2-4d795e32609c/cambiar-solo-dia-mes-y-ao-de-una-fecha-tipo-datetime?forum=sqlserveres

sábado, 23 de noviembre de 2019

Simulacion

23/11 Tiempo: 4:20 - 6:22

Empecé a trabajar en el script de simulación pero no lo terminé todavía. Hice lo mismo que en el proyecto pasado: cargar todas las fechas de operación en una tabla temporal para luego iterar sobre todas las fechas y realizar las operaciones correspondientes. Además de esto, incluí los scripts para extraer los datos básicos que vienen en el XML de simulacion: nuevos empleados, deducciones, asistencias y los cambios de jornada, que era muy parecido también al proyecto pasado, utilizando el formato que nos envió el profe para cargar datos desde un XML. Todavía no hice ningún cálculo, solo carga esos datos en sus respectivas tablas. Falta calcular las planillas semanales y mensuales, y los aguinaldos

24/11 Tiempo: 18:30 - 21:05

Seguí trabajando en el script de simulación, esta vez realizando la parte de las plantillas semanales. Tuve problemas a la hora de realizar el cálculo del salario semanal ya que no sabía bien como sacar las horas ordinarias y las extras. Al final lo que hice fue calcular el total de horas trabajadas ese día y a eso restarle las horas extra, que la calculé restando la hora de inicio de la jornada menos la de la asistencia, y la de fin de la asistencia menos la de la jornada. Después de esto, me bloquee por bastante tiempo porque habían atributos que eran id pero yo pensaba que eran docId's o nombre, algo muy trivial pero que me costó bastante tiempo. Luego solo saqué los movimientos planilla de la semana que cree al insertar cada asistencia, ingresando el salario de ese empleado ese día, y los sumé, guardándolos en la tabla de planillas semanales. Ahora solo falta realizar el cálculo de deducciones, crear las planillas mensuales y los aguinaldos

25/11 Tiempo: 17:00 - 18:28 , 19:34 - 21:08

Hoy terminé la parte de las plantillas mensuales. Solo tenía que sacar los salarios de las plantillas semanales de cada empleado, luego las deducciones fijas y porcentuales, y finalmente crear la plantilla mensual. Tuve varios problemas porque no hice mucha verificación de errores y al estar cargando el archivo por una hora (la pausa de 18:28 a 19:34) me di cuenta que no cargaba y lo pausé, entonces me tiró errores de nulo en los insert. Esto fue porque hay empleados que en un mes no tienen plantillas semanales, entonces los salarios quedaban nulos, además de que hay empleados que no tienen deducciones de un tipo de ambas, por lo que tuve que añadir esas restricciones también. Ahora solo falta implementar los aguinaldos, que ya Anthony está en ello

26/11 Tiempo: 18:30 - 21:00

Tuve que corregir un problema que había a la hora de realizar los cálculos de los montos en las planillas semanales, que resultaba en un error en las mensuales. Tenía mal un subquery para extraer la suma de los montos y no encontré forma de resolverlo, entonces cambié el código y lo hice de forma iterativa, igual que para las planillas mensuales.

viernes, 22 de noviembre de 2019

Scripts datos básicos

Hora: 11:00 pm a 1:00 am

-Scripts de llenado para los datos básicos

Para esta tarea el formato de los XML era un poco distinto al anterior así que hubo que realizar un algunos cambios al formato de los scripts que se encargan de leer los XML, en las siguientes imágenes se ilustran dichos cambios.


Ahora ya no se usa la función query, se utiliza directamente el valor del campo o mejor dicho del parámetro, que es ahí donde está el otro cambio, en los XML los datos vienen como parámetros, para leerlos se utiliza el @ y el nombre del parametro.

Fuentes utilizadas:
https://www.youtube.com/watch?reload=9&v=Ckd9cPb6cLc

martes, 19 de noviembre de 2019

Diagrama

Hora: 1:00 pm a 3:00 pm

Creación del diagrama:
- Se tomó el diagrama hecho en clase por el profesor
- Se replanteó dicho diagrama para realizar ajustes que podrían ser convenientes
- Revisión de los atributos de cada tabla