Entradas

Mostrando las entradas de diciembre, 2025

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...