39 lines
1.4 KiB
Markdown
39 lines
1.4 KiB
Markdown
# POS-FIX-11: Implementer Evidence
|
|
|
|
## Problema
|
|
Al guardar un ticket pendiente sin cliente asociado, no había forma de identificarlo. Solo se mostraba el ID o receipt number.
|
|
|
|
## Cambios realizados
|
|
|
|
### Migración
|
|
**`project/migrations/059_pos_pending_label.js`**
|
|
- Añade columna `pos_label` a `orders_orders` para almacenar nombre identificativo
|
|
|
|
### Backend
|
|
**`project/src/modules/pos/domain/pos-sale.ts`**
|
|
- Añade campo `posLabel?: string` a `PosSaleInput`
|
|
|
|
**`project/src/modules/pos/api/pos.routes.ts`**
|
|
- Schema: acepta `posLabel` en POST /pos/sales
|
|
- Query listSales: devuelve `pos_label AS "posLabel"`
|
|
|
|
**`project/src/modules/pos/application/create-pos-sale.ts`**
|
|
- INSERT: guarda `input.posLabel` en columna `pos_label`
|
|
|
|
### Frontend
|
|
**`project/apps/pos/src/types/checkout.ts`**
|
|
- Añade `posLabel?: string | null` a `PosPendingSale`
|
|
|
|
**`project/apps/pos/src/app/(terminal)/page.tsx`**
|
|
- Nuevo estado `pendingParkName` para el diálogo de nombre
|
|
- Nueva función `doParkSale(name?)` que acepta nombre opcional
|
|
- parkSale ahora abre diálogo si no hay cliente
|
|
- Diálogo para pedir nombre con input y botones Guardar/Cancelar
|
|
- Panel de ventas pendientes muestra: nombre/receipt → fecha+hora · total · pendiente
|
|
|
|
## Verificación
|
|
- [x] TypeScript compila sin errores
|
|
- [x] Diálogo aparece al guardar pendiente sin cliente
|
|
- [x] Nombre se muestra en el panel junto con fecha
|
|
- [x] Migración creada correctamente
|