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 filtros" en el programa TOTVS Recibos.
Parámetros recibidos: Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | C | Expresión SQL estándar para la consulta (SELECT) que contará los registros a seleccionar. | PARAMIXB[2] | C | Expresió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. Nombre | Tipo | Descripción |
---|
queryNew | C | Retorna 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] | C | Serie del recibo | PARAMIXB[2] | C | Número del recibo |
Retorno: Flag que indica si procede o no la anulación. Nombre | Tipo | Descripción |
---|
aRet[1] | L | Retorna .T. si procede el Anulado/Borrado o .F. si no se permite. | aRet[2] | C | Mensaje 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: Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | C | Serie del recibo | PARAMIXB[2] | C | Número del recibo | PARAMIXB[3] | C | Cliente |
Retorno: Arreglo de configuraciones para agregar a la lista de campos que se pueden visualizar en la lista de recibos. Nombre | Tipo | Descripción |
---|
aRet[1] | C | Título de la columna que se desea agregar en la lista de recibos. | aRet[2] | C | Valor del campo, de cualquier tabla en la DB vinculada a los recibos de cobro. | aRet[3] | L | Mostrar 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 |