Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Nombre del Punto de EntradaDescripción
F998BRLFLT

Tiene el objetivo de que el usuario pueda agregar más filtros a la consulta (Query) de selección de recibos al momento de dar click en "Aplicar filtrosen el programa TOTVS Recibos.


Parámetros recibidos:

Nombre TipoDescripción
PARAMIXB[1]CExpresión SQL estándar para la consulta (SELECT) que contará los registros a seleccionar.
PARAMIXB[2]CExpresión SQL estándar con filtros por campo que se utilizada para filtrar (WHERE) los registros a seleccionar.
PARAMIXB[3]C

Este punto de entrada se ejecuta en dos partes, este parámetro indica el tipo de consulta (expresión SQL para el Query a la base de datos) que se debe retornar:

"complete" - El punto de entrada debe retornar una expresión de consulta (Query) completa, la cual se utiliza para determinar el total de registros que se visualizaran.

"where" - El punto de entrada solo complementa la expresión de condiciones (WHERE) para la selección de registros a visualizar.


Retorno: Expresión SQL.

NombreTipoDescripción
queryNewCRetorna la expresión SQL de la consulta a realizar de acuerdo al tipo de Query; "complete" o "where".


Enlace de documentación y ejemplo:  DT PE F998BRFLT Agregar más filtros al momento de buscar recibos TOTVS Recibo MEX

Ejemplo:

#Include 'Protheus.ch'

User Function F998BRFLT
   Local querySelect := Paramixb[1]
   Local queryWhere := Paramixb[2]
   Local queryOption := Paramixb[3]
   Local whereNew := " AND SEL.EL_RECIBO >= 0040"
   Local queryNew := ""

   IF queryOption == 'complete'
         queryNew := " SELECT " + querySelect + " AS totalreceipts FROM " + RetSqlName("SEL")
         queryNew += +" SEL WHERE " + queryWhere + whereNew
   ELSEIF queryOption == 'where'
         queryNew := queryWhere + whereNew
   ENDIF

RETURN queryNew

F998BRANU

Tiene el objetivo de que el usuario pueda personalizar validaciones para ejecutar la opción de "Anular/Borrar" un recibo de cobro.

Parámetros recibidos:

Nombre Tipo Descripción
PARAMIXB[1]CSerie del recibo
PARAMIXB[2]CNúmero del recibo


Retorno: Flag que indica si procede o no la anulación.

NombreTipoDescripción
aRet[1]LRetorna .T. si procede el Anulado/Borrado o .F. si no se permite.
aRet[2]CMensaje de la causa de rechazo de anulación .

Enlace de documentación y ejemplo: DT PE F998BRANU Pre-validaciones para la anulación de un recibo en TOTVS Recibo MEX

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

F998BRMCOL

Tiene el objetivo de que el usuario pueda indicar campos/columnas que se desean incluir en el GRID de visualización de los recibos desde la opción de "Buscar recibos".


Parámetros recibidos:

NombreTipoDescripción
PARAMIXB[1]CSerie del recibo
PARAMIXB[2]CNúmero del recibo
PARAMIXB[3]CCliente


Retorno: Arreglo de configuraciones para agregar a la lista de campos que se pueden visualizar en la lista de recibos.

NombreTipoDescripción
aRet[1]CTítulo de la columna que se desea agregar en la lista de recibos.
aRet[2]CValor del campo, de cualquier tabla en la DB vinculada a los recibos de cobro.
aRet[3]LMostrar marca de seleccionado en la lista de campos a visualizar: .T. = Sí, .F. = No.
aRet[4]C

Nombre para asignar al campo a visualizar, debe ser con estilo de escritura "camelCase".

Comienza con minúscula, puede tener mayúsculas intermedias, no permite espacios ni signos especiales.

Link documentación y ejemplo: DT PE F998BRMCOL Incluir columnas a visualizar en el GRID de buscar recibos

Ejemplo:

Ejemplo:

#Include 'Protheus.ch'

User Function F998BRMCOL
   Local aCampos := {}
   Local cSerie := Paramixb[1]
   Local cReceipt := Paramixb[2]
   Local cClient := Paramixb[3]
   Local cQueryFields As Character
   Local cQueryWhere As Character
   Local cAlias As Character
   Local cQuery As Character
   Local nCont As Numeric
   Local aAux As Array
   cAlias := GetNextAlias()

   //En el arreglo de aCampos se agregan los campos a visualizar
   //aCampos[1] -> Campo se desea visualizar
   //aCampos[2] -> Título que se desea asignar a este campo para que lo visualice el cliente, ya sea fijo o que se obtenga de la SX3
   //aCampos[3] -> .T. si se desea que este marcado por default y .F. si se desea que no este marcado por default en el GRID
   //aCampos[4] -> Nombre de variable par ael campo, con formato camelCase; ejemplo "valorUnit", en vez de Valor Unitario
   aCampos := {{"FJT_VERSAO","VERSION",.T.,"version"},{"FJT_DTDIGI",GetSx3Cache("FJT_DTDIGI","X3_TITULO"),.T.,"dataDigit"}}

   //Se forman las condicionales de la consulta
   cQueryWhere := " FJT_FILIAL = '"+xFilial("FJT")+"' AND FJT_SERIE = '"+cSerie+"' AND FJT_RECIBO = '"+cReceipt+"' AND FJT_CLIENT = '"+cClient+"' "

   //Se estructura la parte de los campos a obtener
   cQueryFields := " SELECT "
   For nCont := 1 to LEN(aCampos)
      cQueryFields += " "+aCampos[nCont][1]+" "
      If nCont != LEN(aCampos)
         cQueryFields += ","
      EndIf
   Next nCont

   //Se estructura todo el query
   cQuery := cQueryFields + " FROM " + RetSqlName("FJT") + " WHERE " + cQueryWhere

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

   aAux := {}

   //Se asignan los campos deseados al arreglo a retornar
   WHILE (cAlias)->(!EOF())
      AADD( aAux,{aCampos[1][2],(cAlias)->FJT_VERSAO,aCampos[1][3],aCampos[1][4]})
      AADD( aAux,{aCampos[2][2],(cAlias)->FJT_DTDIGI,aCampos[2][3],aCampos[2][4]})
      (cAlias)->(DbSkip())
   END

Return aAux