Commit Graph

218 Commits

Author SHA1 Message Date
ce7bec7d4c Fix: corregir tipos de parámetros para queries nativas SQL de Metabase
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 47s
Cambios principales:
- Cambiar tipo de parámetros de fecha de 'date/single' a 'text'
- Cambiar tipo de parámetro booleano de 'category' a 'boolean'
- Cambiar tipo de parámetros de categoría de 'category' a 'text'

Las queries SQL nativas en Metabase usan template-tags con tipos específicos
que deben coincidir exactamente con el tipo definido en el template-tag,
no con los tipos de UI de Metabase.

Archivos modificados:
- server/api/metabase/panorama.post.ts
- server/api/metabase/informe.post.ts

Resuelve el problema donde todas las queries retornaban error 500 y
respuestas vacías debido a tipos de parámetros incompatibles.
2025-10-29 10:32:10 -06:00
b4ec8d5444 Debug: agregar logging extensivo al endpoint de panorama
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 44s
- Agregar logs para verificar que las cards se encuentren correctamente
- Agregar logs detallados de los parámetros enviados a cada query
- Agregar logs de la estructura de respuesta de Metabase
- Agregar logs de la transformación de datos (single row y multiple rows)
- Esto ayudará a diagnosticar por qué las respuestas están vacías
2025-10-29 10:22:51 -06:00
ad1050b256 Fix: convertir parámetros null a string vacío para queries de Metabase
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 55s
- Modificar panorama.post.ts e informe.post.ts para convertir fecha_desde y fecha_hasta null a strings vacíos
- Las queries de Metabase usan NULLIF(?, '') para detectar parámetros vacíos
- Esto permite que las queries usen sus defaults (fecha actual) correctamente
2025-10-29 10:16:04 -06:00
1af1c61191 Agregar componente RechazosSubproductos para panorama facturador
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 5m28s
2025-10-29 10:05:31 -06:00
ae19af5c9e Fix: corregir renderizado de parámetros en MetabaseCardDisplay
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 48s
- Cambiar tipo de parámetros boolean de 'category' a 'boolean' para que funcione el UToggle
- Detectar campos de fecha por nombre aunque sean tipo text en Metabase
- Renderizar inputs de fecha con date picker para campos que contienen 'fecha'
- Mejorar inicialización de parámetros text que representan fechas

