ÍNDICE
Se requiere ejecutar la rutina Totvs Recibos (FINA998) a través del Modelo de recibos (FINA887) como rutina automática.
Para la ejecución de la rutina Totvs Recibo (FINA998) de forma automá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 país donde se ejecute.
Ejemplo:
Para la forma de pago algunos de los campos estándar para todos los países son los siguientes:
oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , "CSERVI" ) // 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 paí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.
El Orden en el que se llena la informacion del modelo debe ser la siguiente: 1 - FJT_MASTER (Model que guarda la información del Encabezado) 2 - MOE_DETAIL (Model que guarda la información de las Tasas de la Monedas) 3 - SE1_DETAIL (Model que guarda la información de los Títulos) 4 - SEL_DETAIL (Model que guarda la información de las Formas de Pago) ADM_DETAIL (Model que guarda la información de la Administradora Financiera) FAC_DETAIL (Model que guarda la información de Factoraje financiero) GEN_DETAIL (Model que guarda datos Generales del Recibo) COM_DETAIL (Model que guarda la información Movimientos Bancarios ) |
Es importante que al momento de informar los valores en el modelo, se indiquen solo las propiedades que pertenecen al país donde se vaya a ejecutar el "Commit" del modelo, ya que si se informan algún otro campo que no existe para dicho país se detonará error en la ejecución. |
|
Los ejemplos listados a continuación funcionan únicamente cuando el parámetro “Nuevo Recibo en MVC” (MV_RECMVC) tiene el valor .T. |
A continuación se muestran 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.
Propiedades preguntas
GERANCC - Determina si genera RA , .T. - Genera RA | .F. o 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.
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , 1) // Muestra Asientos. 1- Si, 2 - No. |
MOE_DETAIL - Grid para informar lo recibido y el saldo x cobrar del recibo así como las monedas y las tasas usadas en la transacción.
Propiedades
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).
Propiedades
Contiene los campos de la tabla SEL
CHECK- Se requiere cuando el parámetro “Nuevo Recibo en MVC” (MV_RECMVC) tiene el valor .T.
BAIXAR1- Monto en moneda 1
BAIXAR2- Monto en moneda 2
BAIXAR3- Monto en moneda 3
BAIXAR4- Monto en moneda 4
BAIXAR5- Monto en moneda 5
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 títulos por cobrar(tabla SE1).
Propiedades
Contiene los campos de la tabla SE1
Ejemplos:
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
Function F887FINAUTO()
Local oMdlTab
Local cMsj := "Recibo registrado con é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")
//Contabilidad
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , 1) // Muestra Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , 1) // Agrupa Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "ONLINE" , 1) // 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 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" , "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',"CHECK" , .T.)
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" , 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_MOEDA" , 1)
oMdlTab:SetValue('SE1_DETAIL',"E1_SALDO" , 2320)
oMdlTab:SetValue('SE1_DETAIL',"BAIXAR1" , 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',"CHECK" , .T.)
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_MOEDA" , 1)
oMdlTab:SetValue('SE1_DETAIL',"E1_SALDO" , 1160)
oMdlTab:SetValue('SE1_DETAIL',"BAIXAR1" , 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[6]) <> ""
cMsj := aError[6]
Endif
CONOUT("Mensaje de proceso: "+cMsj)
oMdlTab:DeActivate()
Return |
Realizar previamente la configuracion del envio por email: Configuración para envío de correo electrónico.
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
User Function F887FINAUTO()
Local oMdlTab
Local jData := JsonObject():New()
Local cCRLF := (chr(10)+chr(13))
Local cMsj := "Recibo registrado con éxito." + cCRLF
Local cRecibo := "02010995"
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"))
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" , "S")
oMdlTab:SetValue('FJT_MASTER', "DOCUMEN" , "RA")
//Contabilidad
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , 2) // Muestra Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , 2) // Agrupa Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "ONLINE" , 2) // Asientos Online. 1- Si, 2 - No.
//Monedas
oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "1")
oMdlTab:SetValue('MOE_DETAIL',"TASA" , 1)
oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 100)
oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 )
//Detalle de los titulos x cobrar - Tabla SE1
//Este ejemplo generara un RA por lo cual este ejemplo no lleva titulos a cobrar o compensar pero se pueden agregar como en los ejemplos anteriores
// Agregar la forma de pago
oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente )
oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "")
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" , "PAG-0000")
oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" , 600)
oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" , "001")
oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" , "00001")
oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" , "0000000001")
oMdlTab:SetValue('FAC_DETAIL','FACTOR',"2")
oMdlTab:SetValue('GEN_DETAIL',"HOURSAVERECEIPT" , "13:10:40" )
//Se ejecuta el commit
If oMdlTab:VldData()
oMdlTab:CommitData()
Endif
//Se obtienen los errores del modelo
aError := oMdlTab:GetErrorMessage()
If alltrim(aError[6]) <> ""
cMsj := aError[6]
else
// Si no hubo errores al grabar recibo se procede con el timbrado
jData['origin'] := "FINA998"
jData['imppdf'] := .F.
jData['sendemail'] := .T.
jData['email'] := "[email protected]"
jData['emailcc'] := ""
jData['serie'] := cSerie
jData['recibo'] := cRecibo
jData['cliente'] := cCliente
jData['filial'] := xFilial("SEL")
jData['client'] := cCliente
//Para México se utiliza la rutina FISA815
FISA815(cRecibo, cSerie,,,@aResTmp,jData,cSerieS,cReciboS)
// 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 |
Realizar previamente la configuracion del envio por email: Configuración para envío de correo electrónico.
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
User Function F887FINAUTO()
Local oMdlTab
Local jData := JsonObject():New()
Local cCRLF := (chr(10)+chr(13))
Local cMsj := "Recibo registrado con éxito." + cCRLF
Local cRecibo := "02010995"
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"))
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" , "S")
oMdlTab:SetValue('FJT_MASTER', "DOCUMEN" , "RA")
//Contabilidad
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , 2) // Muestra Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , 2) // Agrupa Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "ONLINE" , 2) // Asientos Online. 1- Si, 2 - No.
//Monedas
oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "1")
oMdlTab:SetValue('MOE_DETAIL',"TASA" , 1)
oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 100)
oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 )
//Detalle de los titulos x cobrar - Tabla SE1
//Este ejemplo generara un RA por lo cual este ejemplo no lleva titulos a cobrar o compensar pero se pueden agregar como en los ejemplos anteriores
// Agregar la forma de pago
oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente )
oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "")
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" , "PAG-0000")
oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" , 600)
oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" , "001")
oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" , "00001")
oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" , "0000000001")
oMdlTab:SetValue('FAC_DETAIL','FACTOR',"2")
oMdlTab:SetValue('GEN_DETAIL',"HOURSAVERECEIPT" , "13:10:40" )
//Se ejecuta el commit
If oMdlTab:VldData()
oMdlTab:CommitData()
Endif
//Se obtienen los errores del modelo
aError := oMdlTab:GetErrorMessage()
If alltrim(aError[6]) <> ""
cMsj := aError[6]
else
// Si no hubo errores al grabar recibo se procede con el timbrado
jData['origin'] := "FINA998"
jData['imppdf'] := .F.
jData['sendemail'] := .T.
jData['email'] := "[email protected]"
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)
//Para paises diferentes de México se utiliza la rutina FISA815A
FISA815A(cRecibo, cSerie,/*nOpc*/,@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 |
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
Function F887FINAUTO()
Local oMdlTab
Local cMsj := "Recibo registrado con é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")
//Contabilidad
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , 1) // Muestra Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , 1) // Agrupa Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "ONLINE" , 1) // Asientos Online. 1- Si, 2 - No.
//Monedas
oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "1")
oMdlTab:SetValue('MOE_DETAIL',"TASA" , 1)
oMdlTab:GetModel('MOE_DETAIL' ):AddLine()
oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "2")
oMdlTab:SetValue('MOE_DETAIL',"TASA" , 20)
// 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_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_MOEDA" , "1")
oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,400)
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_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_MOEDA" , "2")
oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,20)
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', "CHECK" , .T.)
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" , 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_MOEDA" , 1)
oMdlTab:SetValue('SE1_DETAIL',"E1_SALDO" , 800)
oMdlTab:SetValue('SE1_DETAIL',"BAIXAR1" , 400) //pago para Moneda 1
oMdlTab:SetValue('SE1_DETAIL',"BAIXAR2" , 20) //pago para Moneda 2
oMdlTab:SetValue('SE1_DETAIL',"RECNO" , 239)
oMdlTab:SetValue('SE1_DETAIL',"E1_MOTIVO" , "NOR")
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[6]) <> ""
cMsj := aError[6]
Endif
CONOUT("Mensaje de proceso: "+cMsj)
oMdlTab:DeActivate()
Return |
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
Function F887FINAUTO()
Local oMdlTab
Local cMsj := "Recibo borrado con éxito."
Local cRecibo := "AUTRE2"
Pergunte("FIN088",.F.)
SetMVValue("FIN088","MV_PAR04", 2) //Muestra 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")+ cRecibo,.T.))
oMdlTab:SetOperation(MODEL_OPERATION_DELETE)
oMdlTab:Activate()
If oMdlTab:VldData()
oMdlTab:CommitData()
Endif
EndIf
aError := oMdlTab:GetErrorMessage()
If alltrim(aError[6]) <> ""
cMsj := aError[6]
Endif
CONOUT("Mensaje de proceso: "+cMsj)
oMdlTab:DeActivate()
Return |
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
Function F887FINAUTO()
Local oMdlTab
Local cMsj := "Recibo borrado con éxito."
Local cSerie := " "
Local cRecibo := "COMP03"
oMdlTab := FwLoadModel("FINA887")
If FJT->(MsSeek(xFilial("FJT")+cSerie+cRecibo,.T.))
oMdlTab:SetOperation(MODEL_OPERATION_UPDATE)
oMdlTab:Activate()
//Contabilidad
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , 1) // Muestra Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , 1) // Agrupa Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "ONLINE" , 1) // 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[6]) <> ""
cMsj := aError[6]
Endif
CONOUT("Mensaje de proceso: "+cMsj) //Solución:
oMdlTab:DeActivate()
Endif
Return
|
Para la 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".
Ejemplo:
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
Function F887FINAUTO()
Local oMdlTab
Local cCRLF := (chr(10)+chr(13))
Local cMsj := "Recibo registrado con é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 vacío - No genera RA
oMdlTab:SetValue('FJT_MASTER', "DOCUMEN" , "RA")
//Contabilidad
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , 1) // Muestra Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , 1) // Agrupa Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "ONLINE" , 1) // 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[6]) <> ""
cMsj := aError[6]
Endif
CONOUT("Mensaje de proceso: "+cMsj)
oMdlTab:DeActivate()
Return
|
Para realizar una operación de factoraje es importante informar las siguientes propiedades en el modelo:
Para más información consultar el siguiente enlace: DT Recibo de cobro por factoraje TOTVS Recibo MEX
Ejemplo:
//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. |
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 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 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 función validar los 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 CFDI con Complemento para Recepción de Pagos
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 consecutivo de la tabla SX5 o en su defecto informarlo de forma directa, cuidando que la numeración sea la correcta. Ejemplo para obtener el consecutivo del recibo de la tabla SX5: DbSelectArea("SX5") |
Ejemplo:
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
Function F887FINAUTO()
Local oMdlTab
Local cCRLF := (chr(10)+chr(13))
Local cMsj := "Recibo registrado con é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")
//Contabilidad
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , 1) // Muestra Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , 1) // Agrupa Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "ONLINE" , 1) // 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', "CHECK" , .T.)
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',"BAIXAR1" , 660)
oMdlTab:SetValue('SE1_DETAIL',"RECNO" , 243)
oMdlTab:SetValue('SE1_DETAIL',"E1_MOTIVO" , "NOR")
oMdlTab:GetModel('SE1_DETAIL' ):AddLine()
oMdlTab:SetValue('SE1_DETAIL', "CHECK" , .T.)
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',"BAIXAR1" , 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[6]) <> ""
cMsj := aError[6]
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 |
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
Function F887FINAUTO()
Local cCRLF := (chr(10)+chr(13)) // Salto de línea
Local cMsj := "Recibo registrado con é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 |
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:
//Agregar recibo sustituto
oMdlTab:SetValue('SEL_DETAIL',"EL_SERSUS" , cSerieS )
oMdlTab:SetValue('SEL_DETAIL',"EL_RECSUS" , cReciboS ) |
Para generar un recibo de cobro de tipo Compensación se deben informar las siguientes propiedades en el modelo:
Para más información del proceso consultar le siguiente enlace: DT Recibo de cobro por compensaciones - TOTVS Recibo MEX
Ejemplo:
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
Function F887FINAUTO()
Local oMdlTab
Local cCRLF := (chr(10)+chr(13))
Local cMsj := "Recibo registrado con éxito." + cCRLF
Local cRecibo := "COMP09"
Local cSerie := " "
Local cReciboS := ""
Local cSerieS := " "
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")
//Contabilidad
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , 1) // Muestra Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , 1) // Agrupa Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "ONLINE" , 1) // 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[6]) <> ""
cMsj := aError[6]
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)
// 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 |
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
A continuación se presenta un ejemplo para realizar la diferencia de cambio a través del modelo:
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
Function F887FINAUTO()
Local oMdlTab
Local cCRLF := (chr(10)+chr(13))
Local cMsj := "Recibo registrado con é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")
//Contabilidad
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , 1) // Muestra Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , 1) // Agrupa Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "ONLINE" , 1) // 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', "CHECK" , .T.)
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',"BAIXAR1" , 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[6]) <> ""
cMsj := aError[6]
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
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 - 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 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:
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
Function F887FINAUTO()
Local oMdlTab
Local cCRLF := (chr(10)+chr(13))
Local cMsj := "Recibo registrado con é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")
//Contabilidad
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , 1) // Muestra Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , 1) // Agrupa Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "ONLINE" , 1) // 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',"CHECK" , .T.)
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',"BAIXAR1" , 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[6]) <> ""
cMsj := aError[6]
Endif
CONOUT("Mensaje de proceso: "+cMsj)
oMdlTab:DeActivate()
Return |
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
Function F887FINAUTO()
Local oMdlTab
Local cCRLF := (chr(10)+chr(13))
Local cMsj := "Recibo registrado con é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")
//Contabilidad
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , 1) // Muestra Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , 1) // Agrupa Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "ONLINE" , 1) // 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',"CHECK" , .T.)
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',"BAIXAR1" , 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[6]) <> ""
cMsj := aError[6]
Endif
CONOUT("Mensaje de proceso: "+cMsj)
oMdlTab:DeActivate()
Return |
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.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")
//Contabilidad
oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , 1) // Muestra Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , 1) // Agrupa Asientos. 1- Si, 2 - No.
oMdlTab:SetValue('FJT_MASTER', "ONLINE" , 1) // 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',"CHECK" , .T.)
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',"BAIXAR1" , 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[6]) <> ""
cMsj := aError[6]
Endif
oMdlTab:DeActivate()
Return |
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.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',"CHECK" , .T.)
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',"BAIXAR1" , 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 |