Entradas

Mostrando entradas de diciembre, 2020

Ultima entrada de la tercera tarea programada

Imagen
 Última entrada de la tercera tarea programada Objetivo      Respecto de una base de datos física, escribir el código SQL que permita la actualización de entidades, la realización de una simulación de su operación, así como la realización de consultas. Requerimientos y resultados Código SQL para carga de datos básicos ( Completado): Para la carga de datos básicos, se tomo el xml de catálogos proporcionado por los compañeros y siguiendo la misma lógica que en las anteriores tareas simplemente se agregaron nuevos insert para los nuevos nodos (tipoMovimientoCO, tipoEvento) y funcionó correctamente, sin problemas.   Código SQL para la simulación, que debe incluir el proceso de calculo diario de intereses a CO, redención de intereses, depósitos en CO y redención de CO. (  Completado ):  Para este nuevo script de simulación se tomó el de la anterior tarea como referencia, simplemente se repararon lo errores que se tenían en el anterior con respecto a los est...
Imagen
 Se crea la parte de la web de las consultas del administrador para mostrar los resultados de los scripts Se crea el inicio de sesión como administrador Se crea la consulta de las cuentas objetivo a las que no se les hizo retiro por tener saldo negativo. Se crea la consulta de las cuentas que tienen multas por exceso de retiros en cajero, con esta se tuvieron problemas con los que se había tratado anteriormente, entonces se realizó reunión con el compañero ya que fue el otro quién sabía a qué se debía el error Se crea la consulta de los beneficiarios. Se arregla asuntos de los triggers y quedan listos Tiempo: 4 horas
Imagen
 Durante esta sesión se concluyó con el SP que procesa las CO, después de estar un tiempo intentando arreglar el error que se mencionó en la última entrada, notamos que se producía debido a un mapeo en el que se encontraba el id del estado de cuenta, esto devolvía varios id por lo cual daba el error, pero esto se arreglo usando un max  y ya no presentó problemas. Se agregó la parte donde se redimen los intereses a la cuenta objetivo y donde se redime el saldo de la cuenta objetivo a la cuenta de ahorro, durante este proceso se encontró un error en las transacciones y nos dimos cuenta que el error se daba debido a un if el cual era el siguiente: Investigando en el foro de dirección: https://www.mundosql.eu/2015/09/02/commit-y-rollback-en-las-transacciones-de-sqlserver/ Nos encontramos con que el error se daba debido a que se necesitaba agregar un try-catch para hacer el rollback y el commit, esto debido a que por  alguna razón no detecta el commit en ese if. Después d...
Imagen
 Durante esta sesión se procedió a termianar con el script de inserción de datos. Una vez solucionamos un nuevo error encontrado en el xml, se procedió a hacer pruebas e insertaba todo correctamente, incluídas las CO. Después de esto se continuó con la elaboración del SP para el calculo de intereses diarios de las cuentas objetivo, esto se pudo realizar  sin nigún problema, este SP se llama al inicio de cada iteración por día y con esto se generan los respectivos movimientos y UPDATES de los campos correspondientes, también se inicio con el SP que procesa las cuentas objetivo pero este aún se encuentra incompleto, puesto que falta el segmento donde se desactivan las cuentasy se redimen los intereses, pero lo elaborado hasta el momento funciona correctamente cuando se corre el script, sin embargo cuando es el dia de cobro por segunda ocación, se genera un error que aún está pendiente su solución. El error es: subquery returned more than 1 value. this is not permitted when ...
Imagen
 Durante esta sesión después de que el compañero arreglara el XML nuevamente, se procedió a seguir con el script de inserción, se agregaron los insert de las cuentas objetivos y en dicha parte donde se inserta también se calcula la tasa de intereses para la cual  se investigó en el foro del link: https://stackoverrun.com/es/q/1510571 en el cual se encontró una función llamada  DATEDIFF la cual se usa para sacar los dias o en este caso meses que hay entre una fecha y otra, después que se calcula esto se saca la tasa de intereses la cual se multiplican dichos meses por 0.5 y se dividen entre 365 ya que es anual. Tambén para este punto del script se insertan todo el resto de datos que se encuentran en el xml, sin embargo después de varios minutos en el que nos daba un error por llave foranea, se noto que existía un error en los tipos de movimientos ya que había uno que tenía de id 0, es decir no hay id 0 en los tipos de movimientos por lo cual daba dicho error, como se ...
