#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWEVENTVIEWCONSTS.CH"
#INCLUDE 'FINA887.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")
// 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" , 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',"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_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" , 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[6]) <> ""
cMsj := aError[6]
Endif
CONOUT("Mensaje de proceso: "+cMsj)
oMdlTab:DeActivate()
Return |