Histórico da Página
ÍNDICE Índice
01. VISIÓN GENERAL
Se requiere ejecutar la rutina Totvs Recibos (FINA998) a traves través del Modelo de recibos (FINA887) como rutina automática.
02. PROCESO DE IMPLEMENTACIÓN
Para la ejecución de la rutina Totvs Recibo (FINA998) de forma automaticaautomática, es necesario utilizar el modelo definido para recibos (FINA887).
En el modelo de Recibos de Cobro (FINA887), se definen todos los campos de la tablas de Encabezado de recibos (FJT) y Recibos de Cobro (SEL) dependiendo del pais país donde se ejecute.
Ejemplo:
Para la forma de pago algunos de los campos estándar para todos los paises países son los siguientes:
oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , "CSERVI" ) // Código Código del cliente
oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") // // Código Modalidad
oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") // Código tienda
oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) // // Fecha de digitación
oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "TF") // Tipo de forma de pago
Para la forma de pago existe algunos exclusivos de cada paispaís:
oMdlTab:SetValue('SEL_DETAIL',"EL_FORPGO" ,"03") // Campo Forma de Pago para México
oMdlTab:SetValue('SEL_DETAIL',"EL_HRPAGO", "12:00:00") // Campo Hora de pago para México
oMdlTab:SetValue('SEL_DETAIL',"EL_HORA", "11:00:13") // Campo Hora para México
oMdlTab:SetValue('SEL_DETAIL',"EL_ALQIMP1" , 100) // Campo Valor Impuesto 1 usado en Argentina para retenciones.
Informações | ||
---|---|---|
| ||
Es importante que al momento de informar los valores en el modelo, se informen indiquen solo las propiedades que pertenecen al pais país donde se vaya a ejecutar el "Commit" del modelo, ya que si se informan algun algún otro campo que no existe para dicho pais país se detonará error en la ejecución. |
Totvs custom tabs box | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
03. EJEMPLO DE UTILIZACIÓN
A continuación se muestran alguno algunos ejemplos para ejecutar las operaciones de INSERT, DELETE y UPDATE del modelo.
En el modelo de recibos(FINA887), existen los siguientes grid para informar los datos del recibo:
FJT_MASTER - Grid para informar los datos del encabezado(FJT) y configuraciones de preguntas.
Propiedes Propiedades preguntas
GERANCC - Determina si genera RA , .T. - Genera RA | .F. o vacio vacío - No genera RA
DOCUMEN - Para generar saldo - Para México y Perú no es considerado el contenido informado.
ASIENTO - Muestra Asientos. 1- Si, 2 - No.
AGRUPA - Agrupa Asientos. 1- Si, 2 - No.
ONLINE - Asientos Online. 1- Si, 2 - No.
Informações | |||
---|---|---|---|
| |||
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , 1) // Muestra Asientos. 1- Si, 2 - No. Para considerar el valor configurado para el grupo de preguntas de la rutina de Totvs Recibo en la tabla SX1 - Preguntas, es necesario activar el grupo de preguntas "FIN998" de la siguiente manera: // Se activa el grupo de preguntas FIN988 para usar los valores de la tabla de preguntas SXI. Pergunte("FIN998",.F.) oMdlTab:SetValue('FJT_MASTER', "ASIENTOAGRUPA" , MV_PAR011) // ¿Muestra Asientos ? oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , MV_PAR02) // ¿Agrupa Asientos ? Agrupa Asientos. 1- Si, 2 - No. |
MOE_DETAIL - Grid para informar lo recibido y el saldo x cobrar del recibo asi así como las monedas y las tasas usadas en la transacciontransacción.
PropiedesPropiedades
MOEDA- Número de la moneda, por ejemplo para la moneda 1 se informa debe informar "1"
TASA- Tasa de Moneda
RECIBIDO- Monto recibo x cobrar en dicha moneda.
SALDO- Saldo que queda por cobrar en dicha moneda.
SEL_DETAIL - Grid para informar los datos de las formas de pago(tabla SEL).
PropiedesPropiedades
Contiene los campos de la tabla SEL
ADM_DETAIL - Grid para informar el código de la administradora financiera(tabla SAE).
Propiedades
CODE - Código de la Administradora Financiera utilizada para las formas de pago CC - Tarjeta de Crédito.
SE1_DETAIL - Grid para informar los datos de los titulos títulos por cobrar(tabla SE1).
PropiedesPropiedades
Contiene los campos de la tabla SE1
Ejemplos:
Registro de recibo
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "FWEVENTVIEWCONSTS.CH" #INCLUDE 'FINA887.CH' Function F887FINAUTO() Local oMdlTab Local cMsj := "Recibo registrado con exitoéxito." Local cRecibo := "AUTRE2" Local cSerie := " " Local cCliente := "CSERVI" SetFunName("FINA887") // Se define el modelo FINA887 oMdlTab := FwLoadModel("FINA887") // Se define la operación INSERT en el modelo oMdlTab:SetOperation(MODEL_OPERATION_INSERT) // Se activa el modelo oMdlTab:Activate() //Encabezado de recibo - FJT oMdlTab:SetValue('FJT_MASTER', "FJT_FILIAL" , xFilial("FJT")) oMdlTab:SetValue('FJT_MASTER', "FJT_DTDIGI" , dDataBase ) oMdlTab:SetValue('FJT_MASTER', "FJT_RECIBO" , cRecibo ) oMdlTab:SetValue('FJT_MASTER', "FJT_SERIE" , cSerie) oMdlTab:SetValue('FJT_MASTER', "FJT_EMISSA" , dDataBase) oMdlTab:SetValue('FJT_MASTER', "FJT_NATURE" , "COBRO ") oMdlTab:SetValue('FJT_MASTER', "FJT_CLIENT" , cCliente ) oMdlTab:SetValue('FJT_MASTER', "FJT_LOJA" , "01") oMdlTab:SetValue('FJT_MASTER', "FJT_COBRAD" , "") oMdlTab:SetValue('FJT_MASTER', "FJT_RECPRV" ,"") oMdlTab:SetValue('FJT_MASTER', "GERANCC" , "") oMdlTab:SetValue('FJT_MASTER', "DOCUMEN" , "RA") // Se activa el grupo de preguntas FIN988 para usar los valores de la tabla de preguntas SX1. Pergunte("FIN998",.F.) //Contabilidad oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , MV_PAR01)1) // ¿MuestraMuestra Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , MV_PAR02)1) // ¿AgrupaAgrupa Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "ONLINE" , MV_PAR031) //¿Asientos Asientos Online ? . 1- Si, 2 - No. //Monedas oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "1") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 1) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 2820) // Monto total que suman las formas de pago. oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) // Saldo que queda por cobrar entre los titulostítulos x cobrar y las formas de pago. oMdlTab:GetModel('MOE_DETAIL' ):AddLine() oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "2") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 0) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 0) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) // Agregar las formas de pago - Campos de tabla SEL oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente ) oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "TF") oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL")) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "TF") oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "1") oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00") oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_FORPGO" ,"03") oMdlTab:SetValue('SEL_DETAIL',"EL_HRPAGO" ,"12:00:00") oMdlTab:SetValue('SEL_DETAIL',"EL_HORA" ,"11:00:13") oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"TF") oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"TFAU-0000") oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,820) oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"CX1") oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"00001") oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"0000000001") //Para agregar una nueva linea al grid de las formas de pago oMdlTab:GetModel('SEL_DETAIL' ):AddLine() oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente ) oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "EF") oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL")) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "EF") oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "1") oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00") oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_FORPGO" ,"01") oMdlTab:SetValue('SEL_DETAIL',"EL_HRPAGO" ,"12:00:00") oMdlTab:SetValue('SEL_DETAIL',"EL_HORA" ,"11:00:13") oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"EF") oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"EFAUT-0009") oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,2000) oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"CX1") oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"00001") oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"0000000001") //Detalle de los titulos x cobrar - Tabla SE1 oMdlTab:SetValue('SE1_DETAIL',"E1_FILIAL" , xFilial("SE1")) oMdlTab:SetValue('SE1_DETAIL',"E1_PREFIXO" , "A" ) oMdlTab:SetValue('SE1_DETAIL',"E1_NUM" ,"00000000000000000188" ) oMdlTab:SetValue('SE1_DETAIL',"E1_PARCELA" , "A") oMdlTab:SetValue('SE1_DETAIL',"E1_TIPO" , "NF") oMdlTab:SetValue('SE1_DETAIL',"E1_CLIENTE" , "CSERVI"cCliente) oMdlTab:SetValue('SE1_DETAIL',"E1_LOJA" , "01") oMdlTab:SetValue('SE1_DETAIL',"E1_DESCONT" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_MULTA" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_JUROS" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_SALDO" , 2320) oMdlTab:SetValue('SE1_DETAIL',"BAIXAR" , 2320) oMdlTab:SetValue('SE1_DETAIL',"RECNO" , 239) oMdlTab:SetValue('SE1_DETAIL',"E1_MOTIVO" , "NOR") //Para agregar una nueva linea al grid de titulos x cobrar oMdlTab:GetModel('SE1_DETAIL' ):AddLine() oMdlTab:SetValue('SE1_DETAIL',"E1_FILIAL" , xFilial("SE1")) oMdlTab:SetValue('SE1_DETAIL',"E1_PREFIXO" , "A" ) oMdlTab:SetValue('SE1_DETAIL',"E1_NUM" ,"00000000000000000189" ) oMdlTab:SetValue('SE1_DETAIL',"E1_PARCELA" , "A") oMdlTab:SetValue('SE1_DETAIL',"E1_TIPO" , "NF") oMdlTab:SetValue('SE1_DETAIL',"E1_CLIENTE" , "CSERVI"cCliente) oMdlTab:SetValue('SE1_DETAIL',"E1_LOJA" , "01") oMdlTab:SetValue('SE1_DETAIL',"E1_DESCONT" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_MULTA" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_JUROS" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_SALDO" , 1160) oMdlTab:SetValue('SE1_DETAIL',"BAIXAR" , 500) oMdlTab:SetValue('SE1_DETAIL',"RECNO" , 240) oMdlTab:SetValue('SE1_DETAIL',"E1_MOTIVO" , "NOR") oMdlTab:SetValue('FAC_DETAIL','FACTOR',"2") // Factoraje financiero, 1 - Indica que es una operación de factoraje | 2 - No es operación de factoraje oMdlTab:SetValue('GEN_DETAIL',"HOURSAVERECEIPT" , "09:00:13" ) // Hora de guardado del recibo. //Se ejecuta el commit If oMdlTab:VldData() // Se detonan las validaciones del modelo // Si pasa las validaciones, se ejecutara el CommitData del modelo para guardar los datos. oMdlTab:CommitData() Endif // En caso de usar número consecutivos en el recibo If !Empty(GetSx3Cache("EL_RECIBO","X3_RELACAO")) If Alltrim(cRecibo) <> Alltrim(InitPad(GetSX3Cache("EL_RECIBO","X3_RELACAO"))) RollBackSX8() EndIf EndIf // Se obtienen los errores del modelo aError := oMdlTab:GetErrorMessage() If alltrim(aError[76]) <> "" cMsj := aError[76] Endif CONOUT("Mensaje de proceso: "+cMsj) oMdlTab:DeActivate() Return |
Borrado de recibo
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "FWEVENTVIEWCONSTS.CH" #INCLUDE 'FINA887.CH' Function F887FINAUTO() Local oMdlTab Local cMsj := "Recibo borrado con exitoéxito." Local cRecibo := "AUTRE2" Pergunte("FIN088",.F.) SetMVValue("FIN088","MV_PAR04", 2) //MostraMuestra asientos contables - 1 = Si / 2 = No SetMVValue("FIN088","MV_PAR05", 2) //Agrupa asientos contables - 1 = Si / 2 = No oMdlTab := FwLoadModel("FINA887") DbSelectArea("FJT") FJT->(DbSetOrder(2)) If FJT->(MsSeek(xFilial("FJT")+"AUTRE2" cRecibo,.T.)) oMdlTab:SetOperation(MODEL_OPERATION_DELETE) oMdlTab:Activate() If oMdlTab:VldData() oMdlTab:CommitData() Endif EndIf aError := oMdlTab:GetErrorMessage() If alltrim(aError[76]) <> "" cMsj := aError[76] Endif CONOUT("Mensaje de proceso: "+cMsj) oMdlTab:DeActivate() Return |
Anulación de recibo
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "FWEVENTVIEWCONSTS.CH" #INCLUDE 'FINA887.CH' Function F887FINAUTO() Local oMdlTab Local cMsj := "Recibo borrado con exitoéxito." Local cSerie := " " Local cRecibo := "COMP03" oMdlTab := FwLoadModel("FINA887") If FJT->(MsSeek(xFilial("FJT")+cSerie+cRecibo,.T.)) oMdlTab:SetOperation(MODEL_OPERATION_UPDATE) oMdlTab:Activate() Pergunte("FIN998",.F.) //Contabilidad oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , MV_PAR011) // ¿Muestra Muestra Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , MV_PAR021) // ¿AgrupaAgrupa Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "ONLINE" , MV_PAR03)1) //¿Asientos Asientos Online ? . 1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "FJT_CANCEL" , "1") // Motivo de cancelación - Solo aplica para México oMdlTab:SetValue('SEL_DETAIL',"EL_TIPAGRO" ,"02") If oMdlTab:VldData() oMdlTab:CommitData() Endif aError := oMdlTab:GetErrorMessage() If alltrim(aError[76]) <> "" cMsj := aError[76] Endif CONOUT("Mensaje de proceso: "+cMsj) //Solución: oMdlTab:DeActivate() Endif Return |
Generación de Anticipos
Para la generacipon generación de un pago anticipado(RA), es necesario informar las siguientes propiedades:
GERANCC - Propiedad para definir si se va a generar el anticipo. "S" - Genera RA | "N" o vacío - No genera RA
DOCUMEN - Propiedad que define el documento que se va a generar. Por ejemplo "RA".
GERANCC
DOCUMEN
Ejemplo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "FWEVENTVIEWCONSTS.CH" #INCLUDE 'FINA887.CH' Function F887FINAUTO() Local oMdlTab Local cCRLF := (chr(10)+chr(13)) Local cMsj := "Recibo registrado con exitoéxito." + cCRLF Local cRecibo := "RARC01" Local cSerie := " " Local cCliente := "CSERVI" SetFunName("FINA887") oMdlTab := FwLoadModel("FINA887") oMdlTab:SetOperation(MODEL_OPERATION_INSERT) oMdlTab:Activate() //Encabezado - FJT oMdlTab:SetValue('FJT_MASTER', "FJT_FILIAL" , xFilial("FJT")) // FILIAL oMdlTab:SetValue('FJT_MASTER', "FJT_DTDIGI" , dDataBase ) oMdlTab:SetValue('FJT_MASTER', "FJT_RECIBO" , cRecibo) oMdlTab:SetValue('FJT_MASTER', "FJT_SERIE" , cSerie) oMdlTab:SetValue('FJT_MASTER', "FJT_EMISSA" , dDataBase) oMdlTab:SetValue('FJT_MASTER', "FJT_NATURE" , "COBRO ") oMdlTab:SetValue('FJT_MASTER', "FJT_CLIENT" , cCliente) oMdlTab:SetValue('FJT_MASTER', "FJT_LOJA" , "01") oMdlTab:SetValue('FJT_MASTER', "FJT_COBRAD" , "") oMdlTab:SetValue('FJT_MASTER', "FJT_RECPRV" ,"") oMdlTab:SetValue('FJT_MASTER', "GERANCC" , "S") // Para generación de RA, S - Genera RA | N o vaciovacío - No genera RA oMdlTab:SetValue('FJT_MASTER', "DOCUMEN" , "RA") Pergunte("FIN998",.F.) //Contabilidad oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , MV_PAR011) // ¿Muestra Muestra Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , MV_PAR021) // ¿AgrupaAgrupa Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "ONLINE" , MV_PAR031) //¿Asientos Asientos Online. ?1- Si, 2 - No. //Monedas oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "1") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 1) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 1000) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 1000 ) oMdlTab:GetModel('MOE_DETAIL' ):AddLine() oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "2") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 0) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 0) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) // Agregar la forma de pago oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente ) oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "TF") oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL")) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "TF") oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "1") oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00") oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_FORPGO" ,"03") oMdlTab:SetValue('SEL_DETAIL',"EL_HRPAGO" ,"12:30:00") oMdlTab:SetValue('SEL_DETAIL',"EL_HORA" ,"12:30:00") oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"TF") oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"RA00002-0000") oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,1000) oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"CX1") oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"00001") oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"0000000001") //Operación de factoraje oMdlTab:SetValue('FAC_DETAIL','FACTOR',"2") oMdlTab:SetValue('GEN_DETAIL',"HOURSAVERECEIPT" , "12:30:00" ) //Se ejecuta el commit If oMdlTab:VldData() oMdlTab:CommitData() Endif aError := oMdlTab:GetErrorMessage() If alltrim(aError[76]) <> "" cMsj := aError[76] Endif CONOUT("Mensaje de proceso: "+cMsj) oMdlTab:DeActivate() Return |
Procesos
...
específicos para México
Factoraje Financiero
Para realizar una operación de factoraje es importante informar las siguientes propiedades en el modelo:
- EL_FACTOR - Propiedad que define si se trata de una operación de factoraje. "1" - Es operación de factoraje, "2" - No es operación de factoraje.
- FACTOR - Propiedad que define si se trata de una operación de factoraje. "1" - Es operación de factoraje, "2" - No es operación de factoraje.
- VALUE - Valor correspondiente a la compensación realizada desde rutina Compensación entre carteras (tabla SE5).
- RECNO - Número de registro de la compensación en la tabla SE5 - Movimientos bancarios.
Para más información consultar el siguiente enlace: DT Recibo de cobro por factoraje TOTVS Recibo MEX
Ejemplo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
//Operación de factoraje oMdlTab:SetValue('SEL_DETAIL','EL_FACTOR' , "1") // Informar 1 para indicar que es operación de factoraje oMdlTab:SetValue('FAC_DETAIL','FACTOR',"1") // Informar 1 para indicar que es operación de factoraje oMdlTab:SetValue('FAC_DETAIL','VALUE',1500) // Valor correspondiente a la compensación realizada desde rutina Compensación entre carteras. oMdlTab:SetValue('COM_DETAIL','RECNO',478) // Número de registro en la tabla Movimientos Bancarios. |
Timbrado de recibo de cobro
El timbrado de un recibo de cobro se realiza por medio de la rutina CFDI Complemento de recepción de pagos(FISA815). Se puede realizar despues después del guardado de un recibo o con un recibo ya previamente registrado.
La rutina CFDI Complemento de recepción de pagos(FISA815) recibe un nuevo parametro parámetro de tipo JSON, con las siguientes propiedades:
jData['origin'] - Rutina origen la cual debe ser "FINA998"
jData['imppdf'] - Propiedad que define si se imprime recibo o no, .T. - se imprime recibo , .F. - No imprime
jData['sendemail'] - Propiedad que define si el recibo se enviara por correo, .T. - Se enviara por correo, .F. - No se enviará.
jData['email'] - Propiedad que define al correo donde se enviará el recibo.
jData['emailcc'] - Propiedad que define el correo con copia al cual se enviará el recibo
jData['serie'] - Serie del recibo
jData['recibo'] - Número de recibo
jData['cliente'] - Cliente del recibo utilizada en la funcion función validar los titulos títulos que contiene el recibo y ver si puede ser timbrado(función validTitles)
jData['filial'] - Filial del recibo (tabla SEL)
jData['client'] - Cliente del recibo
Para más información sobre el proceso de Generación de Complemento de recepción de pago consultar el siguiente enlace: DT Complemento de Recepción de Pago V 2.0 del CFDI 4.0
Informações | ||
---|---|---|
| ||
Para generar recibos con serie, es necesario contar con el parámetro MV_ | ||
Informações | ||
| ||
Para generar recibos con serie, es necesario contar con el parámetro MV_SERREC igual a ".T." y a su vez obtener el número consetivo consecutivo de la tabla SX5 o en su defecto informarlo de forma directa, cuidando que la númeración numeración sea la correcta. Ejemplo para obtener el consecutivo del recibo de la tabla SX5: DbSelectArea("SX5") |
Ejemplo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "FWEVENTVIEWCONSTS.CH" #INCLUDE 'FINA887.CH' Function F887FINAUTO() Local oMdlTab Local cCRLF := (chr(10)+chr(13)) Local cMsj := "Recibo registrado con exitoéxito." + cCRLF Local cRecibo := "CFGIAU" Local cSerie := " " Local cCliente := "CSERVI" Local jData := JsonObject():New() // Objeto Json que contiene la información del recibo a timbrar y algunas configuraciones. Local aResTmp := {} // Arreglo para guardar los errores del timbrado Local nY := 0 SetFunName("FINA887") oMdlTab := FwLoadModel("FINA887") oMdlTab:SetOperation(MODEL_OPERATION_INSERT) oMdlTab:Activate() //Encabezado - FJT oMdlTab:SetValue('FJT_MASTER', "FJT_FILIAL" , xFilial("FJT")) // FILIAL oMdlTab:SetValue('FJT_MASTER', "FJT_DTDIGI" , dDataBase ) oMdlTab:SetValue('FJT_MASTER', "FJT_RECIBO" , cRecibo) oMdlTab:SetValue('FJT_MASTER', "FJT_SERIE" , cSerie) oMdlTab:SetValue('FJT_MASTER', "FJT_EMISSA" , dDataBase) oMdlTab:SetValue('FJT_MASTER', "FJT_NATURE" , "COBRO ") oMdlTab:SetValue('FJT_MASTER', "FJT_CLIENT" , cCliente) oMdlTab:SetValue('FJT_MASTER', "FJT_LOJA" , "01") oMdlTab:SetValue('FJT_MASTER', "FJT_COBRAD" , "") oMdlTab:SetValue('FJT_MASTER', "FJT_RECPRV" ,"") oMdlTab:SetValue('FJT_MASTER', "GERANCC" , "") oMdlTab:SetValue('FJT_MASTER', "DOCUMEN" , "RA") Pergunte("FIN998",.F.) //Contabilidad oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , MV_PAR011) // ¿MuestraMuestra Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , MV_PAR021) // ¿AgrupaAgrupa Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "ONLINE" , MV_PAR031) //¿Asientos Asientos Online. ?1- Si, 2 - No. //Monedas oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "1") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 1) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 1110) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) oMdlTab:GetModel('MOE_DETAIL' ):AddLine() oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "2") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 0) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 0) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) // Agregar la forma de pago oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente ) oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "TF") oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL")) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "TF") oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "1") oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00") oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_FORPGO" ,"03") oMdlTab:SetValue('SEL_DETAIL',"EL_HRPAGO" ,"12:00:00") oMdlTab:SetValue('SEL_DETAIL',"EL_HORA" ,"11:00:13") oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"TF") oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"TFAUTO-0000") oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,440) oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"CX1") oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"00001") oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"0000000001") oMdlTab:GetModel('SEL_DETAIL' ):AddLine() oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente ) oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "EF") oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL")) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "EF") oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "1") oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00") oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_FORPGO" ,"01") oMdlTab:SetValue('SEL_DETAIL',"EL_HRPAGO" ,"12:00:00") oMdlTab:SetValue('SEL_DETAIL',"EL_HORA" ,"11:00:13") oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"EF") oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"EFAUT-0009") oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,670) oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"CX1") oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"00001") oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"0000000001") //Detalle de los titulos oMdlTab:SetValue('SE1_DETAIL',"E1_FILIAL" , xFilial("SE1")) oMdlTab:SetValue('SE1_DETAIL',"E1_PREFIXO" , "A" ) oMdlTab:SetValue('SE1_DETAIL',"E1_NUM" ,"00000000000000000191" ) oMdlTab:SetValue('SE1_DETAIL',"E1_PARCELA" , "A") oMdlTab:SetValue('SE1_DETAIL',"E1_TIPO" , "NF") oMdlTab:SetValue('SE1_DETAIL',"E1_CLIENTE" , cCliente) oMdlTab:SetValue('SE1_DETAIL',"E1_LOJA" , "01") oMdlTab:SetValue('SE1_DETAIL',"E1_DESCONT" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_MULTA" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_JUROS" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_SALDO" , 1160) oMdlTab:SetValue('SE1_DETAIL',"BAIXAR" , 660) oMdlTab:SetValue('SE1_DETAIL',"RECNO" , 243) oMdlTab:SetValue('SE1_DETAIL',"E1_MOTIVO" , "NOR") oMdlTab:GetModel('SE1_DETAIL' ):AddLine() oMdlTab:SetValue('SE1_DETAIL',"E1_FILIAL" , xFilial("SE1")) oMdlTab:SetValue('SE1_DETAIL',"E1_PREFIXO" , "A" ) oMdlTab:SetValue('SE1_DETAIL',"E1_NUM" ,"00000000000000000189" ) oMdlTab:SetValue('SE1_DETAIL',"E1_PARCELA" , "A") oMdlTab:SetValue('SE1_DETAIL',"E1_TIPO" , "NF") oMdlTab:SetValue('SE1_DETAIL',"E1_CLIENTE" , cCliente) oMdlTab:SetValue('SE1_DETAIL',"E1_LOJA" , "01") oMdlTab:SetValue('SE1_DETAIL',"E1_DESCONT" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_MULTA" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_JUROS" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_SALDO" , 1160) oMdlTab:SetValue('SE1_DETAIL',"BAIXAR" , 450) oMdlTab:SetValue('SE1_DETAIL',"RECNO" , 244) oMdlTab:SetValue('SE1_DETAIL',"E1_MOTIVO" , "NOR") oMdlTab:SetValue('FAC_DETAIL','FACTOR',"2") oMdlTab:SetValue('GEN_DETAIL',"HOURSAVERECEIPT" , "09:00:13" ) //Se ejecuta el commit If oMdlTab:VldData() oMdlTab:CommitData() Endif //Se obtienen los errores del modelo aError := oMdlTab:GetErrorMessage() If alltrim(aError[76]) <> "" cMsj := aError[76] else // Si no hubo errores al grabar recibo se procede con el timbrado jData['origin'] := "FINA998" jData['imppdf'] := .F. jData['sendemail'] := .F. jData['email'] := "" jData['emailcc'] := "" jData['serie'] := cSerie jData['recibo'] := cRecibo jData['cliente'] := cCliente jData['filial'] := xFilial("SEL") jData['client'] := cCliente // Se validan los titulos que contiene el recibo de cobro. If validTitles(jData) //Timbrado de recibo de cobro FISA815(cRecibo, cSerie,,,@aResTmp,jData) // Ciclo para concatenar la respuesta del timbrado. For nY := 1 To Len(aResTmp) cMsj += aResTmp[nY][3] + cCRLF Next nY Endif Endif CONOUT("Mensaje de proceso: "+cMsj) oMdlTab:DeActivate() Return |
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "FWEVENTVIEWCONSTS.CH" #INCLUDE 'FINA887.CH' Function F887FINAUTO() Local cCRLF := (chr(10)+chr(13)) // Salto de linealínea Local cMsj := "Recibo registrado con exitoéxito." + cCRLF Local cRecibo := "CFGIAU" Local cSerie := " " Local cCliente := "CSERVI" Local jData := JsonObject():New() // Objeto Json que contiene la información del recibo a timbrar y algunas configuraciones. Local aResTmp := {} // Arreglo para guardar los errores del timbrado Local nY := 0 jData['origin'] := "FINA998" jData['imppdf'] := .F. jData['sendemail'] := .F. jData['email'] := "" jData['emailcc'] := "" jData['serie'] := cSerie jData['recibo'] := cRecibo jData['cliente'] := cCliente jData['filial'] := xFilial("SEL") jData['client'] := cCliente // Se validan los titulos que contiene el recibo de cobro. If validTitles(jData) //Timbrado de recibo de cobro FISA815(cRecibo, cSerie,,,@aResTmp,jData) // Ciclo para concatenar la respuesta del timbrado. For nY := 1 To Len(aResTmp) cMsj += aResTmp[nY][3] + cCRLF Next nY Endif CONOUT("Mensaje de proceso: "+cMsj) oMdlTab:DeActivate() Return |
Recibo con recibo sustituto
Para generar un recibo que contiene un recibo de cobro relacionado, previamente anulado con motivo 01 - Comprobante emitido con errores con relación se deben informar las siguientes propiedades:
Bloco de código | ||||
---|---|---|---|---|
| ||||
//Agregar recibo sustituto oMdlTab:SetValue('SEL_DETAIL',"EL_SERSUS" , cSerieS ) oMdlTab:SetValue('SEL_DETAIL',"EL_RECSUS" , cReciboS ) |
Recibo de cobro de tipo compensación
Para generar un recibo de cobro de tipo Compensación se deben informar las siguientes propiedades en el modelo:
- EL_IDENTEE - Identificador de la compensación generada por medio de la rutina Compensación entre carteras(campo E5_IDENTEE).
- EL_FCHIDEN - Fecha de la compensación generada por medio de la rutina Compensación entre carteras (campo E5_DATA).
Para más información del proceso consultar le siguiente enlace: DT Recibo de cobro por compensaciones - TOTVS Recibo MEX
Ejemplo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "FWEVENTVIEWCONSTS.CH" #INCLUDE 'FINA887.CH' Function F887FINAUTO() Local oMdlTab Local cCRLF := (chr(10)+chr(13)) Local cMsj := "Recibo registrado con exitoéxito." + cCRLF Local cRecibo := "COMP09" Local cSerie := " " Local cReciboS := "" Local cSerieS := " " Local cMotC := "" Local cCliente := "CSERVI" Local jData := JsonObject():New() Local aResTmp := {} Local nY := 0 SetFunName("FINA887") oMdlTab := FwLoadModel("FINA887") oMdlTab:SetOperation(MODEL_OPERATION_INSERT) oMdlTab:Activate() //Encabezado - FJT oMdlTab:SetValue('FJT_MASTER', "FJT_FILIAL" , xFilial("FJT")) // FILIAL oMdlTab:SetValue('FJT_MASTER', "FJT_DTDIGI" , dDataBase ) oMdlTab:SetValue('FJT_MASTER', "FJT_RECIBO" , cRecibo) oMdlTab:SetValue('FJT_MASTER', "FJT_SERIE" , cSerie) oMdlTab:SetValue('FJT_MASTER', "FJT_EMISSA" , dDataBase) oMdlTab:SetValue('FJT_MASTER', "FJT_NATURE" , "COBRO ") oMdlTab:SetValue('FJT_MASTER', "FJT_CLIENT" , cCliente) oMdlTab:SetValue('FJT_MASTER', "FJT_LOJA" , "01") oMdlTab:SetValue('FJT_MASTER', "FJT_COBRAD" , "") oMdlTab:SetValue('FJT_MASTER', "FJT_RECPRV" ,"") oMdlTab:SetValue('FJT_MASTER', "GERANCC" , "") oMdlTab:SetValue('FJT_MASTER', "DOCUMEN" , "RA") Pergunte("FIN998",.F.) //Contabilidad oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , MV_PAR011) // ¿MuestraMuestra Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , MV_PAR021) // ¿AgrupaAgrupa Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "ONLINE" , MV_PAR031) //¿Asientos Asientos Online ? . 1- Si, 2 - No. //Monedas oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "1") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 1) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 500 ) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) oMdlTab:GetModel('MOE_DETAIL' ):AddLine() oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "2") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 0) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 0) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) //Agregar forma de pago tipo CO oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente ) oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "CO") oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL")) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "CO") oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "1") oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"3") oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00") oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_HRPAGO" ,"12:00:00") oMdlTab:SetValue('SEL_DETAIL',"EL_HORA" ,"12:00:13") oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"CO") oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"COMP00-0009") oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,500) oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"CX1") oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"00001") oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"0000000001") oMdlTab:SetValue('SEL_DETAIL',"EL_FORPGO" ,"17") // Forma de pago 17 - Compensación oMdlTab:SetValue('FAC_DETAIL','FACTOR',"2") // Recibo por compensaciones oMdlTab:SetValue('SEL_DETAIL',"EL_IDENTEE" , "000002") // Código de la compensación oMdlTab:SetValue('SEL_DETAIL',"EL_FCHIDEN" , STOD("20221229")) // Fecha en que se realizo la compensación. oMdlTab:SetValue('GEN_DETAIL',"HOURSAVERECEIPT" , "12:00:13" ) //Se ejecuta el commit If oMdlTab:VldData() oMdlTab:CommitData() Endif // Se obtienen los errores del modelo aError := oMdlTab:GetErrorMessage() If alltrim(aError[76]) <> "" cMsj := aError[76] else // Si no hubo errores al grabar recibo se procede con el timbrado jData['origin'] := "FINA998" jData['imppdf'] := .T. jData['sendemail'] := .F. jData['email'] := "" jData['emailcc'] := "" jData['serie'] := cSerie jData['recibo'] := cRecibo jData['cliente'] := cCliente jData['filial'] := xFilial("SEL") jData['client'] := cCliente FISA815(cRecibo, cSerie,,,@aResTmp,jData,cSerieS,cReciboS,cMotC) // Ciclo para concatenar la respuesta del timbrado. For nY := 1 To Len(aResTmp) cMsj += aResTmp[nY][3] + cCRLF Next nY Endif CONOUT("Mensaje de proceso: "+cMsj) oMdlTab:DeActivate() Return |
Procesos
...
específicos para Argentina | Uruguay
Diferencia cambiaria
Para la generación de diferencia de cambio se requiere contar con la siguiente configuración descrita en el siguiente enlace: DT Activación de Diferencia Cambiaria para TOTVS Recibos URU y ARG
informar el parámetro MV_DIFCAMR igual a "S". A continuación se presenta un ejemplo para realizar la diferencia de cambio a traves través del modelo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "FWEVENTVIEWCONSTS.CH" #INCLUDE 'FINA887.CH' Function F887FINAUTO() Local oMdlTab Local cCRLF := (chr(10)+chr(13)) Local cMsj := "Recibo registrado con exitoéxito." + cCRLF Local cRecibo := "000000000052" Local cSerie := "A " Local cCliente := "M14011" Local aResTmp := {} Local nY := 0 SetFunName("FINA887") oMdlTab := FwLoadModel("FINA887") oMdlTab:SetOperation(MODEL_OPERATION_INSERT) oMdlTab:Activate() //Encabezado - FJT oMdlTab:SetValue('FJT_MASTER', "FJT_FILIAL" , xFilial("FJT")) // FILIAL oMdlTab:SetValue('FJT_MASTER', "FJT_DTDIGI" , dDataBase ) oMdlTab:SetValue('FJT_MASTER', "FJT_RECIBO" , cRecibo) oMdlTab:SetValue('FJT_MASTER', "FJT_SERIE" , cSerie) oMdlTab:SetValue('FJT_MASTER', "FJT_EMISSA" , dDataBase) oMdlTab:SetValue('FJT_MASTER', "FJT_NATURE" , "COBRO ") oMdlTab:SetValue('FJT_MASTER', "FJT_CLIENT" , cCliente) oMdlTab:SetValue('FJT_MASTER', "FJT_LOJA" , "01") oMdlTab:SetValue('FJT_MASTER', "FJT_COBRAD" , "") oMdlTab:SetValue('FJT_MASTER', "FJT_RECPRV" ,"") oMdlTab:SetValue('FJT_MASTER', "GERANCC" , "") oMdlTab:SetValue('FJT_MASTER', "DOCUMEN" , "RA") Pergunte("FIN998",.F.) //Contabilidad oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , MV_PAR011) // ¿MuestraMuestra Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , MV_PAR021) // ¿AgrupaAgrupa Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "ONLINE" , MV_PAR031) //¿Asientos Asientos Online ? . 1- Si, 2 - No. //Monedas oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "1") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 1) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 0) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) oMdlTab:GetModel('MOE_DETAIL' ):AddLine() oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "2") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 25.0000) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 1000) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) // Agregar la forma de pago oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente ) oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "TF") oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL")) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "TF") oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "2") oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"") oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"") oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00") oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"TF") oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"DIF-0000") oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,600) oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"030") oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"0002 ") oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"124681012 ") oMdlTab:GetModel('SEL_DETAIL' ):AddLine() oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente ) oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "EF") oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL")) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "EF") oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "2") oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"") oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"") oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00") oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"EF") oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"DIF-0009") oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,400) oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"030") oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"0002 ") oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"124681012 ") //Detalle de los titulos oMdlTab:SetValue('SE1_DETAIL',"E1_FILIAL" , xFilial("SE1")) oMdlTab:SetValue('SE1_DETAIL',"E1_PREFIXO" , "A" ) oMdlTab:SetValue('SE1_DETAIL',"E1_NUM" ,"NF135850600B" ) oMdlTab:SetValue('SE1_DETAIL',"E1_PARCELA" , " ") oMdlTab:SetValue('SE1_DETAIL',"E1_TIPO" , "NF") oMdlTab:SetValue('SE1_DETAIL',"E1_CLIENTE" , cCliente) oMdlTab:SetValue('SE1_DETAIL',"E1_LOJA" , "01") oMdlTab:SetValue('SE1_DETAIL',"E1_DESCONT" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_MULTA" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_JUROS" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_SALDO" , 1000) oMdlTab:SetValue('SE1_DETAIL',"BAIXAR" , 1000) oMdlTab:SetValue('SE1_DETAIL',"RECNO" , 303) oMdlTab:SetValue('SE1_DETAIL',"E1_MOTIVO" , "NOR") oMdlTab:SetValue('FAC_DETAIL','FACTOR',"2") oMdlTab:SetValue('GEN_DETAIL',"HOURSAVERECEIPT" , "12:00:13" ) //Se ejecuta el commit If oMdlTab:VldData() oMdlTab:CommitData() Endif aError := oMdlTab:GetErrorMessage() If alltrim(aError[76]) <> "" cMsj := aError[76] Endif CONOUT("Mensaje de proceso: "+cMsj) oMdlTab:DeActivate() Return |
Configuración de diferencia de cambio de cuentas por cobrar: DT Activación de Diferencia Cambiaria para TOTVS Recibos URU y ARG
Procesos
...
específicos para Paraguay
Recibos de cobro con retenciones.
Para generar un recibo que contenga retenciones es necesario informar las siguientes propiedades del modelo:
Para Argentina:
EL_ALQIMP1 - Tasa de la retención
EL_VALIMP1 - Valor de la retención
RG - Renteción Retención de Ganancias, RI - Retención IVA, RB - Retención Ing. Brutos, RM - Retención Municipal
EL_PROVIN - Provincia
EL_CFO - Código Fiscal
RG - Retención de Ganancias
EL_AGREGAN - Act. para retencion retención de IG
RM - Retención Municipal
EL_RET_MUN - Cód. Ret Municipal
EL_EST - Estado
RS- Retención SUSS
EL_CONCSUS - Concepto de SUSS
EL_SIRESEG - Código Segur. SIRE
EL_SIRECER - Número certificado SIRE
Para Perú
EL_DOCTO - Número de Título para retención
EL_SDOCTO- Serie de Título para retención
EL_SERRET - Serie para Certificado de retención
Para Paraguay
EL_DOCTO - Número de Título para retención
EL_SDOCTO- Serie de Título para retención
EL_ALQIMP1 - Tasa de la retención
EL_VALIMP1 - Valor de la retención
EL_CFO - Código Fiscal
Ejemplo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "FWEVENTVIEWCONSTS.CH" #INCLUDE 'FINA887.CH' Function F887FINAUTO() Local oMdlTab Local cCRLF := (chr(10)+chr(13)) Local cMsj := "Recibo registrado con exitoéxito." + cCRLF Local cRecibo := "000000000052" Local cSerie := "A " Local cCliente := "M14011" Local aResTmp := {} Local nY := 0 SetFunName("FINA887") oMdlTab := FwLoadModel("FINA887") oMdlTab:SetOperation(MODEL_OPERATION_INSERT) oMdlTab:Activate() //Encabezado - FJT oMdlTab:SetValue('FJT_MASTER', "FJT_FILIAL" , xFilial("FJT")) // FILIAL oMdlTab:SetValue('FJT_MASTER', "FJT_DTDIGI" , dDataBase ) oMdlTab:SetValue('FJT_MASTER', "FJT_RECIBO" , cRecibo) oMdlTab:SetValue('FJT_MASTER', "FJT_SERIE" , cSerie) oMdlTab:SetValue('FJT_MASTER', "FJT_EMISSA" , dDataBase) oMdlTab:SetValue('FJT_MASTER', "FJT_NATURE" , "COBRO ") oMdlTab:SetValue('FJT_MASTER', "FJT_CLIENT" , cCliente) oMdlTab:SetValue('FJT_MASTER', "FJT_LOJA" , "01") oMdlTab:SetValue('FJT_MASTER', "FJT_COBRAD" , "") oMdlTab:SetValue('FJT_MASTER', "FJT_RECPRV" ,"") oMdlTab:SetValue('FJT_MASTER', "GERANCC" , "") oMdlTab:SetValue('FJT_MASTER', "DOCUMEN" , "RA") Pergunte("FIN998",.F.) //Contabilidad oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , MV_PAR011) // ¿Muestra Muestra Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , MV_PAR021) // ¿AgrupaAgrupa Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "ONLINE" , MV_PAR031) //¿Asientos Asientos Online ? . 1- Si, 2 - No. //Monedas oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "1") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 1) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 0) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) oMdlTab:GetModel('MOE_DETAIL' ):AddLine() oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "2") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 25.0000) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 1000) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) // Agregar la forma de pago oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente ) oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "TF") oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL")) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "TF") oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "2") oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"") oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"") oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00") oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"TF") oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"DIF-0000") oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,600) oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"030") oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"0002 ") oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"124681012 ") oMdlTab:GetModel('SEL_DETAIL' ):AddLine() oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente ) oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "EF") oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL")) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "EF") oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "2") oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"") oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"") oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00") oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"EF") oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"DIF-0009") oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,400) oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"030") oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"0002 ") oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"124681012 ") //Detalle de los titulos oMdlTab:SetValue('SE1_DETAIL',"E1_FILIAL" , xFilial("SE1")) oMdlTab:SetValue('SE1_DETAIL',"E1_PREFIXO" , "A" ) oMdlTab:SetValue('SE1_DETAIL',"E1_NUM" ,"NF135850600B" ) oMdlTab:SetValue('SE1_DETAIL',"E1_PARCELA" , " ") oMdlTab:SetValue('SE1_DETAIL',"E1_TIPO" , "NF") oMdlTab:SetValue('SE1_DETAIL',"E1_CLIENTE" , cCliente) oMdlTab:SetValue('SE1_DETAIL',"E1_LOJA" , "01") oMdlTab:SetValue('SE1_DETAIL',"E1_DESCONT" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_MULTA" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_JUROS" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_SALDO" , 1000) oMdlTab:SetValue('SE1_DETAIL',"BAIXAR" , 1000) oMdlTab:SetValue('SE1_DETAIL',"RECNO" , 303) oMdlTab:SetValue('SE1_DETAIL',"E1_MOTIVO" , "NOR") oMdlTab:SetValue('FAC_DETAIL','FACTOR',"2") oMdlTab:SetValue('GEN_DETAIL',"HOURSAVERECEIPT" , "12:00:13" ) //Se ejecuta el commit If oMdlTab:VldData() oMdlTab:CommitData() Endif aError := oMdlTab:GetErrorMessage() If alltrim(aError[76]) <> "" cMsj := aError[76] Endif CONOUT("Mensaje de proceso: "+cMsj) oMdlTab:DeActivate() Return |
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "FWEVENTVIEWCONSTS.CH" #INCLUDE 'FINA887.CH' Function F887FINAUTO() Local oMdlTab Local cCRLF := (chr(10)+chr(13)) Local cMsj := "Recibo registrado con exitoéxito." + cCRLF Local cRecibo := "R55555" Local cSerie := " " Local cCliente := "000001" Local aResTmp := {} Local nY := 0 SetFunName("FINA887") oMdlTab := FwLoadModel("FINA887") oMdlTab:SetOperation(MODEL_OPERATION_INSERT) oMdlTab:Activate() //Encabezado - FJT oMdlTab:SetValue('FJT_MASTER', "FJT_FILIAL" , xFilial("FJT")) // FILIAL oMdlTab:SetValue('FJT_MASTER', "FJT_DTDIGI" , dDataBase ) oMdlTab:SetValue('FJT_MASTER', "FJT_RECIBO" , cRecibo) oMdlTab:SetValue('FJT_MASTER', "FJT_SERIE" , cSerie) oMdlTab:SetValue('FJT_MASTER', "FJT_EMISSA" , dDataBase) oMdlTab:SetValue('FJT_MASTER', "FJT_NATURE" , "COBRO ") oMdlTab:SetValue('FJT_MASTER', "FJT_CLIENT" , cCliente) oMdlTab:SetValue('FJT_MASTER', "FJT_LOJA" , "01") oMdlTab:SetValue('FJT_MASTER', "FJT_COBRAD" , "") oMdlTab:SetValue('FJT_MASTER', "FJT_RECPRV" ,"") oMdlTab:SetValue('FJT_MASTER', "GERANCC" , "") oMdlTab:SetValue('FJT_MASTER', "DOCUMEN" , "RA") Pergunte("FIN998",.F.) //Contabilidad oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , MV_PAR011) // ¿MuestraMuestra Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , MV_PAR021) // ¿AgrupaAgrupa Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "ONLINE" , MV_PAR031) //¿Asientos Asientos Online. ?1- Si, 2 - No. //Monedas oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "1") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 1) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 1000) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) oMdlTab:GetModel('MOE_DETAIL' ):AddLine() oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "2") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 25.0000) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 0) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) // Agregar la forma de pago oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente ) oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "RI") oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL")) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "RI") oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "1") oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"4") oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00") oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"RI") oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"RI-000011") oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,1000) oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"CX1") oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"00001") oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"0000000001") //Campos para retenciones oMdlTab:SetValue('SEL_DETAIL',"EL_DOCTO" ,"0000000000041" ) oMdlTab:SetValue('SEL_DETAIL',"EL_SDOCTO" , "A") oMdlTab:SetValue('SEL_DETAIL',"EL_PARDOC" , "") // RI - Renteción IGV oMdlTab:SetValue('SEL_DETAIL',"EL_SERRET" , "A") // Serie Retención //Detalle de los titulos oMdlTab:SetValue('SE1_DETAIL',"E1_FILIAL" , xFilial("SE1")) oMdlTab:SetValue('SE1_DETAIL',"E1_PREFIXO" , "A" ) oMdlTab:SetValue('SE1_DETAIL',"E1_NUM" ,"0000000000041") oMdlTab:SetValue('SE1_DETAIL',"E1_PARCELA" , " ") oMdlTab:SetValue('SE1_DETAIL',"E1_TIPO" , "NF") oMdlTab:SetValue('SE1_DETAIL',"E1_CLIENTE" , cCliente) oMdlTab:SetValue('SE1_DETAIL',"E1_LOJA" , "01") oMdlTab:SetValue('SE1_DETAIL',"E1_DESCONT" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_MULTA" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_JUROS" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_SALDO" , 1190) oMdlTab:SetValue('SE1_DETAIL',"BAIXAR" , 1000) oMdlTab:SetValue('SE1_DETAIL',"RECNO" , 53) oMdlTab:SetValue('SE1_DETAIL',"E1_MOTIVO" , "NOR") oMdlTab:SetValue('GEN_DETAIL',"HOURSAVERECEIPT" , "12:00:13" ) //Se ejecuta el commit If oMdlTab:VldData() oMdlTab:CommitData() Endif //Se obtienen los errores del modelo aError := oMdlTab:GetErrorMessage() If alltrim(aError[76]) <> "" cMsj := aError[76] Endif CONOUT("Mensaje de proceso: "+cMsj) oMdlTab:DeActivate() Return |
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "FWEVENTVIEWCONSTS.CH" #INCLUDE 'FINA887.CH' Function F887FINAUTO() Local oMdlTab Local cCRLF := (chr(10)+chr(13)) Local cMsj := "Recibo registrado con exito." + cCRLF Local cRecibo := "0201202302 " Local cSerie := " " Local cCliente := "000001" Local aResTmp := {} Local nY := 0 SetFunName("FINA887") oMdlTab := FwLoadModel("FINA887") oMdlTab:SetOperation(MODEL_OPERATION_INSERT) oMdlTab:Activate() //Encabezado - FJT oMdlTab:SetValue('FJT_MASTER', "FJT_FILIAL" , xFilial("FJT")) // FILIAL oMdlTab:SetValue('FJT_MASTER', "FJT_DTDIGI" , dDataBase ) oMdlTab:SetValue('FJT_MASTER', "FJT_RECIBO" , cRecibo) oMdlTab:SetValue('FJT_MASTER', "FJT_SERIE" , cSerie) oMdlTab:SetValue('FJT_MASTER', "FJT_EMISSA" , dDataBase) oMdlTab:SetValue('FJT_MASTER', "FJT_NATURE" , "COBRO ") oMdlTab:SetValue('FJT_MASTER', "FJT_CLIENT" , cCliente) oMdlTab:SetValue('FJT_MASTER', "FJT_LOJA" , "01") oMdlTab:SetValue('FJT_MASTER', "FJT_COBRAD" , "") oMdlTab:SetValue('FJT_MASTER', "FJT_RECPRV" ,"") oMdlTab:SetValue('FJT_MASTER', "GERANCC" , "") oMdlTab:SetValue('FJT_MASTER', "DOCUMEN" , "RA") Pergunte("FIN998",.F.) //Contabilidad oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , MV_PAR011) // ¿Muestra Muestra Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , MV_PAR021) // ¿AgrupaAgrupa Asientos. ?1- Si, 2 - No. oMdlTab:SetValue('FJT_MASTER', "ONLINE" , MV_PAR031) //¿Asientos Asientos Online ? . 1- Si, 2 - No. //Monedas oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "1") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 1) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 1000) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) oMdlTab:GetModel('MOE_DETAIL' ):AddLine() oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "2") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 25.0000) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 0) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) // Agregar la forma de pago oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente ) oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "RI") oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL")) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "RI") oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "1") oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"4") oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00") oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"RI") oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"RI-000011") oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,1000) oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"CX1") oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"00001") oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"0000000001") //Campos para retenciones oMdlTab:SetValue('SEL_DETAIL',"EL_DOCTO" ,"1488600000012" ) oMdlTab:SetValue('SEL_DETAIL',"EL_SDOCTO" , "A") oMdlTab:SetValue('SEL_DETAIL',"EL_CFO" , "") oMdlTab:SetValue('SEL_DETAIL',"EL_ALQIMP1" , 100) oMdlTab:SetValue('SEL_DETAIL',"EL_VALIMP1" , 1000) //Detalle de los titulos oMdlTab:SetValue('SE1_DETAIL',"E1_FILIAL" , xFilial("SE1")) oMdlTab:SetValue('SE1_DETAIL',"E1_PREFIXO" , "A " ) oMdlTab:SetValue('SE1_DETAIL',"E1_NUM" ,"1488600000012") oMdlTab:SetValue('SE1_DETAIL',"E1_PARCELA" , " ") oMdlTab:SetValue('SE1_DETAIL',"E1_TIPO" , "NF") oMdlTab:SetValue('SE1_DETAIL',"E1_CLIENTE" , cCliente) oMdlTab:SetValue('SE1_DETAIL',"E1_LOJA" , "01") oMdlTab:SetValue('SE1_DETAIL',"E1_DESCONT" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_MULTA" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_JUROS" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_SALDO" , 1100) oMdlTab:SetValue('SE1_DETAIL',"BAIXAR" , 1000) oMdlTab:SetValue('SE1_DETAIL',"RECNO" , 45) oMdlTab:SetValue('SE1_DETAIL',"E1_MOTIVO" , "NOR") oMdlTab:SetValue('GEN_DETAIL',"HOURSAVERECEIPT" , "12:00:13" ) //Se ejecuta el commit If oMdlTab:VldData() oMdlTab:CommitData() Endif // Se obtienen los errores del modelo aError := oMdlTab:GetErrorMessage() If alltrim(aError[76]) <> "" cMsj := aError[76] Endif oMdlTab:DeActivate() Return |
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
#INCLUDE 'FINA887.CH'
#Include "RwMake.ch"
#Include "TbiConn.ch"
User Function F887FINAUTO()
Local oMdlTab
Local cMsj := "Recibo registrado con Exito!"
Local cRecibo := "2398900000001"
Local cSerie := ""
Local cCliente := "000001"
SetFunName("FINA887")
// Se define el modelo FINA887
oMdlTab := FwLoadModel("FINA887")
// Se define la operación INSERT en el modelo
oMdlTab:SetOperation(MODEL_OPERATION_INSERT)
// Se activa el modelo
oMdlTab:Activate()
// Se informa el código de la administradora financiera, la información ingresada en el campo CODE será utilizada en el campo EL_CLIENTE del título Tarjeta de Crédito (CC)
oMdlTab:SetValue("ADM_DETAIL", "CODE" , "001 ")
//Encabezado de recibo - FJT
oMdlTab:SetValue('FJT_MASTER', "FJT_FILIAL" , xFilial("FJT"))
oMdlTab:SetValue('FJT_MASTER', "FJT_DTDIGI" , dDataBase )
oMdlTab:SetValue('FJT_MASTER', "FJT_RECIBO" , cRecibo )
oMdlTab:SetValue('FJT_MASTER', "FJT_SERIE" , cSerie)
oMdlTab:SetValue('FJT_MASTER', "FJT_EMISSA" , dDataBase)
oMdlTab:SetValue('FJT_MASTER', "FJT_NATURE" , "")
oMdlTab:SetValue('FJT_MASTER', "FJT_CLIENT" , cCliente )
oMdlTab:SetValue('FJT_MASTER', "FJT_LOJA" , "01")
oMdlTab:SetValue('FJT_MASTER', "FJT_COBRAD" , "")
oMdlTab:SetValue('FJT_MASTER', "FJT_RECPRV" ,"")
oMdlTab:SetValue('FJT_MASTER', "GERANCC" , "N") // Para generación de RA, S - Genera RA | N o vacío - No genera RA
oMdlTab:SetValue('FJT_MASTER', "DOCUMEN" , "RA")
// Se activa el grupo de preguntas FIN988 para usar los valores de la tabla de preguntas SX1.
Pergunte("FIN998",.F.)
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , MV_PAR01) // ¿Muestra Asientos ?
oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , MV_PAR02) // ¿Agrupa Asientos ?
oMdlTab:SetValue('FJT_MASTER', "ONLINE" , MV_PAR03) // ¿Asientos Online ?
//Monedas
oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "1")
oMdlTab:SetValue('MOE_DETAIL',"TASA" , 1)
oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 1100) // Monto total que suman las formas de pago.
oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) // Saldo que queda por cobrar entre los títulos x cobrar y las formas de pago.
oMdlTab:GetModel('MOE_DETAIL' ):AddLine()
oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "2")
oMdlTab:SetValue('MOE_DETAIL',"TASA" , 0)
oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 0)
oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 )
// Agregar las formas de pago - Campos de tabla SEL
oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente )
oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ")
oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01")
oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase)
oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "CC")
oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL"))
oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "CC")
oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "1")
oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase)
oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase)
oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"")
oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1")
oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"")
oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"")
oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2")
oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00")
oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2")
oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"CC")
oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"24072601")
oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,1100)
oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"001")
oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"00001")
oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"0000000001")
oMdlTab:SetValue('SEL_DETAIL',"EL_ADMIN" ,"001")
//Detalle de los titulos x cobrar - Tabla SE1
oMdlTab:SetValue('SE1_DETAIL',"E1_FILIAL" , xFilial("SE1"))
oMdlTab:SetValue('SE1_DETAIL',"E1_PREFIXO" , " " )
oMdlTab:SetValue('SE1_DETAIL',"E1_NUM" ,"1488600000012" )
oMdlTab:SetValue('SE1_DETAIL',"E1_PARCELA" , " ")
oMdlTab:SetValue('SE1_DETAIL',"E1_TIPO" , "NF")
oMdlTab:SetValue('SE1_DETAIL',"E1_CLIENTE" , cCliente)
oMdlTab:SetValue('SE1_DETAIL',"E1_LOJA" , "01")
oMdlTab:SetValue('SE1_DETAIL',"E1_DESCONT" , 0)
oMdlTab:SetValue('SE1_DETAIL',"E1_MULTA" , 0)
oMdlTab:SetValue('SE1_DETAIL',"E1_JUROS" , 0)
oMdlTab:SetValue('SE1_DETAIL',"E1_SALDO" , 1100)
oMdlTab:SetValue('SE1_DETAIL',"BAIXAR" , 1100)
oMdlTab:SetValue('SE1_DETAIL',"RECNO" , 45)
oMdlTab:SetValue('SE1_DETAIL',"E1_MOTIVO" , "NOR")
//oMdlTab:SetValue('GEN_DETAIL',"HOURSAVERECEIPT" , "13:40:00" ) // Hora de guardado del recibo.
//Se ejecuta el commit
If oMdlTab:VldData() // Se detonan las validaciones del modelo
// Si pasa las validaciones, se ejecutara el CommitData del modelo para guardar los datos.
oMdlTab:CommitData()
Endif
// En caso de usar número consecutivos en el recibo
If !Empty(GetSx3Cache("EL_RECIBO","X3_RELACAO"))
If Alltrim(cRecibo) <> Alltrim(InitPad(GetSX3Cache("EL_RECIBO","X3_RELACAO")))
RollBackSX8()
EndIf
EndIf
// Se obtienen los errores del modelo
aError := oMdlTab:GetErrorMessage()
If alltrim(aError[6]) <> ""
cMsj := aError[6]
Endif
CONOUT("Mensaje de proceso: "+cMsj)
oMdlTab:DeActivate()
Return |
Card documentos | ||||
---|---|---|---|---|
| ||||
Card documentos | ||||
|
05. TABLAS UTILIZADAS
- FTJ - Encabezado de recibos.
- SEL - Recibos de cobro.
- SE1 - Cuentas por cobrar.
- SFE - Certificados de retención.
- SFR - Diferencia de cambio.
- SE5 - Movimientos bancarios.