Hiparco

Recetas y trucos de GNU/Linux e informática en general

Alojado en http://guimi.net

Solventar en OSCommerce eregi is deprecated

Si tienes OSCommerce y actualizas PHP, aparece el error “eregi is deprecated”.

Para solventarlo vamos al foro de OSCommerce, donde tenemos los parches.

Después siguiendo esta receta de cómo generar (diff) y aplicar (patch) parches, bajamos de github los parches, añadiendo “.patch” al URL y aplicar los parches.

$ wget https://github.com/osCommerce/oscommerce2/commit/79c601a7b3ee87943b92a5e6d77ce02480b49ffe.patch
$ wget https://github.com/osCommerce/oscommerce2/commit/88d550f392d86c02d2fe16d0b93f1de8aa6a6770.patch
$ wget https://github.com/osCommerce/oscommerce2/commit/1bfed2f6bf0e9c1c0ce4b160bce1e881cc6e6ef8.patch
$ wget https://github.com/osCommerce/oscommerce2/commit/15101263fa27b523139b405f99b1613c71a8e2c1.patch
$ wget https://github.com/osCommerce/oscommerce2/commit/bc2bcd9b1bd2148bf852409b3843543555bc01e2.patch
$ patch -p1 < 79c601a7b3ee87943b92a5e6d77ce02480b49ffe.patch
patching file catalog/admin/backup.php
patching file catalog/admin/cache.php
Hunk #1 succeeded at 91 with fuzz 2.
patching file catalog/admin/configuration.php
patching file catalog/admin/ext/modules/payment/sofortueberweisung/install.php
[...]
patching file catalog/admin/includes/functions/general.php
Hunk #1 FAILED at 939.
1 out of 1 hunk FAILED -- saving rejects to file catalog/admin/includes/functions/general.php.rej
[...]
patching file catalog/includes/modules/payment/paypal_express.php
Hunk #1 FAILED at 59.
1 out of 1 hunk FAILED -- saving rejects to file catalog/includes/modules/payment/paypal_express.php.rej
[...]

Si nos fijamos en esta parte de la salida:

patching file catalog/admin/includes/functions/general.php
Hunk #1 FAILED at 939.
1 out of 1 hunk FAILED -- saving rejects to file catalog/admin/includes/functions/general.php.rej

Vemos que al parchear el fichero "catalog/admin/includes/functions/general.php" en la línea 939 ha habido un error.
Tenemos más información en "catalog/admin/includes/functions/general.php.rej". Lo que hace patch en este casp es generar 3 ficheros:
- general.php es el fichero original CON los cambios que SÍ ha aplicado.
- general.php.orig es el fichero original.
- general.php.rej contiene los cambios que NO ha aplicado.
Así si el parche incluye varios cambios para un fichero puede ocurrir que unos cambios se apliquen y otros no.
En este caso no queda más remedio que revisar el cambio no realizado a mano.

Puede ocurrir que el archivo a parchear no exista. En ese caso tendremos solo dos ficheros:
- x.orig con 0 bytes, es copia del original. Como éste no existía, es un archivo en blanco.
- x.rej los cambios que no se han aplicado.
Basta con confirmar que es correcto que el fichero no exista. podría ocurrir que esté movido (revisar porqué), o que sea de un módulo del que no disponemos -lo habitual- (ignorar).

Igual con el resto de parches:

$ patch -p1 < 88d550f392d86c02d2fe16d0b93f1de8aa6a6770.patch
$ patch -p1 < 1bfed2f6bf0e9c1c0ce4b160bce1e881cc6e6ef8.patch
$ patch -p1 < 15101263fa27b523139b405f99b1613c71a8e2c1.patch
$ patch -p1 < bc2bcd9b1bd2148bf852409b3843543555bc01e2.patch
OSCommerce, OSC, github, eregi deprecated, patch,

Montar y desmontar sistemas con Truecrypt en GNU/Linux

Truecrypt es un sistema de cifrado libre de código abierto para GNU/Linux, Windows y Mac.

Permite cifrar sistemas de archivos enteros, o generar archivos cifrados contenedores de sistemas de archivos.
Permite incluso generar sistemas ocultos dentro de otros sistemas para permitir una denegación plausible.
En su web puede encontrarse mucha documentación, incluyendo cómo generar ficheros contenedores de sistemas de ficheros cifrados.
Aquí veremos cómo montar y desmontar en GNU/Linux un sistema de ficheros de Truecrypt.
Esto nos permite llevar en una memoria USB los ejecutables de Truecrypt para GNU/Linux, Windows y Mac y un archivo con información cifrada mediante Truecrypt.

En GNU/Linux truecrypt debe ejecutarse como root. Para ello podemos valernos de sudo, por ejemplo.
En todo momento si añadimos la opción ‘-t’ prescindiremos del GUI y ejecutaremos la versión de solo consola. Si ejecutamos los comandos del ejemplo sin ‘-t’ haremos lo mismo pero con una bonita GUI.

Aunque necesita permisos de root, en teoría se puede ejecutar el comando como usuario y se encarga de solicitar la clave necesaria, pero yo no he conseguido que funcione:
$ truecrypt -t mi_archivo_cifrado

