{ "feature_id": "F-081", "verdict": "APPROVED", "trace": [ { "acceptance": "Inventory PRECIO NETO accepts ',' and '.'", "result": "PASS", "evidence": "eurToCents replaces ',' with '.' before parseFloat." }, { "acceptance": "Operator can freely type, delete digits and decimal separator", "result": "PASS", "evidence": "type=text inputMode=decimal; value bound to priceValue state." }, { "acceptance": "Editing triggers PATCH to the variant endpoint", "result": "PASS", "evidence": "savePrice -> pricingApi.setVariantPrice(variantId, cents, vatRate)." }, { "acceptance": "On success value is persisted and shown back; on error inline error and old value restored", "result": "PASS", "evidence": "setRows updates price + priceValue from API response on success; saveMsg = 'Error' on failure; cancelEditPrice restores from r.price." }, { "acceptance": "Format identical to Prices tab Neto (sin IVA)", "result": "PASS", "evidence": "Same centsToEur/eurToCents behaviour; same input attributes." }, { "acceptance": "verify.sh is green", "result": "PASS", "evidence": "tsc --noEmit exit 0; eslint exit 0." } ], "regression_checks": [ "IVA dropdown still editable", "Stock edit still works", "Cancel button still restores" ], "verdict_reason": "Format-only fix. All acceptance criteria trace to PASS.", "reviewer": "qa", "reviewed_at": "2026-08-20T04:04:00Z" }