erp-core/docs/05-user-stories/mgn-009/US-MGN-009-003-001-vista-kanban-pipeline.md

2.7 KiB

US-MGN-009-003-001: Vista Kanban de Pipeline por Etapas

RF Asociado: RF-MGN-009-002 Módulo: MGN-009 - CRM Básico Epic: Pipeline de Ventas Prioridad: P0 Story Points: 5 Sprint: Sprint 21 Estado: Ready for Development Fecha: 2025-11-24


User Story

Como vendedor, Quiero visualizar oportunidades en un tablero Kanban por etapas, Para gestionar el pipeline visualmente.

Descripción Detallada

Vista Kanban muestra columnas por etapa:

  • Prospecting | Qualification | Proposal | Negotiation | Won | Lost

Cada tarjeta muestra:

  • Nombre de oportunidad
  • Cliente
  • Monto
  • Probabilidad
  • Días en etapa

Criterios de Aceptación

Escenario 1: Ver Kanban con oportunidades

Dado que hay 20 oportunidades distribuidas en 4 etapas, Cuando accedo a /crm/pipeline, Entonces veo 4 columnas con tarjetas de oportunidades.

Escenario 2: Drag & drop entre etapas

Dado que oportunidad está en Qualification, Cuando arrastro tarjeta a Proposal, Entonces sistema actualiza stage=proposal, probability=50%.

Escenario 3: Totales por columna

Dado que columna Proposal tiene 5 oportunidades con total $200K, Cuando veo columna, Entonces header muestra "Proposal (5) - $200K".

Escenario 4: Filtrar por vendedor

Dado que soy sales_manager, Cuando filtro por vendedor "Juan", Entonces Kanban muestra solo oportunidades de Juan.

Reglas de Negocio

  • RN-1: Columnas representan etapas (stages).
  • RN-2: Drag & drop actualiza stage y probability.
  • RN-3: Totales se calculan en tiempo real.
  • RN-4: sales_user ve solo sus oportunidades, sales_manager ve todas.

Tareas Técnicas

Backend

  • Endpoint: GET /api/v1/crm/pipeline?user_id&date_from&date_to
  • Service: PipelineService.getGroupedByStage(filters)
  • Endpoint: PATCH /api/v1/crm/opportunities/:id/move (drag & drop)

Frontend

  • Página: PipelineKanbanPage.tsx
  • Componente: KanbanBoard.tsx (usar react-beautiful-dnd)
  • Componente: OpportunityCard.tsx
  • Drag & drop funcional
  • Filtros: Vendedor, Fecha
  • Component tests

Estimación Detallada

Tarea Horas
Backend 1.5
Frontend 3
Testing 1.5
TOTAL 6 horas = 5 SP

Definition of Done

  • Kanban visual funcional
  • Drag & drop funciona
  • Totales correctos
  • Filtros aplican
  • Tests >80%
  • QA/PO aprobado

Referencias