- Agregados índices en BD (payments, houses) para mejorar queries
- Consolidada carga de pagos: 12 queries → 1 query
- Implementado caché de monthly_bills en vista (eliminadas ~2,400 queries)
- Nuevo método Payment::updateBatch() para guardado masivo con transacciones
- Reducción total: ~2,437 queries → 13 queries (99.5% mejora)
- Tiempo de carga: 3-5s → <0.5s
- Tiempo de guardado: 8-12s → 1-2s
Cambios realizados:
- concept_view.php: Agregado botón 'Guardar Todo' arriba y abajo de la tabla, eliminado botón individual por fila
- dashboard.php: Agregado endpoint save_all_concept_payments para guardar múltiples pagos
- docker-entrypoint.sh: Corregidos permisos de volúmenes para ZimaOS/CasaOS (cambia dueño a www-data)
- docker/Dockerfile: Corregida ruta del entrypoint
- build-and-push.sh: Script interactivo para crear imagen Docker con opción de caché/sin caché
Los cambios permiten guardar todos los pagos de conceptos de una sola vez y mejoran la compatibilidad con despliegues en ZimaOS.
- Filtrar valores 'all' cuando hay opciones específicas seleccionadas
- Evitar envío de arrays mixtos ['all', '11'] que causaban incluir todas las casas
- Aplicar misma lógica en formulario de filtros y exportación
- Limpiar logs de debug temporales
- Agregar console.log en JavaScript para ver qué se envía desde navegador
- Agregar logs de todos los parámetros GET en PHP
- Crear archivo debug_concept_filters.log para revisar logs fácilmente
- Investigar por qué exportación PDF no respeta filtros aplicados
- Agregar logs en dashboard.php para ver qué filtros se reciben
- Agregar logs en Report.php para ver consulta SQL y resultados
- Investigar por qué se incluyen casas sin deudas en exportación PDF
- Debug para identificar problema de filtros no aplicándose correctamente
- Filtros por casas: selección múltiple con opción 'Todas las casas'
- Filtros por conceptos: selección múltiple con opción 'Todos los conceptos'
- Estado inicial: todos los filtros marcados por defecto (muestra toda la info)
- Exportación PDF: incluye solo datos filtrados según selección
- JavaScript interactivo: lógica de checkboxes con estados intermedios
- Modelo actualizado: método getConceptDebtorsFiltered para filtrado avanzado
- Interfaz intuitiva: scrollable containers para listas largas
- Preserva permisos: respeta restricciones de acceso por casas
- Crear nueva página /graficos con 4 tipos de gráficos interactivos
- Agregar compatibilidad con tema oscuro en selectores
- Implementar exportación a PDF profesional con encabezados
- Agregar campo 'Monto Real del Recibo' a configuración mensual
- Crear migración para nueva columna real_amount en monthly_bills
- Mejorar filtros con botones interactivos en lugar de select múltiple
- Agregar resumen ejecutivo con estadísticas detalladas
- Optimizar espacio visual y responsividad de gráficos
- Integrar Chart.js y jsPDF para funcionalidad avanzada
- Corregir problemas de carga de datos y filtros dinámicos