Árvore de páginas

01. DATOS GENERALES


Producto

TOTVS Backoffice

Línea de producto: 

Línea Protheus

Segmento:

Servicios

Módulo:SIGAFIN - FINANCIERO
Función:
RutinaNombre TécnicoFecha
FINA998.PRWTOTVS Recibo28/01/2022
País:Todos
Ticket:N/A
Requisito/Story/Issue (informe el requisito vinculado):DMINA-14278


02. SITUACIÓN/REQUISITO

Crear un punto de entrada con el objetivo de que el usuario pueda agregar validaciones que se desean cumplir para la anulación o borrado de los recibos.


03. SOLUCIÓN

Se crea el punto de entrada F998BRANU en la rutina FINA998- TOTVS Recibo, con el objetivo de que el usuario pueda incluir validaciones para la opción de "Anular/Borrar" en la rutina.


  1. Crear la función de usuario F998BRANU con las validaciones personalizadas tanto para aceptar así como para rechazar la anulación o 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 Anular/Borrar recibo se ejecutará el punto de entrada F998BRANU.
  6. La función de usuario efectúa las validaciones personalizadas y retorna una respuesta que indica si procede o no la anulación/borrado.
  7. Se mostrará una ventana con el mensaje correspondiente y en caso de que proceda, el sistema continuará con la anulación/borrado del recibo.




04. INFORMACIÓN ADICIONAL


DescripciónActualizaciones
Punto de entrada:F998BRANU
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 F998BRANU
     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 eliminar 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.33 o superior, siempre y cuando se tengan las rutinas actualizadas a la fecha de la expedición del issue.


05. ASUNTOS RELACIONADOS

  • https://tdn.totvs.com/x/Zq97Jw