Histórico da Página
01. DATOS GENERALES
| 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 |
02. DESCRIPCIÓN
En el panel general de la rutina de TOTVS 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.
03. INFORMACIÓN ADICIONAL
Se realizan modificaciones en los siguientes fuentescomponentes:
- Data del servicio de títulos financieros (FINANCIAL-TITLES.DATA.TLPP): Se habilita el nuevo punto de entrada (PE) F887FPG, que incorpora en el query ejecutado al seleccionar "Aplicar filtros" del panel general los cobradores asociados al cliente filtros personalizados por el cliente, en este caso filtramos por el cobrador y usuario logueado.
| Totvs custom tabs box | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
|
Ejemplo punto de entrada F887FPG:
Tiene el objetivo de filtrar personalizar el Query que se usa para obtener los títulos al dar dar clic en "Aplicar" en la sección de panel general, este punto de entrada filtra los títulos que tienen asociado un cobrador y este mismo está asociado al usuario logueado en Protheus.
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 (correo electrónicoWhere modificado).
Nombre | Tipo | Descripción |
|---|---|---|
| cCobradorcAuxWhere | C | Retorna los cobradores asociados al cliente logueadoEjemplo: E1_COBRAD = '00001' OR E1_COBRAD = '00002'el Where enviado en el parámetro Paramixb[3], modificado con los nuevos filtros personalizados. |
| Bloco de código | ||
|---|---|---|
| ||
#INCLUDE "Totvs.ch" User Function F887FPG() Local cUser := PARAMIXB[1] //ParametroParámetro en el cual se obtiene el nombre del usuario logueado Local cUseriD := PARAMIXB[2] //ParametroPará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 cCobradorcQryFields := "" As Character Local cQryWhere qryFields := "" As Character Local qryWhere Local cQuery := "" As Character Local nX := 0 As Numeric Local cAuxWhere := "" As Character //Definimos los campos a retornar en la intruccióninstrucción SQL qryFields cQryFields := "AQ_COD,AQ_NOME" //Definimos la condición, en este caso de que el codigocódigo del campo usuario sea igual al ID del usuario logueado qryWhere cQryWhere := " AQ_CODUSR ='"+ cUseriD +"' " //Definimos la estructura de la intrucción SQL a ejecutar query cQuery := "SELECT "+ qryFieldscQryFields +" FROM "+ retSqlName("SAQ") +" WHERE "+ qryWherecQryWhere //Ejecutamos la intrucción query cQuery := changeQuery(querycQuery) mpSysOpenQuery(querycQuery, cAlias) (cAlias)->(DbGoTop()) While (cAlias)->(!Eof()) IF aScan(aSAQS,(cAlias)->AQ_COD) == 0 //IntruccionInstrucció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) si no se informa mostrara todos los titulos cCobrador := "E1_COBRAD = 'ZZZZZ'" ENDIF ENDIF cAuxWhere := cWhere +' AND ( '+cCobrador+' )' Return cCobradorcAuxWhere |
04. ASUNTOS RELACIONADOS
...