Enter mount directory [default]: 
Enter password for mi_archivo_cifrado: 
Enter keyfile [none]: 
Protect hidden volume (if any)? (y=Yes/n=No) [No]: 
Enter your user password or administrator password: 

Lanzamos el mismo comando con sudo:
$ sudo truecrypt -t mi_archivo_cifrado

Enter mount directory [default]: 
Enter password for mi_archivo_cifrado: 
Enter keyfile [none]: 
Protect hidden volume (if any)? (y=Yes/n=No) [No]: 

Lanzamos el mismo comando pero con GUI:
$ sudo truecrypt mi_archivo_cifrado
Truecrypt

Podemos ver el dispositivo montado:
$ mount

/dev/mapper/truecrypt1 on /media/truecrypt1 type vfat (rw,uid=1000,gid=1000,umask=077)

O con el propio Truecrypt:
$ truecrypt -t -l

1: /ruta_a/mi_archivo_cifrado /dev/mapper/truecrypt1 /media/truecrypt1

Para desmontarlo hacemos (no necesitamos sudo):
$ truecrypt -d /media/truecrypt1/

Para montar en un directorio determinado:
$ sudo truecrypt -t mi_archivo_cifrado /mi_directorio/

Truecrypt

Cómo importar/exportar datos en OpenERP

Esta entrada forma parte de una pequeña serie de [entradas sobre OpenERP].
Las imágenes han sido cedidas por Servi3, tu experto en OpenERP.

Para importar y exportar datos con OpenERP utilizaremos archivos CSV.
Si lo que queremos es mover o copiar una instalación completa, es tan sencillo como hacer una copia de seguridad de la base de datos de postgres y restaurarla en el nuevo servidor.

OpenERP permite en los formularios importar y exportar datos.
Para importar datos recomiendo hacer primero una exportación, lo que nos permite ver la estructura de datos.
OpenERP
Seleccionamos los campos que nos interesan y pulsamos aceptar.
OpenERP

Para cargar datos en una instalación nueva, lo primero que hay que importar son las cuentas, ya que las empresas y productos hacen referencia cuentas contables.
Vamos a ‘Contabilidad -> Configuración -> Contabilidad financiera -> Cuentas -> Cuentas’, abrimos la vista formulario y seleccionamos en el menú “Formulario -> Importar datos…”. Seleccionamos el fichero deseado y pulsamos “Auto-Detección”. Este proceso nos cargará los campos del CSV y nos detectará algunos errores.
OpenERP
Pulsamos aceptar. Si todo ha ido bien veremos el siguiente mensaje:
OpenERP

Después de importar las cuentas, necesitamos saber el identificador (ID) que ha asignado a cada una. Para ello podemos, bien exportar las cuentas, bien utilizar un cliente de postgres, ya sea la línea de comando o un cliente como pgadmin3.

A continuación unos ficheros de carga sencillos para cuentas. Basta adaptarlos a nuestras necesidades:
servi3-carga_01-cuentas.csv

"company_id","code",".id","id","name","parent_id","parent_id.id","user_type","type"
"Servi3",40000000,478,,"Proveedores (euros)","4000 Proveedores (euros)",477,"Terceros - A Pagar","A pagar"
"Servi3",40000001,,,"Prov. Mi proveedor 1","4000 Proveedores (euros)",477,"Terceros - A Pagar","A pagar"
"Servi3",40000002,,,"Prov. Mi proveedor 2","4000 Proveedores (euros)",477,"Terceros - A Pagar","A pagar"
"Servi3",41000000,507,,"Acreedores por prestaciones de servicios (euros)","4100 Acreedores por prestaciones de servicios (euros)",506,"Terceros - A Pagar","A pagar"
"Servi3",41000001,,,"Acre. Mi acreedor 1","4100 Acreedores por prestaciones de servicios (euros)",506,"Terceros - A Pagar","A pagar"
"Servi3",41000002,,,"Acre. Mi acreedor 2","4100 Acreedores por prestaciones de servicios (euros)",506,"Terceros - A Pagar","A pagar"
"Servi3",43000000,519,,"Clientes (euros)","4300 Clientes (euros)",518,"Terceros - A Cobrar","A cobrar"
"Servi3",43000001,,,"Clie. Mi cliente 1","4300 Clientes (euros)",518,"Terceros - A Cobrar","A cobrar"
"Servi3",43000002,,,"Clie. Mi cliente 2","4300 Clientes (euros)",518,"Terceros - A Cobrar","A cobrar"
"Servi3",60000000,949,,"Compras de mercaderías","600 Compras de mercaderías",948,"Gastos","Regular"
"Servi3",60000001,,,"Compras de mercaderías tipo 1","600 Compras de mercaderías",948,"Gastos","Regular"
"Servi3",60000002,,,"Compras de mercaderías tipo 2","600 Compras de mercaderías",948,"Gastos","Regular"
"Servi3",70000000,1264,,"Ventas de mercaderías en España","7000 Ventas de mercaderías en España",1263,"Ingresos","Regular"
"Servi3",70000001,,,"Ventas de mercaderías tipo 1","7000 Ventas de mercaderías en España",1263,"Ingresos","Regular"
"Servi3",70000002,,,"Ventas de mercaderías tipo 2","7000 Ventas de mercaderías en España",1263,"Ingresos","Regular"

 

