Remito pre-impreso

15 de octubre de 2023 por
Gustavo Orrillo
| Sin comentarios aún
 

El remito pre-impreso es (junto con los sandwiches de miga, la sensación térmica y el dolar-blue) una de las grandes invenciones argentinas. Basicamente es la obligación de cada empresa despachante de mercadería de imprimir en un formulario pre-impreso autorizado, el detalle de la mercadería que se despacha (en lugar de hacerlo en una hora en blanco). Honestamente, sería más práctico autorizar los remitos mediante un web-service y en términos fiscales más efectivo. Pero bueno...

Como implementamos en Odoo el remito-preimpreso? El problema en Odoo es que siempre se imprime un encabezado en los reportes q-web, y en el caso del remito vamos a necesitar deshacernos de dichos encabezados. A continuación es un ejemplo de un encabezado en su mínima expresión


A modo de ejemplo, desarrollamos un modulo llamado remito_preimpreso el cual pueden descartar y modificar segun sus necesidades. El mismo imprime solo la dirección de destino de un picking junto con algunas columnas de las operaciones (move lines)


Anexo técnico

Si ven el código del template verán que no se invoca la vista external_layout que provee Odoo debido a que la misma es la que invoca los headers y footers 

<template id="report_remito_preimpreso_document">
​<t t-call="web.html_container">
​<t t-foreach="docs" t-as="o">
​<div t-attf-class="article o_report_layout_standard" 
​t-att-data-oe-model="o and o._name" t-att-data-oe-id="o 
​and o.id" t-att-data-oe-lang="o and o.env.context.get('lang')">

En su lugar solo invocamos al html_container. Paso seguido definimos un div donde se imprimirá el reporte con las clases propias de las páginas impresas en Odoo. De esta manera podremos aplicar los mismos formatos que aplicamos a otros reportes en Odoo.

Por último, en una tabla imprimimos las columnas de las líneas del remito que queremos imprimir

<table class="table table-sm" style="font-size: 12px;">
​<thead>
​<tr>
​<th>Producto</th>
​<th>Nro.de Serie</th>
​<th>Cantidad</th>
​<th>Unidad de Medida</th>
</tr>
​</thead>
​<tbody>
​<t t-set="move_lines" t-value="o.move_line_ids"/>
​<tr t-foreach="move_lines" t-as="move_line">
​<td>
​<span t-field="move_line.product_id"/>
</td>
<td>
​<span t-if="move_line.lot_id" t-field="momve_line.lot_id.name"/>
</td>
<td style="text-align: right">
​<span t-field="move_line.qty_done"/>
</td>
<td>
​<span t-field="move_line.product_uom_id.name"/>
</td>
</tr>
</tbody>



Gustavo Orrillo 15 de octubre de 2023
Compartir
Archivar
Identificarse dejar un comentario