Entradas

Instalar Zoook en Ubuntu – Parte IV: Zoook – Parametrización y conexión OpenERP

1.- Instalar dependencias OpenERP

Desde OpenERP hay que instalar los siguientes módulos:

account_payment_extension (addons-extra) +info
base_vat
delivery+info
django (addons-extra) +info
nan_product_pack (addons-extra). Opcional. Requerido para usar productos agrupados. +info
poweremailhttps://github.com/openlabs/poweremail ) +info
product
product_
manufacturer+info
product_attributes (addons-extra). Opcional. Requerido para usar atributos en los productos. +info
product_
m2mcategories (addons-extra) +info
product_images_olbs (addons-extra) +info
sale_payment (addons-extra) +info
sale_promotionshttps://code.launchpad.net/~zikzak/oosalespromotions/sale_promotions o addons-extra del proyecto OpenERP
zoook ( https://github.com/zikzakmedia/openerp-esale )

2.- Conexión base de datos Zoook

Lo primero será crear una base de datos PostgresSQL para Zoook. En un entorno de desarrollo se puede asignar al usuario openerp (normalmente ya usado para openerp) para no tener que crear otro. En producción es mejor asegurarse de que cada usuario puede acceder exclusivamente a su base de datos.

Crear base de datos:

sudo -u postgres psql
postgres=# CREATE DATABASE dj_zoook OWNER openerp;
postgres=# l

El último comando muestra las bases de datos existentes para verificar que se ha creado correctamente. Debería mostrar algo como:

tutorial

3.- Parametrización Zoook

3.1.- /home/roberto/django-projects/zoook-app/config.py

Editar el archivo y ajustar los parámetros de conexión con OpenERP. Hay que configurar todas las secciones pero destacaremos las siguientes por estar implicadas directamente con la conexión con OpenERP o la detección de errores:

LANGUAGES : Crear los lenguajes que se desaa utilizar en la tienda online. Los mismos que en OpenERP.

Para el presente artículo queda:

#Edit your languages
LANGUAGE_CODE = 'es'
LANGUAGES = (
    ('es', ugettext('Spanish')),
    ('en', ugettext('English')),
)
DEFAULT_LANGUAGE = 1
LOCALE_URI = True

OERP_SALE : Indica qué tienda de OpenERP estará vinculada con Zoook.

Para el presente artículo queda:

OERP_SALE = 1 #Sale Shop. All price, orders, ... use this Sale Shop ID.

LOGS : Rutas para almacenar los logs de Zoook

Para el presente artículo queda:

LOGFILE = '/home/roberto/django-projects/zoook-app/log/sync.log' #path sync log
LOGSALE = '/home/roberto/django-projects/zoook-app/log/sale.log' #path sale log

DATABASES : Datos de conexión con la base de datos propia de Zoook.

Para el presente artículo queda:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'dj_zoook',     # Or path to database file if using sqlite3.
        'USER': 'openerp',      # Not used with sqlite3.
        'PASSWORD': 'openerp',  # Not used with sqlite3.
        'HOST': '192.168.0.122',    # Set to empty string for 192.168.0.122. Not used with sqlite3.
        'PORT': '5432',         # Set to empty string for default. Not used with sqlite3.
    }
}

OERP_CONF : Datos de conexión Webservice XML-RPC OpenERP.

Para el presente artículo queda:

OERP_CONF = {
    'username':'admin',
    'password':'openerp',
    'dbname':'openerp',
    'protocol':'xmlrpc', #xmlrpc
    'uri':'http://192.168.0.122', #xmlrpc
    'port':8069, #xmlrpc
#    'protocol':'pyro', #pyro
#    'uri':'192.168.0.122', #pyro
#    'port':8071, #pyro
}

3.2.- /home/roberto/django-projects/zoook-app/sync/config_path.py

Este archivo contiene la ruta a Zoook para que el proceso de sincronización por SSH pueda encontrar las dependencias necesarias.

Para el presente artículo queda:

djpath = '/home/roberto/django-projects/zoook-app'

3.3.- /home/roberto/django-projects/zoook-app/settings.py

Editar el archivo para asignar una clave secreta única a Zoook. Para generarla podemos usar el generador de claves seguras safepasswd.com

