Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

   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.

...

A continuación se muestran alguno algunos ejemplos para ejecutar las operaciones de INSERT, DELETE y UPDATE del modelo.

...

Bloco de código
languagedelphi
titleRegistro de un recibo de cobro
#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" 		, "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 

...

Bloco de código
languagedelphi
titleBorrado de un recibo de cobro
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH" 
#INCLUDE "FWEVENTVIEWCONSTS.CH" 
#INCLUDE 'FINA887.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")+"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 

...

Bloco de código
languagedelphi
titleAnulado de un recibo de cobro
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH" 
#INCLUDE "FWEVENTVIEWCONSTS.CH" 
#INCLUDE 'FINA887.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()
		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 ? 	
		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 

...

Bloco de código
languagedelphi
titleGeneración recibo de cobro con RA
#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 é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 vacio - No genera RA    
	oMdlTab:SetValue('FJT_MASTER', "DOCUMEN" 	,  "RA")
	
	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"	, 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 

Image Modified Procesos

...

específicos para México 

Factoraje Financiero

Para realizar una operación de factoraje es importante informar las siguientes propiedades en el modelo:

...

Bloco de código
languageactionscript3
titleTimbrado desde guardo del recibo
#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 é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.)

	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"	, 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
languageactionscript3
titleTimbrado con recibo previamente generado
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH" 
#INCLUDE "FWEVENTVIEWCONSTS.CH" 
#INCLUDE 'FINA887.CH'

Function F887FINAUTO()
	Local cCRLF	    := (chr(10)+chr(13)) // Salto de lí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 

...

Bloco de código
languageactionscript3
titleFactoraje
#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.)

	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"	, 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 

...

Bloco de código
languageactionscript3
titleDiferencia de cambio
#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.)

	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"	, 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[7]) <> ""
		cMsj := aError[7] 
	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 | Argentina | Perú

...

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

...

RG - Retención de Ganancias

EL_AGREGAN - Act. para retencion retención de IG


RM - Retención Municipal

...

Bloco de código
languageactionscript3
titleRetenciones Argentina
#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.)

	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"	, 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
languageactionscript3
titleRetenciones Perú
#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 é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.)

	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"	, 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
languageactionscript3
titleRetenciones Paraguay
#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.)

	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"	, 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 

...