servi3-carga_02-productos.csv:

".id","default_code","name","active","company_id","property_account_expense","property_account_income","state","taxes_id","supplier_taxes_id"
,"TP01","Mercaderías tipo 1","True","Servi3","60000001 Compras de mercaderías (HW)","70000001 Ventas de mercaderías (HW)","Normal","IVA 18%","18% IVA Soportado (operaciones corrientes)"
,"TP02","Mercaderías tipo 2","True","Servi3","60000002 Compras de mercaderías (HW)","70000002 Ventas de mercaderías (HW)","Normal","IVA 18%","18% IVA Soportado (operaciones corrientes)"

 

servi3-carga_03-clientes_proveedores.csv

"id","name","ref","title","active","vat","vat_type","lang","customer","supplier","include_in_mod347","website","property_account_receivable.id","property_account_payable.id","city","email","country/id","country.id","vat_subjected","phone","address.id","address/id","address/type","address/active","address/street","address/zip","address/city","address/is_customer_add","address/email","address/phone","address/fax","address/function","address/name"
,"Mi cliente 1 SL","Mi cliente 1 SL","Ltd","True","ESA46103834","1 - Corresponde a un NIF","es_ES","True","False","True","http://servi3.com","****",,"Valencia","info@servi3.com","base.es","67","True","(+34) 123 456 789",,,"default","True","Cl Rue 13 del percebe",28001,"Valencia","True","info@servi3.com","(+34) 123 456 789","(+34) 123 456 789","Contacto 1","Mi cliente 1 SL"
,"Mi cliente 2 SA","Mi cliente 2 SA","Corp.","True","ESA46103834","1 - Corresponde a un NIF","es_ES","True","False","True","http://servi3.com","****",,"Valencia","info@servi3.com","base.es","67","True","(+34) 123 456 789",,,"default","True","Cl Rue 13 del percebe",28001,"Valencia","True","info@servi3.com","(+34) 123 456 789","(+34) 123 456 789","Contacto 1","Mi cliente 2 SA"
,"Mi proveedor 1 SL","Mi proveedor 1 SL","Ltd","True","ESA46103834","1 - Corresponde a un NIF","es_ES","False","True","True","http://servi3.com","****",,"Valencia","info@servi3.com","base.es","67","True","(+34) 123 456 789",,,"default","True","Cl Rue 13 del percebe",28001,"Valencia","True","info@servi3.com","(+34) 123 456 789","(+34) 123 456 789","Contacto 1","Mi proveedor 1 SL"
,"Mi proveedor 2 SA","Mi proveedor 2 SA","Corp.","True","ESA46103834","1 - Corresponde a un NIF","es_ES","False","True","True","http://servi3.com","****",,"Valencia","info@servi3.com","base.es","67","True","(+34) 123 456 789",,,"default","True","Cl Rue 13 del percebe",28001,"Valencia","True","info@servi3.com","(+34) 123 456 789","(+34) 123 456 789","Contacto 1","Mi proveedor 2 SA"
,"Mi cliente y poveedor 1 SA","Mi cliente y poveedor 1 SA","Corp.","True","ESA46103834","1 - Corresponde a un NIF","es_ES","True","True","True","http://servi3.com","****",,"Valencia","info@servi3.com","base.es","67","True","(+34) 123 456 789",,,"default","True","Cl Rue 13 del percebe",28001,"Valencia","True","info@servi3.com","(+34) 123 456 789","(+34) 123 456 789","Contacto 1","Mi cliente y poveedor 1 SA"

 

OpenERP, importar, exportar, datos, csv

Cómo configurar la localización española de OpenERP

Esta entrada forma parte de una pequeña serie de [entradas sobre OpenERP].
Las imágenes han sido cedidas por Servi3, tu experto en OpenERP.

Primero vimos cómo hacer una Instalación de OpenERP 6.0.3 en Debian GNU/Linux.
Después cómo instalar un cliente de OpenERP en Debian.
También hicimos una configuración inicial de OpenERP.
Y seguimos por instalar en OpenERP los módulos de la localización española.
En esta entrada veremos como realizar la configuración básica de la localización española de OpenERP.

Notas

Hay que tener en cuenta al usar OpenERP en España varios detalles. Algunos detalles:
- ‘Compañía’ es nuestra compañía o empresa
- ‘Empresas’ son todas las demás empresas: clientes, proveedores, acreedores…
- Para introducir los NIF/CIF es necesario indicar el país, para que se pueda validar correctamente. En el caso de un CIF de España pondremos ESxxxxxxxxxx.

Importar bancos

Primero en ‘Ventas -> Configuración -> Libreta de direcciones -> Bancos‘ lanzamos el ‘Import Bank Data Wizard’. Este asistente importa los datos de los bancos españoles, lo que es necesario para dar de alta los CCC.
OpenERP
Pulsamos aceptar y ya está.
OpenERP
No nos da ningún otro mensaje, pero si consultamos los bancos podemos comprobar que ya están importados.

Completar la información de nuestra empresa (compañía)

Antes de continuar, recomiendo abrir la ficha de nuestra empresa, que aparece en ‘Clientes’ (‘Contabilidad -> Clientes -> Clientes‘). Ahí podemos completar algunos datos como nuestro NIF/CIF, nuestro(s) CCC -ahora que ya hemos importado los bancos-, etc.

