88 lines
4.1 KiB
Markdown
88 lines
4.1 KiB
Markdown
# Spec Delta
|
|
|
|
## MODIFIED Requirements
|
|
|
|
### Requirement: Realizar cuadre de caja
|
|
The system SHALL allow completing an end-of-day reconciliation with cash counted and QR bank total, while clearly showing the expected values and calculated differences.
|
|
|
|
#### Scenario: Cuadre completo
|
|
- **GIVEN** base inicial, ventas (cash/QR), gastos (cash/QR) recorded
|
|
- **WHEN** user performs cuadre
|
|
- **THEN** saldoEsperadoEfectivo is calculated (base + ventas efectivo - gastos efectivo)
|
|
- **AND** user can enter saldoRealEfectivo
|
|
- **AND** user can enter total QR reported by the bank
|
|
- **AND** descuadreEfectivo and descuadreQR are calculated
|
|
- **AND** totalVentas = ventas efectivo + ventas QR
|
|
|
|
### Requirement: Reporte por productor
|
|
The system SHALL generate reports by producer including initial real inventory, expected inventory, differences, sales movements, and sales value.
|
|
|
|
#### Scenario: Reporte por productor completo
|
|
- **GIVEN** sales and inventory data for the day
|
|
- **WHEN** generating report by producer
|
|
- **THEN** shows inventory differences vs previous day
|
|
- **AND** shows initial inventory (real)
|
|
- **AND** shows inventory movements from sales (salidas)
|
|
- **AND** shows sales value for producer's products
|
|
- **AND** shows total per producer
|
|
|
|
### Requirement: Reporte consolidado
|
|
The system SHALL generate consolidated totals for a user-selected date range and identify the selected period in the result.
|
|
|
|
#### Scenario: Consolidado por rango
|
|
- **GIVEN** multiple days of data
|
|
- **WHEN** generating consolidated report for date range
|
|
- **THEN** aggregates sales, expenses, adjustments
|
|
- **AND** shows totals by producer
|
|
- **AND** rejects an end date before the start date with a clear validation message
|
|
|
|
### Requirement: Exportar datos
|
|
The system SHALL export all operational data, including market days, in versioned JSON format.
|
|
|
|
#### Scenario: Exportar jornada completa
|
|
- **GIVEN** data exists in the app
|
|
- **WHEN** user exports
|
|
- **THEN** JSON file is generated with schemaVersion, appVersion, exportedAt, data
|
|
- **AND** data includes jornadas so an imported device preserves day status and traceability
|
|
|
|
## ADDED Requirements
|
|
|
|
### Requirement: Navegación adaptada al dispositivo
|
|
The system SHALL provide consistent navigation and visible context on desktop, tablet, and mobile widths.
|
|
|
|
#### Scenario: Navegación móvil
|
|
- **WHEN** the app is opened on a narrow viewport
|
|
- **THEN** the navigation can be opened and closed without covering the active content
|
|
- **AND** the current section and active day status remain visible
|
|
|
|
### Requirement: POS seguro y comprensible
|
|
The system SHALL guide the user through product selection, quantity editing, payment selection, and sale confirmation without allowing invalid quantities or sales outside an open day.
|
|
|
|
#### Scenario: Venta válida desde POS
|
|
- **GIVEN** an open day and products with available stock
|
|
- **WHEN** user adds products, adjusts quantities, selects cash or QR, and confirms
|
|
- **THEN** a confirmation feedback identifies amount and payment method
|
|
- **AND** the cart is cleared only after successful persistence
|
|
|
|
#### Scenario: Venta inválida
|
|
- **GIVEN** no open day or a non-positive quantity
|
|
- **WHEN** user attempts to confirm the sale
|
|
- **THEN** the sale is not persisted
|
|
- **AND** an inline, actionable validation message is shown
|
|
|
|
### Requirement: Flujo de configuración inicial
|
|
The system SHALL guide a first-time user to create at least one producer and product before attempting an operational sale.
|
|
|
|
#### Scenario: Configuración vacía
|
|
- **WHEN** no producers or products exist
|
|
- **THEN** the dashboard explains the next setup step and links directly to inventory setup
|
|
- **AND** the POS explains why a sale cannot yet be created
|
|
|
|
### Requirement: Pruebas de flujo crítico
|
|
The project SHALL include automated browser coverage for the main operational flow and responsive navigation.
|
|
|
|
#### Scenario: Jornada completa en navegador
|
|
- **WHEN** the test opens a day, creates catalog data, records a multi-line sale and expense, and closes the day
|
|
- **THEN** the expected totals and closed status are visible
|
|
- **AND** the test can run with network access disabled after the app has loaded
|