1.7 KiB
1.7 KiB
Design
Context
El Layout ya tiene menú y navegación suficiente; breadcrumbs duplican acciones. JornadaService.cerrarJornada crea un cuadre sin saldo real, mientras Cuadre.vue obliga a trabajar en otra ruta. POS muestra el catálogo completo antes del carrito.
Goals / Non-Goals
Goals: priorizar carrito y cobro en móvil, mantener operaciones densas separadas por tabs, y hacer que el cierre sea una operación única con datos completos.
Non-Goals: eliminar la capacidad de consultar cuadres históricos ni cambiar el esquema de pagos.
Decisions
- POS: mostrar búsqueda y botón de selección; el catálogo completo vive en un
v-dialogcon lista filtrable. El carrito permanece visible arriba en móvil y en columna fija en pantallas grandes. - Devuelta: sólo se solicita para efectivo; se calcula como recibido menos total y no permite confirmar si es negativo.
- Cierre:
JornadaService.cerrarJornadarecibe efectivo contado obligatorio y banco QR opcional, calcula diferencias, guardaCuadreCajay marca la jornada cerrada en una transacción. - Inventario: tabs
Catálogo,IngresosyAjustesen móvil; el menú deja de exponer Ajustes como módulo aislado. - Vuetify: reemplazar inputs/select/button HTML de Gastos y Ajustes por
v-form,v-text-field,v-select,v-btn,v-listy alertas.
Risks / Trade-offs
- [Cierre incompleto] El usuario puede no conocer el banco -> QR es opcional y se muestra como pendiente, sin bloquear el cierre.
- [Cambio de API] Cerrar jornadas existentes sin saldo real requiere migración de comportamiento -> los registros históricos permanecen intactos.
- [Modal POS] Un modal añade un paso -> evita que el carrito desaparezca y permite buscar entre catálogos grandes.