Informe Albarán traducible en Odoo

Para Odoo el albarán es un documento interno de la compañía para gestionar los movimientos de material. Por ello, al contrario que con los pedidos y las facturas, cuando lo imprimes no adopta el idioma del cliente asociado, si no el del usuario de Odoo que lo imprime.

Ya que en España es habitual el uso de los albaranes como documento de envío para el cliente, normalmente se imprime en el idioma de éste. Si lo que necesitas es la utilidad, puedes descargarte el módulo de github para la v8.0, o para la v9.0 e instalarlo sin más. Si lo que quieres es ver un poco más allá, veremos el por qué y el cómo de ese módulo. Pero antes, una pequeña explicación para entender el funcionamiento:

Lo siguiente está basado en v8.0, pero es válido para la 9.0 salvo aquello que señale específicamente.

En odoo tenemos el informe “Albarán” asociado a la vista stock.report.piking:

Como puedes observar el campo nombre de plantilla es el encargado de decirle a Odoo cual es la vista que debe cargar al imprimir ese informe. Estando el contenido en la vista stock.report_picking.

Los informes de pedidos, por ejemplo, que sí que son traducibles, están asociados a la vista sale.report_saleorder:

que en este caso, no es el contenido directamente, si no una llamada a través de la función translate_doc a la vista sale.report_saleorder_document, que ahora sí, tiene el contenido del informe (la función translate_doc en la 9.0 queda reducida a un t-call):

Dicho de otro modo, los pedidos hacen el paso intermedio de cargar la función translate_doc. en cuyos parámetros tenemos el id externo de la vista que queremos cargar (cuarto parámetro) con el idioma del cliente/proveedor (tercer parámetro)

Con esta referencia de los pedidos que acabamos de ver, la solución propuesta será crear un nuevo informe de albarán, que llamará al original pasándole el idioma del partner a través de la función translate_doc():

1- Crearemos una vista report_picking_translate que llamará a traveś de la función translate_doc() a la vista original de stock.report_picking

2.- Añadiremos un nuevo informe de albarán para que cargue nuestra nueva vista (report_picking_translate) en vez de la original, este informe será accesible a través del botón “más” del formulario de Albaranes.

3.- Terminado esto, explicaremos pros y contras de esta solución

Estos pasos se pueden hacer a través de la interface de Odoo, gestionando las vistas y los informes, o, como es mucho más aconsejable, a través de un módulo propio instalado en la aplicación como el del enlace tienes arriba.

Go!

1.- Crear vista report_picking_translate

Creamos esta nueva vista con el siguiente código:

(v8.0)

<?xml version="1.0"?>
<openerp>
<data>

	<template id="report_picking_translate">		
		    <t t-call="report.html_container">	        
		        <t t-foreach="doc_ids" t-as="doc_id">
				<t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'stock.report_picking')"/>
			</t>
	    	</t>
	</template>
	
</data>
</openerp>

(v 9.0)

<?xml version="1.0"?>
<openerp>
<data>

	<template id="report_picking_translate">		
		    <t t-call="report.html_container">	        
		        <t t-foreach="docs" t-as="doc">
				<t t-call="stock.report_picking" t-lang="doc.partner_id.lang"/>
			</t>
	    	</t>
	</template>
	
</data>
</openerp>

Esta vista es exactamente igual que la de los presupuestos (sale.report_saleorder), pero esta vez, en vez de llamar a la vista que carga el contenido del presupuesto (sale.report_saleorder_document), llamamos a la correspondiente del albarán (stock.report_picking).

2.- Añadiremos un nuevo informe de albarán

(v8.0 y v9.0)

<?xml version="1.0" encoding="UTF-8"?>
<openerp>
	<data>


        <report 
            string="Picking Translate" 
            id="action_report_picking_translate" 
            model="stock.picking" 
            report_type="qweb-pdf"
            name="report_picking_translate.report_picking_translate" 
            file="stock.report_picking_translate" 
        />


	</data>
</openerp>

Ahora añadimos un informe del albarán que cargue nuestra vista (campo name, que como verás usa el id externo de la vista (nombremodulo.IDdelavista).  Cargando este informe, automáticamente aparecerá en el botón más del formulario del Albarán (como Picking Translate).

3.- Pros y Contras

La principal contra de este método es que no sustituye el informe original sin traducir, si no que añade otro a mayores en el desplegable “más” del formulario, lo cual no queda muy bonico… además, el botón de acción que se muestra ocasionalmente (dependiendo del estado del albarán) de “imprimir”, no imprimirá nuestro informe traducido, sino el original (que es el mismo, pero sin traducir).

Pero no todo es negativo… la parte buena es que este módulo será compatible con todo, puedes actualizar módulos base, instalar módulos que añaden o modifiquen el informe, y todo funcionará out-the-box, y esto es una característica importante.

Existen otras soluciones con sus pros y sus contras, pero de modo general, esta es funcional y segura.

Deja un comentario

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