# US-MMD001-007: Importar Catalogos desde Excel ## Metadata | Campo | Valor | |-------|-------| | **ID** | US-MMD001-007 | | **Epica** | EPIC-MMD-001 - Fundamentos | | **Modulo** | fundamentos | | **Prioridad** | P1 | | **Story Points** | 5 | | **Sprint** | Sprint 2 | | **Estado** | Backlog | | **Asignado a** | Por asignar | --- ## Historia de Usuario **Como** administrador del taller, **quiero** importar catalogos de servicios y refacciones desde archivos Excel, **para** poblar rapidamente el sistema con mis datos existentes. ## Descripcion Detallada Muchos talleres ya tienen sus catalogos en hojas de Excel. El sistema debe permitir importar estos datos de forma masiva, validando el formato y mostrando errores antes de confirmar la importacion. --- ## Criterios de Aceptacion **Escenario 1: Descargar plantilla Excel** ```gherkin DADO que quiero importar servicios CUANDO hago clic en "Descargar plantilla" ENTONCES se descarga un archivo Excel con las columnas correctas: | Columna | Descripcion | | codigo | Codigo del servicio | | nombre | Nombre del servicio | | categoria | Categoria (DIAGNOSTICO, MOTOR, etc.) | | unidad | Unidad de medida | | precio | Precio unitario | ``` **Escenario 2: Validar archivo antes de importar** ```gherkin DADO que subo un archivo Excel con 100 servicios CUANDO el sistema procesa el archivo ENTONCES muestra un resumen de validacion: | Validos | 95 | | Con errores | 5 | | Total | 100 | Y muestra los errores especificos por fila ``` **Escenario 3: Importar registros validos** ```gherkin DADO que tengo 95 registros validos y 5 con errores CUANDO confirmo la importacion ENTONCES el sistema importa los 95 validos Y muestra reporte: "95 servicios importados exitosamente" Y los 5 con errores quedan pendientes de corregir ``` **Escenario 4: Detectar duplicados** ```gherkin DADO que importo servicios y uno ya existe (mismo codigo) CUANDO el sistema valida ENTONCES marca el registro como "Duplicado" Y permite elegir: Omitir, Actualizar, o Crear nuevo ``` **Escenario 5: Importar refacciones** ```gherkin DADO que quiero importar refacciones CUANDO subo archivo Excel con columnas: | codigo | descripcion | categoria | unidad | costo | precio | stock_minimo | ENTONCES el sistema valida e importa las refacciones ``` --- ## Plantillas Excel ### Plantilla Servicios | Columna | Tipo | Requerido | Ejemplo | |---------|------|-----------|---------| | codigo | texto | Si | SRV-001 | | nombre | texto | Si | Diagnostico Computarizado | | descripcion | texto | No | Escaneo completo... | | categoria | texto | Si | DIAGNOSTICO | | unidad | texto | Si | evento | | precio | numero | Si | 500.00 | | tiempo_estimado | numero | No | 60 | ### Plantilla Refacciones | Columna | Tipo | Requerido | Ejemplo | |---------|------|-----------|---------| | codigo | texto | Si | INY-0001 | | descripcion | texto | Si | Inyector Cummins ISX | | categoria | texto | Si | INY | | marca | texto | No | Cummins | | numero_oem | texto | No | 4954434 | | unidad | texto | Si | PZA | | costo | numero | Si | 2500.00 | | precio | numero | Si | 3500.00 | | stock_minimo | numero | Si | 2 | | ubicacion | texto | No | A-01-03 | --- ## Tareas Tecnicas **Backend:** - [ ] BE-023: Endpoint POST /api/services/import - [ ] BE-024: Endpoint POST /api/parts/import - [ ] BE-025: Servicio de parsing Excel (xlsx) - [ ] BE-026: Validador de datos con reglas por tipo - [ ] BE-027: Manejo de duplicados (omitir/actualizar) - [ ] BE-028: Endpoint GET /api/templates/:type (descarga plantilla) **Frontend:** - [ ] FE-020: Crear ImportWizard component - [ ] FE-021: Vista de preview con errores - [ ] FE-022: Selector de accion para duplicados - [ ] FE-023: Barra de progreso para importacion - [ ] FE-024: Reporte de resultados --- ## Dependencias **Depende de:** - [ ] US-MMD001-001: Configurar taller - [ ] US-MMD001-003: Catalogo de servicios **Bloquea:** - [ ] Ninguno (funcionalidad de carga inicial) --- ## Notas Tecnicas **Endpoints:** | Metodo | Endpoint | Descripcion | |--------|----------|-------------| | GET | /api/templates/services | Descargar plantilla servicios | | GET | /api/templates/parts | Descargar plantilla refacciones | | POST | /api/services/import/validate | Validar sin importar | | POST | /api/services/import | Importar servicios | | POST | /api/parts/import/validate | Validar sin importar | | POST | /api/parts/import | Importar refacciones | **Librerias sugeridas:** - Backend: `xlsx` o `exceljs` para parsing - Frontend: `react-dropzone` para upload **Limites:** - Maximo 1000 registros por archivo - Tamanio maximo archivo: 5MB --- ## Definition of Done (DoD) - [ ] Plantillas descargables - [ ] Validacion previa a importacion - [ ] Preview de errores - [ ] Importacion exitosa con reporte - [ ] Manejo de duplicados - [ ] Tests pasando --- **Creada por:** Requirements-Analyst **Fecha:** 2025-12-06