Compartir en Google+   Compartir en Linkedin   Compartir en Facebook   Imprimir Documento   Enviar contenido por Mail

OpenERP Factura Jasper Report con Impuestos y Cobros

En este tutorial veremos como crear el reporte para Facturas de OpenERP con Jasper Report, utilizando el diseñador de informes iReport.

Pinche en la imagen para ver un ejemplo en PDF del formato que se explica en este tutorial.

Requisitos

Instalar el diseñador de informes iReport en nuestro equipo:

http://community.jaspersoft.com/project/ireport-designer

Tener instalado el modulo “jasper_report” para OpenERP que detallamos en el tutorial del siguiente link:

openERP 7: Modulo Jasper Reports

Diseñamos el informe con iReport

Una vez dentro del diseñador iReport lo primero será definir la fuente de datos “DataSource” de nuestro reporte. En la parte superior disponemos del acceso al administrador de conexiones y datos para crear nuestro DataSource “Factura Venta” utilizando la platilla XML creada previamente desde OpenERP con el modulo “jasper_report”.

En las propiedades del documento ponemos “xPath” en el campo: ‘The language for the dataset query’

Una vez tenemos la fuente de datos “datasource” del informe seleccionamos los campos que incluiremos en nuestro informe de factura, hacemos clic derecho nuevamente en el documento y elegimos "Edit Query". Para seleccionar los campos que incluiremos en nuestro reporte, navegamos en el árbol de la derecha “data/record” y arrastramos los campos que vamos a utilizar a la parte de abajo.

En el diseño del informe, ahora disponemos de los campos seleccionados en el apartado “Fields”. Ya podemos arrastrarlos al documento y diseñar nuestro informe.

Compatibilidad

En las versiones más recientes de iReport al compilar el archivo “.jrxml” se añaden etiquetas que aún no son compatibles con el modulo “jasper_reports” de OpenERP. Es importante la Compatibilidad porque en el fichero del report se añaden campos como “uuid” o “paragrap” que nos son compatibles con la librería actual del modulo jasper_report de OpenERP 7 y que luego da un error al imprimir el formato.

Vamos a [Herramientas -> Opciones -> iReport -> General -> Compatibility] y modificamos la compatibilidad. Con una compatibilidad de versión “JasperReports4.0.0” no añade estos campos y funciona correctamente.

Lineas de la Factura

Una vez tenemos diseñado el informe y decidimos probarlo, enseguida nos damos cuenta que en las líneas solo nos muestra una línea a pesar de que nuestra factura contiene varias líneas. Esto es porque es necesario decirle al informe sobre qué campos debe “iterar/recorrer” para mostrar todos las líneas de registros.

Para esto pinchamos con el botón derecho del ratón sobre el informe y pinchamos en propiedades. En la ventana que aparece buscamos el campo ‘Properties’ y pinchamos en el botón de la derecha “…” para ver las propiedades.

En la ventana que se abre, pinchamos el botón “Add” para crear una propiedad:

En este caso es una factura, pero si fuera un pedido, el campo de la relación para la iteración seria ['order_line'].

Con esto ya tenemos el informe configurado para iterar sobre las líneas de factura.

Lineas de impuestos

Algo muy típico es mostrar en el pie de la factura el desglose de los diferentes impuestos que conforman la factura. Es decir que si en una misma factura tenemos varios tipos impositivos en el pie se muestre el desglose de cada base y su cuota de impuesto. Para lograr mostrar varias líneas utilizaremos “SubReports”, que no es nada más que añadir otro report totalmente diferente enlazado al report principal que en este caso es la factura.

Para lograr esto empezaremos creando un nuevo report que en nuestro caso llamaremos “Factura_impuestos.jrxml”. En este nuevo reporte seguiremos los mismos pasos que hemos descrito para la factura, pero con la diferencia de que como solo queremos mostrar datos de líneas de impuestos lo primero sería eliminar las secciones de header, footer etc…. Dejando solo la banda “Title” para mostrar el título y la banda “Detail” para mostrar las diferentes líneas de impuestos. El “Datasource” seria el miso que hemos utilizado para la factura y los campos de la consulta serían los apropiados para mostrar los impuestos. En la imagen vemos como nos queda el diseño según lo explicado.

Al igual que hicimos en las líneas de la factura, debemos indicarle al sub-informe de impuestos sobre qué campo se debe iterar para que muestre todas las líneas de impuestos. El procedimiento es el mismo solo que en esta ocasión el campo para iterar es diferente.

Una vez tenemos el nuevo informe de las líneas de impuestos preparado solo nos queda añadirlo al informe principal de factura y enlazarlo.

  1. En el report principal “Factura” creamos un nuevo parámetro que le llamaremos como queramos, en nuestro ejemplo SUBREPORT_IMPUESTOS. Es MUY importante que lo creemos de la clase “object”
  2. Añadimos en el pie del formato factura un objeto del tipo “SubReport” que automáticamente nos lanza el asistente de configuración.
    1. En la primera pantalla simplemente le indicamos la ruta donde se encuentra nuestro SubRepor de impuesto.

    2. El segundo paso es indicarle el parámetro para la conexión. Seleccionamos “Use a JRDatasource” y seleccionamos el parámetro “SUBREPORT_IMPUESTOS” que previamente habíamos creado en un paso anterior.

    3. En el tercer paso siguiente sin añadir parámetros.
    4. El cuarto y último paso es para indicarle la ruta donde debe encontrar el Subreport cuando sea utilizado. Dejamos la opción que viene por defecto “Store the directory name in a parameter”. Esto nos creara un nuevo parámetro que en mi caso se llama “SUBREPORT_DIR” conteniendo la ruta al fichero “.jrxml” en nuestro disco duro. No nos preocupemos, no es necesario mantener el Subreport en nuestro disco para que funcione. En las propiedades de este parámetro marcamos la opción “Use as a prompt” para que se busque el Subreport en la misma ubicación donde está el report principal.

Lineas de Cobro Vencimientos

Importante destacar que en mi OpenERP tengo instalado el modulo “account_payment_extension” para las formas de pago, por si alguno de los campos utilizado en la consulta no aparece en vuestra instalación.

Para este SubReport la consulta obtiene la información de los apuntes del asiento contable. El asiento contable tiene varios apuntes más que los de pagos que nos interesan. En la consulta del SubReport filtraremos la información para que solo muestre las líneas de cobro y además les añadiremos una ordenación para que las muestre ordenadas por fecha de menor a mayor.

Con el botón “Filter expression” añadimos la siguiente expresión que simplemente indica que solo nos interesan las líneas con contenido en el campo “Debe” Y en la “Fecha_vencimiento”.

$F{Debe-debit}!="" & $F{Fecha_vencimiento-date_maturity}!=""

Con el botón “Sort options” añadimos el campo de ordenación por fecha vencimiento.



Google+