Entradas

Sesión 8 - Viernes 6 de Diciembre

Horario: 7 PM - 12 AM Enfoque: Desarrollo de interfaz web empresarial completa Implementé la capa de presentación en WEB/ con arquitectura profesional: Backend Flask (app.py - 339 líneas): Arquitectura Pura: 100% basado en callproc() sin SQL embebido, máximo nivel de seguridad. Manejo de Multi-ResultSet: Implementación propia que procesa los 8 resultsets de SP_ConsultarEstadoCuenta. Patrón MVC Estricto: Separación clara entre rutas, lógica de negocio (vía SPs), y serialización. Seguridad Robustecida: Sanitización de todos los inputs Timeouts de conexión configurados Logging de auditoría en cada operación Manejo elegante de errores con mensajes usuario/administrador Frontend Avanzado: Dashboard Interactivo: Tabs dinámicos que cargan datos via AJAX sin recargar página. Formulario Inteligente: Búsqueda por finca/cédula con autocompletado y validación en tiempo real. Sistema de Pagos: Implementa algoritmo ODF (Oldest Due First) igual que backend. Responsive Design: Funciona en móviles, tab...

Sesión 7 - Jueves 5 de Diciembre

Horario: 7PM - 11:30 PM Enfoque: Simulación integral y validación de extremo a extremo Ejecuté y validé la simulación completa del sistema mediante CargarSimulacion1.sql: Escenario de Prueba Complejo: Base de Datos: 150 propiedades, 220 propietarios, 450 facturas históricas. Período Simulado: 180 días (6 meses) con eventos diarios. Casos de Prueba Incluidos: Cliente Ideal: Paga siempre a tiempo Moroso Crónico: 3 facturas vencidas + intereses acumulados Reconexión: Corte → Pago → Reconexión Ajuste por Fuga: Lectura anómala → reporte → ajuste Planilla Familiar: Subsidio aplicado correctamente Proceso de Validación: Prueba de Carga: Ejecución concurrente de todos los SPs. Verificación de Atomicidad: Confirmé que transacciones se completan o rollbackean completamente. Consistencia de Datos: Validé que saldos cuadren (∑Pagos = ∑Facturas - ∑Intereses). Performance: Medí tiempos de ejecución (< 2s para 95% de operaciones). Hallazgo Crítico: Deadlock en generación masiva de facturas. Soluci...

