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

Entradas más populares de este blog

Sesión 5 - Lunes 2 de Diciembre

Sesión 2 - Jueves 28 de Noviembre

Sesión 8 - Viernes 6 de Diciembre