Árvore de páginas

Versões comparadas

Chave

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

ÍNDICE

Índice


01. VISIÓN GENERAL

Se requiere ejecutar la rutina Totvs Recibos (FINA998) a través del Modelo de recibos (FINA887) como rutina automática.


02. PROCESO DE IMPLEMENTACIÓN

...

              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

...

Totvs custom tabs box
tabsPre-condiciones,Pasos
idsPre-condiciones,Pasos
Totvs custom tabs box items
defaultyes
referenciaPre-condiciones
  1. Compilar la rutina que contenga la Función de Usuario con el ExecAuto a la rutina Modelo de Recibos (FINA887) (Ver ejemplo en la sección 04. INFORMACIÓN ADICIONAL)
  2. En el módulo Configurador (SIGACFG) desde el menú EntornoArchivos Menú (CFGX013)
    • Incluir en el menú la rutina para generación de Recibos de cobro por medio de rutina automática.
Totvs custom tabs box items
defaultno
referenciaPasos


  1. Ir al menú donde se agregó la rutina con la Función de Usuario y ejecutar el proceso.
  2. Una vez finalizado, verificar la grabación correcta del recibo de cobro.

03. EJEMPLO DE UTILIZACIÓN

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

...

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 éxito." + cCRLF
	Local cRecibo := "CFGIAU"
	Local cSerie  := "   "
	Local cCliente := "CSERVI"
	Local jData		:= JsonObject():New() // Objeto Json que contiene la información del recibo a timbrar y algunas configuraciones.
	Local aResTmp   := {} // Arreglo para guardar los errores del timbrado
	Local nY        := 0


	jData['origin']		:= "FINA998" 
	jData['imppdf'] 	:= .F.  
	jData['sendemail']  := .F.
	jData['email']		:= ""
	jData['emailcc']	:= ""
	jData['serie']		:= cSerie
	jData['recibo']		:= cRecibo
	jData['cliente']	:= cCliente 
	jData['filial']		:= xFilial("SEL")
	jData['client']	    := cCliente
	// Se validan los titulos que contiene el recibo de cobro.
	If validTitles(jData)
		//Timbrado de recibo de cobro
		FISA815(cRecibo, cSerie,,,@aResTmp,jData)

 		// Ciclo para concatenar la respuesta del timbrado.
		For nY := 1 To Len(aResTmp)
			cMsj += aResTmp[nY][3] + cCRLF
		Next nY
	Endif 

	CONOUT("Mensaje de proceso: "+cMsj)    
	
    oMdlTab:DeActivate()

Return 

Recibo con recibo sustituto

Para generar un recibo que contiene un recibo de cobro relacionado, previamente anulado con motivo 01 - Comprobante emitido con errores con relación se deben informar las siguientes propiedades:

Bloco de código
languageactionscript3
titleFactoraje
 	//Agregar recibo sustituto
	oMdlTab:SetValue('SEL_DETAIL',"EL_SERSUS" 			, cSerieS )
	oMdlTab:SetValue('SEL_DETAIL',"EL_RECSUS" 			, cReciboS )

...

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 é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[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,cMotC)
	  	// Ciclo para concatenar la respuesta del timbrado.
		For nY := 1 To Len(aResTmp)
			cMsj += aResTmp[nY][3] + cCRLF
		Next nY 
	Endif

	CONOUT("Mensaje de proceso: "+cMsj)    
	
    oMdlTab:DeActivate()



Return 


  Procesos específicos para Argentina | Uruguay

Diferencia cambiaria 

...