erp-core/docs/05-user-stories/mgn-006/US-MGN-006-003-003-recepcion-parcial-backorder.md

2.9 KiB

US-MGN-006-003-003: Gestionar Recepciones Parciales con Backorder

RF Asociado: RF-MGN-006-004 Módulo: MGN-006 - Compras Básico Epic: Recepciones de Compras Prioridad: P1 Story Points: 3 Sprint: Sprint 14 Estado: Ready for Development Fecha: 2025-11-24


User Story

Como usuario de almacén, Quiero gestionar recepciones parciales con backorders, Para recibir productos en múltiples entregas del proveedor.


Descripción Detallada

Cuando qty_done < qty_expected, el sistema puede crear un backorder (nuevo picking) para las cantidades pendientes. El backorder:

  • Tiene las líneas con qty pendiente
  • Mantiene referencia al picking original
  • Puede validarse cuando llegue el resto

Criterios de Aceptación

Escenario 1: Crear backorder automático (Camino Feliz)

Dado que valido picking con línea qty_expected=10, qty_done=7, y acepto backorder, Cuando sistema procesa, Entonces crea nuevo picking backorder con qty_expected=3, mantiene referencia al original.

Escenario 2: Validar backorder posteriormente

Dado que backorder tiene qty_expected=3, Cuando registra qty_done=3 y valido, Entonces sistema actualiza stock, marca PO como done si todas las líneas completas.

Escenario 3: Múltiples backorders

Dado que valido backorder con qty_done=2 de qty_expected=3, Cuando acepto crear otro backorder, Entonces sistema crea segundo backorder para 1 unidad pendiente.


Reglas de Negocio

  • RN-1: Backorder se crea para qty_expected - qty_done.
  • RN-2: Backorder mantiene backorder_of_id al picking original.
  • RN-3: PO solo pasa a done cuando todos los backorders están validados.

Tareas Técnicas

Backend

  • Service: PickingService.createBackorder(originalPicking, pendingQty)
  • Calcular cantidades pendientes por línea
  • Mantener trazabilidad (backorder_of_id)
  • Validar PO status con backorders
  • Unit tests
  • Integration tests

Frontend

  • Modal confirmación backorder
  • Vista de backorders asociados
  • Indicador visual de picking con backorders
  • Component tests
  • E2E test

Database

  • Campo: inventory.pickings.backorder_of_id
  • Índice: idx_pickings_backorder_of

Estimación Detallada

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

Definition of Done

  • Código implementado según ET
  • Tests pasando (>80%)
  • Code review aprobado
  • Backorders correctos
  • QA validado
  • PO aprobado

Referencias