fix: asegurar runtime android y diagnostico pos

This commit is contained in:
mono
2026-10-25 19:00:14 -05:00
parent 4ef79f3f9f
commit fdfcc6e00b
9 changed files with 105 additions and 4 deletions

View File

@@ -0,0 +1,2 @@
schema: spec-driven
created: 2026-10-25

View File

@@ -0,0 +1,22 @@
# Design
## Context
La app usa nombres de iconos MDI, pero el set no estaba declarado explícitamente. El botón de navegación dependía de `d-md-none`, lo que puede ocultarlo en WebViews con un ancho reportado distinto al esperado.
## Goals / Non-Goals
**Goals:** garantizar iconos MDI empaquetados, menú visible y diagnóstico claro de stock.
**Non-Goals:** cambiar el application id, la base local o el flujo de firma Android.
## Decisions
- Declarar `aliases`, `mdi` y `defaultSet` en `createVuetify` además de importar el CSS de MDI.
- Usar un botón de menú explícito siempre visible; el drawer seguirá siendo permanente en escritorio y temporal en móvil.
- Cargar stock desde movimientos y bloquear el agregado de productos sin existencias con explicación.
## Risks / Trade-offs
- El botón de menú ocupa espacio adicional en escritorio, pero evita una dependencia frágil del breakpoint en WebView.
- El stock se calcula localmente; esto es consistente con el modo offline.

View File

@@ -0,0 +1,27 @@
# Proposal
## Why
La APK mostraba controles sin iconos y ocultaba el menú aunque los assets MDI estuvieran presentes, dificultando la operación en Android. Además, el POS no distinguía visualmente la falta de inventario de un error de persistencia.
## What Changes
- Configurar explícitamente el set de iconos MDI de Vuetify y cargar su fuente.
- Mostrar siempre un botón de menú accesible en el encabezado.
- Mostrar stock disponible en cada producto y mensajes accionables al cobrar.
- Mantener pruebas web de navegación y persistencia de ventas.
## Capabilities
### New Capabilities
- `android-webview-runtime`: controles e iconos operables en APK/WebView.
### Modified Capabilities
- `toldo-poc`: experiencia del POS y diagnóstico de inventario.
## Impact
- `apps/toldo-app/src/plugins/vuetify.ts`, Layout y POS.
- Build Capacitor/Android y pruebas de regresión.

View File

@@ -0,0 +1,23 @@
# Spec Delta
## Purpose
Garantiza que la versión Android muestre los controles de navegación y operación con iconos visibles y que los errores de venta puedan resolverse desde la interfaz.
## ADDED Requirements
### Requirement: Iconos y menú operables
The system SHALL render MDI icons for navigation, quantity controls, deletion, and breadcrumbs in the Android WebView.
#### Scenario: Menú APK
- **WHEN** the app opens on Android
- **THEN** a visible menu button opens the navigation drawer
- **AND** breadcrumb and action icons are visible
### Requirement: Diagnóstico de stock
The system SHALL show available stock and explain when a product cannot be added or sold because inventory is insufficient.
#### Scenario: Producto sin inventario
- **WHEN** user selects a product with zero stock
- **THEN** the product is not added to the cart
- **AND** the UI explains that initial inventory must be registered

View File

@@ -0,0 +1,12 @@
# Tasks
## 1. Runtime Android
- [x] 1.1 Declarar y empaquetar MDI en Vuetify; verificar que el build contiene las fuentes
- [x] 1.2 Hacer visible el menú y mantener breadcrumbs/iconos operables; verificar con Playwright
- [x] 1.3 Mostrar stock y errores accionables en POS; verificar tests de venta y stock
## 2. Entrega
- [x] 2.1 Ejecutar tests unitarios, `vue-tsc` y Playwright
- [x] 2.2 Generar APK final y comprobar assets/metadatos Android