01. DATOS GENERALES


Línea de producto: Microsiga Protehus.
Segmento:Servicios - Mercado Internacional.
Módulo:SIGAFAT - Facturación.
Función:
Rutina(s)Nombre Técnico
LOCXNFNotas Fiscales.
Rutina(s) involucradasNombre Técnico
LOCXNF2Cálculo de Valores para Notas Fiscales.
Ticket:5728391
Issue:DMINA-6666
Versión:12.1.17 | 12.1.23


02. SITUACIÓN/REQUISITO

Se requiere un Punto de Entrada en la rutina Recibo de Nómina CFDi – GPER884, para insertar información del recibo timbrado en una tabla de usuario y posteriormente poder generar un reporte de CFDi que requiere el contador de la empresa.

03. SOLUCIÓN

Se incluye Punto de Entrada "G884GENTAB" en la rutina Timbrado de CFDi con Complemento de Recibo de Nómina - TimbreRN, para ser utilizado al finalizar el proceso de timbrado.

El Punto de Entrada - G884GENTAB, recibe los siguientes parámetros que pueden ser utilizados mediante la variable PARAMIXB como se describe a continuación:

Ejemplo de Punto de Entrada:

#Include "protheus.ch"

User Function G884GENTAB()

/*
* Variables enviadas al Punto de Entrada.
*/
Local cProceso := PARAMIXB[1] //Proceso
Local cProcedi := PARAMIXB[2] //Procedimiento
Local cPeriodo := PARAMIXB[3] //Periodo
Local cNumPago := PARAMIXB[4] //Numero de Pago
Local aRecibos := PARAMIXB[5] //Array con recibos

/*
* Variables de ejemplo para el procesamiento de los Recibos.
*/
Local nIter := 0
Local cFilZZ1 := xFilial("ZZ1")
Local cPathXML := &(SuperGetMv("MV_CFDRECN", , .F.))
Local oXML := Nil
Local cAviso := ""
Local cErro := ""

/*
* Ejemplo de procesamiento de Recibos e inserción de información
* en tabla de usuario.
*/
If Len(aRecibos) > 0 //Se valida que haya recibos a procesar.

For nIter := 1 To Len(aRecibos) //Se inicia el procesamiento de cada recibo.

If aRecibos[nIter][2] == "Timbrado" //Se valida que solo se procesen recibos correctamente timbrados.

If File(cPathXML+aRecibos[nIter][1]) //Valida si el archivo XML a procesar, se encuentra en el directorio.

oXML := XmlParserFile(cPathXML + aRecibos[nIter][1], "_", @cAviso, @cErro) //Se realiza el parseo del XML y se guarda en un objeto
If Empty(cAviso) .and. Empty(cErro) .And. oXML <> Nil //Se valida que no haya errores en el parseo del XML.

RecLock("ZZ1", .T.)
ZZ1->ZZ1_FILIAL := cFilZZ1
ZZ1->ZZ1_PROCES := cProceso
ZZ1->ZZ1_PROCED := cProcedi
ZZ1->ZZ1_PERIOD := cPeriodo
ZZ1->ZZ1_NUMPAG := cNumPago
ZZ1->ZZ1_UUID := oXML:_CFDI_COMPROBANTE:_CFDI_COMPLEMENTO:_TFD_TIMBREFISCALDIGITAL:_UUID:TEXT
ZZ1->ZZ1_NOMXML := aRecibos[nIter][1]
ZZ1->(MsUnlock())

EndIf

EndIf

EndIf

Next nIter

EndIf

Return

Pasos para validar e implementar la solución:

Pre-condiciones:

Pasos para validar la solución:

  1. Entre al módulo de Gestión de Personal (SIGAGPE).
  2. Ingresar a la rutina "Informes | Periódicos | Recibo de Nómina CFDi(GPER884)".
  3. Informar los parámetros solicitados. (Indicar el parámetro de ¿Enviar Timbrar?-Si)
  4. Al finalizar el proceso de timbrado, validar que se haya ingresado correctamente la información en la tabla de usuario.