Imagen
Durante esta sesión primero se creo el  script para cargar los catálogos a partir del xml, basicamente era el mismo script de la tarea anterior pero se agregó la nueva sección para los nuevos datos. La nueva sección del script quedó de la siguiente manera: Después se procedió a verificar el script de la nueva simulación con el nuevo xml, pero al intentar usarlo notamos que nada se estaba insertando, después de verificarlo durante varios minutos no funcionaba, al ver esto se reviso el XML y notamos que las fechas estaban digitadas de manera diferente que los anteriores, al ocurrir esto al XML cuando se intentaba extraer la información del XML las fechas no coincidian, se intento castear el valor a través de la función convert pero no sirvió, por lo que se informó a los compañeros del error, también al revisar el XML notamos que no había ninguna cuenta objetivo, por lo cual no se podía calcular nada. De esto también se le informó a los compañeros y quedamos a la espera de su respuest...
 Durante esta sesión se pretendía iniciar con el uso del nuevo xml enviado por los compañeros pero al encontrar inconvenientes se le envió un msj al compañero y nos quedamos a la espera, mientras tanto se desarrollo en la aplicación web la prevista para entrar a la página de los usuarios que son administradores para después hacer las respectivas consultas. Ahora en el inicio de sesión se revisa si el usuario a ingresar es Admin o no. En caso de que lo sea lo redirecciona a la página correspondiente. Esta pagina actualmente no contiene nada, simplemente es una página de fondo vacio, ya que aún no se han hecho las consultas. Se queda a la espera de la respuesta sobre el xml, para poder continuar.  Hora inicio: 7 Hora fin: 7 y 40 Tiempo: 40 minutos
Imagen
Realización del punto 2 de la tarea, la bitácora Se crean las nuevas tablas: TipoEvento y Eventos Se realizan varios Triggers que permiten realizar la bitácora Problema en el borrado de Cuenta Objetivo y Beneficiario. Este es un borrado lógico por lo que realmente no se está eliminando nada de la tabla, por esto no se puede realizar un Trigger Solución : Se hizo consulta al profesor al respecto y dijo que no sería problema hacerlo como SP, por lo que se incluyo en el mismo SP que hace el borrado lógico de las entidades Se vuelve a ver la clase de la explicación de la especificación por que el punto 3 de la tarea (consultas del administrador) no queda muy claro. No se llega a ninguna conclusión por lo que se le consulta al profesor por WhatsApp. Al momento de hacer esta entrada no tenemos respuesta Tiempo: 1hora con 25 min

Inicio de nuevo script

Imagen
 Se inicia el script de insercion de datos para la segunda tarea, por el momento solo se arreglaron los errores de la tarea pasada con respecto a los estados de cuenta, también se hizo que itere sobre todas las fechas que se encuentran en medio de la fecha inicial y final. La nueva tabla de estados de cuenta se ve asi: También se elimino el hecho de que calculara la multa del saldo mínimo todos los días y ahora en vez de eso simplemente re verifica que el saldo mínimo del estado de cuenta no sea menor al saldo actual, en caso de que suceda se hace el update. Todo esto se reparo para que al darnos el nuevo XML no nos de problemas el carrear dichos errores. Se agregaron algunos triggers que llenan la tabla de eventos, sin embargo estos aún no están completos y de momento la llenan de la siguiente manera: Hora inicio: 3 pm Hora fin: 6 pm Tiempo: 3 horas
Imagen
 Primera entrada tercera tarea programada -Para esta entrada más que avanzar surgieron problemas, esto debido a que alcanzamos el límite de crédito en Azure. Debido a esto perdimos todos los datos dentro de nuestra base de datos ya que se nos negó el acceso y no se pudo hacer más. Se discutió respecto a que se podía hacer, se pensó en migrar al server de la escuela de computación, pero se intentó y generó aún mas problemas.  La solución que encontramos fue crear una nueva cuenta estudiantil  en Azure por medio de mi correo de la institución, ya que la anterior fue hecha con el de Allison, esta vez se usó el mío. Gracias a git hub todos los SP se pudieron rescatar, también teníamos los scripts  de algunas tablas por lo que se cargaron pero, estos scripts estaban en un estado muy básico. Una vez se cargaron se inició con el diagrama y las relaciones, se modificaron la tablas de manera que quedaran nuevamente como se necesitaba, cuando quedaron listas todas las relacion...

Ultima entrada segunda progra

Imagen
 Entrada final de la segunda tarea programada, durante este proyecto se desarrollo todo lo indicado por el profesor, empezando desde la elaboración del script de inserción de datos desde un XML, proporcionado por el compañero. En este script por medio de un While se itera sobre las fechas que se encuentran en el XML, una vez se posiciona sobre la fecha, comienza a iterar sobre los elementos que se encuentran en esta, es decir comienza con la inserción ya sea de usuarios, beneficiarios, cuentas de ahorro, personas y movimientos. Respecto a los movimientos, cuando este se inserta modifica el saldo de la cuenta de ahorro y se le asigna a dicho movimiento el estado de cuenta activo en ese momento, cada vez que se inserta una cuenta de ahorro, un trigger genera el primer estado de cuenta correspondiente a partir de ahí todos los movimientos que ocurran en dicha cuenta se van a asociar a dicho estado de cuenta, esto hasta que se realice el respectivo cierre en el día correspondiente, cua...