Crear ejercicio fiscal

Para crear un ejercicio fiscal vamos a ‘Contabilidad -> Configuración -> Contabilidad financiera -> Periodos -> Ejercicios fiscales‘.
OpenERP
Como vemos no hay ninguno creado, así que pulsamos el botón ‘Nuevo’.
OpenERP
Rellenamos los datos básicos.
OpenERP
Y pulsamos los botones ‘Crear periodos de apertura, cierra y PyG’ y ‘Crear periodos trimestrales’. En algunos casos en vez de los periodos trimestrales será necesario crear periodos mensuales.
OpenERP
Recomiendo cambiar los nombre de los periodos:
OpenERP

Numeración de facturas independiente de movimientos contables

Desde la versión 6.0 de OpenERP el contador de facturas y el de movimientos contables son el mismo. Esto hace que la numeración de las facturas no sea correlativo, lo cual va contra la norma española.
Por ejemplo, creamos una factura (contador ’1′), hacemos el pago (contador ’2′), hacemos otra factura (contador ’3′).

Para solventar esto instalamos el módulo ‘nan_account_invoice_sequence’ (cómo instalar módulos en OpenERP) que nos crea cuatro secuencias para facturas normales y facturas rectificativas de clientes y proveedores: account invoice in (facturas a clientes), account refund in (fac. rectificativas), account invoice out (facturas de proveedores), account refund out (fac. rectificativas).
(Ver más adelante: Configurar secuencias).

Debemos ir a los diarios y asignar las nuevas secuencias desde el menú de ‘Contabilidad -> Configuración -> Contabilidad financiera -> Diarios -> Diarios‘.
OpenERP

Asignamos al diario ‘Purchase Journal’ la secuencia ‘Account invoice out’.
Asignamos al diario ‘Sales Journal’ la secuencia ‘Account invoice in’.
OpenERP

Si nos hemos dado cuenta del problema con el sistema ya en funcionamiento, hay solución:
Separar secuencias de facturas en OpenERP.

Configurar secuencias

Antes de hacer movimientos, podemos indicar los códigos de secuencias que queremos utilizar. Por ejemplo los códigos de factura son, por defecto, un número correlativo: Factura 1, 2, 3… Vamos a ver como cambiarlo a algo tipo 1/2012 o NF/2012/001. Abrimos ‘Administración -> Configuración -> Secuencias -> Secuencias‘.
OpenERP
‘Account Journal’ es la secuencia de movimientos contables y en principio también de todas las facturas -en España esta configuración no cumple la normativa-.
(Ver más atrás ‘Numeración de facturas independiente de movimientos contables’).
Hacemos doble click sobre la secuencia a configurar.
OpenERP
Recordemos que si hemos separado las secuencias de facturas, los contadores son: account invoice in (facturas a clientes), account refund in (fac. rectificativas), account invoice out (facturas de proveedores), account refund out (fac. rectificativas).
OpenERP

Otros ajustes

Según nuestras necesidades y preferencias podemos realizar más ajustes.

Introducir información inicial

El siguiente paso es introducir los datos de nuestros clientes, proveedores, artículos…
Es interesante crear cuentas contables específicas para ellos. Si vamos a crearlos a mano uno a uno, podemos ir creando las cuentas sobre la marcha. Pero si vamos a crearlos masivamente, usando las herramientas de importación, primero hay que crear primero las cuentas.
OpenERP

Podemos ver cómo importar datos en OpenERP.

 

OpenERP, configuración, localización española, Debian

Instalar en OpenERP los módulos de la localización española

Esta entrada forma parte de una pequeña serie de [entradas sobre OpenERP].
Las imágenes han sido cedidas por Servi3, tu experto en OpenERP.

En esta entrada explicaremos cómo instalar módulos en OpenERP. Lo haremos viendo cómo instalar y configurar la localización española en el servidor de OpenERP.

Para ello ya debemos tener un servidor instalado [Instalación de OpenERP 6.0.3 en Debian GNU/Linux], un cliente instalado [Cómo instalar un cliente de OpenERP en Debian] y la configuración inicial de OpenERP realizada.

Para instalar un módulo en OpenERP básicamente el proceso consiste en:

  1. copiar el módulo al directorio ‘addons’ del servidor
  2. conectar con el cliente de OpenERP y ‘Actualizar la lista de módulos’
  3. instalar y configurar el módulo desde el cliente

Observemos que el primer paso deja el módulo disponible para las diferentes instancias de OpenERP, pero los módulos instalados para cada instancia son independientes. Esto permite tener a la vez y en el mismo servidor diferentes instancias con, por ejemplo, el plan contable francés y español.

Vamos allá.

COPIAR MÓDULOS EN EL SERVIDOR

Trabajando en el directorio del servidor, descargamos los módulos extras y la localización española (todo en la versión 6.0):
# cd /opt/openerp/
# bzr branch lp:openobject-addons/extra-6.0
# bzr branch lp:openerp-spain/6.0

Asignamos el usuario y grupo a todas las fuentes
# chown -R openerp:openerp *

