Creación de Reporte de Pagos Diarios desde Opera PMS

Realizaremos un reporte que muestre el listado de pagos realizados por día, pagos desde los diversos formas de pago; efectivo, tarjetas, etc. Este tipo de reportes nos permiten visualizar y validar los cobros que realizan los cajeros por día de transacción.

El reporte va ha mostrar las siguientes columnas:

  • Fecha de Transacción
  • Código de Transacción
  • Descripcion del Codigo de Transaccion.
  • Número de Reserva
  • Número de Habitación
  • Nombre del Huésped
  • Número de Comprobante
  • Total Facturado en Dólares
  • Código de Moneda
  • Usuario Cajero.

SELECT
TO_CHAR(fi.TRX_DATE,’DD/MM/RR’) TRX_FECHA, –Fecha de Transaccion
 fi.TRX_CODE TRX_CODE, –Codigo de Transaccion  
UPPER(trc.DESCRIPTION) TRX_DESCRIPTION, –Descripcion de Codigo de Transaccion  
fi.RESV_NAME_ID NR_RESERVA, –Numero de Reserva  
fi.ROOM NR_HAB, –Numero de Habitacion
 NVL(n.SNAME||’,’||n.SFIRST,’ ‘) HUESPED, –Nombre del Huesped
 fi.fiscal_bill_no NR_DOCUMENTO, –Numero de Comprobante  
DECODE(fi.bill_no,NULL,0,decode(fi.trx_no,fol.bill_payment_trx_no,fol.total_gross,0)) FACTURADO_USD, –Total Facturado en Dolares
 fi.CURRENCY MONEDA, –Codigo de Moneda  
RPAD(UPPER(au.APP_USER),5) USUARIO –Usuario

FROM    
FINANCIAL_TRANSACTIONS fi
INNER JOIN FOLIO_TAX fol ON (fol.BILL_NO = fi.BILL_NO AND fol.NAME_ID = fi.NAME_ID)
 INNER JOIN NAME n ON (n.NAME_ID = fi.NAME_ID)  INNER JOIN TRX$_CODES trc ON (trc.TRX_CODE = fi.TRX_CODE)
 INNER JOIN APPLICATION$_USER au ON (au.APP_USER_ID = fi.INSERT_USER)

WHERE  
 —TO_CHAR(fol.BUSINESS_DATE,’DD/MM/RRRR’) = ’11/03/2019′    fol.BUSINESS_DATE = :P_BUSDATE   
 AND fi.BILL_NO IS NOT NULL   
 AND (fi.TRX_CODE BETWEEN 9000 AND 9999)   
 AND fi.DISPLAY_YN =’Y’    
AND fi.RECPT_TYPE != ‘CUX’   
 AND fi.PACKAGE_CREDIT IS NULL   
 AND fi.PACKAGE_DEBIT IS NULL    
AND fi.PRICE_PER_UNIT <> 0

ORDER BY    
TRX_FECHA, NR_DOCUMENTO, TRX_CODE, TRX_FECHA;

Para realizar este reporte se va usar las tablas relacionadas a transacciones financieras, folio de cliente y otras tablas asociadas:

FINANCIAL_TRANSACTIONS: Esta tabla almacena todas las transacciones relacionadas con el servicio de caja, transacciones para cada reserva (libro de huespedes, libro de depósitos, libro de cuentas por cobrar y libro de paquetes).

FOLIO_TAX: Esta tabla almacena un resumen de la información de ingresos por factura.

NAME: Esta tabla almacena la información de perfil de los huéspedes, compañías, agencias de viajes, fuentes y grupos.

TRX$_CODES: Esta tabla almacena todos los códigos de transacción del sistema, estas transacciones son los conceptos que se seleccionan al momento de hacer POST.

APPLICATION$_USER: Esta tabla almacena toda la información del usuario que opera el sistema.

Validamos la sentencia SQL ejecutando el query en el entorno de desarrollo “Oracle SQL Developer”

Ejecutamos el programa de diseño de reportes “Oracle Reports Builder” y creamos un nuevo reporte mediante el asistente “Report Wizard”.

En la pantalla “Report Style” indicamos el título del reporte y seleccionamos el formato “Group Left”, este formato nos permitirá crear agrupaciones en el reporte.

En la pantalla “Data Source Definition” del Report Wizard se presentará la confirmación para la creación del parámetro de reporte P_BUSDATE, este parámetro nos permitirá seleccionar desde Opera la fecha para cual deseamos se genere el reporte de pagos.

Hacemos click en el botón OK y continuamos con los valores por defectos de las demás pantallas del asistente.

En la pantalla “Agrupación de Campos” seleccionamos los campos que nos permitirán agrupar los registros del reporte y calcular los subtotales de estos grupos. En nuestro caso seleccionamos los campos TRX_CODE y TRX_DESCRIPTION lo que nos permitirá agrupar y totalizar por forma de pago.

En la pantalla “Select Fields to Display” seleccionamos todos los campos del Query que formarán parte del reporte.

En la pantalla “Calculate Totals” seleccione los campos que serán totalizados y la forma de totalización, en nuestro caso haremos una suma del monto facturado y un conteo de la cantidad de comprobantes.

Sum(FACTURADO_USD)

Count(NR_DOCUMENTO)

hacemos click en el botón “Next>” y continuamos con los valores por defectos de las demás pantallas del asistente.

Al culminar el asistente se mostrará el reporte con las agrupaciones y los campos totalizados:

La herramienta de diseño “Oracle Reports Builder” permite hacer el cambio del diseño original del reporte permitiendo un diseño mucho más estético del reporte.

Una vez compilado el reporte se debe exportar el archivo en formato .rep “custom_reporte_pagos.rep”, este formato permitirá que se pueda crear el reporte desde la pantalla de configuración “Reports – New” del Opera.

Desde la pantalla de “Configuración” seleccione la opción de menú  “Setup”, Sub Menu “Report Setup” opción Reports.

En la pantalla “Reports – Configuration”, seleccione el botón de opción “New”

En la Pantalla “Reports – New” indicamos el nombre del reporte, este caso “Custom Reporte de Pagos”, en el campo “Report Group” seleccione la opción “Utilities” y dejamos las demás opciones como se muestra en la imagen.

En el campo “File Name” hacemos click en el botón de Listado, se mostrar la Pantalla “File List”, en esta pantalla seleccionamos el archivo .rep que hemos creado desde del “Oracle Reports Builder” en pasos anteriores.

Seleccionamos el reporte “custom_reporte_pagos.rep” y hacemos click en el botón “OK” para seleccionar este archivo.

En la pantalla “Reports New” seleccionamos el botón “Parameter”, se mostrará la pantalla “Parameters” para crear el parámetro “P_BUSDATE” que el reporte de pagos requiere.

En la pantalla “Parameters” coloque los siguientes datos del parametro P_BUSDATE y haga click en el botón “OK”.

Para mostrar el reporte como usuario  en la pantalla “PMS” haga click en el botón de opción “Miscellaneous” opción “Reports”

En la pantalla “Reports” busque el reporte de pagos creado y haga click en el botón “OK”

Se mostrará la pantalla “Report Parameters”, en esta pantalla indique una determinada fecha y haga click en el botón “Preview”

Se mostrará el reporte de pagos diseñado en el “Oracle Reports Builder”.