DataImport — Importador avanzado para FacturaScripts
DataImport — Importador avanzado para FacturaScripts
Plugin de importación de datos robusto, completo y standalone para FacturaScripts. Wizard de 4 pasos, simulación con rollback transaccional, detección de duplicados, validación avanzada, historial completo, scheduling programado, multi-formato y 13 plantillas predefinidas + importación libre a cualquier modelo del sistema.
✨ Características principales
🧙 Wizard guiado de 4 pasos
- Subir archivo — drag-and-drop (CSV / TSV / JSON / XML, opcional XLS/XLSX/ODS)
- Mapear columnas — auto-mapping con algoritmo Levenshtein + sinónimos
- Vista previa (dry-run) — simula toda la importación dentro de una transacción y la revierte automáticamente
- Ejecutar — importación real por batches con barra de progreso AJAX
🛡️ Robustez
- Dry-run con rollback:
DataBase::beginTransaction()→ import normal →rollback()forzado. Captura errores reales (constraints, FKs, triggers) sin modificar nada. - Detección de duplicados: configurable por campos clave compuestos.
- Validación por campo: required, type (int/float/email/date/url/bool), min, max, regex, in (lista).
- Modo insert / update / insert-update.
- Procesamiento por batches (200 filas) — no bloquea el servidor con archivos grandes.
📋 Plantillas predefinidas (13)
| Categoría | Plantillas |
|---|---|
| Personas | Clientes, Proveedores, Contactos |
| Catálogo | Productos |
| Ventas | Facturas, Presupuestos, Pedidos, Albaranes |
| Compras | Facturas, Presupuestos, Pedidos, Albaranes |
🪄 Importación libre (sin plantilla)
Selecciona cualquier modelo del sistema (Cliente, Asiento, Empresa, Subcuenta,
Stock, Variante, etc.) y mapea los campos manualmente. Los campos se detectan
automáticamente vía getModelFields() con sus tipos, longitudes y reglas.
📑 Documentos comerciales con líneas
Las plantillas de facturas/presupuestos/pedidos/albaranes manejan documentos con múltiples líneas. Formato esperado:
- Una fila = una línea.
- Filas con el mismo
codigose agrupan en el mismo documento. - La primera fila crea el header (cliente/proveedor, fecha, serie...).
- Todas las filas añaden su línea con cálculo automático de totales vía
Calculator.
🕐 Importaciones programadas
- Tabla
dataimport_schedulescon frecuencia configurable (horas/días/semanas) - URL pública del archivo a descargar
- Cron job ejecuta en intervalos definidos
- Cada ejecución crea un job en el historial
📊 Historial y auditoría
- Tabla
dataimport_jobscon cabecera de cada import (usuario, fecha, plantilla, filas, estado, duración) - Tabla
dataimport_job_errorscon cada error: fila, severidad (error/warning/skip/info), campo, valor, motivo, raw row - Detalle por job con tabla paginada y exportación CSV de errores
- Botón "Re-ejecutar" para reintentar con el mismo archivo
🎓 Tour guiado integrado
Modal navegable con 12 capítulos que explican cada pantalla del plugin con spotlight (resaltado del elemento) y auto-navegación entre páginas.
📦 Instalación
- Descarga el plugin desde el repositorio o el panel.
- Panel de control → Plugins → Subir plugin → archivo ZIP.
- Activar DataImport.
- Pulsa Reconstruir (icono herramienta amarillo) para crear las 3 tablas BD.
🔧 Requisitos
- FacturaScripts 2025 o superior
- PHP 8.0 o superior
- Extensiones PHP:
json,simplexml(estándar)