Sesión 6 - Miércoles 4 de Diciembre

 Horario: 3:30 PM - 6:40 PM Enfoque: Sistema de consultas empresariales y datos maestros Implementé el módulo de business intelligence en SP_ConsultarEstadoCuenta.sql y cargué datos fundamentales en CargarDatosCAT.sql y CargarDatosPF.sql: SP_ConsultarEstadoCuenta: Arquitectura Multi-ResultSet: Retorna 8 conjuntos de datos en una sola ejecución: ResultSet 1: Datos básicos propiedad/propietario ResultSet 2: Conceptos de cobro aplicables ResultSet 3: Facturas pendientes con días mora ResultSet 4: Detalle línea por línea de factura seleccionada ResultSet 5: Historial12 meses facturas pagadas ResultSet 6: Órdenes de corte activas/históricas ResultSet 7: Reconexiones realizadas ResultSet 8: Resumen financiero (totales, promedios, tendencias Optimización: UsaWITH (NOLOCK) donde aplicable para no bloquear tablas operativas. Filtros Inteligentes: Búsqueda por cédula, número de finca, medidor, o rango de fechas. Carga de Datos Maestros: CargarDatosCAT: 48 conceptos de cobro con estructura je...

Sesión 5 - Lunes 2 de Diciembre

Horario: 10:00 AM - 3 PM Enfoque: Automatización de gestión de servicio y triggers de auditoría Desarrollé el módulo de control operativo en SP_GenerarOrdenesCorte.sql, SP_GenerarReconexion.sql, y el sistema de triggers en Trigger.sql: SP_GenerarOrdenesCorte: Criterios Mltivaiable: No solo mora monetaria, también considera: Historial de pagos (clientes con buen historial reciben días extra) Tipo de propiedad (hospitales, escuelas exentas) Reportes de fuga activa (no cortar si hay fuga reportada) Notificación Escalada: Primero genera advertencia, luego orden de corte parcial, finalmente corte total. Coordinación con Reconexión: Marca propiedades con "Reconexión Pendiente" si pagan dentro de 24h. SP_GenerarReconexion: Verificación Completa: No solo pago, también: Inspección técnica programada Firmas de responsable Pago de multa por reconexión no autorizada Workflow Automático: Genera orden → asigna técnico → registra ejecución → actualiza estados. Sistema de Triggers (Trigger.s...

Sesión 4 - Sábado 30 de Noviembre

 Horario: 11:00 AM - 3:30 PM Enfoque: Sistema financiero avanzado con manejo de mora y pagos Implementé el corazón financiero del sistema en SP_RegistrarPagoFactura.sql y SP_CalcularInteresesMoratorios.sql: SP_RegistrarPagoFactura: Algoritmo de Aplicación de Pagos: Implementa regla "la factura más antigua vencida primero" (Oldest Due First) con lógica que: Busca facturas vencidas con intereses pendientes Aplica pago a intereses primero, luego capital Si sobra saldo, aplica a siguiente factura vencida Finalmente aplica a facturas corrientes Validaión de Medio de Pago: Verifica que el método (efectivo, tarjeta, transferencia) esté activo y acepte el monto. Reconciliación Automática: Calcula diferencia de centavos y la aplica como ajuste contable registrado. SP_CalcularInteresesMoratorios: Cálculo Diferencial: Tasa base + recargo progresivo según días de mora (1-30 días: 2%, 31-60: 3%, 61+: 5%). Excepciones Inteligentes: Omite cálculo para propiedades en planilla familiar con su...

Sesión 3 - Viernes 29 de Noviembre

Horario: 7 PM - 12 AM Enfoque: Procedimientos almacenados core del sistema de medición y facturación Desarrollé los dos procedimientos más críticos del sistema en SP_RegistrarLecturaAgua.sql y SP_GenerarFacturasMensuales.sql: SP_RegistrarLecturaAgua: Validación compleja: Implementé 5 niveles de validación: existencia de medidor, lectura mayor a anterior, fecha coherente, medidor activo, propiedad habilitada. Cálculo Inteligente de Consumo: Fórmula que considera lecturas parciales, ajustes por fugas reportadas, y conversión a m³. Transaccionalidad Robusta: BEGIN TRANSACTION con TRY...CATCH, rollback automático en errores, y COMMIT explícito solo tras éxito completo. Actualización en Cascada: Al registrar lectura, se actualiza Medidor.LecturaActual, se inserta en MovimientoMedidor, y se disparan cálculos intermedios. SP_GenerarFacturasMensuales: Lógica de Agrupación: Identifica período facturable (últimos 30 días desde última factura). Cálculo Multivariable: Combina concepto fijo (servic...

Sesión 2 - Jueves 28 de Noviembre

 Horario: 7:30 PM - 12:00 PM Enfoque: Tablas de soporte y preparación para triggers Completé la estructura de base de datos con tablas complementarias críticas para el funcionamiento del sistema en DatosPrevioTrigger.sql: Implementaciones Clave: BitacoraCambios: Sistema de auditoría completo que registra timestamp, usuario, tabla afectada, operación (INSERT/UPDATE/DELETE), valores antiguos y nuevos en formato XML para trazabilidad forense. DBErrors: Mecanismo centralizado de logging de errores con severidad, procedimiento origen, número de línea y mensaje técnico para diagnóstico. ParametrosSistema: Tabla de configuración que permite modificar dinámicamente tasas de interés moratorio, días de gracia, límites de consumo, etc., sin modificar código. Desafíos Resueltos: Problema con XML en Bitacora: Tuve que investigar y aplicar FOR XML PATH('') correctamente para serializar cambios en formato legible pero estructurado. Configuración Parametrizada: Diseñé ParametrosSistema con val...