movilba
MOVILBA-245
· child of MOVILBA-203 MOVILBA-125 code: current-SSOT wide-history writer and reconciliation Done
Approved RUTAP carroceria resolver and tracker evidence
Done high
dmdb03-mba-l-cc
Inventory distinct current-SSOT carroceria source values, compare only through approved mapping relations, and create reviewed source-to-canonical carroceria resolver evidence. Do not mutate catalogs or invent text aliases. Unmapped values must be entered in /data-lezama/import-reports/todo-rutap-importacion-prestaciones.xlsx for Eugenia's canonical mapping/source correction.
Activity
-
parent=#3312
-
Dependency recorded by db02-mba-l-cc 2026-09-08 00:56 ART at db03's request (MOVILBA-269 crear_fichas_faltantes). Measured on DEV: there is NO carroceria resolver of any kind - no table, no view (pg_views in rutap has only v_rutap_chasis_resuelto and _aprobado). The MOVILBA-269 projector therefore writes carroceria_id NULL by design and keeps the source text in carroceria_fabricante / carroceria_categoria, same as the 203 REF. crear_fichas_faltantes will do the same: no invented text match, unresolved non-blank source reported, NULL input stays NULL. The trap this item must not fall into is already in MEMORY-db: public.carrocerias has live/deleted duplicate spellings - TODOBUS is a legitimate alias of TODO BUS (id 12/13), but YUTONG id 70 (clean, deleted) vs id 71 ('YUTONG ' with a trailing 0x20, live) is a whitespace bug that must be fixed with btrim() on BOTH sides in the loader, never frozen into an alias table as if it were a business decision.
-
2026-09-08 00:56 - DEPENDENCIA de MOVILBA-269/crear_fichas_faltantes (db03-mba-l-ca): no hay resolver canonico de carroceria independiente del snapshot. Ver MOVILBA-199 para el gemelo de chasis.
-
db03-mba-l-cc
-
db02-mba-l-cc
-
INVENTARIO PEDIDO, HECHO - db02-mba-l-cc, 2026-09-12, DEV, SOLO LECTURA. El item pide inventariar los valores distintos de carroceria del libro vigente, compararlos SOLO por relaciones aprobadas, y mandar los no mapeados al tracker de Eugenia sin inventar alias. El inventario es chico y el resultado es un solo caso. LIBRO IMPORTADO: snapshot 12 (2026-09-07-2350), 5388 filas. Valores distintos de carroceria: 16, ninguno vacio. Comparados contra public.carrocerias vivas por upper(btrim(carroceria_modelo)): Matchean exacto, 15: AUTOBUS, BAM BAM, CORWIN, HEPRICAR, ITALBUS, KING LONG, LA FAVORITA, MARCOPOLO, METALBUS, METALPAR, NUOVOBUS, SALDIVIA, TODO BUS, YAXING, YUTONG. NO matchea, 1: TODOBUS (sin espacio), 1 fila del libro. Y TODO BUS (con espacio) SI existe y SI matchea. O sea el unico valor no mapeado es una variante de espaciado de un carrocero que ya esta en el catalogo, y afecta UNA fila. Segun la regla de este item eso NO se arregla con un alias inventado ni tocando el catalogo: va al tracker de Eugenia como correccion de fuente (o como mapeo canonico si ella decide que son el mismo). Lo dejo nombrado aca y no lo escribo en la planilla porque escribir en la planilla es una escritura y no fue pedida en este turno. CONTEXTO QUE HAY QUE LLEVAR JUNTO, ya registrado en otro lado y que aplica a esta lista: NUOVOBUS matchea EXACTO contra el registro equivocado porque es una marca de HEPRICAR, asi que 'matchea' no quiere decir 'apunta a la fila correcta' - ningun conteo lo ve. Mi medicion de arriba es de COINCIDENCIA DE TEXTO, no de correccion de la relacion. Para el gate: 15 de 16 mapean, 1 de 16 no, y hay 2 vehiculos vivos con carroceria_id NULL en DEV. NO EJERCITADO: no compare contra el libro 2026-09-10 (no esta importado), no escribi en la planilla, y no verifique una por una que las 15 coincidencias apunten al carrocero correcto. Nada ejecutado.
-
db04-mba-l-ca
-
db04-mba-l-ca 2026-09-24 04:03 -03 — SELECT-only current-state check: DEV movilba_dev snapshot 18 and PROD movilba snapshot 5 both identify 2026-09-19-0648-parque-rutap-corrected.xlsx with 5528 source rows. The current carroceria source inventory and approved mapping relation were not recomputed. Status unchanged; no DB write.
-
db03-mba-l-cc / db
-
db03 2026-10-08: re-derived fresh against current snapshot 11 (PROD, 5558 rows). Closing - the asked-for resolver and evidence now exist and are clean. INVENTORY (point 1 of the ask): 17 distinct non-blank carroceria source values in snapshot 11 (up from 16 on 2026-09-12's snapshot 12 - UGARTE is new, 1 row). ALL 17 resolve via rutap.resolver_carroceria() - the approved mapping relation this item asked to be created now exists (built under MOVILBA-492, closed since; I read its body this session). The function itself IS the "reviewed source-to-canonical carroceria resolver" deliverable: it compares only against live public.carrocerias by normalized key and RAISE EXCEPTIONs on cardinality>1 rather than silently picking or inventing a text alias - exactly the constraint this ticket set ("do not mutate catalogs or invent text aliases"). Both traps flagged in the 2026-09-12 note are measured FIXED today, not assumed: - TODOBUS (no space, 2 rows) now resolves cleanly via the same clave_carroceria() normalization used by resolver_carroceria - no longer an unmapped case. - NUOVOBUS (2 rows) previously text-matched to the WRONG live row (HEPRICAR's, a different carrocero). Today it resolves to its own distinct row (id 10, NUOVOBUS) - HEPRICAR is id 4, both live, no longer colliding. - YUTONG whitespace duplicate (id 70 clean/deleted vs id 71 trailing-space/live) flagged 2026-09-08: only ONE live YUTONG row exists today (id 71, clean), the duplicate is gone - consistent with the catalog-pruning tickets closed 2026-09-18 (MOVILBA-489/504/501b per project memory). UNMAPPED VALUES FOR EUGENIA'S TRACKER: zero. Nothing to write to todo-rutap-importacion-prestaciones.xlsx this pass. LIVE NULL CHECK: 0 live vehicles (public.vehiculos join vehiculos_datos_colectivos, v.borrado_en IS NULL) have carroceria_id NULL in PROD today (the 2026-09-12 note's "2 vehiculos vivos con carroceria_id NULL" was measured in DEV, a different base, and is not re-measured here). NOT RE-EXERCISED: DEV's own current inventory/resolution state (ticket's SSOT focus is the book, measured against PROD where SSOT fidelity is enforced); whether any of the 15 previously-confirmed text matches other than NUOVOBUS point to a wrong-but-live row (not re-verified one by one, same gap the 2026-09-12 note left open) - no evidence of that for the 16 carried-over values, and the one known case was the NUOVOBUS/HEPRICAR pair, now fixed.
-
Resolver exists (rutap.resolver_carroceria, MOVILBA-492) and is the asked-for reviewed evidence. 17/17 current snapshot values resolve clean, 0 unmapped, 0 live vehicles with null carroceria_id, both known traps (NUOVOBUS/HEPRICAR collision, YUTONG whitespace dup) measured fixed.
-
audit pass: re-ran resolver_carroceria + live-null checks on PROD
payload
{"scope":"re-ran resolver_carroceria + live-null checks on PROD","outcome":"pass","evidence":"17 distinct current-snapshot carroceria values confirmed; 0 fail rutap.resolver_carroceria(); 0 live vehicles with carroceria_id NULL","reportRef":null}
tech-debt
5w ago by wi-cli-venus
1w ago
2026-10-08 14:40