Imagen
 Se inicia agregando al script lo que faltaba respecto al cierre mensual que realiza, se crean los movimientos correspondientes al cálculo de intereses, cargo mensual y multas de los retiros. Después que se concluyó con esto lo cual no generó mayor problema, se procedió a eliminar el código de salida de los SP el cual indicaba si se ejecutó con éxito o no, en cambio los errores quedan registrados en una tabla especial para los errores, esto se quitó ya que generaba problemas con Python al momento de ejecutar las consultas desde la capa lógica. Cuando todo esto se quitó, se procedio a reparar unos errores que se generaban por un error en el area de los beneficiarios, pero esto se reparo simplemente cambiando el condicional de algunas consultass en Beneficiarios, también dentro de los scripts principales del programa los cuales son el que hace los cierres, el script de insercción de datos y el de insercción de catalogos se agregaron las transacciones esto para una mejora al no compro...
 Se realiza una reunión por zoom para revisar el trabajo y medir los detalles faltantes, compañero C ayudó a compañero A a realizar un SP en el que se necesitaba devolver el contenido de varios select, división de tareas. Compañero C recomendó utilizar UNION ALL o UNION, pero se decidió utilizar otro método, utilizar una tabla temporal, para así porder devolver todos los valores recogidos a lo largo del SP Se aplica el control de errores, agregando la tabla Errores y agregandole la captura a todos los procedimientos necesarios, para mantener un buen control de los mismos. Se modifica la manera en la que se consultaba los movimientos de cuenta ahorros, ya que en lugar de desplegar un valor como "Monto" estaba como "Saldo Inicial" y además se le agrega el tipo de movimiento es "debito" o "credito". En los Estado de cuenta se procede a mostrar la cantidad de depositos, retiros y intereses. Problema: el metodo proporcionado por el compañero C para el...
 Se completa el script de inserción de datos, se llevó a cabo que se generé un nuevo estado de cuenta un día antes del cierre del mes, por medio de un while se le envían los valores correspondientes a un SP que se llama hacerCierre con el que se calculan los intereses y se les suma a la cuenta, además  se le resta el cargo mensual que corresponda y se revisa el saldo mínimo en caso de que no lo cumpla se le  resta la multa al saldo de la cuenta, después de calcular todo esto. Se genera altera el estado de cuenta y se crea el nuevo estado el cual va a tener como saldo inicial el saldo final del anterior estado de cuenta, a partir de ahí todos los movimientos que se creen para esa cuenta se van a asociar al ultimo estado que se inserto. Respecto a las multas por los retiros del cajero automatico o personales y el cobro de comisión de esto mismo, no nos brindaron la información necesaria para haccer esto por lo que queda a la expectativa de lo que se hable mañana con el prof...
 Se termina con cuentas objetivo y con los estados de cuenta, ya en capa lógica se muestran los estados de cuenta así como sus detalles es decir todos los movimientos que se hicieron en ese estado de cuenta, también se insertan, se modifican y se eliminan las cuentas objetivo. En la realización de esto no hubo problemas. También se elaboró dentro de la base de datos la consulta para buscar por  medio de la descripción un movimiento, este movimiento lo va a buscar en todos los estado de cuenta que existan en ese momento, se agrego en el frontend en la parte donde se ven los estados de cuenta un input en el cual se pueden buscar y llamar a este SP, realizar esto no llevo problemas. El scrip de inserción de datos esta completo,  a excepción de que falta  generar el cierre de los estados de cuentas y aplicar las créditos o débitos correspondientes, ya se hizo la lógica para llevar a cabo esto pero falta implementarlo, también se llevo a cabo la validación de varios datos...
 Se resuelven todos los problemas que tenia el script ademas se agregan los nuevos datos xml suministrados por el compañero, gracias a esto se resuelve el problema que se tenìa con los tipos de movimientos, se hacen pruebas y todo parece funcionar correctamente en el script, queda pendiente realizar la consulta de los diferentes movimientos y que se busque desde capa lógica así como también queda pendiente cobrar las multas y generar el nuevo estado de cuenta al finalizar cada mes, ya sabemos como hacer esto y se espera mañana poder hacerlo. Durante el proceso se presento un problema el cual era que en usuario solo se estaba insertando un usuario y se insertaba infinitas veces, pero este error surgió debido a un descuido en un while en el cual no se estaba aumentando el iterador, una vez se empezó a aumentar el iterador esto se soluciono. A parte de esto no surgieron más problemas. Hora inicio: 6 pm hora fin: 10 pm Horas 4 horas