fix(web): migrar PuntoDeVentaForm a sintaxis Zod v4 (closes #21) #23

Merged
dmolinari merged 1 commits from fix/ADM-008-zod-v4 into main 2026-04-18 11:47:39 +00:00
Owner

Descripción

Migración de PuntoDeVentaForm.tsx de sintaxis Zod v3 a v4, siguiendo el mismo pattern aplicado en los 4 componentes fiscales de ADM-009 (PR #22).

Problema

La sintaxis z.coerce.number({ invalid_type_error: '...' }) es inválida en Zod v4 — el objeto de opciones ya no acepta invalid_type_error. Esto causaba 5 errores en cascada de TypeScript en @hookform/resolvers: los tipos medioId y numeroAFIP inferían unknown en vez de number, rompiendo Resolver, Control (3 instancias) y SubmitHandler.

Fix aplicado

// Antes (v3 — inválido en v4):
medioId: z.coerce.number().refine(...)
numeroAFIP: z.coerce.number({ invalid_type_error: 'El número AFIP debe ser un número' })

// Después (v4 — genérico explícito para que hookform resuelva bien):
medioId: z.coerce.number<number>().refine(...)
numeroAFIP: z.coerce.number<number>('El número AFIP debe ser un número')

Verificación

  • tsc -b: 0 errores en PuntoDeVentaForm.tsx post-fix
  • Tests: 275/275 pasando sin regresiones

Closes #21

## Descripción Migración de `PuntoDeVentaForm.tsx` de sintaxis Zod v3 a v4, siguiendo el mismo pattern aplicado en los 4 componentes fiscales de ADM-009 (PR #22). ## Problema La sintaxis `z.coerce.number({ invalid_type_error: '...' })` es inválida en Zod v4 — el objeto de opciones ya no acepta `invalid_type_error`. Esto causaba **5 errores en cascada** de TypeScript en `@hookform/resolvers`: los tipos `medioId` y `numeroAFIP` inferían `unknown` en vez de `number`, rompiendo `Resolver`, `Control` (3 instancias) y `SubmitHandler`. ## Fix aplicado ```ts // Antes (v3 — inválido en v4): medioId: z.coerce.number().refine(...) numeroAFIP: z.coerce.number({ invalid_type_error: 'El número AFIP debe ser un número' }) // Después (v4 — genérico explícito para que hookform resuelva bien): medioId: z.coerce.number<number>().refine(...) numeroAFIP: z.coerce.number<number>('El número AFIP debe ser un número') ``` ## Verificación - `tsc -b`: 0 errores en `PuntoDeVentaForm.tsx` post-fix - Tests: 275/275 pasando sin regresiones Closes #21
dmolinari added 1 commit 2026-04-18 11:47:35 +00:00
dmolinari merged commit d4b2183628 into main 2026-04-18 11:47:39 +00:00
dmolinari deleted branch fix/ADM-008-zod-v4 2026-04-18 11:47:39 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dmolinari/SIG-CM2.0#23