Anthony: 12 horas
Carlos: 14,4 horas
Total: 26,4 horas
Todas las funciones solicitadas trabajan de manera adecuada
lunes, 14 de octubre de 2019
Debugueo de la capa logica 2
Tiempo: 3 horas de 3 pm a 6 pm (13/10/2019)
-Debugueo de las ventanas faltantes (consulta por patrón, consulta de los movimientos por estado de cuenta y el CRUD de las cuentas objetivo).
-Hubo un error con el Script de simulación.
-Creación de algunos SP de consulta.
-Otro detalle es que tuve que realizar todo lo descrito en la anterior entrada porque le hice un restore a la base y perdí los cambios que había hecho en los SP´s.
-Debugueo de las ventanas faltantes (consulta por patrón, consulta de los movimientos por estado de cuenta y el CRUD de las cuentas objetivo).
-Hubo un error con el Script de simulación.
-Creación de algunos SP de consulta.
-Otro detalle es que tuve que realizar todo lo descrito en la anterior entrada porque le hice un restore a la base y perdí los cambios que había hecho en los SP´s.
domingo, 13 de octubre de 2019
Capa lógica debug
Tiempo: 4 horas de 12:30 pm a 4:30 am
-Debugueo de las ventanas del CRUD de los beneficiarios y la consulta de estados de cuenta
-El debugueo consistió en implementar los cambios que sufrió la base de datos en las conexiones con la base y el proceso se dio sin mucho problema.
-Creación del SP para consultar personas.
-Creación del SP para crear personas.
-Ajustes a los SP de agregar y actualizar beneficiarios
-Debugueo de las ventanas del CRUD de los beneficiarios y la consulta de estados de cuenta
-El debugueo consistió en implementar los cambios que sufrió la base de datos en las conexiones con la base y el proceso se dio sin mucho problema.
-Creación del SP para consultar personas.
-Creación del SP para crear personas.
-Ajustes a los SP de agregar y actualizar beneficiarios
sábado, 12 de octubre de 2019
Últimos detalles del script de simulación
Tiempo: 17:40 - 20:30 y 22:40 - 23:36
Seguí trabajando en el script de la simulación, específicamente en la parte de cerrar los estados de cuenta, que es lo único que faltaba. Tuve varios problemas: el calculo de los intereses lo estaba realizando mal entonces con cada estado de cuenta los saldos quedaban más negativos, además había un error en el trigger para cargar los movimientos a las cuentas, ya que olvidé poner un where id = idCliente, entonces lo estaba cargando en todas las cuentas. Otro problema que tuve es que en la simulación estaba corriendo en base a los días del xml, pero más tarde me dí cuenta que los días no iban secuencialmente, entonces habían estados de cuenta que quedaban sin cerrarse. Después de consultar en el grupo, corregí el problema haciendo que corriera desde la primer fecha de operación hasta la última, pero sumando un día en cada ciclo, en vez de tomar la siguiente fecha de operación. Cuando ya casi estaba listo, me fijé que los estados de cuenta del 29 al 31 de enero no se estaban cerrando, porque no tomé en cuenta que esos días no existen en febrero, entonces tuve que realizar una excepción para esos días.
Seguí trabajando en el script de la simulación, específicamente en la parte de cerrar los estados de cuenta, que es lo único que faltaba. Tuve varios problemas: el calculo de los intereses lo estaba realizando mal entonces con cada estado de cuenta los saldos quedaban más negativos, además había un error en el trigger para cargar los movimientos a las cuentas, ya que olvidé poner un where id = idCliente, entonces lo estaba cargando en todas las cuentas. Otro problema que tuve es que en la simulación estaba corriendo en base a los días del xml, pero más tarde me dí cuenta que los días no iban secuencialmente, entonces habían estados de cuenta que quedaban sin cerrarse. Después de consultar en el grupo, corregí el problema haciendo que corriera desde la primer fecha de operación hasta la última, pero sumando un día en cada ciclo, en vez de tomar la siguiente fecha de operación. Cuando ya casi estaba listo, me fijé que los estados de cuenta del 29 al 31 de enero no se estaban cerrando, porque no tomé en cuenta que esos días no existen en febrero, entonces tuve que realizar una excepción para esos días.
Ultima ventana y conexión en capa lógica
Tiempo: 1 hora (10/10/2019)
-Diseño y conexión de la ventana para editar cuentas objetivo
-Creación del SP para editar cuentas objetivo
-Diseño y conexión de la ventana para editar cuentas objetivo
-Creación del SP para editar cuentas objetivo
Script de simulación
Tiempo: 14:40 - 21:00 y 23:30 - 1:00
Cree los SP que faltaban para que el cliente puede editar la información de las subcuentas desde la web. Solo era un simple update.
Seguí trabajando en el script para ejecutar la simulación. Este script fue el causante de que hoy haya durado tanto y parece que no he hecho mucho. Tuve varios problemas durante el día, entre ellos, a la hora de tener que sacar solo las operaciones de una fecha específica, fecha por fecha, no lograba obtener los datos en filas dentro de una tabla temporal, si no que lo metía todo en una sola fila. Logré solucionar este problema gracias a los siguientes foros: https://www.sqlservercentral.com/forums/topic/the-argument-1-of-xml-datatype-method-nodes-must-be-string-literal-plz-help y
https://stackoverflow.com/questions/13964682/where-clause-on-a-sql-server-xml-column-filtering-on-attribute-and-value
Al final logré lo que necesitaba y a partir de ahí fue simplemente implementar el mismo método de carga de datos de la etapa pasada, pero haciéndolo fecha por fecha. (Usando el formato que mandó el profe, ya mencionado en otras entradas del blog)
Durante este proceso me dí cuenta que el trigger que había hecho para la creación del primer estado de cuenta no estaba sirviendo, ya que solo lo hacia para el último insertado, pero como se iban insertando de 3 en 3, dos se quedaban sin estado de cuenta. Lo solucioné implementando un cursos para iterar sobre la lista inserted, que leí que contenía los ultimo items insertados (https://social.msdn.microsoft.com/Forums/sqlserver/en-US/40f5635c-9034-4e9b-8fd5-c02cec44ce86/how-to-let-trigger-act-for-each-row?forum=sqlgetstarted)
Despues de esto me tomé un descanso, y seguí trabajando en la simulación. Cuando llegué a la parte de movimientos, tuve varios errores muy tontos de overflow porque me equivoqué en unos tipos, pero duré mucho encontrándolo. Mientras hacía esto, me di cuenta que podía hacer un trigger para hacer los cobros al saldo de las cuentas al insertar un movimiento, así que hice el mismo proceso que con el trigger de los estados de cuenta.
Cree los SP que faltaban para que el cliente puede editar la información de las subcuentas desde la web. Solo era un simple update.
Seguí trabajando en el script para ejecutar la simulación. Este script fue el causante de que hoy haya durado tanto y parece que no he hecho mucho. Tuve varios problemas durante el día, entre ellos, a la hora de tener que sacar solo las operaciones de una fecha específica, fecha por fecha, no lograba obtener los datos en filas dentro de una tabla temporal, si no que lo metía todo en una sola fila. Logré solucionar este problema gracias a los siguientes foros: https://www.sqlservercentral.com/forums/topic/the-argument-1-of-xml-datatype-method-nodes-must-be-string-literal-plz-help y
https://stackoverflow.com/questions/13964682/where-clause-on-a-sql-server-xml-column-filtering-on-attribute-and-value
Al final logré lo que necesitaba y a partir de ahí fue simplemente implementar el mismo método de carga de datos de la etapa pasada, pero haciéndolo fecha por fecha. (Usando el formato que mandó el profe, ya mencionado en otras entradas del blog)
Durante este proceso me dí cuenta que el trigger que había hecho para la creación del primer estado de cuenta no estaba sirviendo, ya que solo lo hacia para el último insertado, pero como se iban insertando de 3 en 3, dos se quedaban sin estado de cuenta. Lo solucioné implementando un cursos para iterar sobre la lista inserted, que leí que contenía los ultimo items insertados (https://social.msdn.microsoft.com/Forums/sqlserver/en-US/40f5635c-9034-4e9b-8fd5-c02cec44ce86/how-to-let-trigger-act-for-each-row?forum=sqlgetstarted)
Despues de esto me tomé un descanso, y seguí trabajando en la simulación. Cuando llegué a la parte de movimientos, tuve varios errores muy tontos de overflow porque me equivoqué en unos tipos, pero duré mucho encontrándolo. Mientras hacía esto, me di cuenta que podía hacer un trigger para hacer los cobros al saldo de las cuentas al insertar un movimiento, así que hice el mismo proceso que con el trigger de los estados de cuenta.
martes, 8 de octubre de 2019
Capa lógica
Tiempo: 2 horas de 8:00 pm a 10:00 pm (7/10/2019)
- Corrección de la conexión de la ventana "ver movimientos" con la base de datos, ya que esta ventana se hizo antes de realizar los cambios en la base de datos.
- Creación y conexión de la ventana para buscar movimientos por patrón.
- Creación y parte de la conexión de la ventana eliminar cuentas objetivo.
- Creación y conexión de la ventana para agregar una una cuenta objetivo.
- Corrección de la conexión de la ventana "ver movimientos" con la base de datos, ya que esta ventana se hizo antes de realizar los cambios en la base de datos.
- Creación y conexión de la ventana para buscar movimientos por patrón.
- Creación y parte de la conexión de la ventana eliminar cuentas objetivo.
- Creación y conexión de la ventana para agregar una una cuenta objetivo.
sábado, 5 de octubre de 2019
Creación de los scripts de llenado y varios SP
Tiempo: 20:51 - 00:10
Tuve que crear la tabla de tipo de movimientos ya que en la etapa pasada no se utilizaba, además de tener que modificar algunos atributos de la tabla de movimientos, específicamente eliminar el atributo de idEstadoDeCuenta y agregar el atributo de nuevoSaldo y descripción. También tuve que crear las relaciones de la tabla movimientos (el FK de CuentasDeAhorro y tipoMovimiento)
Cree el script de llenado del xml tipoMov usando el formato que envió el profesor en la etapa pasada
Formato:
Tuve que crear la tabla de tipo de movimientos ya que en la etapa pasada no se utilizaba, además de tener que modificar algunos atributos de la tabla de movimientos, específicamente eliminar el atributo de idEstadoDeCuenta y agregar el atributo de nuevoSaldo y descripción. También tuve que crear las relaciones de la tabla movimientos (el FK de CuentasDeAhorro y tipoMovimiento)
Formato:
Logré crear el trigger que crea el primer estado de cuenta al crear una nueva cuenta de ahorro, pero tuve algunos problemas a la hora de recuperar el id del cliente recién creado. Lo pude solucionar gracias a este foro: https://stackoverflow.com/questions/1920558/what-is-the-difference-between-scope-identity-identity-identity-and-ide. Tuve que ver el siguiente video para poder entender cómo realizar un trigger: https://www.youtube.com/watch?v=FZLmXocmCLU.
Por ultimo cree los SP para extraer los movimientos en un rango de fechas (para sacar los movimientos de un estado de cuenta específico), para crear y desactivar cuentas objetivo, y para buscar movimientos por un patrón de fecha, monto o descripción.
Perdí algo de tiempo porque no sabía que no había que hacer scripts de llenado para los xml de movimientos, cuentas de ahorro, etc, solo para los tipos, monedas y parentescos, entonces perdí un buen rato modificando los scripts que tenía de la etapa pasada y creando el de los movimientos.
jueves, 3 de octubre de 2019
Creación de la ventana para visualizar los movimientos
Tiempo: De 3 pm a 5 pm (2 horas)
- Diseñé, cree y enlacé a la BD, la ventana de mostrar los movimientos de cuentas.
- Cuando realicé las pruebas de dicha ventana me lanzaba el siguiente error cuando iba a mostrar la información de los movimientos:
El error se daba al llenar una DataTable con un SqlAdapter, esto se realizaba con el siguiente código:
- Diseñé, cree y enlacé a la BD, la ventana de mostrar los movimientos de cuentas.
- Cuando realicé las pruebas de dicha ventana me lanzaba el siguiente error cuando iba a mostrar la información de los movimientos:
Así que decidí crear un SP en la BD pensando que la forma en que lo estaba haciendo podría estar generando el error e hice la siguiente modificación al código:
Esta vez al realizar pruebas no me lanzaba ningún error, pero no mostraba ninguna información en la ventana de movimientos, así que terminé bloqueandome debido a que no sabía cual podía ser la causa del error.
Se me ocurrió mostrar una alerta con los parámetros que le enviaba al SP para comprar que eran los parámetros correctos, ahí fue donde me di cuenta que uno de los parámetros estaba vacío y que el error era que no estaba pasando el id del estado de cuenta a través de la URL, luego de hacer la corrección la ventana mostró la información sin problema.
El código para usar un SP en un SqlAdapter lo tomé de esta página: http://www.mundoprogramacion.com/NET/ADONET/asignar_datatable_con_procedimiento_almacenado.htm
Suscribirse a:
Entradas (Atom)