# /sync-conceptos — Sincronizar mapeo de conceptos de nómina

Sincroniza el Excel `Conceptos_Nomina_Mapeo.xlsx` con la tabla `nomina_conceptos` en PostgreSQL y refresca el dashboard.

## Cuándo usar
- El usuario modificó columnas Incluir/Grupo/Subgrupo/Nombre Display en el Excel
- Se generó un nuevo Excel con más conceptos
- Hay conceptos que no aparecen en la tabla Payroll del dashboard

## Pasos

1. **Copia el Excel** del directorio principal al worktree (el servidor lee desde ahí):
```bash
cp "/Users/ricardomartinez/BIA CLAUDE PROYECTOS/Proyectos Claude IA/Talento Humano Api Dashboard/Conceptos_Nomina_Mapeo.xlsx" \
   "/Users/ricardomartinez/BIA CLAUDE PROYECTOS/Proyectos Claude IA/Talento Humano Api Dashboard/.claude/worktrees/angry-diffie-524755/Conceptos_Nomina_Mapeo.xlsx"
```

2. **Ejecuta el sync** via endpoint:
```bash
curl -s -X POST "http://localhost:8081/proxy/admin/sync-conceptos" | python3 -m json.tool
```

3. **Verifica resultado** en BD:
```bash
psql -U postgres -d "Base de Datos Talento Humano" -c \
  "SELECT codigo, nombre, grupo, subgrupo FROM nomina_conceptos WHERE incluir = true ORDER BY grupo, subgrupo, codigo;"
```

4. Informa al usuario cuántos conceptos quedaron activos. El dashboard se actualiza automáticamente al recargar la pestaña Payroll o hacer clic en 🔄 en el banner.

## Notas
- El Excel tiene 10 columnas: `Código BD | Código API | Nombre API | Tipo | Incluir (S/N) | Grupo | Subgrupo | Nombre Display | # NITs | # Meses | Meses`
- **Código BD** puede tener sufijos `_v2`, `_v3` cuando el mismo código API tiene nombres distintos en diferentes hoteles
- La lógica `COALESCE` preserva grupo/subgrupo existentes si la celda está vacía en el Excel
- Si el sync da error de VARCHAR, correr: `psql -U postgres -d "Base de Datos Talento Humano" -c "ALTER TABLE nomina_conceptos ALTER COLUMN codigo TYPE VARCHAR(40);"`
