# F-080 — Implementer evidence ## What was implemented Made the PVP (IVA incl.) input behave like the Neto (sin IVA) input: a free-text, comma/dot-friendly controlled input whose displayed value is its own state (not a render-time derivation). ### Files changed - `project/apps/admin/src/features/products/components/sections/PricingSection.tsx` - Added `gross` state (`Record`) mirroring `net`. - On price load, populates `gross` from the persisted net + current IVA rate. - PVP ``: - `type="text" inputMode="decimal"` (was `type="number"`), - `value={gross[v.id] ?? ''}`, - `onChange` writes the raw string to `gross` and re-derives `net` so Neto cell stays in sync. - Neto ``: - switched to `type="text" inputMode="decimal"` for parity, - `onChange` writes to `net` and re-derives `gross` so PVP cell stays in sync. - IVA `