Árvore de páginas

01. DATOS GENERALES


Producto

TOTVS Backoffice

Línea de producto: 

Línea Protheus

Segmento:

Backoffice

Módulo:SIGAFAT - Facturación
Función:
RutinaNombreFecha
FATEMEX.prwGeneración de XML para Documentos de Entrada22/02/2024
FATSMEX.prwGeneración de XML para Documentos de Salida22/02/2024
LOCXFUNA.prwFunciones Genéricas de Documentos Fiscales.22/02/2024
País:México
Ticket:

No aplica.

Requisito/Story/Issue (informe el requisito vinculado):DMINA-22067


02. SITUACIÓN/REQUISITO

Para la funcionalidad de generación del XML de los Comprobantes Fiscales Digitales por Internet (CFDI), a través de las rutinas de Generación de XML para Documentos de Salida (FATSMEX.PRW) y Generación de XML para Documentos de Entrada (FATEMEX.PRW) para el país México, es decir, cuando el parámetro MV_FEXML se encuentra configurado con el valor S, se solicita realizar la implementación de personalizaciones por medio de puntos de entrada disponibles, que permitan las siguientes acciones:

  • En el nodo cfdi:Comprobante, permitir personalizar el atributo "Exportación".
  • Personalizar el nodo cfdi:Parte.

03. SOLUCIÓN

En la rutina de Generación de XML para Documentos de Entrada (FATEMEX) y la rutina Generación de XML para Documentos de Salida (FATSMEX) , se realizan los siguientes ajustes:

  • En el Punto de Entrada PEXMLDOC se activó la opción E, para personalizar el atributo Exportación.

En la rutina de Funciones genéricas de Documentos Fiscales (LOCXFUNA), se realizan los siguientes ajustes:

  • En el Punto de Entrada PECOMPCON se activó la opción P, para personalizar el nodo cfdi:Parte.

    Información

    El punto de Entrada PECOMPCON, recibe 2 parámetros, donde:

    El primer parámetro es de tipo carácter, con las opción P para personalizar el nodo de Parte de los Conceptos

    El segundo parámetro recibe el valor lógico .T. o .F., que indica si se va a generar la Cadena Original o el XML (.T. es igual a generar la Cadena Original y .F. es igual a generar el XML)

    El retorno debe ser un valor de tipo carácter.


  • Realizar un respaldo del repositorio del ambiente (archivo RPO).
  • Aplicar el parche correspondiente al issue DMINA-22067.
  • Validar que las rutinas incluidas en el parche coincidan con las mencionadas en la sección "Función" del encabezado del presente Documento Técnico, así como las fechas.
  • Configurar el parámetro MV_FEXML, con el valor igual a S.
  • Configurar el parámetro MV_CFDDIRS con la ruta donde se encuentran las llaves y certificados.
  • Configurar el parámetro MV_CFDI_CP con el nombre y extensión del Archivo de la clave privada (.pem).
  • Configurar los puntos de entrada correspondientes para personalizar los nodos del  XML: PEXMLDOC
  1. Ingresar al módulo Facturación (SIGAFAT), ir al menú "Actualizaciones | Facturación | Facturaciones (MATA467N)
  2. Indicar los parámetros de la rutina, informando la pregunta ¿Normal/Benef./Anticipo? con la opción Normal.
  3. Incluir una Factura de Venta (NF):
    • Informar los datos del Encabezado de la Factura de Venta.
    • Informar los datos de los ítems de la Factura de Venta.
  4. Confirmar el grabado de la Factura de Venta.
  5. Confirmar la generación y timbrado exitoso del Comprobante Fiscal Digital para Internet (Ésta confirmación puede presentarse o no de acuerdo a la configuración del parámetro MV_CFDUSO).
  6. Validar que en el XML sean informados los atributos especificados en los Puntos de Entrada.
  1. Ingresar al módulo Facturación (SIGAFAT), ir al menú "Actualizaciones | Facturación | Generac. de Notas de Crédito y Débito (MATA465N)
  2. Incluir una Nota de Crédito de Cliente:
    • Informar los datos del Encabezado de la Nota de Crédito de Cliente (NCC).
    • Informar los datos de los ítems de la  Nota de Crédito de Cliente (NCC).
  3. Confirmar el grabado de la  Nota de Crédito de Cliente (NCC).
  4. Confirmar la generación y timbrado exitoso del Comprobante Fiscal Digital para Internet (Ésta confirmación puede presentarse o no de acuerdo a la configuración del parámetro MV_CFDUSO).
  5. Validar que en el XML sean informados los atributos especificados en el Punto de Entrada.


04. INFORMACIÓN ADICIONAL

Ejemplos de los Puntos de Entrada:


PEXMLDOC
#include 'protheus.ch'
#INCLUDE "FWMVCDEF.CH"
#include "FILEIO.CH"
  
User Function PEXMLDOC()
    Local cOpc    := PARAMIXB[1] //Opción para indicar el atributo o el nodo a personalizar
    Local lCadO   := PARAMIXB[2] //Indica si es Cadena Original .T. = Si y .F. = No
    Local cXMLRet := ""
  
  
    If Alltrim(cEspecie) $ "NF"
        If cOpc == "E" //Exportación
            cXMLRet := IIf(!Empty(SF2->F2_TIPOPE) .And. Alltrim(SF2->F2_ESPECIE) == "NF","02", "01")
        EndIf     
  
    EndIf
Return cXMLRet
PECOMPCON
#include 'protheus.ch'
#INCLUDE "FWMVCDEF.CH"
#include "FILEIO.CH"
 
User Function PECOMPCON()
     Local cXMLCon   := ""
    Local cCRLF  := (chr(13)+chr(10))
    Local cOpc   := PARAMIXB[1] //Opción donde IA - Información Aduanera, CP - Cuenta Predial, P - Parte
    Local lCadO  := PARAMIXB[2] //Indica si es Cadena Original .T. = Si y .F. = No
    Local cSepa  := "|"
    Local cClaveP:= "10101504"
    Local cNoId  := "9642000000000002"
    Local cCant  := "1"
    Local cUnid  := "UN"
    Local cDesc  := "MOUSE"
 
    If Alltrim(cEspecie) $ "NF|NDC|NCC"
        If lCadO
            If cOpc == "P" //Parte
                cXMLCon := cClaveP + cSepa + cNoId +cSepa+ cCant + cSepa + cUnid + cSepa +cDesc +cSepa
            EndIf
         
        Else
           If cOpc == "P" //Parte
                cXMLCon := Space(12) + '  <cfdi:Parte ClaveProdServ="'+ cClaveP +'" NoIdentificacion="'+ cNoId +'" Cantidad="'+ cCant +'" Unidad="'+cUnid+'" Descripcion="'+cDesc+'"/> '+ cCRLF
            EndIf
        EndIf
    EndIf
Return cXMLCon


¡IMPORTANTE!

La presente solución aplica para versión 12.1.2210 o superior, y es necesario tener activa la funcionalidad de CFDI versión 4.0 o superior.

05. ASUNTOS RELACIONADOS