Á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
FINA998.PRWTOTVS Recibo22/01/2024
FINA998A.PRWTOTVS Recibo18/01/2024
País:Todos
Ticket:18958300
Requisito/Story/Issue (informe el requisito vinculado):DMINA-21976


02. SITUACIÓN/REQUISITO

En el aplicativo de TOTVS Recibo, se encuentra la necesidad de habilitar un Punto de Entrada (PE) llamado "F998BRBOR". Este PE debe ejecutarse al momento de llevar a cabo la acción de borrar un recibo, con la capacidad de interrumpir el proceso y proporcionar un mensaje informativo al usuario, explicando la razón por la cual la eliminación del recibo fue cancelada.


03. SOLUCIÓN

El fuente que se modificó es TOTVS Recibo (FINA998.PRW), donde se llevó a cabo la modificación. Se implementó una bifurcación en el código para verificar la existencia del Punto de Entrada "F998BRBOR". En caso de que este PE exista, este tiene la responsabilidad de llevar a cabo el tratamiento necesario para cancelar el borrado del recibo, siempre y cuando se cumplieran las condiciones determinadas.


  1. Crear la función de usuario "F998BRBOR" con las validaciones personalizadas tanto para aceptar, así como para rechazar el borrado del recibo.
    - Debe retornar un arreglo con dos parámetros, en donde el primero es un valor lógico, .T. (Verdadero) o .F. (Falso), de aceptación o rechazo, y el segundo es un mensaje personalizado, según sea el caso.
  2. Dentro del módulo Financiero ejecutar la rutina TOTVS Recibo (Actualizaciones | Cuentas por cobrar).
  3. Dentro del aplicativo de TOTVS Recibo, ir a Buscar recibo, llenar los campos de consulta de acuerdo a los recibos que se desea buscar y visualizar.
  4. Se mostrará la lista de los recibos.
  5. Seleccionar el recibo deseado y al dar clic en el botón de Borrar (El recibo tiene que estar previamente anulado) recibo se ejecutará el punto de entrada "F998BRBOR".
  6. La función de usuario efectúa las validaciones personalizadas y retorna una respuesta que indica si procede o no el borrado.
  7. Se mostrará una ventana con el mensaje correspondiente y en caso de que proceda, el sistema continuará con el borrado del recibo. 


04. INFORMACIÓN ADICIONAL


DescripciónActualizaciones
Punto de entrada:F998BRBOR
Nombre del programa fuente:FINA998.PRW
Parámetros recibidos:
NombreTipoDescripción
PARAMIXB[1]CSerie del recibo
PARAMIXB[2]CNúmero del recibo
Respuesta:
NombreTipoDescripciónObligatorio
aRet[1]LRetorna .T. si procede el Anulado/Borrado o .F. si no se permiteSi
aRet[2]CMensaje de la causa de rechazo de anulación.Si

Ejemplo:

#Include 'Protheus.ch'

User Function F998BRBOR
     Local cSerie := Paramixb[1]
     Local cRecibo := Paramixb[2]
     Local cQueryWhere := ""
     Local cQueryFields := ""
     Local cAlias := GetNextAlias()
     Local aRet := {.T.,""}

     cQueryWhere := " FJT_FILIAL = '"+xFilial("FJT")+"' AND FJT_SERIE = '"+cSerie+"' AND FJT_RECIBO = '"+cRecibo+"' "

     cQueryFields := " FJT_SERIE,FJT_RECIBO,FJT_CLIENT,FJT_DTDIGI "

     cQuery := " SELECT "+cQueryFields+" FROM "+ RetSqlName("FJT") + " WHERE "+cQueryWhere

     cQuery := ChangeQuery(cQuery)
     MPSysOpenQuery(cQuery, cAlias)

     WHILE (cAlias)->(!EOF())
          IF (cAlias)->FJT_DTDIGI == DTOS(ddatabase)
               aRet := {.F.,"No se puede BORRAR un recibo que haya sido generado el dia de hoy"}
          EndIf
          (cAlias)->(DbSkip())
     END
Return aRet



¡IMPORTANTE!

La presente solución aplica para versión 12.1.2210 o superior, siempre y cuando se tengan las rutinas actualizadas a la fecha de la expedición del issue.


05. ASUNTOS RELACIONADOS

  • 5 - Puntos de entrada