Bienvenido a los foros %s

Foro comunidad hispana Dolibarr

Identificarse Registrarse

Adjuntar automáticamente PDF de pedido a plantilla ODT

Cuestiones sobre cómo utilizar Dolibarr, ayudas sobre las funcionalidades o cualquier cuestión que no está relacionada con un error.
igorae
Novato
Mensajes: 20
Registrado: Mar, 02/02/2021, 16:16

Adjuntar automáticamente PDF de pedido a plantilla ODT

Mensaje por igorae »

Hola, comparto por aquí cómo adjuntar automáticamente el PDF de pedido a una plantilla ODT por si a alguien le sirve de ayuda, ya que estuve volviéndome un poco loco para hacerlo.

La idea es que en a una plantilla ODT, que necesitamos presentar con una serie de datos que rellenamos, se le agregue automáticamente el PDF del pedido realizado (serviría con cualquier otro PDF generado por Dolibarr, como presupuesto, facturas, etc.)

Para hacerlo, hay que crear la plantilla ODT en Libreoffice e insertar una imagen (los PDF los inserta como imagen). Al insertar la imagen hay que decirle a Libreoffice que lo haga como "Enlace", con lo que la imagen no se incrusta en el documento, sino que la lee de una ubicación determinada, en nuestro caso, la carpeta "Documents" de Dolibarr, por ejemplo, trabajando con LibreOffice en Windows, en las propiedades de la imagen veríamos que el Enlace está en:

file://ubicacion_del_servidor_dolibarr/documents/fournisseur/commande/P20210423-0009/P20210423-0009.pdf

Lo que queremos es que cuando se genere el archivo ODT desde Dolibarr, esa carpeta P20210423-0009 y ese PDF P20210423-0009.pdf que corresponden con la referencia del pedido (a proveedor en este caso), se actualicen automáticamente para que se lean del propio pedido, para lo que utilizaremos la clave:

{object_ref}

con lo que el enlace a la imagen nos quedaría como:

file://ubicacion_del_servidor_dolibarr/documents/fournisseur/commande/{object_ref}/{object_ref}.pdf

El problema es que introduciendo esta dirección directamente en las propiedades de la imagen en LibreOffice, no fuciona y no nos carga la imagen, porque no traduce correctamente ese {object_ref}, con lo que hay que editar el código fuente del archivo ODT.

Para hacerlo, abrimos el archivo ODT con un descompresor estilo WinZIP. Si nuestra aplicación de descompresión no nos deja abrir el ODT directamente, renombramos el archivo a .zip en lugar de .odt.

Dentro de la carpeta descomprimida, encontramos un archivo llamado content.xml que tendremos que abrir con un editor de texto, estilo Bloc de Notas, Notepad++ o el que se prefiera.

En ese archivo buscaremos la línea en la que se encuentra nuestro enlace a la imagen:

file://ubicacion_del_servidor_dolibarr/documents/fournisseur/commande/P20210423-0009/P20210423-0009.pdf

y la sobre escribimos con:

file://ubicacion_del_servidor_dolibarr/documents/fournisseur/commande/{object_ref}/{object_ref}.pdf

Guardamos el archivo content.xml y guardamos el odt (o zip, que renombraremos a odt otra vez).

Así tenemos lista la plantilla y nos insertará en el documento ODT el pdf del pedido automáticamente leyéndolo directamente de la carpeta de documentos de Dolibarr cuando generemos el archivo ODT desde el pedido.

Espero que a alguien le sirva o le inspire para alguna idea.