Resuelve el problema donde incluir_anulados no aparecía y fecha_desde/fecha_hasta
se mostraban como text inputs en lugar de date pickers
2025-10-29 09:38:17 -06:00
646057188e Actualizar README con cambios v1.1.0: Informe de Ingresos y config centralizada
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 8s
2025-10-27 17:24:04 -06:00
ab0e3479f5 Activar página de Informe de Ingresos con filtros y totales
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 46s
2025-10-27 17:19:51 -06:00
a243710fe8 Actualizar Metabase Debug: usar config centralizado y agregar tab de Informe Ingresos
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 46s
2025-10-27 17:14:37 -06:00
9cadbb0a66 Fix: usar rutas relativas para imports en server/
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 46s
2025-10-27 17:09:56 -06:00
e918b9d4ec Agregar endpoint de Informe de Ingresos y centralizar config de queries de Metabase
Some checks failed
build-and-deploy / build-and-deploy (push) Failing after 35s
2025-10-27 17:08:01 -06:00
caefe317e0 Agregar README completo del proyecto
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 8s
2025-10-27 15:54:09 -06:00
f36861f1b2 Eliminar composables legacy useIngresosMetrics y useRechazosMetrics
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 52s
2025-10-27 15:36:51 -06:00
71d0f98338 Fix: exportar variables NUXT_METABASE_* en workflow para runtime config
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 11s
2025-10-27 15:34:19 -06:00
f83a19c4c0 Fix: usar variables NUXT_ para runtime config de Metabase
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 10s
2025-10-27 15:33:01 -06:00
79189d25d0 Fix: agregar METABASE_API_KEY faltante a .env.example
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 10s
2025-10-27 15:30:41 -06:00
1a0533f398 Trigger redeploy con nueva METABASE_URL configurada en Gitea Variables
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 10s
2025-10-27 15:26:41 -06:00
ed2c2ec1eb Fix: usar URL interna de Docker para Metabase (http://metabase:3000)
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 11s
El contenedor estaba intentando conectarse a la URL pública de Metabase
(https://metabase.nucleoriofrio.com) en lugar de usar la red interna
de Docker (http://metabase:3000), causando errores 401 Unauthorized.

Esto permite que el contenedor de Nuxt se comunique directamente con
el contenedor de Metabase a través de la red Docker sin pasar por
Traefik/Authentik.
2025-10-27 15:23:18 -06:00
694ee4e3bb Refactorizar Panorama Facturador: implementar filosofía "Metabase calcula TODO, Vue solo renderiza"
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 5m41s
Cambios principales:

- Refactorizar todos los componentes de panorama para recibir datos directos de Metabase
  * TotalesMonetarios.vue: cambiar de props.metrics a props.data
  * TotalesIngresoCompra.vue: cambiar de props.metrics a props.data
  * TotalesVerde.vue: cambiar de props.metrics a props.data
  * SecosVendidos.vue: cambiar de props.metrics a props.data

- Eliminar fechas hardcodeadas en panorama.post.ts
  * Pasar valores null directamente a Metabase para usar sus defaults

- Marcar composables obsoletos para Panorama Facturador
  * useIngresosMetrics.ts: agregar advertencia de no uso en Panorama
  * useRechazosMetrics.ts: agregar advertencia de no uso en Panorama

Resultado: Todos los cálculos (agregaciones, promedios ponderados) se hacen en Metabase mediante SQL. Los componentes Vue solo renderizan valores ya calculados.
2025-10-27 15:09:03 -06:00
9234c5832c Mejorar botón Inicio con icono de perfil y estilo mejorado
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 48s
- Agregar icono de la app perfil al botón Inicio
- Implementar sistema de fallback para iconos (local → remoto → favicon)
- Aplicar gradientes y estilos inspirados en la app perfil
- Agregar transiciones suaves y efectos hover mejorados
2025-10-18 02:06:06 -06:00
f4d4f643a8 Agregar apple-touch-icon.png estándar para iOS/Safari
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 48s
2025-10-17 05:35:36 -06:00
0930aaa699 Actualizar botón sidebar: Mi Perfil → Inicio
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 48s
Cambios en AppSidebar.vue:
- Cambiar link de /profile a https://inicio.nucleoriofrio.com
- Actualizar texto de 'Mi Perfil' a 'Inicio'
- Cambiar icono de user a home
- Actualizar colores de azul a verde

El botón ahora navega a la PWA de inicio usando scope extensions.
2025-10-17 04:08:21 -06:00
62ecab25f5 Agregar mejoras PWA y unificar workflow a 1 job
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 4m32s
- Agregar id único (/?app=analitica), launch_handler, handle_links y url_handlers
- Unificar workflow de 2 jobs (build + deploy) a 1 solo job
- Workaround para bug de Gitea que solo ejecuta el primer job
2025-10-17 03:32:13 -06:00
f00fa92616 Implementar link handling y asociación con PWA hub
Some checks failed
build-and-deploy / build (push) Failing after 3s
build-and-deploy / deploy (push) Has been cancelled
- Agregar capture_links en manifest para mejorar experiencia PWA
- Crear archivo .well-known para asociación con inicio.nucleoriofrio.com
- Actualizar Traefik para servir recursos PWA y .well-known sin autenticación
2025-10-17 02:15:20 -06:00
93668d9b6f feat: panorama facturador completamente funcional
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 3s
- Remover badge de mantenimiento del sidebar
- Eliminar endpoints de debug temporales
- Panorama funcionando con todas las secciones:
  * Totales Financieros
  * Café Seco - Inventario y Proyecciones
  * Totales de Ingreso y Compra
  * Totales Monetarios
  * Café Verde
  * Rechazos y Subproductos
- Todas las 9 queries de Metabase ejecutándose correctamente
- Datos reales mostrados en tiempo real
2025-10-14 10:57:26 -06:00
7ba274a291 fix: usar valores por defecto para parametros de fecha cuando son null
All checks were successful
build-and-deploy / build (push) Successful in 46s
build-and-deploy / deploy (push) Successful in 3s
Las queries de Metabase tienen fecha_desde y fecha_hasta como parametros
requeridos con valores por defecto. Cuando se envia null, Metabase rechaza
la query. Ahora usamos los defaults cuando no se especifican fechas.
2025-10-14 10:50:05 -06:00
7c9d129138 debug: agregar endpoint para testear queries individuales
All checks were successful
build-and-deploy / build (push) Successful in 47s
build-and-deploy / deploy (push) Successful in 4s
2025-10-14 10:48:03 -06:00
93fb9002b2 debug: agregar manejo de errores individual para cada query del panorama
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 3s
2025-10-14 10:44:46 -06:00
5477f14f31 debug: agregar endpoint temporal para listar queries de metabase
All checks were successful
build-and-deploy / build (push) Successful in 42s
build-and-deploy / deploy (push) Successful in 3s
2025-10-14 10:41:58 -06:00
092c0c88bd debug: agregar logging para panorama endpoint
All checks were successful
build-and-deploy / build (push) Successful in 45s
build-and-deploy / deploy (push) Successful in 3s
2025-10-14 10:39:16 -06:00
f8c53da6fc feat: restaurar panorama facturador con nueva arquitectura basada en Metabase
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 4s
- Crear endpoint /api/metabase/panorama.post.ts que ejecuta las 9 queries en paralelo
- Restaurar y adaptar panorama.vue para usar el nuevo endpoint
- Crear componentes auxiliares: SecosVendidos, TotalesIngresoCompra, TotalesMonetarios, TotalesVerde, MetricBox, RechazosRechazoCard
- Adaptar RechazosSubproductos para recibir data directamente de Metabase
- Toda la transformación de datos ocurre en las queries SQL de Metabase
- Sin uso de stores ni composables de métricas
- Agregar documentación de queries en archivos MD
2025-10-14 10:34:27 -06:00
49352de748 fix: resolver conflicto aria-hidden con foco en botón móvil del sidebar
All checks were successful
build-and-deploy / build (push) Successful in 42s
build-and-deploy / deploy (push) Successful in 3s
- Mover foco al sidebar cuando se abre en móvil
- Mover foco al panel principal cuando sidebar se cierra
- Evita warning de accesibilidad: aria-hidden con elemento enfocado
2025-10-14 04:17:24 -06:00
2f6331e809 fix: corregir formato de columnas UTable para compatibilidad con Nuxt UI v4
Some checks failed
build-and-deploy / deploy (push) Has been cancelled
build-and-deploy / build (push) Has been cancelled
- Cambiar estructura de columnas de {key, label} a {accessorKey, header, id}
- Cambiar prop :rows a :data en componente UTable
- Actualizar referencias en selector de columnas
2025-10-14 04:16:55 -06:00
3c795404cf fix: usar rows en lugar de data y key en lugar de accessorKey para UTable
All checks were successful
build-and-deploy / build (push) Successful in 42s
build-and-deploy / deploy (push) Successful in 3s
2025-10-14 04:11:51 -06:00
9af3f51760 fix: corregir estructura de columnas para UTable usando accessorKey en lugar de key
All checks were successful
build-and-deploy / build (push) Successful in 42s
build-and-deploy / deploy (push) Successful in 3s
2025-10-14 04:10:11 -06:00
4303365020 debug: agregar logs para diagnosticar problema de renderizado de tabla en explorer
All checks were successful
build-and-deploy / build (push) Successful in 46s
build-and-deploy / deploy (push) Successful in 3s
2025-10-14 04:08:25 -06:00
602bdc4558 fix: configurar rutas públicas en Traefik para assets de Nuxt
All checks were successful
build-and-deploy / build (push) Successful in 9s
build-and-deploy / deploy (push) Successful in 4s
- Exponer solo /_nuxt/* sin autenticación (necesario para funcionamiento)
- Mantener autenticación Authentik en todas las demás rutas
- Priorizar seguridad: /api/*, manifest y favicon protegidos
2025-10-14 04:04:30 -06:00
a6764ec7a9 fix: agregar paginación y límite configurable en explorer
All checks were successful
build-and-deploy / build (push) Successful in 44s
build-and-deploy / deploy (push) Successful in 3s
- Agregar selector de límite de registros (10 a 10,000)
- Implementar paginación client-side con UPagination
- Mostrar información detallada de registros cargados y filtrados
- Usar límite seleccionado en lugar de hardcoded 1000
- Resetear página al cambiar búsqueda o cargar datos
- Indicar cuando hay más datos disponibles (limitado)
- Mejorar UX con paginación de 50 filas por página por defecto
2025-10-14 04:01:15 -06:00
f1506918fd fix: agregar layout 'informe' a página metabase-debug
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 3s
- Agregar definePageMeta con layout 'informe'
- Mostrar sidebar y navegación correctamente
- Mejorar consistencia con otras páginas del dashboard
2025-10-14 03:56:08 -06:00
45ff3777a7 feat: agregar formulario configurable de parámetros en queries
All checks were successful
build-and-deploy / build (push) Successful in 42s
build-and-deploy / deploy (push) Successful in 3s
- Agregar sección expandible para configurar parámetros antes de ejecutar
- Inputs dinámicos según tipo: toggle para boolean, date picker para fechas, text para otros
- Inicialización automática con valores por defecto de template-tags
- Botón para restablecer parámetros a valores originales
- Usar valores del formulario al ejecutar queries
- Mejorar UX con labels legibles y estilos consistentes
2025-10-14 03:51:00 -06:00
9d5e2dbfe2 fix: usar valores por defecto de template-tags al ejecutar queries
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 3s
- Extraer valores por defecto de template-tags de la card
- Construir parámetros dinámicamente basados en la configuración
- Soportar tipos: date, boolean, text
- Resolver error de parámetros faltantes en queries con fechas
2025-10-14 03:47:37 -06:00
c69c3bdafc feat: mejorar visualización de resultados de queries en Metabase Debug
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 3s
- Agregar tabla estructurada para mostrar resultados de queries
- Agregar botón de copiar JSON profesional con feedback visual
- Agregar formato automático de números y fechas según tipo de columna
- Mantener vista JSON colapsable para ver datos completos
- Mejorar UX con tabla responsive y estilos consistentes
2025-10-14 03:42:52 -06:00
02d17b816b fix: agregar parámetros por defecto y estado vacío amigable
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 3s
Soluciona dos problemas en la ejecución de queries de Metabase:

1. Error de parámetros faltantes:
   - Las queries requieren parámetros (incluir_anulados, fecha_desde, fecha_hasta)
   - Agregado valores por defecto a todas las llamadas POST:
     * incluir_anulados: false
     * fecha_desde: null (sin filtro)
     * fecha_hasta: null (sin filtro)

2. Estado vacío poco amigable:
   - Cuando rows y cols están vacíos mostraba solo JSON
   - Agregado EmptyState visual con:
     * Icono de tabla vacía
     * Mensaje "No hay datos"
     * Descripción explicativa

Cambios en:
- MetabaseCardDisplay.vue: executeQuery() con parámetros y EmptyState
- MetabaseCardsTable.vue: executeCard() con parámetros y EmptyState en modal
2025-10-14 03:10:53 -06:00
bc10cd8e50 fix: agregar propiedad slot a tabs para renderizar contenido
All checks were successful
build-and-deploy / build (push) Successful in 45s
build-and-deploy / deploy (push) Successful in 4s
El contenido de los tabs no se mostraba porque faltaba la propiedad
'slot' en cada item del array tabs. Nuxt UI UTabs requiere esta
propiedad para vincular los slots nombrados con sus respectivos tabs.

Cambios:
- Agregar propiedad 'slot' a cada item en el array tabs
- Ahora los slots nombrados (#table, #cards, #panorama, #detail) se
  vinculan correctamente con sus tabs correspondientes
2025-10-14 02:47:54 -06:00
c035c8a78f fix: corregir renderizado de tabs en metabase-debug
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 3s
Corrección del bug visual donde todos los tabs se mostraban simultáneamente.
El problema era el uso incorrecto del slot #default en UTabs que causaba
que todos los contenidos se renderizaran a la vez, creando elementos duplicados.

Cambios:
- Cambiar de #default a slots nombrados específicos (#table, #cards, #panorama, #detail)
- Ahora solo se muestra el contenido del tab activo
- Elimina la duplicación de elementos
- Mejora la legibilidad y organización visual
2025-10-14 02:35:48 -06:00
585d31a374 fix: mejorar visualización responsive en móvil para metabase-debug
All checks were successful
build-and-deploy / build (push) Successful in 42s
build-and-deploy / deploy (push) Successful in 3s
Ajustes realizados:

Components:
- MetabaseCardDisplay: grid responsive, queries con wrap, botones apilables
- MetabaseCardsTable: filtros verticales en móvil, acciones con wrap

Page:
- Header responsive con elementos apilados
- Stats en grid 2x2 para móvil, 4 columnas en desktop
- Tamaños de fuente adaptados con breakpoints

Todas las queries SQL y JSON ahora usan whitespace-pre-wrap y break-words
para aprovechar el espacio vertical en lugar de scroll horizontal.
2025-10-14 02:21:51 -06:00
214d9a17d5 feat: agregar link a Metabase Debug en sidebar
All checks were successful
build-and-deploy / build (push) Successful in 41s
build-and-deploy / deploy (push) Successful in 3s
Agrega nuevo item de navegación en la sidebar para acceder
a la página de debugging de Metabase.
2025-10-14 02:14:41 -06:00
56835d9b5d fix: corregir colores de UAlert y UBadge en metabase-debug
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 3s
- Cambiar 'red' a 'error'
- Cambiar 'blue' a 'info'
- Cambiar 'yellow' a 'warning'
- Cambiar 'text-blue-600' a 'text-primary'
2025-10-14 02:09:20 -06:00
a774d21cae feat: agregar configuración de Metabase
All checks were successful
build-and-deploy / build (push) Successful in 8s
build-and-deploy / deploy (push) Successful in 3s
- Agregar variables de entorno de Metabase en docker-compose.yml
- Agregar variables de Metabase en workflow de Gitea Actions
- Configurar METABASE_URL, METABASE_API_KEY, METABASE_EMAIL y METABASE_PASSWORD
2025-10-14 01:59:46 -06:00
90aebbde3d feat: agregar página de debug para Metabase
All checks were successful
build-and-deploy / build (push) Successful in 41s
build-and-deploy / deploy (push) Successful in 3s
- Crear componente MetabaseCardDisplay para mostrar detalles de queries
- Crear componente MetabaseCardsTable para listar todas las queries
- Crear página /metabase-debug con vistas de tabla, cards y queries Panorama
- Agregar API routes para cards de Metabase (GET, POST, export)
- Actualizar metabase.ts para soportar API Key authentication
- Agregar configuración de Metabase API Key en nuxt.config.ts
- Documentar todos los endpoints disponibles en METABASE_API_ENDPOINTS.md
2025-10-14 01:34:56 -06:00
d0b0dc3c56 feat: add URL query params support to explorer page
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 3s
- Add support for 'db' and 'table' query parameters
- Automatically preselect database and table from URL
- Auto-load data when both params are provided
- Update URL when user changes selection manually
- Example: /explorer?db=facturador+supabase&table=Ingresos
2025-10-13 19:52:00 -06:00