Nombre del Punto de Entrada | Descripció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 clic 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: 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". |
Este punto de entrada sustituye al "F088FLT" de la rutina Cobros Diversos (FINA087A). Más información: 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 |
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. |
Este punto de entrada sustituye al "F088NP2K" de la rutina Cobros Diversos (FINA087A). Más información: DT PE F998BRMCOL Incluir columnas a visualizar en el GRID de buscar recibos 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 |
F998NRDCOB | Tiene el objetivo de llenar el campo del Cobrador cuando se seleccione el código del cliente. Parámetros recibidos: Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | C | Cliente seleccionado. | PARAMIXB[2] | C | Tienda del cliente seleccionado. |
Retorno: Nombre | Tipo | Descripción |
---|
cCobrador | C | Retorna el Cobrador que será colocado en el box del cobrador. |
Este punto de entrada sustituye al "F087VLCO" de la rutina Cobros Diversos (FINA087A). Más información: DT PE F998NRDCOB Llenar el campo del Cobrador cuando seleccione el código del cliente en Nuevo Recibo Ejemplo: User Function F998NRDCOB() Local cCobrador := "" Local cClient := Paramixb[1] Local cLoja := Paramixb[2] dbselectarea("SAR") ("SAR")->(dbGoTop()) While ("SAR")->(!eof()) If xFilial("SAR")== SAR->AR_FILIAL .AND. cClient == SAR->AR_CODCLI .AND. cLoja == SAR->AR_LOJCLI cCobrador :=AR_CODCOBR EndIf ("SAR")->(dbskip()) EndDo ("SAR")->(dbCloseArea())
Return cCobrador |
F998NRMCOL | Tiene el objetivo de agregar más columnas a visualizar en los títulos financieros en la pantalla de Nuevo Recibo. Parámetros recibidos: Retorno: Arreglo de configuraciones para agregar a la lista de campos que se pueden visualizar en la lista de títulos. Nombre | Tipo | Descripción |
---|
aRet[1] | C | Campo a visualizar en la lista de títulos. | aRet[2] | C | Título de la columna que se desea agregar en la lista de títulos. | aRet[3] | L | Mostrar marca de seleccionado en la lista de campos a visualizar: .T. = Sí, .F. = No. |
Este punto de entrada sustituye al "F087COL" de la rutina Cobros Diversos (FINA087A). Más información: DT PE F998NRMCOL Agregar más columnas en la lista de títulos por cobrar TOTVS Recibo Ejemplo: User Function F998NRMCOL() Local aCampos := {}
Aadd(aCampos, { "E1_DTACRED","Fecha cred",.T.}) Aadd(aCampos, { "E1_TXMOEDA","TX moneda",.T.} Return aCampos
|
F998NRIOFLT | Tiene el objetivo de agregar más filtros en la selección de registros (Query) que se usa en la pantalla de "Agregar otros títulos". Parámetros recibidos: Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | C | Expresión SQL correspondiente al filtro estándar (Where) de selección (Query) de documentos. |
Retorno: Nombre | Tipo | Descripción |
---|
cQuery | C | Expresión SQL del filtro de selección de documentos. Debe retornar la expresión recibida, complementada con los criterios específicos. |
Este punto de entrada sustituye al "F087AFCL" de la rutina Cobros Diversos (FINA087A). Más información: DT PE F998NRIOFLT Agregar más filtros en el query de Agregar otros títulos TOTVS Recibo Ejemplo: User Function F998NRIOFLT()
Local cQuery := Paramixb[1]
cQuery += " AND E1_VALOR < 2000 "
Return cQuery |
F998FLOTIT | Tiene el objetivo de agregar nuevos tipos de títulos a los recibos generados desde la sección de "Nuevo Recibo" Parámetros recibidos: Retorno: Nombre | Tipo | Descripción |
---|
cTipos | C | Cadena que contiene los tipos de títulos adicionales, separados por diagonal ("/"). |
Este punto de entrada sustituye al "A087TIPTI" de la rutina Cobros Diversos (FINA087A). Más información: DT PE F998FLOTIT Agregar otros tipos de títulos a los recibos de cobro en TOTVS recibo Ejemplo: #INCLUDE "Totvs.ch" User Function F998FLOTIT() Local cTipos := "" cTipos += "/CC/CN" Return cTipos |
F998NRG3 | Tiene el objetivo de realizar acciones antes de la generación de Asientos Contables (CT2) y de grabar la tabla de Impuestos/Retenciones (SFE). Parámetros recibidos: Retorno: Este punto de entrada sustituye al "FA087INC" de la rutina de Cobros Diversos (FINA087A). Más información: DT PE F998NRG3 Agregar acciones antes de asientos contables y de grabar tabla de impuestos/retenciones Ejemplo: #Include 'Protheus.ch' User Function F998NRG3() If msgyesno("¿Desea ejecutar el punto de entrada F998NRG3? ", "Confirmar") FINR300() EndIf Return |
F998GSE1 | Tiene el objetivo de actualizar campos creados por el usuario en la tabla de Títulos por Cobrar (SE1), este proceso es realizado antes de finalizar las actualizaciones de la tabla de Títulos por Cobrar. Parámetros recibidos: Retorno: Este punto de entrada sustituye al "F840SE1" de la rutina de Generación de recibos (FINA840). Más información: DT PE F998GSE1 Permite grabar campos creados por el usuario en la tabla de títulos por cobrar Ejemplo: #Include 'Protheus.ch' User Function F998GSE1() SE1->E1_EJEMPLO := .T. Return |
F998MAIL | Tiene el objetivo de actualizar el asunto y el cuerpo del Mail. Parámetros recibidos:
Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | C | Representa la Serie del Recibo | PARAMIXB[2] | C | Representa el Número del Recibo |
Retorno: Nombre | Tipo | Descripción | Obligatorio |
---|
aMail[1] | C | Representa el asunto del corrreo | Si | aMail[2] | C | Representa el cuerpo del correo | Si |
Más información: DT PE F998MAIL Modificar el Asunto y Cuerpo al enviar el Recibo por Mail TOTVS Recibo Ejemplo: #Include 'Protheus.ch' User Function F998MAIL()
Local cserie := Paramixb[1] Local cRecibo := Paramixb[2] Local cAsunto := "" Local cCuerpo := "" Local aMail := {} cAsunto := "XML y PDF" cCuerpo += "Hola usuario" cCuerpo += "<br><br>" cCuerpo += "Anexo los archivos XML y PDF del recibo número "+ " <b>" + cserie + "-" + cRecibo+"</b>" cCuerpo += "<br><br>" cCuerpo += "Saludos" cCuerpo += "<br><br>" cCuerpo += "Empresa SA de CV" AADD (aMail,cAsunto) AADD (aMail,cCuerpo) Return aMail
|
F998IMPREC | Tiene el objetivo de imprimir un recibo en formato PDF personalizado (El recibo en formato PDF debe quedar con el mismo nombre del archivo XML y en la misma ruta, en el caso de que sea enviado por email). Parámetros recibidos: Nombre | Tipo | Descripción |
---|
PARAMIXB[1,1] | C | Nombre del archivo XML ya generado con extensión. | PARAMIXB[1,2] | C | Vacío | PARAMIXB[1,3] | C | Vacío | PARAMIXB[1,4] | A | Array que contiene la información del recibo (Títulos a cobrar y/o compensar) [1] Serie título [2] Número de documento título [3] Fecha del recibo [4] Monto del pago [5] Monto compensación [6] Cliente [7] Tienda | PARAMIXB[1,5] | C | Numero del recibo. | PARAMIXB[1,6] | C | Serie del recibo. |
Más información: DT PE F998IMPREC Formato de impresión para los recibos TOTVS Recibo Ejemplo: #Include 'Protheus.ch' User Function F998IMPREC() Local aRecibos := PARAMIXB Local cDir := &(SuperGetmv( "MV_CFDRECP" , .F. , "GetSrvProfString('startpath','')+'\cfd\recpagos\'" )) Local cName := Replace(aRecibos[1][1], ".xml", ".pdf" ) Local cRuta := "C:\Ambientes\2210\ARG\protheus_data"+cDir // Función para Crear PDF personalizado // U_CreaPDF(cName,cDir)
ShellExecute("Open", cName+".pdf"),"",cRuta,1) //Función para abrir archivo PDF — Esta función ocupa la ruta completa del archivo. Return
IMPORTANTE - El parámetro recibido PARAMIXB[1,1], contiene el nombre del archivo XML ya generado con extensión, este debe de ser usado para generar el nombre del recibo en formato PDF.
Considerar que ambos archivos XML y PDF deben ubicarse en la misma ruta y tener el mismo nombre.
- La ruta para el guardado de los Recibos se configura para México en el parámetro MV_CFDRECP de lo contrario se debe de guardar en la ruta ""\system\cfd\recpagos\",
la cual debe ser referenciada de la siguiente forma: "GetSrvProfString('startpath','')+'\cfd\recpagos\'". En esta ruta se validará la existencia del archivo, si el archivo no se encuentra en esta ruta el sistema alertará que no se encontro el archivo PDF. - El PE F998IMPREC debe de abrir el Archivo PDF creado previamente.
|
FINCMTC | Tiene el objetivo de dar tratamiento a la cadena ingresada en la lectora de cheques para indicar posición y longitud de los datos contenidos en la cadena, retorna un array con 6 valores correspondiente a los campos: - Banco (EF_BANCO).
- Agencia (EF_AGENCIA).
- Código Postal (EF_POSTAL).
- Cheque (EF_NUM) .
- Cuenta (EF_CONTA).
- DV Cuenta
Parámetros recibidos: Nombre | Tipo | Descripción |
---|
PARAMIXB[1,1] | C | Contiene la cadena que se introduce en la ventana de la Lectora de Cheques |
Ejemplo := 0<B240002400240123456789ASDFGHJK Informações |
---|
| La cadena al usar una lectora de Cheques deberá iniciar con un cero y un signo menor que (<), seguido de la cadena de para indicar los campos. 0<B240002400240123456789ASDFGHJK |
Más información: DT PE FINCMTC Personalización de los datos ingresados en la lectora de cheques TOTVS Recibo Ejemplo: #Include 'Protheus.ch' User Function FINCMTC() Local cCmc7 := Paramixb[1] Local nTamBco := 0 As Numeric Local nTamAge := 0 As Numeric Local nTamCta := 0 As Numeric Local nTamChq := 0 As Numeric Local nTamCPo := 0 As Numeric Local aCmc7Tc := {} As Array If nTamBco == 0 nTamBco := TamSX3("EF_BANCO")[1] Endif If nTamAge == 0 nTamAge := TamSX3("EF_AGENCIA")[1] Endif If nTamCta == 0 nTamCta := TamSX3("EF_CONTA")[1] Endif If nTamChq == 0 nTamChq := TamSX3("EF_NUM")[1] Endif If nTamCPo == 0 nTamCPo := TamSX3("EF_POSTAL")[1] Endif //Se agrega al arreglo a retornar una subcadena de la cadena original, configurando la posición inicial de cada campo y su longitud //AADD(Array al que se le agregaran los valores, SUBSTR(cadena de la lectora de cheques, numero editable que indica donde empieza la cadena y por ultimo el tamaño del campo)) Aadd( aCmc7Tc, SubStr(cCmc7, 2, nTamBco)) //Banco Aadd( aCmc7Tc, SubStr(cCmc7, 5, nTamAge)) //Agencia Aadd( aCmc7Tc, SubStr(cCmc7, 10, nTamCPo)) //Codigo Postal Aadd( aCmc7Tc, SubStr(cCmc7, 14, nTamChq)) //Cheque Aadd( aCmc7Tc, SubStr(cCmc7, 20, nTamCta)) //Cuenta Aadd( aCmc7Tc, SubStr(cCmc7, 30, 1) ) //DV Cuenta Return aCmc7Tc IMPORTANTE: Este punto de entrada es opcional de lo contrario la Lectora de cheques tomara las siguientes longitudes Campo | Longitud |
---|
Banco | 3 | Agencia | 3 | Codigo Postal | 4 | Cheque | 8 | Cuenta | 10 | DV Cuenta | 1 |
|
FINLRCHQ | Tiene el objetivo de retornar una cadena de caracteres con el formato de un cheque y ser visualizado en la "Lectora De Cheque". Parámetros recibidos: Más información: 695246_MMI-5510_DT_Punto_de_Entrada_FINLRCHQ_ARG Ejemplo: #Include 'Protheus.ch' User Function FINLRCHQ() Local cChq := ""
cChq := "0<00123456789abcdefghijklmnopqrs" Return cChq |
F998NATVAZ | Tiene el objetivo de personalizar la obligatoriedad del campo Modalidad en el encabezado del recibo y esta supliendo al punto de entrada A087NATVAZ de la rutina FINA087A. Parámetros recibos: Más información: DT PE F998NATVAZ Validación obligatoriedad de campo Modalidad Totvs Recibos PER Ejemplo: #INCLUDE "Totvs.ch" User Function F998NATVAZ() Local lRequired lRequired := .F. // Retorna .T. si el campo Modalidad se requiere como obligatorio , retorna .F. si el campo Modalidad no es obligatorio. Return lRequired |