F-201 F-202 F-203: POS cash close report + email + PIN admin
F-201: GET /pos/reports/cash-close/:id with financial summary, sales by state, payments breakdown, items sold. Extended /pos/sessions/:id. F-202: Cash close email sent on session close to smtpReportEmail (best-effort). smtpReportEmail field added to admin SMTP settings. F-203: Admin POS terminal config: selfpayMode, closeSessionRequiresPin, closeSessionPin (4-6 digits) with dedicated settings section.
This commit is contained in:
@@ -526,3 +526,58 @@
|
||||
- API: nuevo POST /pos/sales/:id/returns y GET /pos/sales/:id/items; eliminado el legacy /refund.
|
||||
- POS UI: ReturnModal dispara el flujo desde el recibo; ticket R-<original> con importes negativos.
|
||||
- Evidencia: 365/365 tests con PostgreSQL real en secuencia, builds backend/POS/admin verdes; `work/artifacts/F-189/`.
|
||||
|
||||
## 2026-08-23 — Sprint: F-190..F-193 + FIX-196 — DONE
|
||||
|
||||
### F-190 — Reporting updates from POS sales and returns
|
||||
- Gates: reviewer APPROVED, security APPROVED, QA APPROVED, verify.sh exit 0
|
||||
- Fix: `dataAvailability.paymentMethod` y `dataAvailability.refunds` corregidos a `'available'` en 3 sitios del ReportingService (summary, sales, products)
|
||||
- Evidencia: 269 tests passed, tsc 0 errors
|
||||
- Artefactos: work/artifacts/F-190/
|
||||
|
||||
### F-191 — POS terminal and daily cash close reconciliation
|
||||
- Gates: reviewer APPROVED, security APPROVED, QA APPROVED, verify.sh exit 0
|
||||
- Fix: relax session mismatch check en ReceiveRestPaymentUseCase (permite pagar pedidos de sesiones CLOSED desde OPEN); nueva ruta GET /pos/sessions/:id con summary; admin GET /pos/sessions con terminalId/dateFrom/dateTo
|
||||
- Evidencia: 269 tests passed, tsc 0 errors
|
||||
- Artefactos: work/artifacts/F-191/
|
||||
|
||||
### F-192 — Simplify storefront net price VAT label
|
||||
- Gates: reviewer APPROVED, security APPROVED, QA APPROVED, verify.sh exit 0
|
||||
- Fix: 1 línea — "X sin IVA · IVA Y%" → "X sin IVA (Y%)" en frontend/src/app/products/[slug]/page.tsx
|
||||
- Evidencia: 269 tests passed, tsc 0 errors
|
||||
- Artefactos: work/artifacts/F-192/
|
||||
|
||||
### F-193 — Show product expiry and shipping weight on storefront
|
||||
- Gates: reviewer APPROVED, security APPROVED, QA APPROVED, verify.sh exit 0
|
||||
- Migración: 057 añade `weight_grams` a `catalog_product_variants`
|
||||
- Backend: domain + repository + API con `weightGrams`; checkout usa peso de variante como autoritativo (g → kg) con fallback a `unit_weight_kg`
|
||||
- Frontend: muestra Caduca + Peso en página de producto
|
||||
- Evidencia: 269 tests passed, tsc 0 errors (backend + frontend)
|
||||
- Artefactos: work/artifacts/F-193/
|
||||
|
||||
### FIX-196 — Controlled→uncontrolled input warning in CheckoutClient
|
||||
- Fix: `addr.postalCode ?? ''` y `addr.country ?? ''` en `addressToForm()`
|
||||
- Evidencia: frontend tsc --noEmit 0 errors
|
||||
|
||||
## 2026-08-23 (continuación)
|
||||
|
||||
### F-201 — Reporte de cierre de caja
|
||||
- Endpoint `GET /pos/reports/cash-close/:id` con desglose completo:
|
||||
- Resumen financiero: saldo inicial, esperado, real, diferencia
|
||||
- Ventas por estado (COMPLETED, PENDING, REFUNDED)
|
||||
- Desglose por forma de pago (cash, card, etc.)
|
||||
- Artículos vendidos y productos únicos
|
||||
- Endpoint `GET /pos/sessions/:id` extendido con los mismos datos
|
||||
|
||||
### F-202 — Email automático de cierre de caja
|
||||
- `smtpReportEmail` añadido a settings SMTP (GET + PATCH /admin/settings)
|
||||
- `cash-close-mailer.ts`: genera HTML email formateado con resumen financiero + pagos
|
||||
- Al cerrar caja: email enviado al email destino configurado (best-effort)
|
||||
- Admin settings page: campo "Email destino de reportes" visible en tab SMTP
|
||||
|
||||
### F-203 — Configurar PIN de cajero desde admin panel
|
||||
- Admin POS: nueva sección "Seguridad de cierre de caja" en configuración de terminal
|
||||
- Toggle "Modo autopago" (oculta botón cerrar caja)
|
||||
- Toggle "Requerir PIN para cerrar caja"
|
||||
- Campo PIN (4-6 dígitos, oculto)
|
||||
- Guarda via `PATCH /pos/admin/terminals/:id` (usa settings merge)
|
||||
|
||||
Reference in New Issue
Block a user