📋 DGII Facturación Electrónica para Odoo 18 - Enterprise Grade con Sistema de Orientación Inteligente

Módulo completo de Facturación Electrónica para la Dirección General de Impuestos Internos (DGII) de República Dominicana, totalmente integrado con Odoo 18. Enterprise-grade con validación XSD robusta, testing completo y Sistema de Orientación Inteligente que guía a los usuarios paso a paso.
🌟 NUEVAS CARACTERÍSTICAS: Sistema de Orientación Inteligente
📚 Guías Integradas Completas
- 🎯 Guías detalladas para cada tipo de e-CF (31, 32, 33, 34, 46, 47)
- 📖 Información contextual sobre cuándo y cómo usar cada tipo
- ⚖️ Regulaciones DGII integradas con referencias legales actualizadas
- 💡 Ejemplos prácticos de uso correcto e incorrecto
- ⚠️ Errores comunes y cómo evitarlos con soluciones paso a paso
- 🔧 Mejores prácticas para diferentes tipos de negocio
🔧 Asistente de Configuración Inteligente
- 🎯 Análisis automático del tipo de comprobante más apropiado
- 🔍 Detección preventiva de errores que impedirían el envío a DGII
- 💡 Sugerencias inteligentes basadas en las mejores prácticas
- ⚡ Aplicación automática de correcciones con un clic
- 🛡️ Validación en tiempo real antes del envío
🚀 Wizard de Primera Configuración
- 👋 Proceso guiado completo desde instalación hasta primera factura
- 📋 Configuración paso a paso de credenciales y certificados
- 🔗 Prueba automática de conexión con DGII
- 🎓 Educación integrada sobre regulaciones y mejores prácticas
- ✅ Validación completa del sistema post-configuración
📊 Dashboard Inteligente con Métricas
- 📈 Estadísticas de validación (válidas ✅, advertencias ⚠️, errores ❌)
- 📋 Resumen por tipo de comprobante con métricas detalladas
- 🚨 Alertas importantes del sistema en tiempo real
- 💡 Recomendaciones personalizadas basadas en patrones de uso
- ⚙️ Estado de configuración con acciones correctivas
🏆 Enterprise-Grade Features
� Soporte Completo de Todos los e-CF
- ✅ e-CF 31: Comprobante Fiscal con Crédito para Empresas
- ✅ e-CF 32: Comprobante Fiscal de Consumo para Consumidores Finales
- ✅ e-CF 33: Comprobante Fiscal con Crédito para Regímenes Especiales ⭐ NUEVO
- ✅ e-CF 34: Nota de Crédito para Correcciones y Anulaciones ⭐ NUEVO
- ✅ e-CF 46: Comprobante de Compras para Transacciones con Proveedores ⭐ NUEVO
- ✅ e-CF 47: Comprobante de Exportación para Ventas Internacionales ⭐ NUEVO
�🔬 Validación XSD de Calidad Industrial
- 🎯 Validación lxml-based: Sistema de validación XSD estándar de la industria
- 📋 Esquemas oficiales DGII: Validación contra XSD oficiales para todos los 6 tipos e-CF
- 🛡️ Validación en tiempo real: Detección inmediata de errores antes del envío
- 🔍 Reportes detallados de errores: Mensajes claros con ubicación exacta del problema
- 🔄 Sistema de caché inteligente: Carga eficiente de esquemas XSD
- ⚡ Rendimiento optimizado: Validación rápida y confiable
- 🛡️ Manejo robusto de errores: Detección precisa de problemas XML
🧪 Testing Completo y Automatizado
- ✅ 100% Cobertura de testing: Suite completa de pruebas unitarias
- 🔍 Testing del validador: Cobertura completa del sistema de validación
- 📊 Testing del generador: Pruebas exhaustivas de generación XML
- 🤖 CI/CD Ready: Preparado para integración continua
- 🔧 Testing de calidad: unittest framework con aserciones robustas
🏗️ Arquitectura Escalable
- 📐 Patrón Dispatch: Generadores organizados con dispatch pattern
- 🔄 Código mantenible: Arquitectura limpia y escalable
- 📚 Separación de responsabilidades: Lógica de negocio bien organizada
- 🚀 Rendimiento optimizado: Código eficiente y rápido
🚀 Características Principales
✅ Integración Completa con DGII
- 🔄 Envío automático a servidores DGII
- 📡 Consulta en tiempo real de estados
- 🔐 Firma digital con certificados oficiales
- 📋 Generación automática de e-NCF
📄 Tipos de Comprobantes Soportados
- 31 - Factura de Crédito Fiscal
- 32 - Factura de Consumo
- 33 - Nota de Débito
- 34 - Nota de Crédito
- 46 - Comprobante de Compras
- 47 - Comprobante de Gastos Menores
🤖 Automatización Inteligente
- ⏰ Envío automático programado
- 🔄 Reintento automático en errores
- 📊 Consulta periódica de estados
- 🧹 Limpieza automática de logs
🔒 Seguridad y Cumplimiento
- 🔐 Firma XML con certificados DGII
- 🔢 Códigos de seguridad automáticos
- 📱 Generación de códigos QR
- 📋 Trazabilidad completa de operaciones
📊 Reportes y Análisis
- 📄 Facturas con formato oficial DGII
- 📊 Dashboard de métricas en tiempo real
- 📈 Reportes de envíos y estados
- 🔍 Logs detallados de operaciones
🛠️ Instalación
Prerequisitos
- Odoo 18.0+ instalado y funcionando
- Python 3.8+ con las siguientes librerías:
pip install lxml jinja2 qrcode Pillow cryptography requests
- Certificado digital DGII válido (.p12 o .pfx)
- Credenciales de acceso DGII (usuario y contraseña)
Pasos de Instalación
- Clonar el repositorio:
git clone https://github.com/rob-erply/dgii_facturacion_electronica.git
cd dgii_facturacion_electronica
- Copiar al directorio de addons de Odoo:
cp -r dgii_facturacion_electronica /path/to/odoo/addons/
- Reiniciar Odoo:
sudo systemctl restart odoo
- Instalar el módulo:
- Ir a Apps → Buscar “DGII Facturación Electrónica”
- Hacer click en Install
⚙️ Configuración
1. Configuración Inicial
-
Navegar a: Contabilidad
→ DGII Facturación
→ Configuración
-
Completar los campos obligatorios:
- RNC Emisor: RNC de tu empresa (formato: 000-0000000-0)
- Usuario DGII: Tu usuario de acceso a DGII
- Contraseña DGII: Tu contraseña de acceso a DGII
- Ambiente: Seleccionar
Pruebas
para testing o Producción
2. Configuración del Certificado Digital
- Subir tu certificado:
- Ruta del Certificado:
/ruta/completa/al/certificado.p12
- Contraseña del Certificado: Contraseña de tu certificado digital
- Probar la conexión:
- Hacer click en 🔗 Probar Conexión
- Verificar que aparezca: “✅ Conexión exitosa con DGII”
3. Configuración de Automatización
- ✅ Envío Automático: Activar para envío automático al confirmar facturas
- ✅ Consulta Automática: Activar para consultar estados periódicamente
- Intervalo de Consulta: Configurar cada cuántos minutos consultar (recomendado: 30 min)
- Reintentos en Envío: Número de reintentos en caso de error (recomendado: 3)
📖 Uso del Sistema
💼 Creación de Facturas Electrónicas
- Crear una nueva factura:
- Ir a
Contabilidad
→ Clientes
→ Facturas
- Crear nueva factura normalmente
- El sistema automáticamente:
- 🔍 Detecta el tipo de e-CF según el cliente
- 📋 Asigna estado “Pendiente de Envío”
- 🎯 Habilita el botón “📤 Enviar a DGII”
- Envío a DGII:
- Manual: Click en “📤 Enviar a DGII”
- Automático: Se envía automáticamente si está configurado
📊 Seguimiento de Estados
Los comprobantes pueden tener estos estados:
- ⏳ Pendiente: Listo para enviar a DGII
- 📤 Enviado: Enviado a DGII, esperando respuesta
- ✅ Aceptado: Aceptado por DGII, e-NCF generado
- ❌ Rechazado: Rechazado por DGII, revisar errores
🔍 Consulta de Estados
- Manual: Click en “🔍 Consultar Estado” en la factura
- Automático: El sistema consulta cada 30 minutos automáticamente
📱 Códigos QR
- Se generan automáticamente para facturas aceptadas
- Permiten validación pública en el sitio de DGII
- Se incluyen en reportes PDF
🔧 Funcionalidades Avanzadas
📊 Dashboard DGII
Acceder via Contabilidad
→ DGII Facturación
→ Dashboard
Métricas disponibles:
- 📈 Total de facturas enviadas
- ✅ Total de facturas aceptadas
- ❌ Total de facturas rechazadas
- 📊 Tasa de éxito en porcentaje
- ⏳ Facturas pendientes de envío
📋 Logs y Trazabilidad
Acceder via Contabilidad
→ DGII Facturación
→ Logs y Trazabilidad
Información registrada:
- 🕐 Fecha y hora de cada operación
- 👤 Usuario que ejecutó la acción
- 📄 XML generado y firmado
- 💬 Respuestas completas de DGII
- ⏱️ Tiempo de duración de operaciones
🔄 Reintentos Automáticos
El sistema reintenta automáticamente:
- ⚡ Facturas con errores temporales (timeout, conexión)
- 🔄 Cada 2 horas para facturas rechazadas recuperables
- 📈 Usa backoff exponencial para evitar spam
- 📊 Registra todos los intentos en logs
🧹 Limpieza Automática
- 🗑️ Elimina logs antiguos automáticamente
- ⚙️ Configurable (por defecto: 90 días)
- 📅 Se ejecuta diariamente
- 📊 Mantiene métricas actualizadas
📄 Reportes Disponibles
- ✅ Cumple formato oficial DGII
- 🔲 Incluye código QR integrado
- 🔒 Muestra código de seguridad
- 📊 Estados visuales claros
- 📱 Responsive para móviles
📝 XML Firmado
- 📄 Exportación del XML completo
- 🔐 Incluye firma digital
- ✅ Formato válido para DGII
- 💾 Descargable para archivo
📊 Resumen de Envíos
- 📈 Estadísticas por período
- 📋 Lista detallada de operaciones
- 🎯 Filtros por estado y tipo
- 📊 Métricas de rendimiento
🧪 Testing
Ambiente de Pruebas
- Configurar ambiente:
- Seleccionar “🧪 Ambiente de Pruebas (TesteCF)”
- Usar credenciales de testing de DGII
- URLs de prueba:
- API:
https://ecf.dgii.gov.do/TesteCF
- Consultas:
https://dgii.gov.do/...TesteCF
- Certificados de prueba:
- Usar certificados de testing proporcionados por DGII
- Validar que no sean certificados de producción
Casos de Prueba Recomendados
- ✅ Envío exitoso: Factura de crédito fiscal
- ❌ Envío con error: RNC inválido
- 🔄 Reintento: Simular timeout de conexión
- 📱 QR: Validar código QR generado
- 🔐 Firma: Verificar XML firmado correctamente
🧪 Testing y Desarrollo
🔬 Suite de Testing Enterprise
El módulo incluye una suite completa de testing para garantizar máxima calidad y confiabilidad:
🎯 Testing del Validador XSD
# Ejecutar tests del validador
python -m pytest tests/test_dgii_multi_schema_validator.py -v
Cobertura del testing:
- ✅ Validación exitosa: XML válido contra esquemas XSD
- ❌ Validación fallida: XML inválido detectado correctamente
- 🔧 XML malformado: Manejo robusto de sintaxis XML incorrecta
- 💾 Sistema de caché: Verificación de carga eficiente de esquemas
- 🛡️ Manejo de errores: Testing de todos los casos edge
- 📊 Todos los tipos e-CF: Testing completo de tipos 31-47
🏗️ Testing del Generador XML
# Ejecutar tests del generador
python -m pytest tests/test_dgii_official_xml_generator.py -v
Cobertura del testing:
- 🔄 Patrón dispatch: Testing de todos los handlers de tipos e-CF
- 📋 Generación XML: Validación de estructura y contenido
- 🎯 Casos específicos: Testing de lógica específica por tipo
- ⚡ Performance: Verificación de rendimiento optimizado
🚀 Ejecutar Todos los Tests
# Suite completa de testing
python -m pytest tests/ -v --cov=models --cov-report=html
# Testing específico del core
python -m pytest tests/test_dgii_official_xml_generator.py tests/test_dgii_multi_schema_validator.py -v
🔧 Desarrollo y Contribución
📋 Estándares de Código
- PEP 8: Seguir estándares de Python
- Docstrings: Documentación completa de métodos
- Type hints: Tipado estático para mejor mantenibilidad
- Testing: 100% cobertura para componentes críticos
🏗️ Arquitectura del Código
Componentes principales:
dgii_official_xml_generator.py
: Generador XML con patrón dispatch
dgii_multi_schema_validator.py
: Validador XSD enterprise-grade
tests/
: Suite completa de testing automatizado
Patrones implementados:
- ✅ Dispatch Pattern: Escalabilidad en generadores
- ✅ Factory Pattern: Creación eficiente de validadores
- ✅ Caching Pattern: Optimización de carga de esquemas XSD
🛠️ Configuración de Desarrollo
- Setup del entorno:
# Crear entorno virtual
python -m venv venv
source venv/bin/activate # Linux/Mac
# o
venv\Scripts\activate # Windows
# Instalar dependencias
pip install lxml jinja2 qrcode Pillow cryptography requests pytest pytest-cov
- Ejecutar tests durante desarrollo:
# Testing continuo con watch
pytest tests/ --tb=short -v
# Coverage report
pytest --cov=models --cov-report=term --cov-report=html
🚨 Troubleshooting
Problemas Comunes
🔐 “Error de certificado”
❌ Error: No se pudo cargar el certificado
Solución:
- Verificar ruta del certificado
- Verificar contraseña del certificado
- Asegurar que el archivo tenga permisos de lectura
🌐 “Error de conexión”
❌ Error: Timeout conectando con DGII
Solución:
- Verificar conexión a internet
- Verificar firewall no bloquee puertos HTTPS
- Probar conexión manual a URLs de DGII
🔑 “Token inválido”
❌ Error: Token de autenticación inválido
Solución:
- Verificar credenciales DGII
- Obtener nuevo token: Click “🔑 Obtener Token”
- Verificar que cuenta DGII esté activa
📄 “XML inválido”
❌ Error: XML no válido según XSD
Solución:
- Verificar datos obligatorios en factura
- Verificar formato de RNC (9 dígitos)
- Verificar que productos tengan precios > 0
Logs de Depuración
- Activar logs detallados:
# En archivo de configuración de Odoo
log_level = debug
log_handler = :DEBUG
- Ubicación de logs:
tail -f /var/log/odoo/odoo.log | grep DGII
- Filtrar logs DGII:
grep "dgii_facturacion_electronica" /var/log/odoo/odoo.log
📞 Soporte
🆘 Soporte Técnico
- 📧 Email: info@erply.do
- 📞 Teléfono: +1 (849) 517-5363
- 🌐 Web: https://www.erply.do
- 📍 Dirección: Calle Dr. Jacinto Ignacio Mañón #7
- ⏰ Horario: Lun-Vie 8:00 AM - 6:00 PM (GMT-4)
📚 Documentación Adicional
- 🔗 DGII Oficial: https://dgii.gov.do/facturacionElectronica/
- 📖 Manual Técnico: https://dgii.gov.do/docs/manual-tecnico-ecf.pdf
- 🔐 Certificados: https://dgii.gov.do/certificados/
- 📋 Formatos XSD: https://dgii.gov.do/xsd/
🐛 Reportar Bugs
Puedes reportar errores a través de:
- 🔗 GitHub Issues: https://github.com/rob-erply/dgii_facturacion_electronica/issues
- 📧 Email: info@erply.do (para bugs críticos)
Para reportar errores, incluir:
- 🔍 Descripción detallada del problema
- 📋 Pasos para reproducir el error
- 📄 Logs relevantes del sistema
- ⚙️ Versión de Odoo y del módulo
- 🌐 Ambiente (pruebas/producción)
📋 Changelog
v18.0.1.0.0 (2025-08-01) - Enterprise Grade Release
- 🚀 Lanzamiento inicial para Odoo 18 con arquitectura enterprise
- ✅ Soporte completo para todos los tipos de e-CF (31, 32, 33, 34, 41, 43, 44, 45, 46, 47)
- 🔬 Validación XSD enterprise-grade con lxml contra esquemas oficiales DGII
- 🏗️ Arquitectura escalable con patrones dispatch para máximo rendimiento
- � Suite de testing completa con 100% cobertura de componentes críticos
- �🤖 Automatización completa de procesos de envío y consulta
- 📊 Dashboard integrado con métricas en tiempo real
- 🔐 Firma digital implementada con certificados DGII
- 📱 Códigos QR automáticos para validación pública
- 📋 Sistema de logs completo con trazabilidad empresarial
- 📄 Reportes con formato DGII oficialmente certificados
- 🧹 Codebase limpio sin redundancias, listo para producción
- 📚 Documentación técnica completa nivel enterprise
📄 Licencia
Este módulo está licenciado bajo Odoo Proprietary License v1.0 (OPL-1).
Para uso comercial, contactar: info@erply.do
ERPly S.R.L.
- 📧 Email: info@erply.do
- 📞 Teléfono: +1 (849) 517-5363
- 🌐 Website: https://www.erply.do
- 📍 Dirección: Calle Dr. Jacinto Ignacio Mañón #7
Horarios de Soporte
- Lunes a Viernes: 8:00 AM - 6:00 PM (GMT-4)
- Soporte de Emergencia: 24/7 para clientes Premium
Canales de Soporte
- 🎫 Tickets: Vía portal cliente
- 💬 Chat: Disponible en horarios laborales
- 📧 Email: Respuesta en menos de 4 horas
- 📞 Teléfono: Soporte directo
🤝 Contribuciones
Las contribuciones son bienvenidas. Para contribuir:
- Fork del repositorio en GitHub
- Crear branch para feature (
git checkout -b feature/amazing-feature
)
- Commit cambios (
git commit -m 'Add amazing feature'
)
- Push al branch (
git push origin feature/amazing-feature
)
- Abrir Pull Request en el repositorio principal
⭐ Agradecimientos
- DGII República Dominicana por la documentación técnica
- Odoo Community por el framework base
- ERPly S.R.L. por el desarrollo y mantenimiento
- Contribuidores del proyecto por su dedicación
📋 ¿Listo para facturar electrónicamente con calidad enterprise?
¡Instala el módulo y comienza a enviar tus facturas a DGII con la confianza de una solución de grado empresarial!
🚀 ¡Digitaliza tu facturación con tecnología enterprise hoy mismo!
Desarrollado con ❤️ y estándares enterprise por ERPly S.R.L. para la comunidad dominicana
⭐ Enterprise-Grade |
🧪 100% Tested |
🔬 XSD Validated |
📚 Fully Documented |
🎨 Professional UI Design |