Files
Soporte ZH Consultores 0a8dc6fc46 refactor(hours): FK user_id en tramites_hours y tramites_obs
Hasta ahora el vínculo "esta hora/observación es de X" era por string
(h.abogado = users.name). Se rompía cuando un Socio renombraba un
usuario en el Panel de Control (las entradas históricas conservaban
el nombre viejo y los filtros del Reporte de Horas no las hallaban).

- Migración 014: ADD COLUMN user_id INT NULL + FK ON DELETE SET NULL
  en ambas tablas, con backfill via JOIN users.name = abogado
- tramites/api.php: helper userIdByName() + add_obs/add_hours/
  update_hours ahora persisten user_id junto con el string abogado
- horas/api.php: filtro WHERE (user_id = :uid OR (user_id IS NULL
  AND abogado = :name)) — prioriza FK, cae al string solo para
  filas legacy sin user_id. by_user y by_user_tramite agrupan por
  COALESCE(u.name, h.abogado) para usar siempre el nombre actual.
2026-06-04 22:33:41 -05:00
..