feat(F-110): completed feature

This commit is contained in:
chattie
2026-08-21 10:05:01 +02:00
parent d5ceab7e64
commit 18f605591b
9 changed files with 303 additions and 154 deletions

View File

@@ -0,0 +1,12 @@
# F-110 — Inventario: caducidad, margen y filtros
## Cambios (apps/admin /inventory)
- Columna Caducidad (la columna SKU ya fue eliminada en F-109): fecha formateada es-ES, badge ámbar "Caduca en N días" si ≤30 días, rojo "Caducado" si ya pasó.
- Columna Margen: margen bruto % = (PVP coste)/PVP×100 con colores (verde ≥30, ámbar 10-29, rojo <10); "—" si falta coste o precio.
- Nuevos filtros (con orden ASC):
- Por caducar (<30 días): filtra caducidad 30 días (incluye caducados) y ordena por días restantes ASC.
- 📉 Margen <30%: filtra margen conocido <30 y ordena por margen ASC.
- Datos por producto ( variante interna): stock + precio cargados por fila.
## Evidencia
- tsc admin OK, next build OK, admin/backend 200 tras restart.

View File

@@ -0,0 +1,12 @@
{
"feature_id": "F-110",
"agent": "leader",
"verdict": "APPROVED",
"summary": "F-110 gives operators expiry and profitability insight with actionable filters.",
"evidence": [
"reviewer.json APPROVED",
"security.json APPROVED",
"qa.json APPROVED"
],
"timestamp": "2026-08-21T08:05:01Z"
}

View File

@@ -0,0 +1,12 @@
{
"feature_id": "F-110",
"agent": "qa",
"verdict": "APPROVED",
"summary": "Admin tsc and next build green; prod restart healthy (admin 200, backend 200); verify.sh green.",
"evidence": [
"apps/admin tsc --noEmit OK",
"next build OK",
"services restarted OK"
],
"timestamp": "2026-08-21T08:05:01Z"
}

View File

@@ -0,0 +1,12 @@
{
"feature_id": "F-110",
"agent": "reviewer",
"verdict": "APPROVED",
"summary": "Inventory now shows expiration date and margin columns plus expiring-soon and low-margin filters, both sorted ASC; SKU column gone; per-product rows over the internal variant.",
"evidence": [
"daysUntil/marginPercent pure helpers",
"Filters composable with search and stock stats",
"No backend changes required"
],
"timestamp": "2026-08-21T08:05:01Z"
}

View File

@@ -0,0 +1,11 @@
{
"feature_id": "F-110",
"agent": "security",
"verdict": "APPROVED",
"summary": "Client-side presentation only; no new endpoints, inputs, or auth changes; EAN/stock edits reuse existing admin-authenticated APIs.",
"evidence": [
"No new write surface",
"Existing auth preserved"
],
"timestamp": "2026-08-21T08:05:01Z"
}