Copiamos los módulos estrictamente necesarios en el directorio ‘addons’ del servidor:
# cp -Rp 6.0/* server/bin/addons/
# cp -Rp extra-6.0/account_financial_report/ server/bin/addons/
# cp -Rp extra-6.0/account_payment_ex server/bin/addons/
# cp -Rp extra-6.0/account_payment_extension/ server/bin/addons/
# cp -Rp extra-6.0/account_renumber/ server/bin/addons/
# cp -Rp extra-6.0/account_balance_reporting/ server/bin/addons/
# cp -Rp extra-6.0/account_invoice_currency/ server/bin/addons/
# cp -Rp extra-6.0/account_refund_original/ server/bin/addons/
# cp -Rp extra-6.0/nan_ server/bin/addons/
# cp -Rp extra-6.0/nan_account_bank_statement/ server/bin/addons/

Hay quien prefiere instalar todos los extras disponibles, con lo que bastaría, en vez de lo anterior, hacer:
# cp -Rp 6.0/* server/bin/addons/
# cp -Rp extra-6.0/* server/bin/addons/

ACTUALIZAR LA LISTA DE MÓDULOS EN EL SERVIDOR

Desde el cliente, vamos a “Menú -> Administración -> Módulos -> Actualizar la lista de módulos”.
OpenERP
Si no encontramos la opción de Módulos es porque no tenemos la interfaz extendida. Se puede seleccionar desde el menú superior “Usuario -> Preferencias -> Interfaz”.

Presionamos “Actualizar”.
OpenERP

Y nos indica los módulos de que disponemos.
OpenERP

Después abrimos los módulos pulsando “Abrir módulos” o, en cualquier momento desde “Menú -> Administración -> Módulos -> Módulos”.

INSTALAR Y CONFIGURAR EL MÓDULO

Abrimos el apartado de módulos (“Menú -> Administración -> Módulos -> Módulos”).
El módulo que vamos a instalar se llama “l10n_es_pyme_account” y se encarga de instalar todos los módulos necesarios para llevar la contabilidad de una empresa española.
Cómo vemos, en la imagen hemos filtrado los módulos que empiezan por ‘l10n_es’, es decir los de la localización española, y seleccionado el módulo que nos interesa.
OpenERP

Al pasar a la vista “Formulario” (botón en la barra de herramientas o Ctrl+L), podemos seleccionar “Dependencias” y vemos que el módulo a instalar depende de otros módulos. Algunos estan “Instalados”, otros están “No instalados” (pero disponibles) y otros son “Desconocidos” (no están disponibles).
OpenERP

Si el módulo que queremos instalar depende de módulos “Desconocidos”, debemos volver al paso 1 (copiar módulos en el servidor) y actualizar la lista de módulos (paso 2).
Generalmente los módulos que necesitamos se encuentran en la rama “extras” de las fuentes (directorio ‘extra-6.0′).
Si has copiado todos los módulos que indico un poco más arriba deberían estar todos disponibles (“Instalados” o “No Instalados”).
OpenERP

Desde la pestaña “Módulo” lo marcamos como “Programar para instalación” y después lanzamos la “Acción” “Aplicar actualizaciones programadas”. Nos aparecerá un mensaje de confirmación:
OpenERP
Y otro al acabar. Si todo ha sido correcto nos indicará:
OpenERP
Los motivos más habituales de fallo de una instalación son que, o bien no hemos instalado todos los módulos de que dependía, o bien alguno de ellos no está en la versión correcta.

Tras la instalación del módulo, algunos lanzan un asistente de configuración del mismo. Para nuestro ejemplo, los módulos de la localización española, el asistente nos permite crear el plan contable (por eso en la configuración inicial de OpenERP nos habíamos saltado este paso).
OpenERP
En España se entrega a Hacienda un único diario. Por eso desmarcamos la casilla ‘Secuencias de diarios separadas’.

También nos permite cargar los topónimos. Muy útil.
OpenERP

Y ya hemos instalado los módulos de la localización española de OpenERP.
OpenERP

Podemos ver cómo han quedado los módulos de localización española:
OpenERP

Pero todavía no es suficiente para empezar a trabajar. Falta configurar la localización española de OpenERP y, si se puede, importar datos en OpenERP.

OpenERP, localización española, Debian

 

Configuración inicial de OpenERP

Esta entrada forma parte de una pequeña serie de [entradas sobre OpenERP].
Las imágenes han sido cedidas por Servi3, tu experto en OpenERP.

Tras instalar el servidor OpenERP [Instalación de OpenERP 6.0.3 en Debian GNU/Linux] e instalar un cliente [Cómo instalar un cliente de OpenERP en Debian] el siguiente paso es realizar una configuración inicial de OpenERP.

La primera vez que ejecutamos el cliente, indica “¡Base de datos no encontrada, debe crear una!”.
OpenERP
Pulsamos “Cancelar”

Si no hemos asignado una contraseña para admin en openerp-server.conf, (si estás siguiendo mis entradas sobre OpenERP ya está hecho) primero vamos a “Archivo -> Bases de datos -> Contraseña del administrador” para cambiarla.
Hay que tener en cuenta que por omisión la clave del “superadministrador” es ‘admin’ y con ella se puede crear, modificar y BORRAR bases de datos fácilmente. Conclusión: cambia la clave.

