Cómo hacer un informe a medida en Odoo 12
Nota: Si trabajas con Odoo 15 puedes mirarte este otro ejemplo: https://www.flashodoo.com/blog/flashodoo-1/post/como-hacer-un-informe-a-medida-en-odoo-15-178#
Para este ejemplo vamos a hacer un informe que nos muestre las ventas diarias. Partiremos de una pantalla en la que podamos seleccionar la la fecha de inicio y de final y un boton que al hacer click nos mostrará el resumen de ventas diario en un informe.
Prerequisitos
Antes de continuar tienes que tener instalado wkhtmltopdf 0.12.5 (con los parches de qt)
. Si no lo tienes instalado, puedes seguir estas instrucciones para descargar e instalarlo.
Puedes descargar e instalar el ejemplo.
1. Inicializar una nueva tabla
Primero, tienes que crear una nueva tabla junto con los datos de demostración, de esta forma podremos generar nuestros informes usando datos pre-creados o pre-definidos.
Además tienes que instalar el módulo de Ventas (sale_management
. Una vez instalado, navega a Ventas → Informes. Ahí puedes ver sólo un menú de ventas. Añadiremos una nueva opción de menú llamada Sale Summary Report
. Cuando hagas click en el menú, se abrirá un wizard modal para despues de indicar la fecha de inicio y final puedas generar el informe de ventas.
Así que continuemos e instalemos el módulol custom_report_odoo12
.
2. Crear un Wizard
Crearemos un wizard model y una wizard view.
Wizard TransientModel
Crearemos un wizard model que deberia ser TransientModel
. También, crearemos dos campos uno para la fecha de inicio y otro para la fecha final.
A continuación, ves definido el método get_report
, se llamará cuando hagas click en el boton que llama al report en el wizard.
Crear la Vista Wizard
Crear una vista wizard mostrando los botones date_start
, date_end
También, hay que crear la acción del wizard y el menú que lo llama.
3. Juntando los datos del Report
Crear un objeto model abstracto. De esta forma tiene que añadir el método _get_report_values
a este objeto.
Basicamente el método, _get_report_values
colecciona datos desde la tabla y se los entrega al informe.
4. Crear el formato del papel
Crea un nuevo formato del documento según tus necesidades.
5. Hacemos la plantilla QWeb del informe
Finalmente, crear un método report template. _get_report_values
que devolverá los datos para mostrar en el informe y generará el informe PDF.
Una vez realizado lo anterior, reinicio Odoo e instala el módulo. A continuación, vete a Ventas → Informes. Verás un nuevo menú Sale Summary Report
.
Al hacer click en el menú se nos abre el wizard modal como en la ventana que sigue. Selecciona el rango de fechas y haz click en el boton para conseguir el Informe.
Verás el siguiente informe.
Tienes más información en la web oficial de Odoo QWeb Reports.