# Eneboo

Eneboo ERP/CRM es un software de Planificación de recursos empresariales (PRE, ERP en inglés) y administración de la relación con los clientes (CRM en inglés) open source para la Pequeña y mediana empresa, autónomos o asociaciones. Se creó en 2012 como variante (en código libre) del programa Abanq (y éste de FacturaLUX). En un futuro será sustituido por Pineboo (programado en Python 3)

## Características

La aplicación está disponible bajo licencia GNU/GPL (GNU General Public License). Eneboo es un fork de AbanQ 2.4, una aplicación orientada al desarrollo rápido de aplicaciones empresariales basadas fuertemente en base de datos bajo la licencia GPLv2. Fue creado para poder introducir correcciones al programa y darle un aspecto más colaborativo al proyecto. Entre otras cosas, ofrece un sistema de compilación algo más sencillo y no hace uso de módulos firmados binarios.
Para su funcionamiento requiere los siguientes elementos:
* 1.- Ordenador y sistema operativo (ejemplo: windows, linux, mac)
* 2.- Servidor de base de datos: Apache+PhP+(MySQL o PostgreSQL) (ejemplo: wampserver, XAMPP, LAMPP, etc)
* 3.- El programa base (gratis descargable de https://eneboo.org/pub/contrib/releases/ )
* 4.- Los módulos generales (gratis descargables de https://github.com/eneboo)
* 5.- Los módulos+extensiones personalizadas (algunas gratis y otras de pago)
Una vez instalado, el programa se compone de tres elementos independientes:
* a.- El programa base: que se puede actualizar a la última "reléase" sin afectar al resto, o borrar y re-instalar varias veces. (hay dos tipos: "dba" para el ordenador-administrador y "quick" para los ordenadores-clientes o empleados)
* b.- La base de datos: alojada en un subdirectorio del servidor. Almacena los datos junto con los módulos mezclados.
* c.- La "Mezcla": es una copia externa de los módulos y extensiones (guardadas en la base de datos) que se usarán en futuras personalizaciones/ modificaciones mediante las "eneboo-tools" (programadas en Python 2.7).
Las características principales del sistema Eneboo podría resumirse en los siguientes puntos:
* Es un Sistema Multiusuario
* Una interfaz personalizable mediante módulos
* Permite modificar el código directamente con editores de texto.
* Permite varios controladores/servidores de base de datos (PostgreSQL, MySQL o SQLite). El recomendado para grandes proyectos (o en entorno linux) es PostgreSQL (porque las extensiones nuevas tienen menos "bugs").
* Para pequeños usuarios en entorno windows se recomiendan los controladores/servidores de base de datos de MySQL (wampserver), y para mono-usuario lo mejor es usar la versión "dba".

## Funcionalidades

Eneboo incluye las funcionalidades más importantes de un PGI/GRC (En inglés ERP/CRM) incluye la gestión contable. Está basado en diferentes módulos más o menos dependientes unos de otros. Se caracteriza principalmente por su facilidad de instalación y su simplicidad de uso a pesar del gran número de funcionalidades que se activan a través de módulos. Instrucciones de instalación. Existe un módulo (privado o de pago) que permite ejecutar un archivo php desde Eneboo (por ejemplo, para conectar con Prestashop).

## Módulos principales: Eneboo standard

* Módulos oficiales de Facturación y Financiera
* Existe un "proyecto" con los principales módulos y extensiones ya aplicados; el más reciente aquí: prj0001-standard-2015_06_25.eneboopkg
* OTROS MÓDULOS : aquí

## Extensiones para personalizar el programa

* ext0001-co_subarticulo - Subcuenta de venta asociada a los artículos
* ext0002-norma58 - Creación de un fichero de texto de una remesa de recibos según la norma 58
* ext0005-infovtos - Informe de vencimientos de recibos de clientes y proveedores
* ext0011-info_riesgocli - Informe de riesgo acumulado de clientes.
* ext0014-recibosprov - Informe de riesgo acumulado de clientes.
* ext0020-co_renumasiento - Renumeración automática de asientos
* ext0022-diaspagoprov - Establecimiento de determinados días del mes como días de pago para un proveedor
* ext0048-listadoscliprov - Listados de clientes y proveedores
* ext0125-cambio_empresa - Cambio de empresa sin salir de la aplicación
* ext0157-co_traspasoejer - Traspaso de movimientos contables entre dos subcuentas
* ext0224-pgc2008 - Adaptaciones al nuevo plan general contable 2008
* ext0308-multilinea - Descripción de texto largo multilínea en los artículos
* ext0599-iva_periodos - Distintos % de iva para un determinado tipo de impuesto
* ext0450-envio_mail - Envío directo de correos electrónicos
* OTRAS EXTENSIONES: aquí

### Diversos

* Multi-usuario, permisos por funcionalidades
* Varios gestores de menú (diferentes para los usuarios internos en back-office y para los externos en front-office)
* Muy simple de instalar y de usar
* Varios temas
* Código altamente personalizable con las extensiones.
* Funciona con MySQL, PostgreSQL, etc

## Características que faltan / puntos débiles

* utiliza scripts de QSA, que es una tecnología desfasada sin soporte del fabricante, en vez de la más actual QtScript (aunque existen intentos de hacer la migración a Qt6 con Python 3.8: ver Pineboo).
* los formatos de impresión de informes basados en .kut son farragosos, aunque existe una extensión para enlazar con informes personalizables Jasper Reports .
* no hay un módulo de conexión con Prestashop (pero se puede conseguir desarrollando a través de un módulo (privado o de pago) que permite ejecutar un archivo php desde Eneboo ).

## Arquitectura por capas

La interfaz es el puente entre los scripts en lenguaje QSA y la aplicación base de Eneboo programada en C++ a través de las librerías QT. En el entorno de Eneboo se utilizan tres tipos de lenguajes:
* A) Lenguaje QSA. Es el utilizado en los scripts de los módulos, basado en ECMAScript (y por tanto muy parecido a JavaScript). No necesita ser compilado.
* B) Lenguaje C++. Es el utilizado para crear el núcleo de Eneboo (antes Abanq y antes FacturaLUX) (esto es, las aplicación base). Se utiliza el Qt, una biblioteca multiplataforma para desarrollar interfaces gráficas de usuario. Utiliza el lenguaje C++ pero permite usar también C, Python y Perl, además cuenta con soporte para acceder a bases de datos mediante SQL, XML y API para el manejo de ficheros.
* C) Lenguaje Python 2.7. Es el usado en las herramientas de personalización del programa, llamadas "Eneboo-Tools".
Soporta varias bases de datos( MySQL, PostgreSQL, SQLite). Ha sido diseñado para funcionar con la más amplia gama de servidores o hosts posible.
Eneboo puede ser instalado en los Sistemas Operativos Windows (wampserver, WAMPP,...), Mac OS X (......) y Linux Ubuntu/Debian (LAMPP,..... para Ubuntu).

