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 (servicio básico) + variable (por consumo) + recargos (si aplica) + subsidios (planilla familiar).
Generación Masiva Eficiente: Usa CURSOR optimizado con FAST_FORWARD para procesar miles de propiedades sin bloquear tablas.
Manejo de Excepciones: Registra en DBErrors cada propiedad problemática pero continúa con las demás.
Problema Crítico Solucionado: Deadlock al facturar propiedades con múltiples medidores. Implementé SET DEADLOCK_PRIORITY LOW y ordenamiento por ID_Propiedad ascendente.
Comentarios
Publicar un comentario