workspace-v1/projects/erp-mecanicas-diesel/docs/02-definicion-modulos/MMD-006-cotizaciones/historias-usuario/US-MMD006-001-crear-cotizacion.md
rckrdmrd 66161b1566 feat: Workspace-v1 complete migration with NEXUS v3.4
Sistema NEXUS v3.4 migrado con:

Estructura principal:
- core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles)
- core/catalog: Catalogo de funcionalidades reutilizables
- shared/knowledge-base: Base de conocimiento compartida
- devtools/scripts: Herramientas de desarrollo
- control-plane/registries: Control de servicios y CI/CD
- orchestration/: Configuracion de orquestacion de agentes

Proyectos incluidos (11):
- gamilit (submodule -> GitHub)
- trading-platform (OrbiquanTIA)
- erp-suite con 5 verticales:
  - erp-core, construccion, vidrio-templado
  - mecanicas-diesel, retail, clinicas
- betting-analytics
- inmobiliaria-analytics
- platform_marketing_content
- pos-micro, erp-basico

Configuracion:
- .gitignore completo para Node.js/Python/Docker
- gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git)
- Sistema de puertos estandarizado (3005-3199)

Generated with NEXUS v3.4 Migration System
EPIC-010: Configuracion Git y Repositorios
2026-01-04 03:37:42 -06:00

3.2 KiB

US-MMD006-001: Crear Cotizacion desde Diagnostico

Metadata

Campo Valor
ID US-MMD006-001
Epica EPIC-MMD-006 - Cotizaciones
Modulo cotizaciones
Prioridad P0
Story Points 5
Sprint Sprint 5
Estado Backlog

Historia de Usuario

Como recepcionista, quiero crear una cotizacion basada en el diagnostico realizado, para presentar al cliente un presupuesto claro de la reparacion.

Descripcion Detallada

Despues del diagnostico, se genera una cotizacion con las recomendaciones de reparacion. La cotizacion incluye servicios, refacciones, mano de obra, y un total estimado.


Criterios de Aceptacion

Escenario 1: Crear cotizacion desde diagnostico

DADO que un diagnostico tiene recomendaciones
CUANDO hago clic en "Generar Cotizacion"
ENTONCES se crea borrador con:
  - Datos del vehiculo y cliente
  - Recomendaciones del diagnostico como lineas sugeridas
  - Folio automatico: COT-2025-0001

Escenario 2: Agregar servicio a cotizacion

DADO que tengo una cotizacion en borrador
CUANDO agrego un servicio del catalogo:
  | Servicio | Cantidad | Precio |
  | Reparacion bomba | 1 | $2,500 |
ENTONCES se agrega la linea
Y el subtotal se actualiza

Escenario 3: Agregar refaccion con margen

DADO que agrego una refaccion
CUANDO selecciono:
  | Refaccion | Cantidad | Costo | Margen |
  | Kit reparacion | 1 | $2,000 | 30% |
ENTONCES el precio calculado es $2,600
Y se muestra tanto costo como precio

Escenario 4: Ver totales

DADO que tengo servicios y refacciones
CUANDO veo los totales
ENTONCES veo:
  | Concepto | Monto |
  | Mano de obra | $3,500 |
  | Refacciones | $4,200 |
  | Subtotal | $7,700 |
  | IVA 16% | $1,232 |
  | Total | $8,932 |

Escenario 5: Guardar como borrador

DADO que no he terminado la cotizacion
CUANDO guardo como borrador
ENTONCES se guarda sin enviar al cliente
Y puedo continuar editandola despues

Estructura de Cotizacion

interface Quote {
  id: string;
  folio: string;              // COT-2025-0001
  vehicle_id: string;
  client_id: string;
  diagnostic_id?: string;

  services: QuoteService[];
  parts: QuotePart[];

  subtotal_services: number;
  subtotal_parts: number;
  discount: number;
  subtotal: number;
  iva: number;
  total: number;

  validity_days: number;
  expires_at: Date;
  status: QuoteStatus;
  notes: string;
}

Tareas Tecnicas

Database:

  • DB-055: Crear tabla quotes
  • DB-056: Crear tabla quote_items
  • DB-057: Secuencia de folios

Backend:

  • BE-100: Crear QuoteEntity
  • BE-101: Crear QuoteService
  • BE-102: Endpoint POST /api/quotes
  • BE-103: Calculos de totales automaticos

Frontend:

  • FE-100: Crear QuoteFormPage
  • FE-101: Crear QuoteItemList
  • FE-102: Crear TotalsCard
  • FE-103: Crear ServicePicker

Definition of Done (DoD)

  • Crear cotizacion desde diagnostico
  • Agregar servicios y refacciones
  • Calcular totales automaticos
  • Guardar como borrador
  • Tests pasando

Creada por: Requirements-Analyst Fecha: 2025-12-06