Á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_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

...

  • EL_FACTOR
  • FACTOR
  • VALUE
  • RECNO

Para más información consultar el siguiente enlace: DT Recibo de cobro por factoraje TOTVS Recibo MEX

Ejemplo:

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

...

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 Complemento de Recepción de Pago V 2.0 del CFDI 4.0

Informações
titleImportante

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")
DbSetOrder(1) // X5_FILIAL+X5_TABELA+X5_CHAVE                                                                                                                                    
If SX5->(MSSeek( xFilial("SX5")+"RN"+cSerie ))
    cRecibo := StrZero( Val( X5Descri() )
Endif

...

Para generar un recibo de cobro de tipo Compensación se deben informar las siguientes propiedades en el modelo:

  • EL_IDENTEE - Identificador de la compensación generada por medio de la rutina Compensación entre carteras(campo E5_IDENTEE).
  • EL_FCHIDEN - Fecha de la compensación generada por medio de la rutina Compensación entre carteras (campo E5_DATA).

Para más información del proceso consultar le siguiente enlace: DT Recibo de cobro por compensaciones - TOTVS Recibo MEX

Ejemplo:

Bloco de código
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 

...

Para la generación de diferencia de cambio se requiere informar el parámetro MV_DIFCAMR igual a "S".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 traves del modelo:

...