3.0 KiB
3.0 KiB
US-MGN-006-002-002: Confirmar Orden de Compra
RF Asociado: RF-MGN-006-002 Módulo: MGN-006 - Compras Básico Epic: Órdenes de Compra Prioridad: P0 Story Points: 5 Sprint: Sprint 13 Estado: Ready for Development Fecha: 2025-11-24
User Story
Como usuario de compras, Quiero confirmar órdenes de compra, Para comprometer la compra y generar recepciones pendientes.
Descripción Detallada
Confirmar una PO:
- Cambia estado draft → purchase (confirmada)
- Genera recepción (picking) pendiente automáticamente
- Reserva presupuesto (si aplica)
- Envía email al proveedor con PO en PDF
- Bloquea edición de líneas
Criterios de Aceptación
Escenario 1: Confirmar PO exitosamente (Camino Feliz)
Dado que PO está en draft, Cuando confirmo, Entonces sistema cambia state=purchase, genera picking de recepción, envía email al proveedor.
Escenario 2: Generar picking automáticamente
Dado que confirmo PO con líneas: Producto A qty=10, Producto B qty=5, Cuando confirmo, Entonces sistema genera picking de tipo receipt con esas líneas.
Escenario 3: Error al confirmar PO ya confirmada
Dado que PO está en state=purchase, Cuando intento confirmar, Entonces sistema retorna error 400 "PO ya fue confirmada".
Reglas de Negocio
- RN-1: Solo PO draft pueden confirmarse.
- RN-2: Confirmar genera picking de recepción automáticamente.
- RN-3: PO confirmada no puede editarse (solo cancelarse).
- RN-4: Se envía email al proveedor con PDF de PO.
Tareas Técnicas
Backend
- Endpoint: POST /api/v1/purchase/orders/:id/confirm
- Service: PurchaseOrderService.confirm(id)
- Service: PickingService.createFromPO(po)
- Service: EmailService.sendPO(po, pdf)
- Validar estado draft
- Generar picking automático
- Transaction atomicidad
- Unit tests
- Integration tests
- Swagger docs
Frontend
- Botón Confirmar con confirmación
- Modal mostrando impacto (picking generado)
- API client: purchaseOrderApi.confirm(id)
- Component tests
- E2E test
Database
- Campo: purchase.purchase_orders.confirmed_date
- Campo: purchase.purchase_orders.confirmed_by_user_id
Estimación Detallada
| Tarea | Horas |
|---|---|
| Backend | 3 |
| Frontend | 2 |
| Testing | 2 |
| Code Review | 1 |
| TOTAL | 8 horas = 5 SP |
Definition of Done
- Código implementado según ET
- Tests pasando (>80%)
- Code review aprobado
- Picking generado correctamente
- Email enviado
- Transaction implementada
- QA validado
- PO aprobado