| Producto: | |||||||
|---|---|---|---|---|---|---|---|
| Línea de producto: | |||||||
| Segmento: | |||||||
| Módulo: | SIGAFIN - Financiero | ||||||
| Función: |
| ||||||
| País: | Todos (Mercado Internacional) | ||||||
| Ticket: | N/A | ||||||
| Requisito/Story/Issue (informe el requisito vinculado): | DMINA-24106 |
En el panel general de la rutina de Totvs Recibo (FINA998), se requiere habilitar un punto de entrada (PE) denominado F887FPG. Este punto de entrada permitirá agregar filtros personalizados al Query de panel general, pero en este caso necesitamos filtrar los títulos correspondientes a un cobrador, asegurando que dicho cobrador esté asociado con el cliente que se encuentra logueado en Protheus.
Se realizan modificaciones en los siguientes componentes:
|
Ejemplo punto de entrada F887FPG:
Tiene el objetivo de personalizar el Query que se usa para obtener los títulos dar clic en "Aplicar" en la sección de panel general.
Parámetros recibidos:
Nombre | Tipo | Descripción |
|---|---|---|
| Paramixb[1] | C | Parámetro en el cual se obtiene el nombre del usuario logueado |
| Paramixb[2] | C | Parámetro en el cual se obtiene el ID del usuario logueado |
| Paramixb[3] | C | Where del Query que se utiliza para obtener los títulos en Panel General |
Retorno: variable de tipo carácter (Where modificado).
Nombre | Tipo | Descripción |
|---|---|---|
| cAuxWhere | C | Retorna el Where enviado en el parámetro Paramixb[3], modificado con los nuevos filtros personalizados. |
#INCLUDE "Totvs.ch"
User Function F887FPG()
Local cUser := PARAMIXB[1] //Parámetro en el cual se obtiene el nombre del usuario logueado
Local cUseriD := PARAMIXB[2] //Parámetro en el cual se obtiene el ID del usuario logueado
Local cWhere := PARAMIXB[3] //Where del Query que se utiliza para obtener los títulos en Panel General
Local cAlias := getNextAlias()
Local aSAQS := {} As Array
Local cCobrador := "" As Character
Local qryFields := "" As Character
Local qryWhere := "" As Character
Local nX := 0 As Numeric
Local cAuxWhere := "" As Character
//Definimos los campos a retornar en la instrucción SQL
qryFields := "AQ_COD,AQ_NOME"
//Definimos la condición, en este caso de que el código del campo usuario sea igual al ID del usuario logueado
qryWhere := " AQ_CODUSR ='"+ cUseriD +"' "
//Definimos la estructura de la intrucción SQL a ejecutar
query := "SELECT "+ qryFields +" FROM "+ retSqlName("SAQ") +" WHERE "+ qryWhere
//Ejecutamos la intrucción
query := changeQuery(query)
mpSysOpenQuery(query, cAlias)
(cAlias)->(DbGoTop())
While (cAlias)->(!Eof())
IF aScan(aSAQS,(cAlias)->AQ_COD) == 0 //Instrucción para no repetir cobradores en el array
aadd(aSAQS,(cAlias)->AQ_COD) //Agrega en un array los cobradores asociados con el cliente logueado
ENDIF
(cAlias)->(dbSkip())
ENDDO
(cAlias)->(dbCloseArea())
//Preparamos la cadena que se retornara con los cobradores
IF !VAZIO(aSAQS)
FOR nX := 1 To LEN(aSAQS)
cCobrador += " E1_COBRAD =" + aSAQS[nX]
IF nX < LEN(aSAQS)
cCobrador += " OR "
ENDIF
NEXT
ELSE
//Opcional (En caso de que no tenga cobradores asociados)
cCobrador := "E1_COBRAD = ''"
ENDIF
cAuxWhere := cWhere +' AND ( '+cCobrador+' )'
Return cAuxWhere |