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-22097 |
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 los atributos "Moneda, TipoCambio y LugarExpedición".
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:
- En el Punto de Entrada PEXMLDOC se activaron las siguientes opciones para personalizar los siguientes atributos MO para Moneda, TC para TipoCambio y LE para LugarExpedición.
En la rutina Funciones genéricas para Facturación - Mercado Internacional (FATXFUMI), se realizan los siguientes ajustes:
- Se realizan los ajustes para que no se genere el nodo NumRegIdTrib, cuando no es Complemento de Comercio Exterior.
- Realizar un respaldo del repositorio del ambiente (archivo RPO).
- Aplicar el parche correspondiente al issue DMINA-22097.
- 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
Generación de Facturas
- Ingresar al módulo Facturación (SIGAFAT), ir al menú "Actualizaciones | Facturación | Facturaciones (MATA467N)
- Indicar los parámetros de la rutina, informando la pregunta ¿Normal/Benef./Anticipo? con la opción Normal.
- 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.
- Confirmar el grabado de la Factura de Venta.
- 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).
- Validar que en el XML sean informados los atributos especificados en los Puntos de Entrada.
Generación de Notas de Crédito.
- Ingresar al módulo Facturación (SIGAFAT), ir al menú "Actualizaciones | Facturación | Generac. de Notas de Crédito y Débito (MATA465N)
- 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).
- Confirmar el grabado de la Nota de Crédito de Cliente (NCC).
- 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).
- 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:
#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 := "" Local cSepa := "|" Local cSubT := "0.01" Local cTot := "0.01" Local cCRLF := (chr(13)+chr(10)) //Datos Impuestos Totales Local cTotIT := "0.00" Local cBasIT := "0.01" Local cImpT := "002" Local cTpFac := "Tasa" Local cTasCuo := "0.000000" Local cValor := "0.00" If Alltrim(cEspecie) $ "NF|NCC" If cOpc == "ST" //SubTotal cXMLRet := cSubT ElseIf cOpc == "T" //Total cXMLRet := cTot ElseIf cOpc == "D" //Descuento cXMLRet := "20.00" ElseIf cOpc == "TC" //TipoCambio cXMLRet := "" ElseIf cOpc == "LE" // LugarExpedición cXMLRet := "" ElseIf cOpc == "MO" // Moneda cXMLRet := "" EndIf If lCadO If cOpc == "CO" cXMLRet := U_GROUPCAD(SF2->F2_DOC) elseIf cOpc == "TI" //Total de Impuestos cXMLRet := cBasIT + cSepa + cImpT + cSepa + cTpFac + cSepa + cTasCuo + cSepa + cValor + cSepa + cTotIT + cSepa EndIf Else If cOpc == "CO" cXMLRet := space(3) + '<cfdi:Conceptos>' + cCRLF cXMLRet += U_GROUPPED(SF2->F2_DOC) cXMLRet += space(3) + '</cfdi:Conceptos>' + cCRLF elseIf cOpc == "TI" ////Total de Impuestos cXMLRet := cCRLF + Space(5) + '<cfdi:Impuestos TotalImpuestosTrasladados="' + cTotIT + '" >' + cCRLF cXMLRet += Space(10) + '<cfdi:Traslados>' + cCRLF cXMLRet += Space(15) + '<cfdi:Traslado Base="' + cBasIT + '" Impuesto="' + cImpT + '" TipoFactor="' + cTpFac + '" TasaOCuota="' + cTasCuo + '" Importe="' + cValor + '"/>' + cCRLF cXMLRet += Space(10) + '</cfdi:Traslados>' + cCRLF cXMLRet += Space(5) + '</cfdi:Impuestos>' + cCRLF EndIf EndIf EndIf Return cXMLRet
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.¡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