Creamos una base de datos para nuestra instalación. Cada BD es una instancia del sistema, que permite sus planes contables, sus varias empresas, sus varios idiomas… Lo normal es tener una instancia en producción y otra(s) para pruebas.
Cada instancia tiene su usuario administrador, lo que puede ser un poco confuso al crear una BD.

Desde “Archivo -> Bases de datos -> Nueva base de datos”
OpenERP
Notas importantes

  • El “Super Administrator Password” es la clave del “super administrador”, es decir el usuario ‘admin’, cuya clave se define en /etc/openerp.conf (que no debe ser legible por cualquiera) y que permite crear y borrar instancias completas.

  • Desmarcar “Load demonstration data” excepto si es para hacer pequeñas pruebas. Incluso para que funcione la localización española -por pequeñas que sean las pruebas- debe estar desmarcado.
  • El “Administrator Password” es la clave del administrador de la instancia que estamos creando.

Tras rellenar los datos, y pulsar “Aceptar” tarda un poquito.
OpenERP

La primera pantalla del asistente nos recuerda los datos que estamos utilizando.
OpenERP

Indicamos interfaz extendida. Si no, no podremos configurar módulos.
OpenERP

Rellenamos los datos básicos de nuestra empresa.
OpenERP
¿Ya sabéis que Servi3 es tu experto en OpenERP?

Elegimos los módulos a instalar. Más adelante podemos instalar más, así que para empezar basta con marcar “Contabilidad y finanzas” que es EL módulo.
OpenERP

Si vamos a instalar en OpenERP los módulos de la localización española es importante saltarnos la definición del plan contable (en ese caso lo haremos más adelante).
OpenERP

Seleccionamos la parte de la contabilidad que deseamos en el sistema.
OpenERP

¡Y por fin hemos terminado y podemos ver OpenERP en funcionamiento!
OpenERP

Ahora, podemos pasar a instalar en OpenERP los módulos de la localización española, configurar la localización española de OpenERP e importar datos en OpenERP.

OpenERP, configurar inicial de OpenERP, Debian

Cómo instalar un cliente de OpenERP en Debian

Esta entrada forma parte de una pequeña serie de [entradas sobre OpenERP].
Estas entradas se han realizado gracias a la colaboración de Servi3, tu experto en OpenERP.

El cliente de OpenERP a utilizar debe ser de la misma versión que el servidor con el que queremos conectar.
Su instalación es muy sencilla, basta con descargar las fuentes en python y ejecutar:
$ wget http://www.openerp.com/download/stable/source/openerp-client-6.0.3.tar.gz
$ tar xfz openerp-client-6.0.3.tar.gz
$ cd openerp-client-6.0.3/bin/
$ python openerp-client.py

Si se desea, también puede crearse una entrada en el menú del GUI (Gnome, KDE…) que ejecute el comando “python /path_cliente/openerp-client.py”.

Si las estás leyendo por orden, puedes seguir con la configuración inicial de OpenERP.

OpenERP, instalación del cliente, Debian

Instalación de OpenERP 6.0.3 en Debian GNU/Linux

Con esta entrada empiezo una pequeña serie sobre la puesta en marcha y disfrute de OpenERP (antes TinyERP), un ERP de software libre, adaptado a la legislación española y muy completo. [Entradas sobre OpenERP].
Estas entradas se han realizado gracias a la colaboración de Servi3, tu experto en OpenERP.

La documentación oficial recomienda realizar una instalación manual sobre GNU/Linux para las instalaciones en producción. Una instalación manual permite un mayor control sobre la misma, controlando qué módulos están disponibles. Aunque mucha gente usa Ubuntu (una versión LTS), yo recomiendo Debian (estable).

En esta entrada explicaré cómo hacer una buena instalación de OpenERP 6.0.3. sobre un Debian 6.0.3 (¡qué coincidencia!). Sirve igual para sus derivados, como Ubuntu, y prácticamente para cualquier GNU/Linux.
El siguiente paso es instalar un cliente de OpenERP en Debian.
Una vez instalado el servidor, desde el cliente no se distingue si el servidor es un GNU/Linux, un Mac, un Windows… así que el resto de entradas sobre OpenERP sirven para cualquier sistema.
Después debemos hacer una configuración inicial de OpenERP.
Con eso ya estaremos listos para Instalar en OpenERP los módulos de la localización española para su uso conforme a la normativa española (valga la redundancia), donde de paso veremos cómo instalar módulos en general en OpenERP.
Para acabar esta serie veremos cómo configurar la localización española de OpenERP y cómo importar/exportar datos en OpenERP.

La instalación automática, para entornos de prueba o incluso para pequeñas organizaciones, tarda medio minuto con el siguiente comando:
# aptitude install openerp-server
Aunque en el caso de Debian estable, instala la versión anterior (5.x).

La mayor parte de esta entrada se debe a esta explicación de the open sourcerer sobre cómo instalar OpenERP 6 en Ubuntu 10.
De hecho ahí llegan un poco más lejos que aquí y también explican cómo instalar el “servidor web” (que en realidad es un cliente web) y cómo usar conexiones SSL. Otro modo de diferente de cifrar la conexión es usar túneles SSH.

PREPARACIÓN DEL SISTEMA

