...
| Línea de producto: | Microsiga Protehus. | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Segmento: | Servicios - Mercado Internacional. | ||||||||
| Módulo: | SIGAFAT - Facturación. | ||||||||
| Función: |
| ||||||||
| Ticket: | 5728391 | ||||||||
| Issue: | DMINA-6666 | ||||||||
| Versión: | 12.1.17 | 12.1.23 |
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 empresareporta un error log en la rutina Generación de Remitos de Devolución - MATA462DN, al momento de generar un remito de devolución ligado a un documento original de tipo Remisión de Salida. Se observa que el error ocurre cuando no se informa una TES de Devolución y se desplaza para incluir un nuevo ítem, sin embargo, también fue identificado que al intentar incluir una TES manualmente o utilizando la consulta, la TES nunca es informada.
Se incluye Punto de Entrada "G884GENTAB" en excluye a la rutina Timbrado de CFDi con Complemento Generación de Recibo Remitos de Nómina Devolución - 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
...
MATA462DN para que no haga uso de la función LxTESAutoCOL(); lo anterior se realiza en la función LxDocOri() de la rutina LOCXNF.
Pasos para validar la solución:
Pre-condiciones:
Pasos para validar la solución:
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: