Árvore de páginas

01. DATOS GENERALES


Producto

TOTVS Backoffice

Línea de producto: 

Línea Protheus

Segmento:

Backoffice

Módulo:SIGAFIN - Financiero
Función:
RutinaNombre técnicoFecha
FINR899Informe de Recibos por Cliente09/09/2022
País:México
Ticket:14824881
Requisito/Story/Issue (informe el requisito vinculado):DMINA-16617


02. SITUACIÓN/REQUISITO

Al realizar la impresión del Informe de Recibos por Cliente (FINR899) y se añade un nuevo campo a la impresión del informe mediante la opción Personalizar, por ejemplo, el campo Emisión (EL_EMISSAO), en la impresión del informe el campo personalizado no muestra la información de manera correcta.

03. SOLUCIÓN

En la rutina Informe de Recibos por Cliente (FINR899), función ReportPrint(), se crea el Punto de Entrada FR899REC, el cual se ejecuta durante la impresión de cada renglón, el Punto de Entrada devolverá como resultado el número de registro de la tabla Recibos de Cobranza (SEL) desde el cual se podrá extraer información para los campos personalizados del informe.

  • Parámetros enviados al Punto de Entrada: Tipo de Informe, Filial del Recibo, Serie del Recibo, Número de Recibo, Cliente del Recibo y Tienda del Cliente.
  • Valor de retorno esperado: Número de registro de la tabla Recibos de Cobranza (SEL).


Importante

Se recomienda usar el Punto de Entrada FR899REC solo para aquellos Recibos que no tengan más de una Forma de Pago, ya que si el Recibo cuenta con más de una Forma de Pago la obtención de información para los campos personalizados podría ser errónea.

  • Realizar un respaldo del repositorio (archivo .rpo)
  • Aplicar el parche correspondiente al issue DMINA-16617.
    • Validar que las rutinas actualizadas correspondan a las indicadas en la sección Función del punto 01. DATOS GENERALES.
  • En módulo Facturación (SIGAFAT) en el menú Actualizaciones | Facturación | Facturaciones:
    • Contar con Facturas de Venta con una fecha de emisión anterior a la que será utilizada para la generación del Recibo de Cobro.
  • En módulo Financiero (SIGAFIN) en el menú Actualizaciones | Cuentas por Cobrar | Cobros Diversos:
    • Incluir un nuevo Cobro Diverso, informando una Forma de Pago de tipo TF - Transferencia con una fecha de emisión posterior a la de la Factura de Venta.
    • Relacionar al Cobro Diverso la Factura de Venta del punto anterior.
    • Grabar el recibo de cobro.
      Registro en la tabla Recibos de Cobranza (SEL):
  • Compilar el Punto de Entrada FR899REC (ver punto 04. INFORMACIÓN ADICIONAL).


  1. En el módulo Financiero (SIGAFIN) ir al menú Informes | Ctas. Por Cobrar | Informe de Recibos Por Cliente (FINR899):
    • Informar los parámetros requeridos para la impresión del Recibo capturado en las Pre-condiciones.
  2. Personalizar los campos a mostrar en el informe:
    • Ir al menú Otras acciones | Personalizar.
    • En la sección Informe y Secciones ir a Informes de Cobranza | Clientes | Datos del recibo.
    • En la sección Configuraciones de la sección ir a la opción Celdas, seleccionar el campo Emisión (EL_EMISSAO) y añadir al informe utilizando el botón Adicionar ().
    • Confirmar las personalizaciones dando clic en el botón OK.
  3. Confirmar la generación del informe dando clic en Imprimir.
  4. Verificar que el campo personalizado Emisión muestre la fecha correspondiente a la Forma de Pago y no a la de las facturas relacionadas



04. INFORMACIÓN ADICIONAL

Ejemplo de utilización de Punto de Entrada FR899REC:

Punto de Entrada MT143REABR
#INCLUDE "protheus.ch"

User Function FR899REC()
	Local nOpcImp	:= PARAMIXB[1]	//Opción de Impresion - Recibo, Cliente)
	Local cFilRec	:= PARAMIXB[2]	//Filial Recibo
	Local cSerRec	:= PARAMIXB[3]	//Serie Recibo
	Local cNumRec	:= PARAMIXB[4]	//Numero Recibo
	Local cClieRec	:= PARAMIXB[5]	//Clente Recibo
	Local cTienRec	:= PARAMIXB[6]	//Tienda Cliente
	
	Local nRecnoSEL	:= 0
	Local aArea		:= GetArea()

	DbSelectArea("SEL")
	SEL->(DbSetOrder(7)) //EL_FILIAL+EL_CLIORIG+EL_LOJORIG+EL_RECIBO+EL_SERIE
	If nOpcImp == 1 .And. SEL->(MsSeek(cFilRec + cClieRec + cTienRec + cNumRec + cSerRec))
		While SEL->(!EoF())
			If SEL->(EL_FILIAL + EL_CLIORIG + EL_LOJORIG + EL_RECIBO + EL_SERIE) == (cFilRec + cClieRec + cTienRec + cNumRec + cSerRec)
				If SEL->EL_TIPODOC <> "TB"
					nRecnoSEL := SEL->(Recno())	//Registro a posicionar en tabla SEL para impresión de campos personalizados
					Exit
				EndIf
			Else
				Exit //Si no requiere actualizar posición en tabla SEL, se retorna 0.
			EndIf
			SEL->(DbSkip())
		EndDo
	EndIf

	RestArea(aArea)
Return nRecnoSEL


¡IMPORTANTE!

Solución disponible para Protheus versión 12.1.27 (con garantía extendida) o posterior que cuente con las rutinas actualizadas a una fecha igual o posterior a las indicadas en la sección Función.


05. ASUNTOS RELACIONADOS

Lista de cobranzas diversas - FINR899