fix: corregir ventas y mejorar catalogos
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
schema: spec-driven
|
||||
created: 2026-10-25
|
||||
23
openspec/changes/fix-sale-transaction-catalog-ux/design.md
Normal file
23
openspec/changes/fix-sale-transaction-catalog-ux/design.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Design
|
||||
|
||||
## Context
|
||||
|
||||
La venta escribe ventas, líneas y movimientos. La transacción existente sólo declaraba las dos primeras tablas. La interfaz usa nombres MDI sin cargar la fuente y muestra listas completas sin filtro.
|
||||
|
||||
## Goals / Non-Goals
|
||||
|
||||
**Goals:** garantizar atomicidad, visibilidad de acciones y búsqueda rápida sin backend.
|
||||
|
||||
**Non-Goals:** paginación remota o rediseño completo del modelo de inventario.
|
||||
|
||||
## Decisions
|
||||
|
||||
- Incluir `movimientosInventario` en el `db.transaction` de ventas.
|
||||
- Cargar la fuente CSS MDI y usar botones Vuetify explícitos para aumentar, disminuir y eliminar.
|
||||
- Filtrar listas localmente por texto normalizado, manteniendo el almacenamiento offline.
|
||||
- Mantener un CSV versionado en `docs` para reproducir pruebas manuales.
|
||||
|
||||
## Risks / Trade-offs
|
||||
|
||||
- Filtrar en memoria es suficiente para la POC y evita dependencias; si el catálogo crece mucho deberá migrarse a índices/paginación.
|
||||
- El CSV de prueba aumenta el repositorio, pero permite repetir validaciones de UX y carga.
|
||||
30
openspec/changes/fix-sale-transaction-catalog-ux/proposal.md
Normal file
30
openspec/changes/fix-sale-transaction-catalog-ux/proposal.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Proposal
|
||||
|
||||
## Why
|
||||
|
||||
Registrar una venta falla cuando el movimiento de inventario se escribe fuera del alcance de la transacción Dexie. Además, catálogos grandes requieren búsqueda, controles de cantidad visibles e iconos funcionales para operar con rapidez.
|
||||
|
||||
## What Changes
|
||||
|
||||
- Incluir inventario en la transacción de venta.
|
||||
- Activar los iconos MDI correctamente.
|
||||
- Sustituir edición numérica incómoda por controles `+` y `-` y borrado visible.
|
||||
- Añadir búsqueda de productos/productores en POS e Inventario.
|
||||
- Documentar un CSV de prueba grande.
|
||||
|
||||
## Capabilities
|
||||
|
||||
### New Capabilities
|
||||
|
||||
- `sale-transaction-integrity`: venta e inventario persisten atómicamente.
|
||||
- `catalog-large-list-ux`: búsqueda y controles adecuados para catálogos grandes.
|
||||
|
||||
### Modified Capabilities
|
||||
|
||||
- `toldo-poc`: mejora la experiencia de venta e inventario.
|
||||
|
||||
## Impact
|
||||
|
||||
- `packages/services/src/ventas/VentasService.ts`.
|
||||
- Vistas POS e Inventario y configuración Vuetify.
|
||||
- Tests, documentación de pruebas y APK.
|
||||
@@ -0,0 +1,21 @@
|
||||
# Spec Delta
|
||||
|
||||
## Purpose
|
||||
|
||||
Permite operar catálogos con muchos productos sin perder orientación ni precisión al modificar cantidades o eliminar líneas.
|
||||
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Controles visibles del carrito
|
||||
The system SHALL provide visible plus, minus, and delete controls for each sale line.
|
||||
|
||||
#### Scenario: Ajustar cantidad
|
||||
- **WHEN** user selects plus or minus
|
||||
- **THEN** quantity changes by one and never falls below one
|
||||
|
||||
### Requirement: Búsqueda de catálogo
|
||||
The system SHALL filter products and producers by a visible search field without requiring network access.
|
||||
|
||||
#### Scenario: Buscar producto
|
||||
- **WHEN** user enters a product or producer fragment
|
||||
- **THEN** only matching catalog entries are shown
|
||||
@@ -0,0 +1,16 @@
|
||||
# Spec Delta
|
||||
|
||||
## Purpose
|
||||
|
||||
Garantiza que confirmar una venta actualice ventas e inventario como una sola operación local, evitando datos parciales y errores de IndexedDB.
|
||||
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Persistencia atómica de venta
|
||||
The system SHALL persist the sale, sale lines, and inventory movements in one local transaction.
|
||||
|
||||
#### Scenario: Venta confirmada
|
||||
- **GIVEN** an open day and sufficient stock
|
||||
- **WHEN** user confirms a sale
|
||||
- **THEN** sale, lines, and negative inventory movement are stored
|
||||
- **AND** no object store transaction error is raised
|
||||
12
openspec/changes/fix-sale-transaction-catalog-ux/tasks.md
Normal file
12
openspec/changes/fix-sale-transaction-catalog-ux/tasks.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Tasks
|
||||
|
||||
## 1. Integridad y UX
|
||||
|
||||
- [x] 1.1 Incluir movimientos de inventario en la transacción de ventas y verificar con test de jornada real
|
||||
- [x] 1.2 Activar MDI y controles visibles `+`, `-` y eliminar en POS; verificar compilación
|
||||
- [x] 1.3 Añadir búsqueda local en POS e Inventario y documentar CSV grande
|
||||
|
||||
## 2. Verificación
|
||||
|
||||
- [x] 2.1 Ejecutar tests unitarios, `vue-tsc` y Playwright
|
||||
- [x] 2.2 Generar APK actualizado y verificar instalación Android
|
||||
Reference in New Issue
Block a user