01. DATOS GENERALES
Producto | TOTVS Backoffice | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | ||||||||||||
Segmento: | Backoffice | ||||||||||||
Módulo: | SIGAFAT - Facturación | ||||||||||||
Función: |
| ||||||||||||
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
- En el nodo cce20:Emisor\cce20:Domicilio, permitir personalizar los atributos:
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.
- Realizar un respaldo del repositorio del ambiente (archivo RPO).
- Aplicar el parche correspondiente al issue DMINA-23099.
- 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 el parámetro MV_CFDIEXP con el valor .T. para activar el complemento de comercio exterior.
- 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):
- 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:
#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
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.¡IMPORTANTE!
05. ASUNTOS RELACIONADOS
- Activación de PEEMIREC para XML de Documentos de Entrada y Salida con MV_FEXML activo MEX
Activación de generación de XML de Factura de tipo Normal mediante rutina FATSMEX.PRW México
- Activación de generación de XML de Nota de Crédito de Cliente mediante rutina FATEMEX.PRW MEX
- Activación de PE para ajustar datos de Conceptos, Impuestos por ítem, Información Aduanera, Cuenta Predial e Impuestos Totales para FATSMEX.PRW y FATEMEX.PRW MEX