Actualizamos el sistema e instalamos los paquetes base que vamos a necesitar: Bazaar y Python (2.6.6).
# aptitude update && aptitude safe-upgrade
# aptitude install bzr
# aptitude install python python-psycopg2 python-reportlab python-egenix-mxdatetime python-tz python-pychart python-pydot python-lxml python-vobject python-mako python-pydot python-lxml python-vobject python-yaml python-dateutil python-pychart python-webdav

INSTALACIÓN DE POSTGRESQL (8.4)

Instalamos el motor de base de datos postgres (y un cliente gráfico):
# aptitude install postgresql pgadmin3

Generamos una clave para el usuario postgres:
# passwd postgres

Configuramos el servidor para que acepte conexiones de por usuario/clave:
# vi /etc/postgresql/8.4/main/pg_hba.conf

#local   all         all                               ident
local   all         all                               md5

 
Reiniciamos postgres
# /etc/init.d/postgresql restart
Y abrimos sesión como usuario postgres
# su – postgres

Como usuario postgres verificamos la instalación de postgres:
$ psql -l

                               Listado de base de datos
  Nombre   |  Dueño   | Codificación | Collation  |   Ctype    |      Privilegios      
-----------+----------+--------------+------------+------------+-----------------------
 postgres  | postgres | UTF8         | es_ES.utf8 | es_ES.utf8 | 
 template0 | postgres | UTF8         | es_ES.utf8 | es_ES.utf8 | =c/postgres
                                                               : postgres=CTc/postgres
 template1 | postgres | UTF8         | es_ES.utf8 | es_ES.utf8 | =c/postgres
                                                               : postgres=CTc/postgres
(3 filas)

 
Creamos un usuario de PostgreSQL con contraseña para OpenERP
$ createuser –pwprompt

Ingrese el nombre del rol a agregar: openerp
Ingrese la contraseña para el nuevo rol: 
Ingrésela nuevamente: 
¿Será el nuevo rol un superusuario? (s/n) n
¿Debe permitírsele al rol la creación de bases de datos? (s/n) s
¿Debe permitírsele al rol la creación de otros roles? (s/n) n

 
Verificamos que podemos acceder con el usuario accediendo a la BD postgres
(la BD de OpenERP la crearemos después en la instalación de OpenERP).
$ psql -U openerp -d postgres

Contraseña para usuario openerp: 
psql (8.4.9)
Digite «help» para obtener ayuda.

postgres=> \q

 
Cerramos la sesión del usuario postgres
$ exit

A no ser que solo estemos haciendo pruebas, es fundamental hacer copias de seguridad de PostgreSQL.

INSTALACIÓN DE OPENERP-SERVER

Creamos un usuario de sistema para la aplicación.
# adduser –system –home=/opt/openerp –group openerp
El resto de la instalación lo haremos desde el nuevo directorio de OpenERP.
# cd /opt/openerp

Descargamos las fuentes desde http://www.openerp.com/downloads.
# wget http://www.openerp.com/download/stable/source/openerp-server-6.0.3.tar.gz
Descomprimimos los paquetes
# tar xfz openerp-server-6.0.3.tar.gz
Limpiamos
# rm openerp-*gz
Asignamos el usuario y grupo a todas las fuentes
# chown -R openerp:openerp *

Hacemos una copia del directorio. La idea es mantener en /opt/openerp/server” la versión en producción y disponer de copias de las fuentes en directorios separados para las pruebas y desarrollos.
# cp -Rp openerp-server-6.0.3 server

Configuramos el servidor (basta cambiar ‘********’ por las claves que deseemos).
[Fichero de theopensourcerer]
# vi server/doc/openerp-server.conf

[options]
; This is the password that allows database operations
; Will be written to by the server when password is changed
; !! Keep this file secure !!
admin_passwd = ********

root_path = /opt/openerp/server/bin

without_demo = False
verbose = False

; Database settings
db_user = openerp
db_password = ********
; Please uncomment the following line *after* you have created the
; database. It activates the auto module check on startup.
; db_name = False
db_port = False
db_host = False
db_maxconn = 64

; Networking Settings
xmlrpc = True
xmlrpc_interface =
xmlrpc_port = 8069

netrpc = True
netrpc_interface = 
netrpc_port = 8070

; Uncomment these for xml-rpc over SSL
;xmlrpcs = True
;xmlrpcs_interface =
;xmlrpcs_port = 8071
;secure_pkey_file = /etc/ssl/openerp/server.key
;secure_cert_file = /etc/ssl/openerp/server.crt

; Log settings
logfile = /var/log/openerp/openerp-server.log
syslog = False
logrotate = True
log_level = info

; False prevents the client displaying the list of databases
list_db = True
addons_path = /opt/openerp/server/bin/addons
demo = {}
soap = False
reportgz = False
translate_modules = ['all']

; Static http parameters
static_http_enable = False
static_http_document_root = /var/www/html
static_http_url_prefix = /

; Outbound email configuration
;smtp_user = info@example.com
;email_from = "OpenERP Support" 
;smtp_port = 25
;smtp_password = ********
;smtp_ssl = True
;smtp_server = mail.example.com

 
Preparamos el directorio para los logs:
# mkdir /var/log/openerp
# chown openerp:root /var/log/openerp

