Actualizando automáticamente el dolar mediante webservices
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:
Agregar un archivo con el parámetro que tiene la URL del webservice
Agregar un archivo con la acción planificada que invoque el método update_dolarsi
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
Apasionado de la programación, implementa Odoo para distintos tipos de negocios desde el año 2010. En Moldeo Interactive es Socio fundador y Programador; además de escribir en el Blog sobre distintos temas relacionados a los desarrollos que realiza.