erp-core/docs/05-user-stories/mgn-006/US-MGN-006-001-002-enviar-rfq.md

2.7 KiB

US-MGN-006-001-002: Enviar RFQ a Proveedor

RF Asociado: RF-MGN-006-001 Módulo: MGN-006 - Compras Básico Epic: Solicitudes de Cotización Prioridad: P0 Story Points: 2 Sprint: Sprint 12 Estado: Ready for Development Fecha: 2025-11-24


User Story

Como usuario de compras, Quiero enviar RFQ por email a proveedores, Para solicitar formalmente sus cotizaciones.


Descripción Detallada

Enviar RFQ:

  1. Cambia estado draft → sent
  2. Genera PDF con detalles de la solicitud
  3. Envía email al proveedor con PDF adjunto
  4. Registra fecha de envío

Criterios de Aceptación

Escenario 1: Enviar RFQ exitosamente (Camino Feliz)

Dado que RFQ está en draft con partner que tiene email válido, Cuando envío la RFQ, Entonces sistema cambia state=sent, envía email con PDF, registra sent_date.

Escenario 2: Error al enviar sin email de proveedor

Dado que proveedor no tiene email configurado, Cuando intento enviar RFQ, Entonces sistema retorna error 400 "El proveedor no tiene email configurado".

Escenario 3: Error al enviar RFQ ya enviada

Dado que RFQ está en state=sent, Cuando intento enviar nuevamente, Entonces sistema retorna error 400 "RFQ ya fue enviada".


Reglas de Negocio

  • RN-1: Solo RFQ draft pueden enviarse.
  • RN-2: Proveedor debe tener email válido.
  • RN-3: Al enviar se genera PDF automáticamente.
  • RN-4: Se registra fecha y hora de envío.

Tareas Técnicas

Backend

  • Endpoint: POST /api/v1/purchase/rfqs/:id/send
  • Service: RFQService.send(rfqId)
  • Service: EmailService.sendRFQ(rfq, pdf)
  • Service: PDFService.generateRFQPDF(rfq)
  • Validar estado draft
  • Validar email proveedor
  • Unit tests
  • Integration tests
  • Swagger docs

Frontend

  • Botón Enviar con confirmación
  • Modal preview de email
  • API client: rfqApi.send(id)
  • Component tests
  • E2E test

Database

  • Campo: purchase.rfqs.sent_date
  • Campo: purchase.rfqs.sent_by_user_id

Estimación Detallada

Tarea Horas
Backend 1.5
Frontend 1
Testing 0.5
Code Review 0.5
TOTAL 3.5 horas = 2 SP

Definition of Done

  • Código implementado según ET
  • Tests pasando (>80%)
  • Code review aprobado
  • Email enviado correctamente
  • PDF generado correctamente
  • QA validado
  • PO aprobado

Referencias