Á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 Entrada29/04/2024
FATSMEX.prwGeneración de XML para Documentos de Salida29/04/2024
FATXFUMI.prwFunciones genéricas para Facturación - Mercado Internacional29/04/2024
País:México (MEX)
Ticket:No aplica.
Requisito/Story/Issue (informe el requisito vinculado):DMINA-23099


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:

  • Personalización de los nodos de Complemento de comercio exterior: cce20:Emisor, cce20:Receptor,cce20:Domicilio y cce20:Mercancia.

03. SOLUCIÓN

En la rutina 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:

  • Se activa el punto de entrada PEXMLCCE para permitir la personalización de los nodos de Complemento de comercio exterior: cce20:Emisor, cce20:Receptor,cce20:Domicilio  y  cce20:Mercancia.
    • En el nodo cce20:Emisor\cce20:Domicilio, permitir personalizar los atributos:
      • Calle

      • Colonia

      • Municipio

      • Estado

      • Pais

      • CodigoPostal

    • En el nodo cce20:Receptor\cce20:Domicilio, permitir personalizar los atributos
      • Calle

      • NumeroExterior

      • NumeroInterior

      • Colonia

      • Municipio

      • Estado

      • Pais

      • CodigoPostal

    • En el nodo cce20:Mercancia, permitir personalizar los atributos
      • NoIdentificacion

      • FraccionArancelaria

      • CantidadAduana

      • UnidadAduana

      • ValorUnitarioAduana

      • ValorDolares


Información

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

El primer parámetro es de tipo caracter, con las siguientes opciones:

  • EM personalizar datos del Emisor,
  • RE personalizar datos del Receptor
  • ME personalizar datos de Mercancia

