01. DATOS GENERALES
Producto | TOTVS Backoffice | ||||||
---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | ||||||
Segmento: | Backoffice | ||||||
Módulo: | SIGAFIN - Financiero | ||||||
Función: |
| ||||||
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).
- 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.
- 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.
- Confirmar la generación del informe dando clic en Imprimir.
- 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:
#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
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.¡IMPORTANTE!
05. ASUNTOS RELACIONADOS