01. DATOS GENERALES

Producto:

Línea de producto:

Segmento:

Módulo:

SIGAFIN - Financiero

Función:
RutinaNombre TécnicoFecha
FINANCIAL-TITLES.DATA.TLPPData del servicio de títulos financieros 
 
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 Recibo (FINA998), se requiere habilitar un punto de entrada (PE) denominado F887FPG. Este punto de entrada permitirá 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 fuentes:  


  1. Realizar un respaldo del repositorio (RPO).
  2. Realizar la aplicación del parche correspondiente al issue DMINA-24106.
  3. Validar que las rutinas actualizadas en el repositorio, coincidan con las descritas en el encabezado del presente Documento Técnico, así como las fechas.
  4. Realice la compilación del punto de entrada F887FPG.
  5. Desde el módulo configurador (SIGACFG):

    1. La siguiente configuración de campos es con la finalidad de realizar la prueba de nuevo punto de entrada.

      Los campos pueden variar de tamaño, código o nombre.

      • Configuración del campo Cod Usuario (AQ_CODUSR):
        • Campo = Cod. Usuario.
        • Tipo = 1- Carácter.
        • Tamaño = 6
        • Formato = @! 
        • Contexto = 1- Real
        • Propiedad = 1 - Modificar
        • Título = Cod. Usuario
        • Consulta = USR - Usuarios (Importante es donde se selecciona el código de usuario que será asociado al cobrador)
      • Configuración del campo Cobrador (E1_COBRAD):
        • Campo = Cobrador
        • Tipo = 1- Carácter
        • Tamaño = 6
        • Contexto = 1- Real
        • Propiedad = 1 - Modificar
        • Título = Cobrador
        • Consulta = SAQ - Cobrador  (Importante es donde se selecciona el código de cobrador que será asociado a la cuenta por cobrar)
      • Configuración de un usuario en Protheus, en este cliente será asociado con el cobrador.


  6. En la rutina de Clientes (MATA030) que se encuentra en el menú perteneciente al módulo Financiero (Actualizaciones | Archivos) registre un cliente.

  7. En la rutina de Bancos (MATA070) que se encuentra en el menú perteneciente al módulo Financiero (Actualizaciones | Archivos) registre un banco.

  8. En la rutina de Cobradores (FINA011) que se encuentra en el menú perteneciente al módulo Financiero (Actualizaciones | Archivos) registre un cobrador y en el campo Cod Usuario (AQ_CODUSR) seleccione en la consulta estándar el usuario configurado anteriormente (Este paso asociara el cliente logueado con el cobrador).
  9. En la rutina de Productos (MATA010) que se encuentra en el menú perteneciente al módulo Financiero (Actualizaciones | Archivos) registre un producto nuevo.
  10. En la rutina de Cuentas Por Cobrar (FINA040) que se encuentra en el menú perteneciente al módulo Financiero (Actualizaciones | Cuentas Por Cobrar) genere una cuenta por cobrar  y en el campo Cobrador (E1_COBRAD) informar el cobrador configurado anteriormente y generar otra una cuenta por cobrar pero sin un cobrador asociado.

  1. Ingresar a Protheus con el usuario y contraseña del nuevo usuario configurado anteriormente.
  2. Ingresar a la rutina TOTVS ReciboSIGAFIN - Actualizaciones | Cuentas por Cobrar | TOTVS Recibo.
  3. Permanecer en la ventana de "Panel General":

    1. Informar en el filtro los datos del cliente configurado anteriormente así como la tienda.
    2. Dar clic en "Aplicar"
    3. Verificar que muestre solamente el título el cual se configuró un cobrador y este mismo asociado al usuario logueado en el sistema.

Ejemplo punto de entrada F887FPG:

Tiene el objetivo de filtrar los títulos al 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]CParámetro en el cual se obtiene el nombre del usuario logueado
Paramixb[2]CParámetro en el cual se obtiene el ID del usuario logueado

Retorno: variable de tipo carácter (correo electrónico).

Nombre

Tipo

Descripción

cCobradorC

Retorna los cobradores asociados al cliente logueado

Ejemplo: E1_COBRAD = '00001' OR E1_COBRAD = '00002'

#INCLUDE "Totvs.ch"
 
User Function F887FPG()
    Local cUser     := PARAMIXB[1]      //Parametro en el cual se obtiene el nombre del usuario logueado
    Local cUseriD   := PARAMIXB[2]      //Parametro en el cual se obtiene el ID del usuario logueado
    Local cAlias    := getNextAlias()    
    Local aSAQS     := {} As Array 
    Local cCobrador := "" As Character
    Local qryFields := "" As Character
	Local qryWhere  := "" As Character
    Local nX        := 0  As Numeric


    //Definimos los campos a retornar en la intrucción SQL
	qryFields := "AQ_COD,AQ_NOME"
    //Definimos la condición, en este caso de que el codigo 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 //Intruccion 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

Return cCobrador

04. ASUNTOS RELACIONADOS