Para el presente artículo queda:

# Make this unique, and don't share it with anybody.
SECRET_KEY = 'AQUÍ_LA_CLAVE_SECRETA_ÚNICA'

3.4.- Crear tablas Zoook.

Generar estructura de la base de datos:

cd ~/django-projects/zoook-app
python manage.py syncdb

El script preguntará si deseamos crear un superusuario. Decir que sí e introducir los datos de acceso del usuario que se usará para la administración de Zoook.

tutorial

3.5.-/home/roberto/django-projects/zoook-app/configuration.py

Ejecutar el asistente de configuración para introducir parámetros adicionales requeridos por Django.

Ejecutar configuration.py:

cd ~/django-projects/zoook-app
./configuration.py

Devolverá algo como:

tutorial

 3.6.- Ajustar permisos de archivos.

Cambiar permisos directorio sync:

cd ~/django-projects/zoook-app/
sudo chown -R roberto:www-data *
sudo chmod 775 -R sync

3.7.- Prueba de Zoook.

Cargamos el servidor:

cd ~/django-projects/zoook-app/
python manage.py runserver

que mostrará algo como:

tutorial

Al abrir en el navegador la dirección de nuestro servidor ( http://127.0.0.1:8000 ) cargará por primera vez Zoook:

tutorial

Podemos acceder a la administración con los datos del superusuario creado anteriormente:

tutorial

4.- Conexión Zoook – OpenERP

Se necesita acceso SSH al servidor que contiene Zoook. En este caso y para el entorno de desarrollo instalaremos OpenSSH Server:

Cargamos el servidor:

sudo apt-get install openssh-server

Lo siguiente es configurar poweremail para crear una plantilla que se usará para los pedidos de venta. En este artículo no se entrará en detalles del proceso.Se puede obtener información en:

http://www.sharoonthomas.com/2009/09/poweremail-for-open-erp.html

A continuación abrir OpenERP y configurar la tienda para la conexión con Zoook.

Ventas => Configuración => Ventas => Tienda

Elegir la tienda que se va a usar con Zoook, editarla y marcar «Tienda Zoook» en la parte superior derecha. Aparecerán entonces las opciones de configuración de Zoook.

tutorial

tutorial

tutorial

Al hacer el test de conexión debería dar un mensaje de que la conexión es correcta.

5.- Exportar productos de prueba

Sólo quedaría agregar categorías y productos de prueba. Lo único destacable en este punto es que para que un producto se exporte a la web hay que marcar en el mantenimiento «¿Exportar tienda on-line?». Una vez marcado aparecerá una nueva pestaña con nombre «e-Sale» desde donde podremos parametrizar las opciones del producto en la tienda online.

tutorial

Al finalizar la creación de productos hay que volver a la configuración de la tienda para exportar productos, categorías, imágenes, etc. Al refrescar/cargar la web de Zoook se podrán ver los datos introducidos:

tutorial

tutorial

Con esto finaliza la serie de artículos destinada a documentar cómo poner en marcha Zoook.

Multidivisa en OpenERP

Configuración de monedas

La configuración de monedas se encuentra en Contabilidad/Configuración/Varios/Monedas


capturas_openerp

En el listado de monedas aparecen las monedas disponibles en cada compañía, en este ejemplo se han borrado las monedas que no se van a utilizar y se ha quitado la información de la compañía para que las tasas de cambio estén para todas las compañías.


capturas_openerp

En el formulario de cada moneda esta disponible un listado con las diferentes tasas de cambio en cada fecha.
capturas_openerp

Por comodidad lo ideal es desactivar las monedas que no se utilicen. Al crear la base de datos de OpenERP creará todas las monedas disponibles y las asociará a la primera compañía creada.

Trabajando en multicompañía habrá que crear las monedas para cada compañía y comprobar las reglas de acceso para que desde cada compañía solo se tenga acceso a las monedas asociadas a si misma. O no asociar la moneda a ninguna compañía para que estén disponibles para todas las compañías.

Para cada compañía en el formulario de compañías en el menú Administración/Compañías/Compañías se indicará la moneda principal de la compañía.


capturas_openerp

Actualización de tasas de cambio

Para actualizar las tasas de cambio se puede hacer manual o automáticamente obteniendo los datos de internet. Para hacerlo automáticamente se tendrá que instalar el módulo currency_rate_update y configurar el actualizador de divisas para cada compañía.

En el formulario de compañías después de instalar el módulo  currency_rate_update habrá una nueva solapa en la que se podrá configurar la actualización de cambios de divisas.
capturas_openerp

En cada linea de “Currency updates services” se podrá indicar el servicio del que obtener el cambio de divisas y para que monedas.


capturas_openerp

Con esto el sistema estará configurado para actualizar los cambios de divisas. Clickando el botón “Refresh Currencies” se actualizarán las tasas de cambio en este momento.

Configuración de tarifas multidivisas

Para trabajar con multidivisa desde el pedido habrá que crear una tarifa para cada moneda.


capturas_openerp
La forma mas sencilla es crear primero la tarifa para la moneda principal con las reglas necesarias y para cada moneda crear una tarifa con una única regla que indique que el precio lo tomamos de la tarifa principal, esto hará que las tarifas del resto de monedas serán dinámicas cogiendo el cambio disponible en cada fecha, pudiendo indicar un incremento como tanto por ciento o fijo.

En este ejemplo se muestra la regla por defecto para la tarifa en $ usando como base la tarifa en €
capturas_openerp
También, si en una regla de tarifa de una una tarifa con una moneda distinta de la principal de la compañía indicamos que el precio de tarifa depende del precio de compra o de venta del producto el precio de tarifa también será dinámico y dependerá del cambio de la moneda.

Un desarrollo interesante sería hacer multidivisa los precios de compra y venta de la ficha del producto así en las reglas de tarifas se podría escoger por ejemplo entre el precio de venta en la moneda principal de la compañía y el precio de venta de la moneda de la tarifa. Con esto se conseguiría hacer tarifas independientes para cada moneda, esto por el momento se puede solventar sin desarrollo haciendo una tarifa indicando un precio fijo para cada producto.

Pedidos y Facturas

En el momento de crear un pedido si se indica que use una tarifa con una moneda distinta de la moneda principal de la compañía se trabajará con es moneda exactamente igual que con la principal, todo el trabajo de cambio de divisas lo está haciendo por debajo el sistema de tarifas para recuperar el precio que corresponda.
capturas_openerp

En la captura del ejemplo el producto tenía un precio de venta de 1 euro, al usar la tarifa en dolares usará la tarifa de cambio para recuperar el precio de venta en dolares.

Al crear una factura a partir de un pedido, la factura se creará en la moneda de la tarifa del pedido. También se puede crear la factura directamente en la moneda que nos interese y si es necesario realizar luego el cambio de moneda.
capturas_openerp

Con el botón de cambio de divisa permitirá cambiar la divisa de la factura usando el cambio asociado en la fecha actual.


capturas_openerp
Después de indicar la nueva moneda y clickar el botón de cambio de moneda actualizará los importes.
capturas_openerp

Pago de facturas

Al realizar el pago de la factura y seleccionar el modo de pago aparecerán los vencimientos en la moneda principal de la compañía con la tasa de cambio del momento en el que se validó la factura. Si al realizar el pago el importe pagado es distinto del importe del vencimiento por diferencias en las tasas de cambio, habrá que conciliar el pago con un desajuste, indicando que el desajuste irá contra la cuenta contable correspondiente (Diferencias positivas de cambio).
capturas_openerp

Instalar Zoook en Ubuntu – Parte III: Zoook – Instalación

Lo siguiente será crear una carpeta donde almacenar todas las aplicaciones de terceros que necesita Zoook. Esto será útil para poder actualizarlas con git, mercurial, svn, etc. en caso de necesitarlo.

La carpeta elegida para almacenar las aplicaciones de terceros será:

/home/roberto/django-projects/zoook-external

Crear la carpeta:

cd ~/django-projects
mkdir zoook-external

A continuación usaremos esa carpeta para almacenar las dependencias.

2.1.- OOOP ( Open Object On Python )

Para instalar OOOP:

cd ~/django-projects/zoook-external
git clone https://github.com/zikzakmedia/ooop.git
cd ooop
sudo python setup.py install

2.2.- Pyro3 ( Python Remote Objects )

Buscar la descarga en su web:

http://pypi.python.org/pypi/Pyro/

en este artículo se usará la última versión disponible a día de hoy que es:

http://pypi.python.org/packages/source/P/Pyro/Pyro-3.15.tar.gz

Instalar Pyro3:

cd ~/django-projects/zoook-external
wget pypi.python.org/packages/source/P/Pyro/Pyro-3.15.tar.gz
tar xvzf Pyro-3.15.tar.gz
cd Pyro-3.15
sudo python setup.py install

2.3.- Paramiko

http://www.lag.net/paramiko/

en este artículo se usará la última versión disponible a día de hoy que es:

http://www.lag.net/paramiko/download/paramiko-1.7.7.1.tar.gz

Para instalar Paramiko:

cd ~/django-projects/zoook-external
wget http://www.lag.net/paramiko/download/paramiko-1.7.7.1.tar.gz
tar xvzf paramiko-1.7.7.1.tar.gz
cd paramiko-1.7.7.1
sudo python setup.py install

 2.4.- recaptcha-client

http://pypi.python.org/packages/source/r/recaptcha-client/

en este artículo se usará la última versión disponible a día de hoy que es:

http://pypi.python.org/packages/source/r/recaptcha-client/recaptcha-client-1.0.6.tar.gz

Para instalar recaptcha-client:

cd ~/django-projects/zoook-external
wget http://pypi.python.org/packages/source/r/recaptcha-client/recaptcha-client-1.0.6.tar.gz
tar xvzf recaptcha-client-1.0.6.tar.gz
cd recaptcha-client-1.0.6
sudo python setup.py install

2.5.- inplaceditform

Clonar e instalar el fork de inplaceeditform mantenido por Zikzakmedia:

cd ~/django-projects/zoook-external
git clone https://github.com/zikzakmedia/django-inplaceeditform.git
cd django-inplaceeditform
sudo python setup.py install

 

2.6.- django-localeurl

En caso de no tener instalado el control de versiones Mercurial hay que instalarlo.

Instalar Mercurial:

sudo apt-get install mercurial

Después clonar el repositorio oficial de django-localeurl e instalarlo.

Clonar django-localeurl e instalarlo:

cd ~/django-projects/zoook-external
hg clone https://bitbucket.org/carljm/django-localeurl
cd django-localeurl/
sudo python setup.py install

2.7.- django-transmeta

En caso de no tener instalado SVN hay que instalarlo.

Instalar SVN:

sudo apt-get install svn

Después clonar el repositorio svn de django-transmeta e instalarlo.

Clonar django-localeurl:

cd ~/django-projects/zoook-external
svn checkout http://django-transmeta.googlecode.com/svn/trunk/ django-transmeta
cd django-transmeta
sudo python setup.py install

2.8.- django-maintenancemode

Clonar e instalar el fork de django-maintenancemode mantenido por Zikzakmedia:

cd ~/django-projects/zoook-external
git clone https://github.com/zikzakmedia/django-maintenancemode.git
cd django-maintenancemode
sudo python setup.py install

3.- Corregir rutas con prefijo «zoook».

Por defecto Zoook trae ciertas rutas en los import que incluyen «zoook.». Entendemos que deben tener agregado al PYTHONPATH la ruta de los proyectos y el prefijo «zoook» implica buscar dentro del proyecto zoook.

La solución propuesta es convertir esas urls en relativas al proyecto actual de zoook. Esto es, eliminar el prefijo «zoook.» de las llamadas que lo contienen.

Será necesario realizar las siguientes modificaciones:

Editar /zoook-app/settings.py y cambiar:

ROOT_URLCONF = 'zoook.urls'

por:

ROOT_URLCONF = 'urls'

Editar /zoook-app/tools/cms/templatetags/imageslider.py y cambiar:

from zoook.tools.cms.models import ImageSlider, ImageSliderItem

por:

from tools.cms.models import ImageSlider, ImageSliderItem

Editar /zoook-app/tools/cms/templatetags/menubuilder.py y cambiar:

from zoook.tools.cms.models import Menu, MenuItem

por:

from tools.cms.models import Menu, MenuItem

Editar /zoook-app/tools/cms/templatetags/modules.py y cambiar:

from zoook.tools.cms.models import Modules

por:

from tools.cms.models import Modules

Dada la extensión de este artículo hemos decidido dividirlo. En la próxima parte estableceremos las conexiones con OpenERP y parametrizaremos Zoook.

Instalar Zoook en Ubuntu – Parte II: Python y Django

2.- Instalar Django

Django puede instalarse de tres formas:

  1. Usar los sistemas de distribución de paquetes de algunas distribuciones (como Ubuntu).
  2. Descargar la versión estable desde su web.
  3. Descargar la última versión en desarrollo desde repositorios.

En el momento de escribir este artículo la versión estable de los repositorios de Ubuntu coincide con la versión estable descargable por la web. Instalar la última versión desde los repositorios de Ubuntu es tan sencillo como:

sydo apt-get install python-django

Ahora se detallará el proceso a seguir para instalar la última versión estable en caso de no estar disponible a través de repositorios de Ubuntu.

En primer lugar hay que ir a la sección de descargas de la web de Django y descargar la última versión estable/oficial de Django. En el momento de escribir este artículo la versión era la 1.3.1 y el archivo descargado es Django-1.3.1.tar.gz

Suponiendo que se ha descargado el archivo en la carpeta de usuario estos serían los pasos para generar el directorio en el que se almacenará el código fuente de Django:

cd ~
tar xvzf Django-1.3.1.tar.gz
mv Django-1.3.1 django-src

De esta forma la carpeta que contendrá el código fuente de Django queda situada en:

/home/roberto/django-src

Con la carpeta de Django preparada el siguiente paso es informarle a Python de dónde la hemos generado. Para eso, a su vez, hay que buscar dónde están los site-packages de Python.

Averiguar dónde están los site-packages de Python:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

Nos devolverá algo como:

Tutorial

que indica que en este caso el directorio de los site-packages es: /usr/lib/python2.7/dist-packages

Dentro de ese directorio hay que agregar la ruta a la carpeta con el código fuente de Django.

Para agregar la ruta a Django:

echo '/home/roberto/django-src' | sudo tee -a /usr/lib/python2.7/dist-packages/django.pth

eso creará un archivo /usr/lib/python2.7/dist-packages/django.pth en cuyo interior queda almacenada la ruta de acceso a Django.

A continuación crear enlace simbólico a django-admin.py para facilitar su uso:

sudo ln -s /home/roberto/django-src/django/bin/django-admin.py /usr/local/bin

 De este modo se puede usar django-admin.py desde cualquier carpeta en lugar de tener que usar /home/roberto/django-src/django/bin/django-admin.py

3.- Verificar instalación

Comprobar que Python es capaz de encontrar Django:

python
>>> import django
>>> print django.get_version()

Que devolverá algo como:

Tutorial

que indica que Python ha detectado y conectado correctamente con la versión 1.3.1 de Django que hay en el sistema.

La siguiente verificación será crear el primer proyecto de Django para verificar que la generación funciona.

Crear una carpeta para almacenar los proyectos de Django y acceder a ella:

mkdir /home/roberto/django-projects
cd /home/roberto/django-projects

En este caso la carpeta se ha creado en el home del usuario con el nombre «django-projects» pero no es necesario que sea así. En su lugar podría haberse usado, por ejemplo, la carpeta workspace que usa Eclipse.

Crear el proyecto de prueba en la carpeta:

django-admin.py startproject testdjango

Acceder al proyecto y lanzar el servidor Django integrado:

cd testdjango
python manage.py runserver

que devuelve algo como:

  Tutorial

El servidor ha arrancado correctamente y está esperando conexiones locales en el puerto 8000 ( http://127.0.0.1:8000 ). Al abrir el navegador en la ruta indicada por el mensaje debería aparecer:

  Tutorial

El proyecto ha cargado correctamente y es accesible desde el navegador. Ahora se podría crear una base de datos en PostgreSQL y comprobar la conectividad con el proyecto pero dada la finalidad de este artículo ( instalar Zoook ) el acceso a base de datos se detallará más adelante al configurar Zoook.

Instalar Zoook en Ubuntu – Parte I: Apache y PostgreSQL

1.- Instalar Apache 2 (entornos de producción)

Django incorpora un servidor para entornos de desarrollo que además es recomendable usar ya que simplifica enormemente el proceso de debug. Por lo tanto no es necesario realizar este paso en entornos de desarrollo.

Para instalar Apache 2 escribir en un terminal:

sudo apt-get install apache2

2.- Instalar PostgreSQL

Tanto Python como Apache soportan varios motores de bases de datos pero este artículo está centrado en cómo usar PostgreSQL.

Para instalar PostgreSQL

sudo apt-get install postgresql

3.- Instalar pgAdmin3

Lo siguiente es instalar la interfaz gráfica pgAdmin3 para facilitar la gestión del servidor PostgreSQL. Actualmente la última versión disponible es la 1.14.0 pero en los repositorios de ubuntu está la versión 1.12.3-1.

Para instalar la versión 1.12.3-1 desde los repositorios:

sudo apt-get install pgadmin3{/code}

Si se prefiere instalar la última versión hay que descargar directamente el código fuente y compilarlo. Descargar las fuentes de:

http://www.pgadmin.org/download/

En este caso descargar:

http://wwwmaster.postgresql.org/download/mirrors-ftp/pgadmin3/release/v1.14.0/src/pgadmin3-1.14.0.tar.gz

Tras descargarlo descomprimirlo con:

tar xvzf pgadmin3-1.14.0.tar.gz

y acceder a la carpeta donde se ha descomprimido:

cd pgadmin3-1.14.0{/code}

Antes de instalarlo hay que asegurarse de tener todas las dependencias necesarias:

sudo apt-get install build-essential libwxgtk2.8-dev libxml2-dev libxslt1-dev libgtk2.0-dev

Después ejecutar:

./configure

Lo siguiente sería hacer un make pero si se hace ahora se obtiene un error:

./db/keywords.c:33:34: error: parser/kwlist.h: No such file or directory

Este error se produce porque hay un bug en el constructor del PostreSQL que no copia un archivo necesario ( kwlist.h ) en la carpeta correspondiente. Para solucionarlo descargar este archivo y después:

crear la carpeta /usr/include/postgresql/parser con:

sudo mkdir -p /usr/include/postgresql/parser

mover allí el archivo descargado con:

sudo mv kwlist.h /usr/include/postgresql/parser

A continuación ya se puede ejecutar:

make

y luego:

sudo make install

La instalación debería haberse realizado correctamente.

Adicionalmente y para mayor comodidad crear un enlace simbólico al ejecutable de pgadmin3 con:

sudo ln -s /usr/local/pgadmin3/bin/pgadmin3 /usr/local/bin/pgadmin3

De este modo se puede acceder a él desde cualquier lugar ejecutando simplemente:

pgadmin3

en lugar de tener que usar:

/usr/local/bin/pgadmin3

4.- Configurar usuarios PostgreSQL

PostgreSQL por defecto trabaja con ‘ident sameuser’ para conexiones locales que permite usar el mismo usuario que ya existe en el sistema para establecer las conexiones con base de datos. De un modo similar se puede crear un usuario alternativo en el sistema y generarle un acceso a PostgreSQL.

El modo de crear un usuario superusuario es:

sudo -u postgres createuser --superuser NOMBREUSUARIO
sudo -u postgres psql
postgres=# password NOMBREUSUARIO

Tras todos los cambios reiniciar el servidor apache:

sudo /etc/init.d/apache2 restart

Finalizado todo este proceso quedaría el sistema listo para continuar con los siguientes pasos en los que instalaremos Python, Django, el módulo mod_wsgi para Apache 2 y finalmente Zoook.

En los próximos días publicaremos el resto de partes.

Nuevo proceso de instalación de localización española de OpenERP

  • La instalación se hace como la instalación estandar de otro módulo, ya no habrá que cancelar la instalación de la contabilidad a medio.
  • Instalación del plan contable y creación de periodos y diarios en multicompañía.
  • La configuración del ejercicio antes era estática comenzando el día 1 de enero y terminando el 31 de diciembre, ahora se puede configurar el inicio y fin para casos especificos como en educación que comienzan ejercicio en septiembre.
  • La configuración de los periodos antes era estatico por trimestres, ahora se puede utilizar periodos mensuales.
  • Posibilidad de crear o no periodos de apertura y cierre.

La instalación de la localización española ahora es tan sencillo como instalar el módulo l10n_es_account_pyme y ejecutar el asistente de configuración.

Al configurar la contabilidad y seleccionar el plan de cuentas español se podrá seleccionar para que compañía realizar la instalación, las fechas de inicio y fin del periodo, la duración de los periodos (mensuales o trimestrales) y si se desea crear los periodos de apertura, cierre y para Perdidas y Ganancias.


capturas_openerp

En el siguiente paso igual que antes se podrá seleccionar el número de dígitos para las cuentas y los diarios a crear.

Una vez terminado el asistente se podrá abrir el ejercicio creado y comprobar que se han creado los periodos de Apertura, Cierre y PG


capturas_openerp

Si por cualquier motivo no se marca en la instalación también se podrán crear estos periodos en un ejercicio que no los tenga con el botón que se muestra a continuación


capturas_openerp

Domatix 2.1

Confiamos con este movimiento poder atraer nuevos clientes y fortalecernos para competir con empresas más fuertes, tradicionalmente del sector de «software propietario», y atraerlas hacia el software libre.

Iremos detallando las novedades durante las próximas semanas en los canales habituales…

¡Nuevamente gracias a clientes, compañeros y amigos por estar ahí!

TRCRM – Aplicación de Android como Cliente CRM OpenERP

Dado que el producto todavía está en desarrollo, y lamentablemente aún no está en castellano, Tech Receptive hace un llamamiento a la comunidad para solicitar feedback en su correo android@techreceptives.com.

El objetivo a largo plazo es completar el ciclo de ventas desde la aplicación, almacenando todas las actividades de «leads» y oportunidades, guardar y sincronizar datos con la agenda de contacto, reuniones, tareas pendientes, llamadas, emails y creando presupuestos al vuelo.

Confiamos poder ver en breve los avances de este programa, y agradecemos al equipo de Tech Receptive sus esfuerzos por unir lo mejor de ambas plataformas, potenciando más el uso y la facilidad de OpenERP como CRM.

Más info y enlace a la aplicación en AndroidPIT.

Implantar con éxito un ERP

Cuando nos llega una petición del tipo «Tengo una empresa de 15 empleados, y utilizamos almacén, crm, facturación y contabilidad, quisiera saber el coste de implantar OpenERP. Gracias» (ejemplo ficticio… o casi), la tarea inmediata es explicar que el coste final dependerá de las tareas a realizar (¿formación, migración de bds? ¿desarrollos a medida?), y que es fundamental que la empresa haya realizado un análisis con todos los procesos que desea gestionar desde el ERP. Un proyecto de magnitud sin planificación, ni objetivos claramente definidos, está abocado a redefinirse o a fracasar.
En ocasiones, llegan consultas de pequeñas empresas atraídas por el ahorro de licencias que supone adquirir software libre, aunque simplemente desean un programa para llevar la facturación y contabilidad, y no necesitan todas las «complicaciones» de un ERP, ni son conscientes de todo lo que conlleva una implantación.

En estos casos, la respuesta siempre es la misma. La empresa que solicita cambiar debe realizar un análisis de todos los procesos que quieren informatizar, enfocado esencialmente a un ERP, y de ser posible, a OpenERP. Es una buena idea utilizar un consultor externo, o, en la medida de lo posible, que sea la empresa especializada en el producto la que realice el documento. Todas las empresas implantadoras tienen capacidad para realizar estos análisis.

Las claves para el éxito son muy claras:

  • Personal involucrado e integrado, desde la elaboración del análisis de requisitos y a lo largo de todo el proceso del desarrollo hasta la implantación y puesta en marcha.
  • Suficiente aportación de los usuarios. Para cubrir todas las áreas y hacerlo correctamente es necesaria el máximo posible de información por parte de todos los departamentos. Estudiar los procesos de trabajo específicos y la manera de trabajar con la documentación el programa que se utiliza actualmente también ayuda.
  • Especificaciones correctamente definidas: antes de comenzar, se tiene que elaborar, por escrito, un análisis detallado con todas las funcionalidades que se desean resolver antes de la implantación, y contar con la aprobación del implantador y del cliente. Un análisis con la planificación de tiempos, costes y clausulas específicas es el mejor contrato que pueden tener ambos.
  • Expectativas realistas y fijadas. Hay que tener muy claro lo que se desea, definiendo al máximo posible todo lo que se espera tras marcar unos objetivos y ser conscientes de los cambios y mejoras que se realizarán en la empresa, tanto en la primera fase de la implantación, como en las sucesivas. Es fundamental saber hasta donde nos limita el software elegido, y conocer los tiempos para las parametrizaciones propias.
  • Presencia de un consultor externo. Incluso si la empresa tiene conocimientos y un departamento informático propio para implantar el ERP, es fundamental contar con al menos una figura externa, que no esté habituada a las formas de trabajar propias de la empresa.
  • Buena comunicación. Entre departamentos, con el implantador, la comunicación tiene que ser bidireccional y todas las decisiones y objetivos a establecer tienen que hacerse con el consenso de todos.
  • Metodología de implantación clara. Normalmente el cambio de ERP es un proceso «doloroso», que resta tiempo e incomoda a todos los implicados. Es esencial que todos conozcan el papel que van a jugar, cómo va a influir en su rutina de trabajo, y cual será el impacto negativo de la implantación en el momento del cambio.

Conociendo y trabajando sobre todas estas recomendaciones, la implantación sin duda contará con muchas más garantías de éxito y la transición será más suave, detectando y poniendo solución a todos los problemas potenciales antes de que ocurran.

También estamos recibiendo peticiones para OpenERPs «implantados», con carencias muy graves, ya sea a nivel de desarrollo (o parametrización), a nivel de formación . Algunas empresas, con conocimientos de programación se «atreven» con OpenERP, pero con resultados nefastos, dado que no conocen el producto, algunos implantadores que conocen OpenERP y sus funcionalidades (e incluso pueden parametrizarlo y formar a sus clientes), no poseen conocimientos para desarrollar las funcionalidades requeridas, o migrar sus bases de datos, y la implantación acaba fácilmente en desastre.

Afortunadamente, este tipo de clientes que recurren a otro proveedor en estas circunstancias (pueden hacerlo sin problemas puesto que el programa es libre/GPL), no culpan al programa, y son conscientes de que los fallos se deben al implantador.
Pero bueno, esto merece otro artículo para algún otro día

¿Openbravo ERP u Openerp?

Sin embargo, de vez en cuando atendemos clientes que ya han realizado una selección de ERPs libres, y OpenBravo aparece en la lista.

Sin entrar en valoraciones sobre los aspectos técnicos, número de módulos y funcionalidades de los mismos (en los que claramente OpenERP es superior, aquí una pequeña comparativa), lo cierto es que, tal y como menciona Cheli Pineda, uno de los implantadores con más experiencia en OpenBravo, Openbravo es una empresa de software privativo que dice que hace un ERP libre. Los clientes potenciales acaban confundidos sobre si el software o la licencia de uso son libres (no lo son), y desde la empresa matriz, juegan a mezclar términos como opensource (que no es más que código abierto) con software libre, sin llegar a definir muy bien en qué punto se encuentra su producto. Lo cierto es que si bien empezó como un producto de código abierto (basado en Compiere), cada vez es más restrictivo y parecido en cuanto a modelo de negocio a los desarrollos propietarios, y cada vez más clientes e interesados lo perciben de esta manera.

Confiemos en que con el tiempo, y más allá de OpenERP, aparezcan otros productos 100% libres que ofrezcan alternativas reales y que mejoren la oferta de productos y por tanto, las opciones de los «compradores». Estaremos cerca de Tryton, un fork de OpenERP ahora mismo todavía en pañales, pero con grandes ambiciones.

Recomendamos la lectura de:

Comparativa entre modelos de desarrollo ERPs libre y propietario (openerpspain.com)

El caramelo envenenado de Openbravo ERP (cheli.aradaen.com)

Anotar, como hace Cheli, que la tendencia de OpenERP es de seguir creciendo, y en estos momentos ya ha superado a OpenBravo, a pesar de ser un producto con menor tiempo en el mercado y sin las fuertes inversiones en marketing y publicidad de su competidor.