Actualizando automáticamente el dolar mediante webservices

Gustavo Orrillo
- 08/22/2022 - 1 min. de lectura

Los usuarios de Odoo en Argentina por algún oscuro motivo necesitan actualizar el tipo de cambio del dolar en forma diaria. Y la verdad es que hay dos opciones. O se lo actualiza con el tipo de cambio provisto por AFIP, o se lo actualiza con el "tipo de cambio oficial" que sería el del BNA (en teoría deberían ser el mismo pero anda a saber porque no son del todo iguales lo que lleva a algunos a pedir el tipo de cambio BNA). 

El tipo de cambio de AFIP se lo puede obtener automatizando un par de métodos provistos por la localización. Pero hay veces que a uno le piden el tipo de cambio BNA. El cual se obtiene haciendo scrapping de la página del BNA, o utilizando algún webservice que esté dando vueltas, como el de dolarsi. En este caso se ofrece un web-service el cual por medio de la librería requests obtiene resultados como el siguiente


Bueno, por aca hicimos un módulo muy sencillo que actualiza el valor del dolar. El módulo necesita que uno haga dos cosas. Definir un parámetro llamado dolarsi_url el cual tiene la URL del webservice:


y una acción planificada para que se ejecute en forma diaria:


Y eso es todo, la acción actualizará la cotización del dolar de forma diaria

La lista de pendientes del módulo sería entonces:

  1. Agregar un archivo con el parámetro que tiene la URL del webservice

  2. Agregar un archivo con la acción planificada que invoque el método update_dolarsi

  3. Renombrar el archivo __openerp__.py por __manifest__.py

Notas técnicas

Basicamente el módulo lo único que hace es hacer un método que actualiza la cotización del USD en forma diaria. Para ello recurre a una de las herramientas para ejecutar acciones de forma regular en Odoo, que son las acciones planificadas. El módulo define un método (update_dolarsi) el cual mediante requests contacta el web-service y luego extrae la información que necesita.

Dicho método realiza varios controles para asegurarse que no cancele en caso de haber error, y luego procede a insertar el tipo de cambio para la fecha de proceso. Si el mismo ya existe, no hace nada.

Acerca de:

Gustavo Orrillo

Passionate about programming, he has implemented Odoo for different types of businesses since 2010. In Moldeo Interactive he is a founding Partner and Programmer; In addition to writing on the Blog about different topics related to the developments he makes.