Odoo y los Reportes TXT

Breve historia y explicación del QWeb-Text de Odoo

En esta entrada planeo tratar un tema algo extraño, pero me veo en la necesidad porque no lo he visto en muchas partes: Reportes TXT en Odoo, de forma nativa. A lo mejor a más de uno lo toma por sorpresa y le suena raro, y no los culpo. Yo llevaba años pensando que eso era una funcionalidad de OCA, y no hace mucho vi que ya está incorporado en el Core. ¿Qué es y como funciona?

El Qweb-Text de OCA

Ciertamente, hay una confusión propia de que hasta la versión 11 (que tampoco es tan vieja) no se podía exportar a TXT, mientras que si se podía a PDF. Algo que parece insólito, realmente un TXT es por demás simple, mucho más, que un HTML o un PDF renderizado. Por tal motivo, la OCA sacó su QWeb Text Reports, un módulo simple pero que por aquel entonces nos permitió armar reportes CSV sin necesidad de incurrir en cosas muy raras de Python. En la versión 12 Odoo lo vio como una buena idea y la incorporó a su core casi sin modificación, por eso hoy por hoy tenemos algunos reportes TXT nativos, como los archivos ZPL para las Zebra y un par de listas (números de lotes, etc).

Desgraciadamente, no se usan tanto como deberían; al menos en mi opinión tienen un gran potencial. Por ejemplo, ya sabemos que los libros de IVA Digital se presentan en TXT y que no es una buena herramienta precisamente lo de los reportes ya que en si mismos los libros deben quedar registrados; pero ¿que tal los Libros Digitales para recibos de Sueldos? Ahí hay un gran hueco. La mayoría de los bancos utilizan un formato casi estándar para la presentación de movimientos de cuenta, nosotros mismos ya lo estamos usando para generar el archivo de Débito Automático que pide VISA. Sumado a que consume una molécula del servidor en producir un archivo sumamente grande, más comparado con lo que consume un PDF, se vuelve muy viable. De hecho, estoy comenzando a pensar en todas las veces que hicimos reportes en PDF para informes simples que hubiesen sido mejor en TXT.

¿Cómo se usa?

Lo mejor de todo es que funciona con QWeb, asi que todo lo que sabemos de QWeb se puede aplicar para hacer un TXT. Así que inicialmente vamos a crear el reporte:

<template id="report_txt_demo">Hola Mundo</template>


Y acto seguido la acción:

<record id="action_report_txt_demo" model="ir.actions.report">
    <field name="name">Reporte Demo</field>
    <field name="model">account.move</field>
    <field name="report_type">qweb-text</field>
    <field name="report_name">mi_modulo.report_txt_demo</field>
    <field name="report_file">mi_modulo.report_txt_demo</field>
    <field name="binding_model_id" ref="account.model_account_move"/>
    <field name="binding_type">report</field>
</record>


Aquí simplemente tendremos algunas consideraciones. La primera es que colocaremos qweb-text en lugar de qweb-pdf, también no debemos colocarle formato de papel; el resto de la información suele ser la habitual en un reporte.

Un detalle interesante es el template en cuestión, ya que se nos respetará cada salto de línea, cada espacio que hagamos; por lo tanto para mantener el formato del TXT será necesario mantener el código casi que comprimido en una sola línea, algo incómodo pero bueno, es un TXT.

Entradas Relacionadas

# odoo
Odoo y los Reportes TXT
Ignacio Buioli 8 de abril de 2022
2 min. de lectura
Compartir
Categorías
Archivar