# US-MGN-006-004-002: Validar Devolución a Proveedor **RF Asociado:** [RF-MGN-006-004](../../02-modelado/requerimientos-funcionales/mgn-006/RF-MGN-006-004-recepciones-de-compras.md) **Módulo:** MGN-006 - Compras Básico **Epic:** Devoluciones a Proveedores **Prioridad:** P1 **Story Points:** 2 **Sprint:** Sprint 15 **Estado:** Ready for Development **Fecha:** 2025-11-24 --- ## User Story **Como** usuario de almacén, **Quiero** validar devoluciones a proveedores, **Para** decrementar el stock y registrar la salida de mercancía. --- ## Descripción Detallada Validar devolución: 1. Genera movimientos de stock (stock location → supplier location) 2. Decrementa stock_quants 3. Actualiza estado return picking → done 4. Genera nota de crédito si aplica --- ## Criterios de Aceptación ### Escenario 1: Validar devolución exitosamente (Camino Feliz) **Dado que** return picking está en assigned, **Cuando** valido, **Entonces** sistema genera movimientos, decrementa stock, cambia state=done. ### Escenario 2: Generar nota de crédito automática **Dado que** valido devolución con opción "crear crédito", **Cuando** sistema procesa, **Entonces** genera vendor refund (credit note) con valor de productos devueltos. --- ## Reglas de Negocio - **RN-1:** Validar genera movimientos de stock (salida). - **RN-2:** Stock se decrementa de ubicación de stock. - **RN-3:** Opcionalmente genera nota de crédito. --- ## Tareas Técnicas ### Backend - [ ] Endpoint: POST /api/v1/purchase/returns/:id/validate - [ ] Service: PurchaseReturnService.validate(id, createCredit) - [ ] Service: generateCreditNote(return) - [ ] Generar movimientos stock - [ ] Transaction atomicidad - [ ] Unit tests - [ ] Integration tests - [ ] Swagger docs ### Frontend - [ ] Botón Validar con confirmación - [ ] Checkbox "Generar nota de crédito" - [ ] API client: purchaseReturnApi.validate() - [ ] Component tests - [ ] E2E test ### Database - [ ] Transaction isolation - [ ] Lock en quants --- ## 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 - [ ] Stock actualizado - [ ] Crédito generado si aplica - [ ] QA validado - [ ] PO aprobado --- ## Referencias - [RF-MGN-006-004](../../02-modelado/requerimientos-funcionales/mgn-006/RF-MGN-006-004-recepciones-de-compras.md) - [Traceability](../../02-modelado/trazabilidad/TRACEABILITY-MGN-006.yaml)