# Tiempo dedicado por proyecto — implementación

## Qué agrega

- Botón **Tiempo** en cada tarjeta de proyecto.
- Modal independiente para registrar y consultar tiempo sin abrir/editar el proyecto.
- Registro por **país**, **tarea**, **horas/minutos**, **fecha** y **nota opcional**.
- Resumen automático:
  - total del proyecto;
  - desglose por país;
  - desglose por tarea.
- Historial detallado con usuario y fecha de registro.
- Eliminación de registros con confirmación para corregir capturas equivocadas.
- Paginación del historial (10 registros por página).

## Antes de desplegar

Ejecutar en Supabase SQL Editor:

```text
supabase_project_time_entries.sql
```

El script es idempotente y no modifica las tablas de proyectos, tarifarios ni montos.

## Seguridad

Solo usuarios autenticados que estén activos en `tablero_cdc_allowed_users` pueden leer o modificar registros de tiempo.

## Persistencia

Tabla nueva:

```text
public.tablero_cdc_project_time_entries
```

La duración se guarda en minutos enteros para evitar redondeos.

## Sincronización automática con Registro horas (2026-08-15)

Cada alta o eliminación en **Tiempo dedicado** solicita una reconciliación del proyecto con el workflow n8n `Tablero CDC - Sync Registro Horas`.

- Fuente del tiempo: `tablero_cdc_project_time_entries` en Supabase.
- Destino: `CD_Latam_Registro Horas_2024` → hoja `Registro horas`.
- El workflow usa `Tablero Time ID` y `Tablero Project ID` en columnas T/U para evitar duplicados y detectar eliminaciones.
- Mapeo automático: Fecha, Mes, Día, Proyecto, Cliente, País/BU, CM, Trabajado, Tipo de trabajo, Horas, Comentarios, # MES y AÑO.
- Columnas L:P se dejan disponibles y se preservan si alguien las completa manualmente.
- Al volver a abrir el modal Tiempo, la app vuelve a solicitar la reconciliación en segundo plano, de modo que un fallo temporal de Google Sheets pueda repararse sin registrar las horas dos veces.