### Componentes de un módulo

* tables. Definiciones de las tablas. Cada tabla se define en un archivo de extensión mtd
* forms. Definiciones de los formularios. Cada formulario se define en un archivo de extensión ui
* scripts. Definiciones de los scripts. Cada script se define en un archivo de extensión qs
* queries. Definiciones de las consultas. Cada consulta se define en un archivo de extensión qry
* reports. Definiciones de los informes. Cada informe se define en un archivo de extensión kut
* translations. Listados de traducciones. Cada listado de traducciones para un determinado idioma se define en un archivo de extensión ts

## Historia

Hasta la fecha, estas son las versiones del programa base publicadas:
* MAYO 2021: Ya están disponibles los builds de Eneboo v2.5.2. El principal cambio es un parche para la versión de Windows 10 20H2, que provoca cierres al iniciar Eneboo con el módulo control de acceso activado. https://eneboo.org/pub/contrib/releases/2.5.2/
* Pineboo se desarrolló a lo largo de 2019 y 2020 en python 3, aunque el primer código se había creado hacia 2014 en python 2.
* Históricos de versiones: https://eneboo.org/pub/contrib/releases/
* La versión 2.4.5.1 rc8 salió en julio de 2015 (para un solo ordenador, usar la versión "dba")
* En 2015 a 2017 era compatible, a nivel de base de datos, con el programa Facturascripts 2015, pero dejó de serlo en la versión 2018 a 2021, porque en Facturascripts cambiaron sus tablas (por ejemplo, la tabla "articulos" pasaron a llamarla "productos")
* Los informes jasper se añadieron en 2012, para sustituir a los "kut".
* La versión 2.2 salió en diciembre de 2012.
Otros desarrolladores, particulares, empresas o independientes (por ejemplo, ...) contribuyen, a través de sus tests, envío de parches al foro o lista de correo, a la evolución de Eneboo.

## Enlaces

* Grupo de correos oficial de Eneboo en habla hispana
* Recopilación de manuales-Portada El wiki Eneboo (documentación) NUEVO ALOJAMIENTO
* https://github.com/Miguel-J/eneboo/wiki (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última). era una recopilación de manuales-Portada El wiki Eneboo (documentación) VIEJO ALOJAMIENTO que ya no existe al haber redirigido el contenido a www.manuales-eneboo-pineboo.org
* Sitio oficial habla hispana
* Grupo de correos oficial de FacturaScripts en habla hispana