Multidivisa con multicompañía en OpenERP

Desde hace un tiempo estoy metido en una implantación de OpenERP en una empresa internacional, la implantación requería multicompañía y multidivisa, el siguiente post lo escribí en el blog de Domatix para documentar el proceso de configuración y funcionamiento de multidivisa con multicompañía en OpenERP.

OpenERP permite trabajar con múltiples divisas, la forma en la que permite trabajar con multidivisa es asociando una moneda principal para la compañía y un listado de monedas con su tasa de cambio para cada fecha.

Se pueden definir tarifas para cada moneda y usarlas en pedidos y facturas, en los pedidos se indicará la tarifa de la moneda que queramos utilizar, y en la facturación podremos usar la misma moneda o hacer el cambio de divisa. Al validar la factura los movimientos contables se generarán en la moneda principal de la compañía con el cambio divisas actual almacenado en el sistema.

En este artículo se muestra como configurar y trabajar con varias monedas.

 

Configuración de monedas

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

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.

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

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.

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.

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

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.

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 €

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.

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.

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

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

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).

17 comentarios sobre “Multidivisa con multicompañía en OpenERP

  1. salvador

    Hola Angel, gracias por el articulo.

    Es muy interesante esta caracteristica de manejar las monedas y ademas actualizarlas automaticamente.

    En este caso se manejan en base a la tarifa por defecto. Pero en mi caso tengo el siguiente escenario:

    – Mi moneda base son MXN
    – En la ficha de mis productos el precio de coste esta expresado en MXN,
    – Pero tengo algunos productos que mis proveedores me lo venden en USD y otros en EUR, asi que el valor en la ficha de producto en Precio de coste no es la base para calculo de tipo de cambio, ya que es al contrario, mi coste depende del tipo de cambio.

    No tengo idea de como solucionar esto, se me ocurria manejar mis productos con metodo de coste “Precio medio”. Despues de ls siguiente manera:

    – Configurar una tarifa de compra (Tarifa compra en USD), configurando la regla “Sección empresa del formulario de producto”

    – Configuro mi proveedor con esta tarifa de compra.

    – Mi producto lo configuro con metodo de coste “Precio Medio”. En la ficha “proveedores” asigno mi proveedor, asi como la tarifa (precio de compra) del producto expresado en la moneda de mi proveedor.

    – Al realizar un pedido de compra si me coloca bien mi precio de compra. Lo extrae de lo que configure en el paso anterior.

    El problema esta en como se reflejara en el coste de mi producto en el valor de mis inventarios. Esos productos los utilizo para fabricar, y entonces el costo de mi producto fabricado depende mucho de estos productos que forman parte de mi Lista de Materiales.

    Si fueras tan amable de darme tu opinion al respecto, o si te has encontrado con una situacion similar.

    Agradezco mucho tus articulos, ya que en lo personal me han sido de gran ayuda.


    Saludos desde Mexico.
    Salvador Martinez

  2. Angel Moya Autor del artículo

    Hola, creo que estas en lo correcto, no se si se me escapa algo, esto es lo que veo:

    – Moneda principal del sistema MXN -> Precio de coste en MXN

    – Compras en USD -> Tarifa de compra USD
    – Compras en EUR -> Tarifa de compra en EUR

    – Al realizar entrada en stock se actualiza el precio medio con el precio de compra, si la compra no es en MXN aplicará la tasa de cambio de la fecha de compra.

    – El único problema que veo es que si la fecha de pago es diferente de la fecha de compra y ha variado la tasa de cambio de una fecha a otra, el precio medio no será del todo real.

    Es un tema complejo y depende de hasta donde lo quieras afinar, quizás podrías usar la contabilidad analítica o centros de coste.

  3. salvador

    Gracias por tu comentario.
    Ya realice unas pruebas, y si me actualizo bien el precio de coste medio.

    En lo que se refiere al coste real por la variación que tenga la tasa de cambio a la fecha de pago, tendría que verlo mas a fondo, pues si es algo interesante e importante.

    Estoy aprendiendo sobre OpenERP, y este articulo me sirvio para configurar en mi instalacion de prueba esta funcionalidad.

    Gracias.

    Saludos!

  4. R. Granados T.

    La tarifa de compras en USD ¿es directamente en Tarifas?, ¿ahí defines la moneda de la tarifa ? – ¿ que es lo que defines en la versiones de las tarifas ? porque estas traen dentro

  5. R. Granados T.

    ¿ al ar de alta una categoría de producto como lo configuro en la versión de la tarifa ?

  6. Angel Moya Autor del artículo

    Hola,

    – En la tarifa se indica la moneda, las versiones de tarifa se crean para poder modificar la tarifa creando versiones, por ejemplo la tarifa de cada año.

    – Las tarifas se relacionan con los clientes y proveedores, y dentro de las tarifas tenemos reglas que nos dicen como se aplican a los productos o a las categorías de productos.

  7. Sebastián

    Estimado Angel,
    Muy bueno el artículo. Estoy incursionando en OpenERP y buscando un poco de ayuda a un inconveniente que estamos teniendo he encontrado éste artículo. Básicamente necesitaría cambiar la moneda de la factura pero no me aparece el botón para cambiar la divisa. ¿Tengo que instalar algún módulo para esto?.
    Estoy usando OpenERP v6.0 y tengo instalado el módulo currency_rate_update.

    Desde ya muchas gracias

    Sebastián

  8. Sixto Farfán

    Estimado Angel,

    Estoy metido hace unos meses en Openerp y encontré algunas cosas que no funcionan adecuadamente, por ejemplo: Para hacer un pedido selecciono un cliente con una lista de precios determinado, una vez cargado los items decido cambiar la lista de precios ó el cliente lo cual no actualiza las lineas del pedido. Entiendo que se debe crear un módulo para esto, a lo mejor ya exista esta solución, yo aún no estoy en condiciones de crear un módulo, espero puedas ayudarme cómo lo hago.
    Ya pude hacer un módulo para agregar un campo en productos.
    Por favor alguna solución.

    Saludos

    Sixto

  9. Angel Moya Autor del artículo

    No conozco ningún módulo que lo realice, pero si te animas a desarrollarlo mira los eventos on_change, como por ejemplo lo que hace al cambiar el cliente que trae su tarifa, pues en este caso se haría sobre la tarifa para actualizar las lineas.

  10. Elizabeth

    Hola, tengo un pequeño problema al utilizar las tarifas.
    Yo cree una Tarifa de Compra, basada en el precio de costo del producto, pero cuando realizo una orden de compra al calcular el precio del producto le pone un 25 % por encima del precio de costo. Ya revisé los impuestos y todos están deshabilitados, y ninguno se aplica a los precios. Ya no se que hacer.

  11. Angel Moya Autor del artículo

    Dificil saber que puede estar pasando… como dices los precios netos se calculan en base a tarifas e impuestos ( si están incluidos en el precio ).

  12. Dayne Gutierrez

    Hola Angel muy bueno este blog, lo he leido varias veces porque estoy teniendo el siguiente problema: Mi empresa trabaja con 2 monedas guaranies y dolares se compra en dolares y se vende en guaranies, las compras se realizan bien con el cambio de divisa, lo que cuando voy a la vista donde se listan la facturas de compra (Contabilidad/Facturas de proveedores), se suman los montos de dolares y guaranies juntos sin tener en cuenta el cambio de divisa, por lo que me da un monto total irreal. Aqui he visto lo siguiente: ¨También se puede crear la factura directamente en la moneda que nos interese y si es necesario realizar luego el cambio de moneda.¨ Yo trabajo con la V7 de oerp y no encuentro en la factura ninguna apcion que me permita cambiar la moneda para ver si asi puedo resolver el problema que tengo. Agradecería me ayudara con esto.

  13. Francisco

    Hola,Angel
    Soy nuevo en esto de odoo 8. quisiera saber si es posible configurar el punto de venta para que acepte pagos en dolares y pesos…. Se puede?? me podrias ayudar
    gracias

  14. Angel Moya Autor del artículo

    Buenas, la verdad es que no lo he intentado nunca… pero de poder hacerse se tendría que hacer usando tarifas y diarios.

  15. Leopo C.

    Saludos y gracias por los diferentes artículos que son de mucha ayuda. Tengo un viejo cliente con openERP 6.0.4 y estoy trabajando con el pago de facturas en otra moneda en este caso US$, la factura es en US$, y a al hora de realizar el pago sale al tipo te cambio de la fecha, procedo a ingresar el monto para cancelar la totalidad y conciliar cerrando la factura, uso Conciliar con desajuste, pero me sale el mensaje: “Aviso: ¡Debe indicar una cuenta para el asiento de ajuste!”, reviso y tengo en Cuenta de desajuste una cuenta asignada. Se debe configurar de una manera especial esta cuenta? o es en otra parte donde se asigna? No he encontrado ayuda al respecto. Muchas gracias.

  16. Leopo C.

    Al final encontré una posible solución, aunque no me queda muy claro el porque del error, y es cambiar en la cuenta del cliente, el No poner Divisa secundaria (Si se tiene) y con esto pude Conciliar el pago. Por si a alguno le ayuda esto. Gracias

  17. Christian

    No se si seria mucha molestia que se pueda recuperar las imágenes para mejor entendimiento?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *