Crear un reporte PDF para odoo v8 adaptado para imprimir en Zebra GC420T

Crear un reporte PDF para odoo v8 adaptado para imprimir en Zebra GC420T

  • 19 enero, 2018
  • /
  • Odoo

Vamos a ver como agregar un nuevo formato de impresión de un documento (Parte de servicio) para un modelo determinado.

Vamos agregar un nuevo formato de impresión (parte de servicio) de tal forma que visualicemos así:

PASO 1: CREAMOS UN NUEVO REPORTE.

Nos vamos a la ruta siguiente en Odoo V8. Configuración/Técnico/Informes/informes y creamos un nuevo reporte
Rellenamos los campos solicitados de fondo morado.

PASO 2: CREAMOS UN NUEVO FORMATO DE PAPEL

Guardamos para crear el nuevo formato de papel y finalmente guardamos el reporte.

Los Campos:
Nombre: Es el nombre del submenú que se mostrará, como se ve en la imagen primera.
Nombre de Plantilla: Siempre empieza con el nombre del modulo.nombre_reporte.

Un detalle a tener en cuenta es ver en la barra de direcciones el id que asigna Odoo a este reporte luego de guardarlo, para nuestro caso id=700 tal como vemos en la imagen siguiente:

PASO 3: CREANDO LA VISTA

Nos vamos al menú Configuración/Técnico/Interfaz de Usuario/Vistas y creamos una nueva vista y rellenamos los campos de fondo morados que son los obligatorios, tal como muestra la imagen siguiente:

Acá podemos ver el código completo de la vista que vamos a crear.

El nombre de la plantilla creada lo asignamos con el atributo
t-name=”project.service_report_jm“, este nombre debe ser el mismo que se colocó en el formulario del paso 1, campo Nombre de Plantilla 

Línea 4: Se llama a otra vista <t t-call=”report.external_layout_jm”> que mas adelante explicaremos como crearla.

Línea 6: Este <div class=”page”> siempre debe de ir, ya que dentro de ella se diseñará el reporte.

 

1 – <?xml version=”1.0″?>

2 – <t t-name=”project.service_report_jm”>

3 – <t t-call=”report.html_container”>

4 – <t t-call=”report.external_layout_jm”>

5 – <t t-foreach=”docs” t-as=”o”>

6 – <div class=”page” style=”margin-left:7px; margin-top:80px;”>

7 – <div style=”text-align:left;padding-top:80px;”><strong><p>Servicio o Equipo:

8 – <a t-field=”o.name”/></p></strong></div>

9 – <div style=”text-align:left;padding-top:0px;”><strong><p>Código: <a t-field=”o.code”/></p></strong></div>

10 – <div style=”text-align:left;padding-top:0px;”><strong><p>Cliente: <a t-field=”o.partner_id”/></p></strong></div>

11 – <div style=”text-align:left;padding-top:0px;”><strong><p>Detalle: <a t-field=”o.description”/></p></strong></div>

12 – </div>

13 – </t>

14 – </t>

15 – </t>

16 – </t>

 

Luego de guardar la Vista debemos de ver en la barra de direcciones del navegador web el id que asignó Odoo a nuestra vista, para nuestro caso es id=1567

<?xml version=”1.0″?>

<t t-name=”project.service_report_jm”>

<t t-call=”report.html_container”>

<t t-call=”report.external_layout_jm”>
<t t-foreach=”docs” t-as=”o”>

<div class=”page” style=”margin-left:7px; margin-top:80px;”>

<div style=”text-align:left;padding-top:80px;”><strong><p>Servicio o Equipo: <a t-field=”o.name”/></p></strong></div>
<div style=”text-align:left;padding-top:0px;”><strong><p>Código: <a t-field=”o.code”/></p></strong></div>
<div style=”text-align:left;padding-top:0px;”><strong><p>Cliente: <a t-field=”o.partner_id”/></p></strong></div>
<div style=”text-align:left;padding-top:0px;”><strong><p>Detalle: <a t-field=”o.description”/></p></strong></div>

</div>
</t>
</t>
</t>

</t>

PASO 4: CREANDO UN NUEVO IDENTIFICADOR
Este nos permitirá crear un id externo a nuestra vista.
Nos vamos a la ruta Configuración/Técnico/Secuencias e identificadores/Identificadores externos, y creamos un nuevo identificador.

Modulo: Para nuestro caso es el modulo project
Identificador externo
: para nuestro caso service_report_jm, es el nombre de la plantilla (PASO 1) solo que hemos suprimido project, por convención es de esa forma.
Nombre del modelo: Como estamos creando un identificador para una vista el valor siempre es: ir.ui.view
ID de registro: Este campo es importante ya que aquí colocamos el ID de nuestra vista (paso 3) al cual asociaremos el identificador, para nuestro ejemplo id=1567
Guardamos y veremos la asociación hecha:

PASO 5: CREANDO UNA ACCION
Permite asociar una acción al reporte creado en el paso 1.
Nos vamos a la ruta Configuración/Técnico/Acciones/Enlace acciones
Creamos un nuevo enlace.

Referencia de la acción: Aquí colocamos el id del reporte que nos generó Odoo en el paso 1, para nuestro caso es id=700.

PASO 6: CREAMOS VISTA external_layout_jm que llamamos cuando creamos la vista (paso 3, línea 4).

En la línea 9 llamamos a otra vista que se utilizará como cabecera y que mas adelante crearemos.

1 – <?xml version=”1.0″?>

2 – <t t-name=”report.external_layout_jm”>

3 – <t t-if=”o and ‘company_id’ in o”>

4 – <t t-set=”company” t-value=”o.company_id”/>

5 – </t>

6 – <t t-if=”not o or not ‘company_id’ in o”>

7 – <t t-set=”company” t-value=”res_company”/>

8 – </t>

9 – <t t-call=”report.external_layout_header_jm”/>

10 – <t t-raw=”0″/>

11 – </t>

<?xml version=”1.0″?>
<t t-name=”report.external_layout_jm”>
<!– Multicompany –>
<t t-if=”o and ‘company_id’ in o”>
<t t-set=”company” t-value=”o.company_id”/>
</t>
<t t-if=”not o or not ‘company_id’ in o”>
<t t-set=”company” t-value=”res_company”/>
</t>

<t t-call=”report.external_layout_header_jm”/>
<t t-raw=”0″/>
<!–<t t-call=”report.external_layout_footer”/>–>
</t>

Luego de guardar la Vista debemos de ver en la barra de direcciones del navegador web el id que asignó Odoo a nuestra vista, para nuestro caso es id=1568

PASO 7:  CREANDO UN NUEVO IDENTIFICADOR PARA LA VISTA external_layout_jm

Este nos permitirá crear un id externo a nuestra vista.
Nos vamos a la ruta Configuración/Técnico/Secuencias e identificadores/Identificadores externos, y creamos un nuevo identificador.

PASO 8: CREAMOS VISTA  report.external_layout_header_jm que llamamos cuando creamos la vista (paso 6, línea 9).

1 – <?xml version=”1.0″?>

2 – <t t-name=”report.external_layout_header_jm”>

3 – <div class=”header”>

4 – <div class=”row”>

5 – <div class=”col-xs-1″ style=”border: 0px solid #FF0000;margin-top:130px;margin-left:0px”>

6 – <img t-if=”company.logo” t-att-src=”‘data:image/png;base64,%s’ % company.logo” style=”max-height: 75px;”/>

7 – </div>

8 – <div class=”col-xs-7 text-right” style=”border: 0px solid #000;margin-left:140px;margin-top:130px;”>

9 – <div t-field=”company.partner_id” t-field-options=”{&quot;widget&quot;: &quot;contact&quot;, &quot;fields&quot;: [&quot;address&quot;, &quot;name&quot;], &quot;no_marker&quot;: true}” style=”border-bottom: 0px solid black;”/>

10 – </div>

11 – </div>

12 – <div class=”row” style=”border-bottom: 1px solid black;”>

13 – </div>

14 – <div class=”row” > </div>

15 – </div>

16 – </t>

<?xml version=”1.0″?>
<t t-name=”report.external_layout_header_jm”>
<div class=”header”>
<div class=”row”>
<div class=”col-xs-1″ style=”border: 0px solid #FF0000;margin-top:130px;margin-left:0px”>
<img t-if=”company.logo” t-att-src=”‘data:image/png;base64,%s’ % company.logo” style=”max-height: 75px;”/>
</div>
<!– <div class=”col-xs-9 text-right” style=”margin-top:20px;” t-field=”company.rml_header1″/>–>

<div class=”col-xs-7 text-right” style=”border: 0px solid #000;margin-left:140px;margin-top:130px;”>
<div t-field=”company.partner_id” t-field-options=”{&quot;widget&quot;: &quot;contact&quot;, &quot;fields&quot;: [&quot;address&quot;, &quot;name&quot;], &quot;no_marker&quot;: true}” style=”border-bottom: 0px solid black;”/>
</div>
</div>

<div class=”row” style=”border-bottom: 1px solid black;”>

</div>

<div class=”row” >

</div>

</div>

</t>

PASO 9:  CREANDO UN NUEVO IDENTIFICADOR PARA LA VISTA report.external_layout_header_jm

FINALMENTE OBTENDREMOS EL REPORTE COMPLETO QUE HEMOS CREADO

NOTA: En caso de que no salga el logo y datos de la compañía en la cabecera del reporte, debemos chequear que esté creada la variable report.url. Para ello nos vamos a configuración, técnico, parámetros del sistema y la creamos.