Árvore de páginas

01. DATOS GENERALES


Producto

TOTVS Backoffice

Línea de producto: 

Línea Protheus

Segmento:

Servicios

Módulo:SIGAFIN - Financiero
Función:
RutinaNombre TécnicoFecha
RECEIPT.DATA.TLPPData del servicio de recibos28/01/2022
País:Todos
Ticket:N/A
Requisito/Story/Issue (informe el requisito vinculado):DMINA-14278


02. SITUACIÓN/REQUISITO

Se necesita crear el punto de entrada F998BRFLT  en el cual se pueda agregar más filtros al Query de selección de recibos al momento de dar clic en aplicar filtros al buscar recibo.

03. SOLUCIÓN

Se crea el punto de entrada F998BRFLT en la rutina RECEIPT.DATA.TLPP - Data del servicio de recibos, con el objetivo de que el usuario pueda agregar más filtros al Query de selección de recibos al momento de dar clic en aplicar filtros al buscar un recibo desde el programa de TOTVS Recibo.


  1. Crear la función de usuario F998BRFLT para agregar filtro de campos para búsqueda de recibos.

  2. La función debe retornar la expresión SQL para la consulta correspondiente.
  3. Dentro del módulo Financiero ejecutar la rutina TOTVS Recibo (Actualizaciones | Cuentas por cobrar).
  4. Dentro del aplicativo de TOTVS Recibo, ir a Buscar recibo, llenar los campos de consulta de acuerdo a los recibos que se desea buscar y visualizar.
  5. Al dar clic en Aplicar se ejecutará el punto de entrada F998BRFLT.
  6. La función de usuario afectará la búsqueda de recibos, aplicando los filtros definidos por el usuario desde TOTVS Recibo más los filtros agregados desde el punto de entrada F998BRFLT. Esta función retornará la expresión SQL necesaria para realizar la consulta (Query) a la base de datos mostrando los recibos que cumplan todas las condiciones.


04. INFORMACIÓN ADICIONAL

DescripciónActualizaciones
Punto de entrada:F998BRFLT
Nombre del programa fuente:RECEIPT.DATA.TLPP
Parámetros recibidos:
NombreTipoDescripción
PARAMIXB[1]CExpresión SQL estándar para la consulta (SELECT) que contará los registros a seleccionar.
PARAMIXB[2]CExpresión SQL estándar con filtros por campo que se utilizada para filtrar (WHERE) los registros a seleccionar.
PARAMIXB[3]C

Este punto de entrada se ejecuta en dos partes, este parámetro indica el tipo de consulta (expresión SQL para el Query a la base de datos) que se debe retornar:

"complete" - El punto de entrada debe retornar una expresión de consulta (Query) completa, la cual se utiliza para determinar el total de registros que se visualizaran.

"where" - El punto de entrada solo complementa la expresión de condiciones (WHERE) para la selección de registros a visualizar.

PARAMIXB[4]O

Contiene el Objeto Json con las Respuestas del motor de búsqueda que se colocaron en buscar Recibo.

Importante

Este parámetro solo es necesario cuando se tiene configurado el grupo de preguntas FINA998BUS.

Respuesta:
NombreTipoDescripciónObligatorio
queryNewCRetorna la expresión SQL de la consulta a realizar de acuerdo al tipo de Query; "complete" o "where".Si



Ejemplo
#Include 'Protheus.ch'
 
User Function F998BRFLT
   Local querySelect := Paramixb[1]
   Local queryWhere := Paramixb[2]
   Local queryOption := Paramixb[3]
   Local whereNew := " AND SEL.EL_RECIBO >= '0040' "
   Local queryNew := ""
 
   IF queryOption == 'complete'
         queryNew := " SELECT " + querySelect + " AS totalreceipts FROM " + RetSqlName("SEL")
         queryNew += +" SEL WHERE " + queryWhere + whereNew
   ELSEIF queryOption == 'where'
         queryNew := queryWhere + whereNew
   ENDIF
 
RETURN queryNew
Ejemplo con el Grupo de preguntas FINA998BUS
User Function F998BRFLT()
 
Local querySelect := Paramixb[1]
Local queryWhere  := Paramixb[2]
Local queryOption := Paramixb[3]
Local jPergunte   := Paramixb[4] // Objeto Json de Preguntas
Local whereNew := " "
Local queryNew := ""
 
      IF  jPergunte['form']['mv_par11'] != ""
        whereNew :=" AND EL_NATUREZ = '"+jPergunte['form']['mv_par11']+"' "
      EndIF
 
      IF queryOption == 'complete'
            queryNew := " SELECT " + querySelect + " AS totalreceipts FROM " + RetSqlName("SEL")
            queryNew += +" SEL WHERE " + queryWhere + whereNew
      ELSEIF queryOption == 'where'
            queryNew := queryWhere + whereNew
      ENDIF
 
RETURN queryNew


¡IMPORTANTE!

La presente solución aplica para versión 12.1.33 o superior, siempre y cuando se tengan las rutinas actualizadas a la fecha de la expedición del issue.


05. ASUNTOS RELACIONADOS

  • https://tdn.totvs.com/x/Zq97Jw