Copiamos el fichero de configuración al sistema y ajustamos los permisos.
# cp server/doc/openerp-server.conf /etc/
# chown openerp:root /etc/openerp-server.conf
# chmod 640 /etc/openerp-server.conf

Generamos un fichero para iniciar y parar el servidor.
[Fichero de theopensourcerer]
# vi openerp-server

#!/bin/sh

### BEGIN INIT INFO
# Provides:             openerp-server
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Should-Start:         $network
# Should-Stop:          $network
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Enterprise Resource Management software
# Description:          Open ERP is a complete ERP and CRM software.
### END INIT INFO

PATH=/bin:/sbin:/usr/bin
DAEMON=/opt/openerp/server/bin/openerp-server.py
NAME=openerp-server
DESC=openerp-server

# Specify the user name (Default: openerp).
USER=openerp

# Specify an alternate config file (Default: /etc/openerp-server.conf).
CONFIGFILE="/etc/openerp-server.conf"

# pidfile
PIDFILE=/var/run/$NAME.pid

# Additional options that are passed to the Daemon.
DAEMON_OPTS="-c $CONFIGFILE"

[ -x $DAEMON ] || exit 0
[ -f $CONFIGFILE ] || exit 0

checkpid() {
    [ -f $PIDFILE ] || return 1
    pid=`cat $PIDFILE`
    [ -d /proc/$pid ] && return 0
    return 1
}

case "${1}" in
        start)
                echo -n "Starting ${DESC}: "

                start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                        --chuid ${USER} --background --make-pidfile \
                        --exec ${DAEMON} -- ${DAEMON_OPTS}

                echo "${NAME}."
                ;;

        stop)
                echo -n "Stopping ${DESC}: "

                start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                        --oknodo

                echo "${NAME}."
                ;;

        restart|force-reload)
                echo -n "Restarting ${DESC}: "

                start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                        --oknodo
      
                sleep 1

                start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                        --chuid ${USER} --background --make-pidfile \
                        --exec ${DAEMON} -- ${DAEMON_OPTS}

                echo "${NAME}."
                ;;

        *)
                N=/etc/init.d/${NAME}
                echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2
                exit 1
                ;;
esac

exit 0

 
Preparamos el fichero para que el servidor arranque normalmente.
# cp openerp-server /etc/init.d/
# chmod 755 /etc/init.d/openerp-server
# chown root: /etc/init.d/openerp-server
# update-rc.d openerp-server defaults

Para acabar, iniciamos el sistema:
# /etc/init.d/openerp-server start
Si todo ha ido bien el log nos dirá:
# cat /var/log/openerp/openerp-server.log

[2012-01-13 11:45:55,678][?] INFO:server:OpenERP version - 6.0.3
[2012-01-13 11:45:55,678][?] INFO:server:addons_path - /opt/openerp/server/bin/addons
[2012-01-13 11:45:55,678][?] INFO:server:database hostname - localhost
[2012-01-13 11:45:55,679][?] INFO:server:database port - 5432
[2012-01-13 11:45:55,679][?] INFO:server:database user - openerp
[2012-01-13 11:45:55,679][?] INFO:server:initialising distributed objects services
[2012-01-13 11:45:56,729][?] INFO:web-services:starting HTTP service at 0.0.0.0 port 8069
[2012-01-13 11:45:56,730][?] INFO:web-services:starting HTTPS service at 0.0.0.0 port 8071
[2012-01-13 11:45:56,730][?] INFO:web-services:Registered XML-RPC over HTTP
[2012-01-13 11:45:56,738][?] INFO:web-services:starting NET-RPC service at 0.0.0.0 port 8070
[2012-01-13 11:45:56,738][?] INFO:server:Starting 3 services
[2012-01-13 11:45:56,739][?] INFO:server:OpenERP server is running, waiting for connections...

 
Ahora, como hemos comentado al principio, el siguiente paso es instalar un cliente de OpenERP en Debian.
Después debemos hacer una configuración inicial de OpenERP.
Con eso ya estaremos listos para Instalar en OpenERP los módulos de la localización española para su uso conforme a la normativa española (valga la redundancia), donde de paso veremos cómo instalar módulos en general en OpenERP.
Para acabar esta serie veremos cómo configurar la localización española de OpenERP y cómo importar/exportar datos en OpenERP.

Instalación de OpenERP 6 en Debian GNU/Linux, OpenERP, Debian

Utilizar el punto del teclado numérico en LibreOffice, OpenOffice, etc

En LibreOffice, OpenOffice y demás derivados, cuando pulsas sobre el punto del teclado numérico aparece una coma.

Este comportamiento, que a mi me resulta muy molesto, tiene sentido en que ese botón genera, para LibreOffice, el caracter de separador decimal regional, que en castellano es la coma. De hecho este comportamiento resulta muy cómodo en determinados escenarios, principalmente usando hojas de cálculo, y se añadió en OOo a petición popular, imitando el comportamiento de otros programas ofimáticos.

Para desactivar ese comportamiento hay que ir a Herramientas -> Opciones -> Configuración de idioma -> Idiomas y donde indica Símbolo del separador decimal desmarcar “El mismo de la configuración regional (,)”

Configuración

coma, OOo, LibreOffice, OpenOffice, teclado numérico