fix(horas): normalizar nombres legacy de abogado en hours/obs/escrituras
Antes de la migración 007 los dropdowns guardaban variantes parciales (ej. "Altafulla" en vez de "Julio Altafulla"). El filtro del Reporte de Horas no encontraba esos registros viejos porque users.name ahora es el nombre completo. Migración 013 hace un UPDATE con JOIN a users donde haya match único LIKE %legacy%. Aplicó a 4 filas: 2 en tramites_hours, 1 en tramites_obs, 1 en escrituras_tramites.
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
-- ============================================================
|
||||
-- Donna — Schema 013: normalizar strings legacy de "abogado"
|
||||
-- ============================================================
|
||||
-- Antes de la migración 007 (drop apellido) los dropdowns guardaban
|
||||
-- solo el apellido o variantes parciales en tramites_hours.abogado,
|
||||
-- tramites_obs.abogado y escrituras_tramites.abogado. Eso rompe los
|
||||
-- filtros del Reporte de Horas porque `users.name` es ahora el nombre
|
||||
-- completo y el WHERE exacto no encuentra los registros viejos.
|
||||
--
|
||||
-- Esta migración reemplaza esos strings por el nombre completo del
|
||||
-- usuario cuando hay UN solo match no ambiguo (LIKE %legacy%).
|
||||
-- Si hubiera dos usuarios cuyo nombre contiene el string viejo,
|
||||
-- la fila no se toca (hay que decidir a mano cuál es).
|
||||
|
||||
-- 1. tramites_hours
|
||||
UPDATE tramites_hours h
|
||||
JOIN users u ON u.activo = 1
|
||||
AND h.abogado != u.name
|
||||
AND u.name LIKE CONCAT('%', h.abogado, '%')
|
||||
SET h.abogado = u.name
|
||||
WHERE (SELECT COUNT(*) FROM users u2 WHERE u2.activo = 1 AND u2.name LIKE CONCAT('%', h.abogado, '%')) = 1;
|
||||
|
||||
-- 2. tramites_obs
|
||||
UPDATE tramites_obs o
|
||||
JOIN users u ON u.activo = 1
|
||||
AND o.abogado != u.name
|
||||
AND u.name LIKE CONCAT('%', o.abogado, '%')
|
||||
SET o.abogado = u.name
|
||||
WHERE (SELECT COUNT(*) FROM users u2 WHERE u2.activo = 1 AND u2.name LIKE CONCAT('%', o.abogado, '%')) = 1;
|
||||
|
||||
-- 3. escrituras_tramites
|
||||
UPDATE escrituras_tramites e
|
||||
JOIN users u ON u.activo = 1
|
||||
AND e.abogado != u.name
|
||||
AND u.name LIKE CONCAT('%', e.abogado, '%')
|
||||
SET e.abogado = u.name
|
||||
WHERE (SELECT COUNT(*) FROM users u2 WHERE u2.activo = 1 AND u2.name LIKE CONCAT('%', e.abogado, '%')) = 1;
|
||||
Reference in New Issue
Block a user