El segundo parámetro recibe es un arreglo de información, el cual cuenta con los datos del Emisor, Receptos o Mercancia dependiendo del valor del primer parámetro:

  • Si el primer parámetro contiene "EM",  el arreglo contiene datos del Emisor y se compone de los siguientes datos:
    • [1] - Contiene el valor del atributo Calle, por estandar se obtiene el valor del campo M0_ENDCOB
    • [2] - Contiene el valor del atributo Colonia, por estandar se obtiene el valor del catálogo S015 - Colonias , usando los campos M0_CEPENT  - M0_CODZOSE
    • [3] - Contiene el valor del atributo Municipio, por estandar se obtiene el valor del campo M0_CODMUN
    • [4] - Contiene el valor del atributo Estado, por estandar se obtiene el valor del catálogo S004 - Códigos Postales, usando el campo M0_CEPENT 
    • [5] - Contiene el valor del atributo Pais, por estándar el valor asignado es "MEX".
    • [6] - Contiene el valor del atributo CodigoPostal, por estandar se obtiene el valor del campo M0_CEPENT 
  • Si el primer parámetro contiene "RE",  el arreglo contiene datos del Receptor y se compone de los siguientes datos:
    • [1] - Contiene del campo RFC(A1_CGC).
    • [2] - Contiene del campo Nombre(A1_NOME).
    • [3] - Contiene del campo CP(A1_CEP).
    • [4] - Contiene el valor del atributo Calle, por estandar se obtiene el valor del campo Direccion(A1_END).
    • [5] - Contiene el valor del atributo NumeroExterior, por estandar se obtiene el valor del campo Numero exter(A1_NR_END).
    • [6] - Contiene el valor del atributo NumeroInterior, por estandar se obtiene el valor del campo Numero inter(A1_NROINT).
    • [7] - Contiene el valor del atributo Colonia, por estandar se obtiene el valor del campo Barrio(A1_BAIRRO).
    • [8] - Contiene el valor del atributo Municipio, por estandar se obtiene el valor del campo Municipio(A1_MUN).
    • [9] - Contiene el valor del atributo Estado, por estandar se obtiene el valor de la tabla SX5, usando el campo Est.Cliente(A1_EST). 
    • [10] - Contiene el valor del atributo Pais, se obtiene de la tabla SYA - Países, del campo País SAT(YA_CCESAT) , usando como busqueda el campo Pais(A1_PAIS).
    • [11] - Contiene el valor del atributo CodigoPostal, por estandar se obtiene el valor del campo CP(A1_CEP).
    • [12] - Contiene el valor del atributo NumRegIdTrib, por estandar se obtiene el valor del campo Reg. Fiscal (F2_IDTRIB).
  • Si el primer parámetro contiene "ME",  el arreglo contiene datos del Receptor y se compone de los siguientes datos:
    • [1] - Contiene del campo Item(D2_ITEM).
    • [2] - Contiene del campo Producto(D2_COD).
      • El valor del atributo NoIdentificacion se compone del valor del campo Item(D2_ITEM y del campo Producto(D2_COD).
    • [3] - Contiene del campo Frac. Arance(D2_FRACCA ).
    • [4] - Contiene del campo Num.Iden.Com(D2_NICO)
      • El valor del atributo FraccionArancelaria, por estandar se obtiene el valor de los campos Frac. Arance(D2_FRACCA ) + Num.Iden.Com(D2_NICO)
    • [5] - Contiene el valor del atributo CantidadAduana, por estandar se obtiene el valor del campo Cant. Aduana(D2_CANADU).
    • [6] - Contiene el valor del atributo ValorUnitarioAduana, por estandar se obtiene el valor del campo Val. Aduana (D2_VALADU ).
    • [7] - Contiene el valor del atributo ValorDolares, por estandar se obtiene el valor del campo Valor USD(D2_USDADU).
    • [8] - Contiene el valor del atributo UnidadAduana, por estandar se obtiene el valor catálogo S014 - Fracción Arancelaria, usando el campo Frac. Arance(D2_FRACCA ).

El retorno debe ser el arreglo con las mismas dimensiones y solo de debe personalizar los datos que se requieran, los demás datos se quedarán con el valor estándar.




  1. Realizar un respaldo del repositorio del ambiente (archivo RPO).
  2. Aplicar el parche correspondiente al issue DMINA-23099.
  3. 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.
  4. Configurar el parámetro MV_FEXML, con el valor igual a S.
  5. Configurar el parámetro MV_CFDDIRS con la ruta donde se encuentran las llaves y certificados.
  6. Configurar el parámetro MV_CFDI_CP con el nombre y extensión del Archivo de la clave privada (.pem).
  7. Configurar el parámetro MV_CFDIEXP con el valor .T. para activar el complemento de comercio exterior.
  8. Considerar los nuevos cambios para la versión 2.0 de Complemento de comercio exterior: Actualización facturación electrónica Complemento de Comercio Exterior Versión 2.0 MEX


En el módulo Facturación (SIGAFAT): 

  1. Ir al menú Actualizaciones | Facturación | Facturaciones (MATA467N).
    • Informar los parámetros de la rutina.
    • Incluir una Factura de Venta (NF):
      • Informar los datos del Encabezado de la factura utilizando el Cliente Extranjero.
      • Informar los campos requeridos para Complemento de Comercio exterior:
        • Tipo Opera (Este campo solo será informativos para determitar de que tipo de operación de exportación se trata, sin embargo no será considerado al momento de la generación del XML).
        • Clv. Ped
        • Cer. Origen.
        • Incoterm
        • Cambio USD
        • Total USD
        • Reg. Fiscal (Este campo es utilizado para el nodo NumRegIdTrib del Receptor).
        • Res. Fiscal
      • Informar los datos de los ítems de la factura.
      • Informar los campos necesarios para la generación de Complemento de Comercio exterior:
        • Cant. Aduana
        • Frac. Arance
        • Unidad Adua.
        • Valor USD 
        • Val. Aduana
    • Confirmar el grabado de la Factura de Venta.
    • Confirmar la generación y timbrado exitoso del Comprobante Fiscal Digita para Internet (Ésta confirmación puede presentarse o no de acuerdo a la configuración del parámetro MV_CFDUSO).
    • Validar que los nodos personalizados anteriormente en el punto de entrada PEXMLCCE, se muestren correctamente.


04. INFORMACIÓN ADICIONAL

Ejemplos de los Puntos de Entrada:

PEXMLCCE
#include 'protheus.ch'
#INCLUDE "FWMVCDEF.CH"
#include "FILEIO.CH"   User Function PEXMLCCE()
	Local cOpc    := PARAMIXB[1] //Opión donde EM - Información Emisor Complemento de comercio,
								// RE - Información Receptor Complemento de comercio
								// ME - Información Mercancia Complemento de comercio
	Local aData   := PARAMIXB[2] //Arreglo con los datos para personalización.

	//Datos Emisor
 	If cOpc == "EM"
		
	Endif

	//Datos Receptor 
	If cOpc == "RE"
		//Personalización atributo CodigoPostal
		aData[11] := Alltrim(SA1->A1_COD_MUN)
	Endif

  	//Datos Mercancia
	If cOpc == "ME"
		
	Endif  

Return aData


¡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 y el parámetro MV_FEXML debe estar configurado con el valor S.

05. ASUNTOS RELACIONADOS