Histórico da Página
...
- En el módulo Facturación (SIGAFAT) ir al menú Actualizaciones | Archivos | Clientes (MATA030).
- Crear un Cliente, informando los campos obligatorios y los siguientes campos:
- Nombre (A1_NOME), debe coincidir con el registrado ante el SAT.
- CP (A1_CEP), debe coincidir con el registrado ante el SAT.
- RFC (A1_CGC), debe coincidir con el registrado ante el SAT.
- Mediante la opción "Complemento de Cliente", informar los siguientes campos:
- Método Pago (AI0_MPAGO).
- Rég.Fiscal (AI0_REGFIS).
- Crear un Cliente, informando los campos obligatorios y los siguientes campos:
Configuración para generación y timbrado de XML
Por Archivos de Configuración (.ini)
En los script de "Generación de XML de documentos de salida."(FATSMEX.INI) y "Generación de XML de documentos de entrada."(FATEMEX).INI) se realizan los ajustes para agregar los nuevos atributos Exportacion,DomicilioFiscaIReceptor y RegimenFiscalReceptor, además se actualizan las URL utilizadas para la versión CFDi 4.0.
FATSMEX.INI
Se recomienda editar el script actual de generación de CFDI (Archivo XML), actualizando las secciones de acuerdo al siguiente modelo, en donde las líneas resaltadas con color azul se agregaron o fueron modificadas para integrar la Versión 4.0 CFDi; las líneas resaltadas con color rojo fueron removidas:
Painel | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//FATSMEX.INI V4.0 --- Modelo 2022 [XXX POSICIONAMENTOS] [XXX INICIALIZACION] (PREREG) FsQuery(_aTotal[097],1,"D2_DOC='" + SF2->F2_DOC + "' AND D2_SERIE='" + SF2->F2_SERIE + "' AND D2_CLIENTE='" + SF2->F2_CLIENTE + "' AND D2_LOJA='" + SF2->F2_LOJA + "'","SD2->D2_DOC=SF2->F2_DOC .AND. SD2->D2_SERIE=SF2->F2_SERIE .AND. SD2->D2_CLIENTE=SF2->F2_CLIENTE .AND. SD2->D2_LOJA=SF2->F2_LOJA","D2_ITEM") .And. .T. (PRE) fImptosD(SF2->F2_DOC,SF2->F2_SERIE,SF2->F2_CLIENTE,SF2->F2_LOJA,IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),"SD2", SF2->F2_GLOBAL == "1",@(_aTotal[036]),_aTotal[104],@_aTotal[037], @_aTotal[038] ) [SD2 CADENAORIGINAL_SELLO] //Cadena Original | Complemento de Comercio Exterior (Mercancias) ///////////DATOS DE LA FACTURA///////////////// //////////////////////CFDI Relacionados////////////////////////// ///////////DATOS DEL EMISOR/////////////////////// //////////////////////DATOS DEL RECEPTOR////////////////////////// (PRE) (cCadOrig += fXMLFUN("CO",.T., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),_aTotal[104]),.T.) //Carta Porte (POS) IIf(lCCCE, cCadOrig += "1.1" + _aTotal[098], "") //Emisor //Receptor Domicilio (POS) cCadOrig += IIf(!Empty(cCadOriCCE), cCadOriCCE, "") (POS) cCadOrig += _aTotal[098] //SELLO (PRE) lCCCE := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.) .And. !Empty(SF2->F2_TIPOPE), .T., .F.) (PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",SYA->(MsSeek(xFilial("SYA")+SA2->A2_PAIS)) , .T.) (POS) cNodoCCE := IIf(lCCCE, ' <cce11:ComercioExterior' , "") (POS) cNodoCCE += IIf(lCCCE, ' xmlns:cfdi="http://www.sat.gob.mx/cfd/3"' , "") [XXX CFDIREL] [XXX EMISOR] [XXX RECEPTOR_CLIENTE] (PREREG) AllTrim(SF2->F2_ESPECIE) <> "NDI" (POS) cNodoCCE += IIf(lCCCE, ' <cce11:Emisor' , "") (POS) cNodoCCE += IIf(lCCCE, ' <cce11:Receptor' , "") (POS) cNodoCCE += IIf(lCCCE, ' <cce11:Domicilio' , "") (POS) (cNodoCCE += IIf(lCCCE, ' <cce11:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.) [SD2 CONCEPTO] (PRE) DbGoTop() (PREREG) (cNodoCCE += IIf(lCCCE, ' <cce11:Mercancia' , ""),.T.) (POS) (cNodoCCE += IIf(lCCCE, ' </cce11:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.) (POS) (_aTotal[034] := fXMLFUN("CO",.F., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),_aTotal[104]),.T.) (PREREG) (_aTotal[001] := _aTotal[034] ,.T.) [XXX IMPUESTOS] //IMPUESTOS LOCALES// [XXX COMPLEMENT] [XXX COMERCIOEX] [XXX CARTAPORTE] [XXX IMPUESTOLOC] [XXX LEYENDASFIS]
//[XXX CAD_ORIG] [XXX FACTURA] |
FATEMEX.INI
Se recomienda editar el script actual de generación de CFDI (Archivo XML), actualizando las secciones de acuerdo al siguiente modelo, en donde las líneas resaltadas con color azul se agregaron o fueron modificadas para integrar la Versión 4.0 CFDi en las Notas de Crédito; las líneas resaltadas con color rojo fueron removidas:
...
Painel | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//FATEMEX.INI V4.0 --- Modelo 2022 [XXX INICIALIZACION] (PREREG) FsQuery(_aTotal[097],1,"D1_DOC='" + SF1->F1_DOC + "' AND D1_SERIE='" + SF1->F1_SERIE + "' AND D1_FORNECE='" + SF1->F1_FORNECE + "' AND D1_LOJA='" + SF1->F1_LOJA + "'","SD1->D1_DOC=SF1->F1_DOC .AND. SD1->D1_SERIE=SF1->F1_SERIE .AND. SD1->D1_FORNECE=SF1->F1_FORNECE .AND. SD1->D1_LOJA=SF1->F1_LOJA","D1_ITEM") .And. .T. (PRE) fImptosD(SF1->F1_DOC,SF1->F1_SERIE,SF1->F1_FORNECE,SF1->F1_LOJA, .F. , "SD1", .F., @(_aTotal[036])) [SD1 CADENAORIGINAL_SELLO] //Cadena Original | Complemento de Comercio Exterior //Cadena Original | Complemento de Comercio Exterior ///////////DATOS DE LA FACTURA///////////////// //////////////////////CFDI Relacionados////////////////////////// ///////////DATOS DEL EMISOR/////////////////////// //////////////////////DATOS DEL RECEPTOR////////////////////////// (PRE) (cCadOrig += fXMLFUN("CO",.T., .F. ,.F.)) //Cadena Original | Complemento de Comercio Exterior //Emisor //Receptor Domicilio (POS) cCadOrig += IIf(!Empty(cCadOriCCE), cCadOriCCE, "") (POS) cCadOrig += _aTotal[098] //SELLO [XXX CABECERA] [XXX FACTURA] (PRE) lCCCE := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.) .And. !Empty(SF1->F1_TIPOPE), .T., .F.) (PRE) If(AllTrim(SF1->F1_ESPECIE)=="NCC",SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS)) , .T.) (POS) cNodoCCE := IIf(lCCCE, ' <cce11:ComercioExterior' , "") [XXX CFDIREL] [XXX EMISOR] [XXX RECEPTOR_CLIENTE] (PREREG) AllTrim(SF1->F1_ESPECIE) == "NCC"
//Receptor //Domicilio Receptor (POS) (cNodoCCE += IIf(lCCCE, ' <cce11:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.) [SD1 CONCEPTO] (PRE) DbGoTop() (POS) (cNodoCCE += IIf(lCCCE, ' </cce11:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.) (POS) (_aTotal[034] := fXMLFUN("CO",.F., .F. ,.F.)) [XXX IMPUESTOS] //IMPUESTOS LOCALES// [XXX COMPLEMENT] [XXX COMERCIOEX] [XXX IMPUESTOLOC] [XXX COMPLEMENT] //[XXX CAD_ORIG] [XXX FACTURA] |
Por medio de rutinas
Por medio de esta configuración es posible dejar de usar los archivos .INI.
Para la implementación de la generación de XML por rutina, es importante considerar los siguientes puntos:
- Configurar el parámetro MV_FEXML con valor igual a "S".
- Configurar el parámetro MV_CFDDIRS con la ruta donde se encuentran las llaves y certificados.
Con esto se deja de usar los archivo .INI de la sección anterior y usará las nuevas rutinas FATSMEX.PRW y FATEMEX.PRW.
Para agregar personalizaciones deberá hacer uso de los nuevos puntos de entrada que se mencionan en los puntos 5.12 a 5.14 del índice general de este documento.
Para mas información verifique el enlace DT Factura electrónica, sin uso de archivos .INI para México
Configuración de directorios para timbrado de CFDI
Para el timbrado de CFDI es necesario considerar lo mencionado en el siguiente documento técnico sobre la configuración de directorios en caso de tener instalado y en funcionamiento el WebApp - WebAgent. :
04. DICCIONARIO DE DATOS
Los ajustes al Diccionario de Datos:
...
Nombre de la Variable | MV_CFDI40 |
Tipo | Lógico |
Descripción | Uso de CFDI versión 4.0 |
Valor Estándar | .T. |
Campo | Valor |
---|---|
Nombre de Var. | MV_FEXML |
Tipo | 1 - Caracteres |
Cont. Esp | |
Descripción | Permite activar la funcionalidad para generar XML a través de rutina, evitando el uso de archivos .INI. S - Realizara la creación de archivos XML y no hará uso de los actuales archivo INI |
En la Tabla AI0 -Complemento del Cliente:
...
Producto | TOTVS Backoffice | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | |||||||||||||||||||||||||||||||||
Segmento: | Backoffice | |||||||||||||||||||||||||||||||||
Módulo: | SIGFAT - Facturación. | |||||||||||||||||||||||||||||||||
Función: |
| |||||||||||||||||||||||||||||||||
País: | México. | |||||||||||||||||||||||||||||||||
Paquete: | 010208 | |||||||||||||||||||||||||||||||||
Ticket: | 13529247 | |||||||||||||||||||||||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-15012 |
...
Producto | TOTVS Backoffice | ||||||
---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | ||||||
Segmento: | Backoffice | ||||||
Módulo: | SIGAFAT - Facturación | ||||||
Función: |
| ||||||
País: | México | ||||||
Ticket: | 14627447 | ||||||
Pacote: | 010920 | ||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-16413 |
...
Producto | TOTVS Backoffice | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | |||||||||||||||
Segmento: | Backoffice | |||||||||||||||
Módulo: | SIGAFAT - Facturación | |||||||||||||||
Función: |
| |||||||||||||||
País: | México | |||||||||||||||
Ticket: | 14883985 | |||||||||||||||
Pacote: | 011130 | |||||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-16668 |
...
Producto | TOTVS Backoffice | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | |||||||||
Segmento: | Backoffice | |||||||||
Módulo: | SIGAFAT - Facturación | |||||||||
Función: |
| |||||||||
País: | México | |||||||||
Ticket: | N/A | |||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-16686 (Pacote: 011130) |
...
Producto | TOTVS Backoffice | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | |||||||||
Segmento: | Backoffice | |||||||||
Módulo: | SIGAFAT - Facturación | |||||||||
Función: |
| |||||||||
País: | México | |||||||||
Ticket: | No aplica | |||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-16793 |
...
5.5 Activación de generación de XML de Factura de Venta de tipo Normal mediante la rutina FATSMEX.PRW
Aviso | ||
---|---|---|
| ||
La presente funcionalidad se encuentra en fase de desarrollo, y no ha sido liberada de manera oficial, por lo cual, se recomienda seguir utilizando la funcionalidad del uso del archivo FATSMEX.INI, para lo cual el parámetro MV_FEXML no debe existir o estar vacío |
Producto | TOTVS Backoffice | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | ||||||||||||
Segmento: | Backoffice | ||||||||||||
Módulo: | |||||||||||||
Producto | TOTVS Backoffice | ||||||||||||
Línea de producto: | Línea Protheus | ||||||||||||
Segmento: | Backoffice | ||||||||||||
Módulo: | SIGAFAT - Facturación | ||||||||||||
Función: |
| ||||||||||||
País: | México (Pacote: 011320) | ||||||||||||
Ticket: | No aplica | ||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-17245 |
...
Producto | TOTVS Backoffice | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | |||||||||||||||
Segmento: | Backoffice | |||||||||||||||
Módulo: | SIGAFAT - Facturación | |||||||||||||||
Función: |
| |||||||||||||||
País: | México | |||||||||||||||
Ticket: | 15663253/15642890/15662513 | |||||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-17711 / DMINA-17694 / DMINA-17713 |
...
Tabla SF2 - Encabezado de Fact. de Salida.
Campo | F2_GLOBAL |
---|---|
Tipo | C - Caracter |
Tamaño | 1 |
Decimal | 0 |
Formato | |
Título | Es Global? |
Descripción | Determ. si es factura glob |
Lista Español | 1=Si;2=No |
Inic. Estandar | "2" |
Nivel | 1 |
Utilizado | Sí |
Browse | No |
Help | Determina si el documento es una factura |
Campo | F2_IDCBAJA |
---|---|
Tipo | C - Caracter |
Tamaño | 2 |
Decimal | 0 |
Formato | @! |
Título | Periodicidad |
Descripción | Periodicidad de Emisión |
Consulta | MEX029 |
Validación de sistema | Vazio() .or. ValidF3I("S029", M->F2_IDCBAJA,1,2) |
Nivel | 1 |
Utilizado | Sí |
Browse | No |
Help | Informe el período al que corresponde a la información del comprobante global. |
...
Producto | TOTVS Backoffice | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | |||||||||||||||
Segmento: | Backoffice | |||||||||||||||
Módulo: | SIGAFAT - Facturación | |||||||||||||||
Función: |
| |||||||||||||||
País: | México | |||||||||||||||
Ticket: | 15946342 (Pacote: 0011736) | |||||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-18213 |
...
Estatus | Acción protheus | Respuesta Protheus | ||||||
---|---|---|---|---|---|---|---|---|
Vigente | Actualiza Status | Cambia estatus a Vigente Cancelable Con Aceptación | ||||||
Cambia estatus a Vigente Cancelable Sin Aceptación | ||||||||
Vigente Cancelable Con Aceptación | Cancelar e indicar Motivo |
|
Funcionalidad con motivo diferente a "01 - Comprobante emitido con errores con relación de documento"
...
Producto | TOTVS Backoffice | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | ||||||||||||
Segmento: | Backoffice | ||||||||||||
Módulo: | SIGAFAT - Facturación | ||||||||||||
Función: |
| ||||||||||||
País: | México | ||||||||||||
Ticket: | No aplica (Pacote: 0011806) | ||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-18471 |
...
Se modifican los campos de la tabla SF2 - Encabezado de Doc de Salida
Campo | F1F2_TIPOPE |
---|---|
Titulo | Tipo Opera |
Opciones | 1=Exportación de servicios;2=Exportación;3=Exportación sin enajenación |
Val Sistema | Vazio() .Or. (Pertence('123') .And. ValTipoOpe(2)) |
5.9 Activación de generación de XML de Nota de Crédito mediante rutina FATEMEX.PRW
...
title | IMPORTANTE |
---|
...
Producto | TOTVS Backoffice | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | |||||||||||||||
Segmento: | Backoffice | |||||||||||||||
Módulo: | SIGAFAT - Facturación | |||||||||||||||
Función: |
| |||||||||||||||
País: | México | |||||||||||||||
Ticket: | No aplica | |||||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-19160 |
...
- Configurar el parámetro MV_FEXML.
- 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 parámetros MV_IVATRAS y MV_RETIVAM con los códigos de Impuestos y Retenciones.
- Ingresar al módulo Libros Fiscales (SIGAFIS), ir al menú Actualizaciones | Archivos | Contr. Formularios (MATA992)
- Configurar los datos para la Serie de la Factura informando los campos No. Inicial, No. Final, Fch Validez y Certificado
- En la ruta configurada en el parámetro MV_CFDDIRS debe existir el archivo que se configuró en el parámetro MV_CFDI_CP, ya que con este archivo es generado el atributo Certificado en el XML del CFDI.
...
5.
...
10 Activación de nodo de Destinatarios en complemento de Comercio Exterior.
Producto | TOTVS Backoffice | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | ||||||||||||||||||||||||
Segmento: | Backoffice | ||||||||||||||||||||||||
Módulo: | SIGAFAT - Facturación | ||||||||||||||||||||||||
Función: |
| ||||||||||||||||||||||||
País: | México (Pacote: 012477) | ||||||||||||||||||||||||
Ticket: | 17141182 | ||||||||||||||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-19736 |
...
Campo | F2_ACOPLA |
---|---|
Tipo | C - Caracter |
Tamaño | 30 |
Formato | @! |
Título | Destinos |
Descripción | Destinos |
Nivel | 1 |
Val. Sistema | LxMexDest(M->F2_CLIENTE,M->F2_LOJA) .And. LxVldDest(M->F2_ACOPLA) |
Utilizado | Si |
Obligatorio | No |
Browse | No |
Help | Seleccione uno o varios de los destinos de la entrega de mercancía para Comercio Exterior. |
...
5.
...
11 Activación de Complemento de Comercio Exterior 1.1 y Carta Porte 2.0 en NF de Traslado con rutina FATSMEX.PRW
...
...
La presente funcionalidad se encuentra en fase de desarrollo, y no ha sido liberada de manera oficial, por lo cual, se recomienda seguir utilizando la funcionalidad del uso del archivo FATSMEX.INI, para lo cual el parámetro MV_FEXML no debe existir o estar vacío.
Producto | TOTVS Backoffice | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | ||||||||||||
Segmento: | Backoffice | ||||||||||||
Módulo: | SIGAFAT - Facturación | ||||||||||||
Función: |
| ||||||||||||
País: | México | ||||||||||||
Ticket: | No aplica | ||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-17258 |
...
Se realiza ajuste en la función que llena el arreglo para hacer cuadre por centavos a estructura y cadena de XML (fImptosD) para almacenar en un arreglo con los valores que se informarán en el nodo cce11:Mercancia del nodo cfdi:Comprobante\cfdi:Complemento\cce11:ComercioExterior\cce11:Mercancias.
06. OTRAS DOCUMENTACIONES
5.12 Activación de PE para modificar nodos Emisor y Receptor para XML de Documentos de Entrada y Salida con MV_FEXML activo
Producto | TOTVS Backoffice | ||||||
---|---|---|---|---|---|---|---|
Línea de prducto: | 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-20949 |
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 activar un Punto de Entrada, que permitan las siguientes acciones:
- Modificar en el nodo de cfdi:Emisor, los valores de los atributos "RFC, Nombre, RegimenFiscal"
- Modificar en el nodo de cfdi:Receptor, los valores de los atributos "RFC, Nombre, DomicilioFiscalReceptor, RégimenFiscal"
SOLUCION
En la rutina deFunciones genéricas para Facturación - Mercado Internacional - (FATXFUMI):
Se activó el Punto de Entrada PEEMIREC, que permite modificar los atributos RFC, Nombre y RegimenFiscal nodo cfdi:Emisor y los atributos RFC, Nombre, DomicilioFiscalReceptor y RegimenFiscal del nodo cfdi:Receptor, según las posiciones enviadas en el Punto de Entrada, cuando exista esté validará que contenga información en la posición correspondiente en caso contrario indicará la información que se tiene por estándar.
Informações |
---|
El Punto de Entrada PEEMIREC recibe como parámetro la opción de tipo Caracter, mediante el cual se tienen disponibles las siguientes opciones: Si opción es "E", se permite la modificación del Nodo de cfdi:Emisor, tomando en cuenta las siguientes posiciones:
Si opción es "R", se permite la modificación del Nodo de cfdi:Receptor, tomando en cuenta las siguientes posiciones:
|
Ejemplo de los Puntos de Entrada:
Bloco de código | ||
---|---|---|
| ||
User Function PEEMIREC()
Local cArea := GetArea()
Local cOpcion := PARAMIXB[1] // E - Emisor o R - Receptor
Local aEmiRec := {"","","",""} // Arreglo que contiene la información del Emisor o Receptor.
/* Posiciones del atributo que se puede modificar en el XML para Emisor y Receptor
aEmiRec[1] := RFC
aEmiRec[2] := Nombre
aEmiRec[3] := RegimenFiscal
aEmiRec[4] := DomicilioFiscal Solo Receptor
*/
If cOpcion =='E'
aEmiRec[2] := "TOTVS SA"
EndIf
If cOpcion =='R' .And. Alltrim(cEspecie) $ "NF"
aEmiRec[2] := "Prueba PE Receptor RFC"
aEmiRec[3] := "605"
aEmiRec[4] := "54910"
EndIf
Return aEmiRec
|
Informações | ||
---|---|---|
| ||
En el Punto de Entrada PEEMIREC, se tienen disponibles los siguientes datos: La variable cEspecie, la cual puede ser utilizada para personalizar para que la funcionalidad aplique solo para ciertos documentos, ya que contiene la especie del documento (por ejemplo NF para Factura de Venta, NDC para Nota de Débito de Cliente o NCC para Nota de Crédito de Cliente). Posicionamiento del registro del Documento en la tabla SF1 - Encabezado de Fact. de Entrada para los documento de Entrada. Posicionamiento del registro del Documento en la tabla SF2 - Encabezado de Fact. de Salida para los documento de Salida. En el Punto de Entrada PEEMIREC, se debe inicializar la variable de retorno de tipo arreglo, con 4 posiciones de tipo caracter vacías, por ejemplo: Local aEmiRec := {"","","",""} y solo actualizar la posición que sea personalizar en el nodo. |
5.13 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
Producto |
| ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: |
| ||||||||||||
Segmento: |
| ||||||||||||
Módulo: | SIGAFAT- Facturación | ||||||||||||
Función: |
| ||||||||||||
País: | México (MEX) | ||||||||||||
Ticket: | No aplica | ||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-20950 |
SITUACIÓN:
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 activar Puntos de Entrada, que permitan las siguientes acciones:
- En el nodo cfdi:Comprobante\cfdi:Conceptos\cfdi:Concepto, permitir modificar los atributos ValorUnitario, Importe y Descuento.
- En el nodo cfdi:Comprobante\cfdi:Conceptos\cfdi:Concepto, permitir modificar del nodo de cfdi:Impuestos por ítem.
- En el nodo cfdi:Comprobante\cfdi:Conceptos, permitir personalizar la generación del nodo de cfdi:InformacionAduanera.
- En el nodo cfdi:Comprobante\cfdi:Conceptos, permitir personalizar la generación del nodo de cfdi:CuentaPredial.
- En el nodo cfdi:Comprobante, permitir personalizar el nodo de cfdi:Impuestos (Impuestos Totales).
SOLUCIÓN:
En la rutina de Funciones Genéricas de Localizaciones (LOCXFUNA):
Se realizó ajuste para que el Punto de Entrada LOCXCONCEP, permita:
- En el nodo cfdi:Comprobante\cfdi:Conceptos\cfdi:Concepto, personalizar el valor del atributo ValorUnitario con la pósición 7 del arreglo retornado por el Punto de Entrada (el retorno debe ser de tipo Caracter).
- En el nodo cfdi:Comprobante\cfdi:Conceptos\cfdi:Concepto, personalizar el valor del atributo Importe con la posición 8 del arreglo retornado por el Punto de Entrada (el retorno debe ser de tipo Caracter).
- En el nodo cfdi:Comprobante\cfdi:Conceptos\cfdi:Concepto, personalizar el valor del atributo Descuento con la posición 9 del arreglo retornado por el Punto de Entrada (el retorno debe ser de tipo Caracter).
Se activó el Punto de Entrada PEDETIMP, el cual permite:
Modificar en el nodo cfdi:Comprobante\cfdi:Conceptos\cfdi:Concepto el nodo cfdi:Impuestos por ítem.
Informações title Información El punto de Entrada PEDETIMP, recibe 4 parámetros, donde:
El primer parámetro es de tipo carácter, con las opciones IT para personalizar el nodo cfdi:Impuestos para Impuestos de Traslados e IR para personalizar el nodo cfdi:Impuestos para Impuestos de Retenciones.
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 tercer parámetro corresponde del código del Producto.
El cuarto parámetro corresponde del número del ítem.
El retorno debe ser un arreglo con valores de tipo caracter.
Se activó el Punto de Entrada PECOMPCON, el cual permite:
- Personalizar el nodo cfdi:InformacionAduanera.
- Personalizar el nodo cfdi:cfdi:CuentaPredial.
Informações title Información El punto de Entrada PECOMPCON, recibe 2 parámetros, donde:
El primer parámetro es de tipo carácter, con las opciones IA para personalizar el nodo de Información Aduanera, CP para personalizar el nodo de Cuenta Predial y P para personalizar el nodo de Partes.
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.
En la rutinas de Generación de XML para Documentos de Salida (FATSMEX.PRW) y Generación de XML para Documentos de Entrada (FATEMEX.PRW):
Se activó el Punto de Entrada PEXMLDOC, el cual permite:
- En el nodo cfdi:Comprobante, permitir personalizar los atributos:
- Total
- Subtotal
- Fecha
- Descuento
- TipoCambio
- LugarExpedicion
- Moneda
- FormaPago
- MetodoPago
- Exportación
- Personalizar el nodo cfdi:Impuestos que corresponde a los Impuestos Totales del Documentos.
Informações title Información El punto de Entrada PEXMLDOC,recibe 2 parámetros, donde:
El primer parámetro es de tipo caracter, con las siguientes opciones:
- ST para personalizar el valor del atributo SubTotal
- T personalizar el valor del atributo Total
- FE personalizar el valor del atributo Fecha
- D personalizar el valor atributo Descuento
- TC personalizar el valor del atributo TipoCambio
- LE personalizar el valor de atributo LugarExpedicion
- MO personalizar el valor del atributo Moneda
- FP personalizar el valor del atributo FormaPago
- MP personalizar el valor del atributo MetodoPago
- TI para personalizar el nodo cfdi:Impuestos de los impuestos totales del documento.
- CO para personalizar el nodo cfdi:Conceptos
- E para personalizar el valor del atributo SubTotal
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, y este parámetro no aplica para las opciones ST - Subtotal y T - Total).
El retorno debe ser un valor de tipo carácter.
Aviso title Importante Para los Puntos de Entrada PECOMPCON, PEXMLDOC, PEDETIMP y LOCXCONCEP se tiene acceso a las tablas SF1 - Encabezado de Fact. de Entrada y SF2 - Encabezado de Fact. de Salida.
Ejemplos de los Puntos de Entrada:
Bloco de código title 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 Local lCadO := PARAMIXB[2] //Indica si es Cadena Original .T. = Si y .F. = No Local cSepa := "|" Local cNPed := "23 47 3807 8003832" Local cCtaP := "15956011002" Local cClaveP:= "10101504" Local cNoId := "9642000000000002" Local cCant := "1" Local cUnid := "UN" Local cDesc := "MOUSE" If Alltrim(cEspecie) $ "NF|NCC" If lCadO If cOpc == "IA" //Información Aduanera cXMLCon := StrTran(cNPed," "," ") + cSepa ElseIf cOpc == "CP" //Cuenta Predial cXMLCon := cCtaP + cSepa ElseIf cOpc == "P" //Partes cXMLCon := cClaveP + cSepa + cNoId + cSepa + cCant + cSepa + cUnid + cSepa + cDesc + cSepa EndIf Else If cOpc == "IA" //Información Aduanera cXMLCon := Space(12) + '<cfdi:InformacionAduanera NumeroPedimento="' + cNPed + '"/>' + cCRLF ElseIf cOpc == "CP" //Cuenta Predial cXMLCon := Space(12) + '<cfdi:CuentaPredial Numero="' + cCtaP + '"/>' + cCRLF ElseIf cOpc == "CP" //Cuenta Predial cXMLCon := Space(12) + ' <cfdi:Parte ClaveProdServ="'+ cClaveP +'" NoIdentificacion="'+ cNoId +'" Cantidad="'+ cCant +'" Unidad="'+cUnid+'" Descripcion="'+cDesc+'"/> '+ cCRLF EndIf EndIf EndIf Return cXMLCon
Bloco de código title 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 := "" 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 == "FE" //Fecha de emisión cXMLRet := "" ElseIf cOpc == "FP" //FormaPago cXMLRet := "" ElseIf cOpc == "TC" //TipoCambio cXMLRet := "" ElseIf cOpc == "LE" //LugarExpedición cXMLRet := "" ElseIf cOpc == "MO" //Moneda cXMLRet := "" ElseIf cOpc == "E" //Exportación cXMLRet := IIf(!Empty(SF2->F2_TIPOPE) .And. Alltrim(SF2->F2_ESPECIE) == "NF","02", "01") 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
Aviso title Importante Para las opciones MO para Moneda, TC para TipoCambio y LE para LugarExpedición la rutina FATEMEX.PRW debe tener fecha igual o superior a 13/02/2024 y la rutina FATSMEX.PRW debe tener fecha igual o superior a 15/02/2024.
Bloco de código title LOCXCONCEP #include 'protheus.ch' #INCLUDE "FWMVCDEF.CH" #include "FILEIO.CH" User function LOCXCONCEP() Local cArea := GetArea() Local cCodProd := PARAMIXB[1] // Código del producto. Local cItem := PARAMIXB[2] // Número Item Local aDetFac := {"","",0,"","","","","",""} // Arreglo que contiene la información del producto. /* aDetFac[1] := ClaveProdSer aDetFac[2] := No. Identificación aDetFac[3] := Cantidad aDetFac[4] := ClaveUnidad aDetFac[5] := Unidad aDetFac[6] := Descripcion aDetFac[7] := ValorUnitario aDetFac[8] := Importe aDetFac[9] := Descuento */ If Alltrim(cEspecie) $ "NF|NCC" aDetFac[7] := "0.01" aDetFac[8] := "0.01" aDetFac[9] := "0.00" EndIf RestArea(cArea) Return aDetFac
Bloco de código title PEDETIMP #include 'protheus.ch' #INCLUDE "FWMVCDEF.CH" #include "FILEIO.CH" User Function PEDETIMP() Local cOpc := PARAMIXB[1] //Opción donde IA - Información Aduanera, CP - Cuenta Predial Local lCadO := PARAMIXB[2] //Indica si es Cadena Original .T. = Si y .F. = No Local cProd := PARAMIXB[3] //Código del Producto Local cItem := PARAMIXB[4] //Número de ítem Local aImpDet := {} Local cRetImp := "" Local cBaseI := "0.01" Local cImpto := "002" Local cTipoF := "Tasa" Local cTsaC := "0.000000" Local cImpI := "0.00" Local cCRLF := (chr(13)+chr(10)) Local cSepa := "|" If Alltrim(cEspecie) $ "NF|NCC" If lCadO If cOpc == "IT" cRetImp := cBaseI + cSepa + cImpto + cSepa + cTipoF + cSepa + cTsaC + cSepa + cImpI + cSepa EndIf Else If cOpc == "IT" cRetImp := Space(20) + '<cfdi:Traslado Base="' + cBaseI + '" Impuesto="' + cImpto + '" TipoFactor="' + cTipoF + '" TasaOCuota="' + cTsaC + '" Importe="' + cImpI + '"/>' + cCRLF EndIf EndIf aAdd(aImpDet, cRetImp) EndIf Return aImpDet
5.14 Activación de PE para incorporar datos adicionales al final del XML para FATSMEX.PRW y FATEMEX.PRW
Producto |
| |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: |
| |||||||||
Segmento: |
| |||||||||
Módulo: | SIGAFAT - Facturación | |||||||||
Función: |
| |||||||||
País: | México (MEX) | |||||||||
Ticket: | No aplica. | |||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-20951 |
SITUACIÓN:
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 activar Puntos de Entrada, que permitan :
- En el nodo cfdi:Comprobante al final del XML indicar información adicional informativa que no es requerida por el SAT y por lo tanto no afecta la cadena original para el timbrado.
SOLUCIÓN:
En la rutinas de Generación de XML para Documentos de Salida (FATSMEX.PRW) y Generación de XML para Documentos de Entrada (FATEMEX.PRW):
Se activó el Punto de Entrada PEXMLADIC, el cual permite:
- Personalizar el final del archivo XML información solo de manera informativa que no afecta a la cadena original.
Ejemplo de los Puntos de Entrada:
Bloco de código | ||
---|---|---|
| ||
#include "protheus.ch"
User Function PEXMLADIC()
Local cCRLF := (chr(13)+chr(10))
Local cXMLPE := ""
If Alltrim(cEspecie) $ "NF|NCC"
cXMLPE += ' <cfdi:Addenda>' + cCRLF
cXMLPE += ' <Addenda xmlns:Addenda="http://www.Addenda/" schemaLocation="http://www.addenda.xsd" version="1.0">' + cCRLF
cXMLPE += ' <Addenda:Datos>' + cCRLF
cXMLPE += ' <Addenda:Detalle>abc</Addenda:Detalle>' + cCRLF
cXMLPE += ' </Addenda:Datos>' + cCRLF
cXMLPE += ' </Addenda>' + cCRLF
cXMLPE += ' </cfdi:Addenda>' + cCRLF
EndIf
Return cXMLPE
|
Informações |
---|
La variable cEspecie, la cual puede ser utilizada para personalizar para que la funcionalidad aplique solo para ciertos documentos, ya que contiene la especie del documento (por ejemplo NF para Factura de Venta, NDC para Nota de Débito de Cliente o NCC para Nota de Crédito de Cliente). |
5.15 Facilitador de CFDI (Fracción Arancelaria, Unidad de Medida Aduana y Eliminación de Espacios en Nombre del Receptor)
Producto |
| |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: |
| |||||||||||||||
Segmento: |
| |||||||||||||||
Módulo: | SIGAFAT - Facturación | |||||||||||||||
Función: |
| |||||||||||||||
País: | México | |||||||||||||||
Ticket: | No aplica. | |||||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-20951 |
SITUACIÓN:
Para la generación de Pedido de Venta, si el parámetro MV_CFDIEXP (¿Genera Complemento de Comercio Exterior en CFDI?) está configurado con el valor .T. y el campo Tipo Opera. (C5_TIPOPE) contiene información, se solicitan los siguientes ajustes:
- En el detalle del Pedido de Venta, al informar el campo Producto (C6_PRODUTO), si el producto tiene configurado el campo Fracc Arance (B1_CODICE), se deberá llenar en automático el campo Frac. arance (C6_FRACCA) con el valor del campo Fracc Arance (B1_CODICE) y el campo Unidad Adua. (C6_UNIADU) con el valor del campo UnidMedi de la tabla S014 - Catálogo Fraccion Arancelaria del Mantenimiento de Catálogos (Tablas F3H y F3I) que corresponde para la Fracción Arancelaria.
- En el detalle del Pedido de Venta, al informar o modificar el campo Frac. arance (C6_FRACCA), se deberá de informar en automático el campo Unidad Adua. (C6_UNIADU) con el valor del campo UnidMedi de la tabla S014 - Catálogo Fraccion Arancelaria del Mantenimiento de Catálogos (Tablas F3H y F3I) que corresponde para la Fracción Arancelaria.
Para la generación de Factura de Venta (NF), desde la rutina Facturaciones (MATA467), si el parámetro MV_CFDIEXP está configurado con el valor .T. y el campo Tipo Opera. (F2_TIPOPE) es diferente de vacío, se solicitan los siguientes ajustes:
- En el detalle de la Factura de Venta (NF), al informar el campo Producto (D2_COD), si el producto tiene configurado el campo Fracc Arance (B1_CODICE), se deberá llenar en automático el campo Frac. Arance (D2_FRACCA) con el valor del campo Fracc Arance (B1_CODICE) y el campo Unidad Adua. (D2_UNIADU) con el valor del campo UnidMedi de la tabla S014 - Catálogo Fraccion Arancelaria del Mantenimiento de Catálogos (Tablas F3H y F3I) que corresponde para la Fracción Arancelaria.
- En el detalle de la Factura de Venta (NF), al informar o modificar el campo Frac. Arance (D2_FRACCA), se deberá de informar en automático el campo Unidad Adua. (D2_UNIADU) con el valor del campo UnidMedi de la tabla S014 - Catálogo Fraccion Arancelaria del Mantenimiento de Catálogos (Tablas F3H y F3I) que corresponde para la Fracción Arancelaria.
- En el campo Fracc Arance (B1_CODICE del Producto, la consulta debe mostrar los valores a través de la consulta MEX014.
Crear una nueva función que permita sustituir por un espacio cuando existen más de un espacio entre palabra de una cadena de texto.
SOLUCIÓN:
En la rutina de Funciones Genéricas para Documentos Fiscales para México (LOCXMEX):
Se creó la función LxFraccAra(), que retorna la Fracción Arancelaria del campo Fracc Arance (B1_CODICE), realizando búsqueda por el Código del Producto.
Se creÓ la función LxUMFracc(), que retorna la Unidad de Medida Aduanera, obteniendo el valor del campo UnidMedi de la tabla S014 - Catálogo Fraccion Arancelaria del Mantenimiento de Catálogos (Tablas F3H y F3I) que corresponde para la Fracción Arancelaria.
En la rutina Funciones genéricas para Facturación - Mercado Internacional (FATXFUMI):
Se creó la función FxDelExp(), que permite eliminar más de espacio entre palabras en una cadena de texto, y colocando solo un espacio.
En la función FATXMIRECE(), al generar el atributo Nombre, del nodo cfdi:Receptor, se hace uso de la función FxDelExp, para dar tratamiento a los espacios de más y que solo se muestre un espacio en la separación de palabas que contiene el Nombre del Cliente (el ajuste aplica cuando el parámetro MV_FEXML está configurado con el parámetro con el valor S y también se utiliza para la cadena original).
En los archivos de la Generación de XML para Documentos de Salida (FATSMEX.INI) y Generación de XML para Documentos de Entrada (FATEMEX.INI):
Se agrega el uso de la función FxDelExp, para dar tratamiento a los espacios de más y que solo se muestre un espacio en la separación de palabas que contiene el Nombre del Cliente (el ajuste aplica cuando el parámetro MV_FEXML está configurado con el parámetro con el valor S y también se utiliza para la cadena original).
DICCIONARIO DE DATOS:
Configurar los siguientes Disparadores en el archivo SX7 - Disparadores:
Campo | C6_PRODUTO |
Secuencia | 007 |
Cnt. Dominio | C6_FRACCA |
Tipo | 1 - Primario |
Regla | IIf(FINDFUNCTION("LxFraccAra"),LxFraccAra(M->C6_PRODUTO, M->C5_TIPOPE),"") |
Posiciona | 2 - No |
Alias | |
Orden | 0 |
Clave | |
Condición |
Campo | C6_PRODUTO |
Secuencia | 008 |
Cnt. Dominio | C6_UNIADU |
Tipo | 1 - Primario |
Regla | IIf(FINDFUNCTION("LxUMFracc"),LxUMFracc(M->C6_FRACCA, M->C5_TIPOPE),"") |
Posiciona | 2 - No |
Alias | |
Orden | 0 |
Clave | |
Condición |
Campo | C6_FRACCA |
Secuencia | 002 |
Cnt. Dominio | C6_UNIADU |
Tipo | 1 - Primario |
Regla | IIf(FINDFUNCTION("LxUMFracc"),LxUMFracc(M->C6_FRACCA, M->C5_TIPOPE),"") |
Posiciona | 2 - No |
Alias | |
Orden | 0 |
Clave | |
Condición |
Campo | D2_COD |
Secuencia | 008 |
Cnt. Dominio | D2_FRACCA |
Tipo | 1 - Primario |
Regla | IIf(FINDFUNCTION("LxFraccAra"),LxFraccAra(M->D2_COD, M->F2_TIPOPE),"") |
Posiciona | 2 - No |
Alias | |
Orden | 0 |
Clave | |
Condición |
Campo | D2_COD |
Secuencia | 009 |
Cnt. Dominio | D2_UNIADU |
Tipo | 1 - Primario |
Regla | IIf(FINDFUNCTION("LxUMFracc"),LxUMFracc(M->D2_FRACCA, M->F2_TIPOPE),"") |
Posiciona | 2 - No |
Alias | |
Orden | 0 |
Clave | |
Condición |
Campo | D2_FRACCA |
Secuencia | 002 |
Cnt. Dominio | D2_UNIADU |
Tipo | 1 - Primario |
Regla | IIf(FINDFUNCTION("LxUMFracc"),LxUMFracc(M->D2_FRACCA, M->F2_TIPOPE),"") |
Posiciona | 2 - No |
Alias | |
Orden | 0 |
Clave | |
Condición |
Configurar el siguiente campo en el archivo SX3 - Campos:
Campo | B1_CODICE |
Tipo | C - Caracter |
Tamaño | 10 |
Decimal | 0 |
Formato | @! |
Contexto | Real |
Propiedad | Modificar |
Tit. Español | Fracc Arance |
Desc. Español | Fracción arancelaria |
Consulta Estándar | MEX014 |
Validación | Vazio() .or. ValidF3I("S014", M->B1_CODICE,1,8) |
Obligatorio | No |
Usado | Si |
Exhibe en Browse | No |
Help | Fracción Arancelaria aplicable a la mercancía según corresponda, conforme a la TIGIE. |
5.16 DT Acuses de cancelación guardados en una carpeta local
Producto | TOTVS Backoffice | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | |||||||||
Segmento: | Backoffice | |||||||||
Módulo: | SIGAFAT - Facturación | |||||||||
Función: |
| |||||||||
País: | México | |||||||||
Ticket: | No aplica. | |||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-20893 |
SITUACIÓN
Se requiere que al realizar la Cancelación del CFDI de los documentos "Factura de Venta (NF), Nota de Débito y Crédito (NDC/NCC)", guarde los acuses de cancelación así como XML y PDF del documento cancelado en una carpeta local y no solo en el servidor.
SOLUCIÓN
En las rutinas de Cancelación CFDI (FISA817):
Se crea función F817CopAcu() que guarda en la ruta indicada en el parámetro MV_CFDCARF los archivos ".sol", ".xml", ".pdf" de los documentos Factura de Venta (NF), Nota de Débito y Crédito (NDC/NCC)", cuando se realiza la cancelación de estos y envía mensaje al usuario indicando la ruta donde se almacenaron dichos archivos.
En las rutinas de Timbrado CFDI (FISA800):
Se realiza ajuste para cuando se cancela un documento con tipo de motivo de cancelación "01" y se realiza el timbrado del nuevo documento que lo sustituye, guarde en la ruta indicada en el parámetro MV_CFDCARF los archivos ".sol", ".xml", ".pdf" del documento que fue cancelado y envía mensaje con el folio y ruta donde se almacenaron dichos archivos.
PROCEDIMIENTO
- En el módulo de Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Facturaciones (MAT467N)
- Incluir y Timbrar el CFDI de una Factura de Venta (NF).
- En el módulo de Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Cancelación CFDI (FISA817)
- En los parámetros para visualizar la Factura, indicando en la pregunta ¿Tipo de Documento? con la opción Factura.
- Seleccionar la Factura de Venta (NF) que fue creada y timbrada previamente, ejecutar la acción Act. Status.
- Validar que la Factura sea Cancelable.
- Seleccionar de nueva cuenta la Factura de Venta (NF), y ejecutar la acción Cancelar.
- En el módulo Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Cancelación de CFDI (FISA817).
- Informar los parámetros necesarios para visualizar la Factura de Venta (NF) que fue timbrada previamente.
- Seleccionar la Factura de Venta (NF) que fue timbrada previamente.
- Ejecutar la acción Act. Status.
- Confirmar la continuación con la consulta de estado del documento.
- Validar que el documento sea cancelable.
- Seleccionar de nueva cuenta la Factura de Venta (NF) que fue timbrada previamente.
- Ejecutar la acción Cancelar.
- Confirman la continuación de la solicitud de cancelación.
- En la pantalla Motivo Baja:
- Informar el campo Motivo diferente de 01.
- Una vez finalizado el proceso de cancelación verificar que indique la ruta donde se almacenaron los archivos.
- Validar que el acuse y archivos .sol, .xml y/o .pdf se muestren en la ruta indicada.
- En el módulo de Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Facturaciones (MAT467N)
- Incluir y Timbrar el CFDI de una Factura de Venta (NF).
- En el módulo de Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Cancelación CFDI (FISA817)
- En los parámetros para visualizar la Factura, indicando en la pregunta ¿Tipo de Documento? con la opción Factura.
- Seleccionar la Factura de Venta (NF) que fue creada y timbrada previamente, ejecutar la acción Act. Status.
- Validar que la Factura sea Cancelable.
- Seleccionar de nueva cuenta la Factura de Venta (NF), y ejecutar la acción Cancelar.
- En la pantalla "Motivo baja" informar en el campo Motivo cancelación la opción 01 - Compr. Emitido c/errores c/relac., presionar Confirmar.
- Confirmar que se realice la anulación de la Factura, teniendo en cuenta que la solicitud de Cancelación ante el SAT no será realizada.
- En el módulo de Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Facturaciones (MAT467N)
- Incluir una nueva Factura de Venta (NF).
- En el encabezado informar en los campos Serie Sust. (F2_SERMAN) y Núm. Doc. Sust. (F2_DOCMAN) la Factura que fue anulada en Protheus pero no fue Cancelada ante el SAT.
- Presionar Confirmar para guardar la Factura.
- Confirmar la generación y timbrado del Comprobante Fiscal Digital por Internet (CFDI), validar que se haya timbrado la nueva Factura y que se haya Cancelado ante el SAT la Factura a la que se sustituye.
- Validar que el acuse y archivos .sol, .xml y/o .pdf se muestren en la ruta indicada.
INFORMACIÓN ADICIONAL
Parámetros (SX6)
Ítems/Carpetas | Descripción |
---|---|
Tipo | C |
Nombre de Var. | MV_CFDCARF |
Descripción | Ruta local donde se guardarán los acuses de los documentos cancelados (.sol,.xml y .pdf) |
Cont. Esp |
5.17 Ajustes en atributo "ObjetoImp" de la NF
Producto | TOTVS Backoffice | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | |||||||||||||||
Segmento: | Backoffice | |||||||||||||||
Módulo: | SIGAFAT - Facturación | |||||||||||||||
Función: |
| |||||||||||||||
País: | México | |||||||||||||||
Ticket: | 18161768 | |||||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-21137 |
SITUACIÓN
Se solicita realizar ajustes para permitir al usuario modificar el valor del atributo ObjetoImp, para el timbrado de Facturas de Venta (NF) de tipo Ingreso (Normal), permitiendo utilizar los valores que se definen en el catálogo del SAT c_ObjetoImp:
SOLUCIÓN
En la rutina de Funciones Genéricas de Notas Fiscales (LOCXFUNA):
Se realizaron ajustes para:
- Acumular el valor de impuestos, sumando Traslados y restando las Retenciones, para cuando el campo Objeto Imp (D2_NIT) contiene los valores 01, 03 o 04.
- No generar el nodo de Impuestos, para los Conceptos, si el campo Objeto Imp (D2_NIT) contiene los valores 01, 03 o 04.
- No generar el nodo de Impuestos exentos , para los Conceptos, y el campo Objeto Imp (D2_NIT) contiene los valores 01, 03 o 04.
En el archivo de Funciones Genéricas para Documentos Fiscales para México (LOCXMEX):
Se realizaron los siguientes ajustes:
- Se agrega validación cuando se indica en un ítem el campo Objeto Imp (D2_NIT) el valor "01" para que solo permita indicar un Tipo de Entrada y Salida sin impuestos.
Aviso | ||
---|---|---|
| ||
La funcionalidad del campo Objeto Imp (D2_NIT), solo aplica para Facturas y en caso de no existir el campo o estar vacío, se tomará la funcionalidad anterior para la generación del nodo de Impuestos por Concepto. |
INFORMACIÓN ADICIONAL Âncora 517 517
En el archivo FATSMEX.INI, se deberán realizar los siguientes ajustes:
Informações | ||
---|---|---|
| ||
[XXX POSICIONAMENTOS] [XXX INICIALIZACION] (PRE) fImptosD(SF2->F2_DOC,SF2->F2_SERIE,SF2->F2_CLIENTE,SF2->F2_LOJA,IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),"SD2", SF2->F2_GLOBAL == "1",@(_aTotal[036]),_aTotal[104],@_aTotal[037], @_aTotal[038], ,@_aTotal[115]) [SD2 CADENAORIGINAL_SELLO] //Cadena Original | Complemento de Comercio Exterior (Mercancias) ///////////DATOS DE LA FACTURA///////////////// //////////////////////CFDI Relacionados////////////////////////// ///////////DATOS DEL EMISOR/////////////////////// //////////////////////DATOS DEL RECEPTOR////////////////////////// (PRE) (cCadOrig += fXMLFUN("CO",.T., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),_aTotal[104]),.T.) (POS) IIf(lCCCE, cCadOrig += "1.1" + _aTotal[098], "") //Emisor //Receptor Domicilio (POS) cCadOrig += IIf(!Empty(cCadOriCCE), cCadOriCCE, "") //Carta Porte (POS) (cCadOrig += fXMLFUN("IL",.T., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.)),.T.) (POS) cCadOrig += _aTotal[098] //SELLO (PRE) lCCCE := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.) .And. !Empty(SF2->F2_TIPOPE) .And. _aTotal[114], .T., .F.) (PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",SYA->(MsSeek(xFilial("SYA")+SA2->A2_PAIS)) , .T.) (POS) cNodoCCE := IIf(lCCCE, ' <cce11:ComercioExterior' , "") [XXX CFDIREL] [XXX FACTURA GLOBAL] [XXX EMISOR] [XXX RECEPTOR_CLIENTE] (PREREG) AllTrim(SF2->F2_ESPECIE) <> "NDI" (POS) cNodoCCE += IIf(lCCCE, ' <cce11:Emisor' , "") (POS) (cNodoCCE += IIf(lCCCE, ' <cce11:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.) [SD2 CONCEPTO] (PRE) DbGoTop() (PREREG) (cNodoCCE += IIf(lCCCE, ' <cce11:Mercancia' , ""),.T.) (POS) (cNodoCCE += IIf(lCCCE, ' </cce11:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.) (POS) (_aTotal[034] := fXMLFUN("CO",.F., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),_aTotal[104]),.T.) (PREREG) (_aTotal[001] := _aTotal[034] ,.T.) [XXX IMPUESTOS] //IMPUESTOS LOCALES// [XXX COMPLEMENT] [XXX COMERCIOEX] [XXX CARTAPORTE] [XXX IMPUESTOLOC] [XXX LEYENDASFIS]
//[XXX CAD_ORIG] [XXX FACTURA] |
Catálogo de Objeto Impuesto:
Informações | ||||||
---|---|---|---|---|---|---|
|
Actualizaciones en la tabla SXB-Consultas Estándar.
Creación de la consulta específica MEX031 - Objeto Impuesto.
Alias | Tipo | Secuencia | Columna | Descripción | Contenido |
---|---|---|---|---|---|
MEX031 | 1 | 01 | RE | Objeto Impuesto | F3I |
MEX031 | 2 | 01 | 01 | F812SXB("S031","Codigo") | |
MEX031 | 5 | 01 | VAR_IXB |
Activar el siguiente campo en la tabla SD2 - Ítems de Venta de la Fact:
Campo | Contenido |
---|---|
Campo | D2_NIT |
Tipo | 1 - Caracter |
Tamaño | 2 |
Decimal | 0 |
Formato | @! |
Contexto | Real |
Propiedad | Modificar |
Tit. Español | Objeto Imp |
Des. Español | Objeto Impuesto |
Validación | Vazio() .or. ValidF3I("S031", M->D2_NIT,1,2) |
Usado | Si |
Help | Indica si el Concepto del CFDI es Objeto de Impuesto, y el valor debe corresponder a un valor del catálogo c_ObjetoImp definido por el SAT. (Tabla S031 - Catálogo Objeto Impuesto), si el código es 01, 03 o 04 no se generará el nodo de Impuestos del Concepto. |
5.18 Actualización Facturación electrónica Complemento de Comercio Exterior versión 2.0
Producto | TOTVS Backoffice | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | |||||||||||||||||||||||||||
Segmento: | Backoffice | |||||||||||||||||||||||||||
Módulo: | SIGAFAT - Facturación | |||||||||||||||||||||||||||
Función: |
| |||||||||||||||||||||||||||
País: | MEX | |||||||||||||||||||||||||||
Ticket: | 19082264 | |||||||||||||||||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-22099 |
SITUACIÓN/REQUISITO
De acuerdo a lo publicado por el SAT el 18/01/2024 entró en vigor los cambios del complemento de comercio exterior 2.0, sin embargo actualmente el sistema solo considera la versión 1.1 de dicho complemento. Por lo anterior, se solicita la funcionalidad y/o documentación para implementar el complemento de comercio exterior 2.0.
Sustento Legal:
Factura de Comercio Exterior 2.0 SAT
Estándar del Complemento de Comercio Exterior 2.0
SOLUCIÓN
Dentro de la rutina Funciones Genéricas para Documentos Fiscales para México(LOCXMEX), se realizan los siguientes ajustes:
- En la función encargada de cargar los campos del encabezado de los documentos fiscales (LxCposMex), se realiza la omisión del campo Subdivisión (F2_SUBDIV | F1_SUBDIV) para que ya no sea mostrado en el encabezado de las Facturas de Venta (NF), Notas de Débito de Cliente (NDC) y Notas de Crédito de Cliente (NCC).
- En la función encargada de Valida campos de encabezado de documento fiscal, para complemento de comercio exterior (xVldCmObCE), se omiten las validaciones del campo Subdivisión (F2_SUBDIV | F1_SUBDIV).
Dentro de la rutina Funciones genéricas para Facturación - Mercado Internacional(FATXFUMI), se realizan los siguientes ajustes:
- Dentro de la función encargada de Generar la Cadena Original y nodo en el XML para informar los datos correspondientes al Complemento de Comercio Exterior (FATXCOMEXT), se realiza la actualización de los nodos de Complemento de comercio exterior de la versión 1.1 a la nueva versión 2.0. Se cambia el identificador cce11 por cce20.
- Se omite la impresión de los 2 nodos TipoOperacion y Subdivisión, ya que para la nueva versión ya no son requeridos.
INFORMACIÓN ADICIONAL
Configuración de archivos INI.
En los script de "Generación de XML de documentos de salida."(FATSMEX.INI) y "Generación de XML de documentos de entrada."(FATEMEX).INI) se realizan los ajustes:
- Se actualizan las URL utilizadas para la versión 2.0 de complemento de comercio exterior:
- Se realiza el ajuste para cambiar el identificador de los nodos de Complemento de comercio exterior de cce11 se cambia a cce20.
Aviso | ||
---|---|---|
| ||
|
Aviso | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
Informações | ||
---|---|---|
| ||
|
A continuación se muestran marcados con color rojo los cambios que son necesarios realizar en los archivos de configuración FATSMEX.ini y FATEMEX.ini:
Painel | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//FATSMEX.INI V4.0 --- Modelo 2022 [XXX POSICIONAMENTOS] [XXX INICIALIZACION] (PRE) fImptosD(SF2->F2_DOC,SF2->F2_SERIE,SF2->F2_CLIENTE,SF2->F2_LOJA,IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),"SD2", SF2->F2_GLOBAL == "1",@(_aTotal[036]),_aTotal[104],@_aTotal[037], @_aTotal[038], ,@_aTotal[115]) [SD2 CADENAORIGINAL_SELLO] //Cadena Original | Complemento de Comercio Exterior (Mercancias) ///////////DATOS DE LA FACTURA///////////////// //////////////////////CFDI Relacionados////////////////////////// ///////////DATOS DEL EMISOR/////////////////////// //////////////////////DATOS DEL RECEPTOR////////////////////////// (PRE) (cCadOrig += fXMLFUN("CO",.T., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),_aTotal[104]),.T.) (POS) IIf(lCCCE, cCadOrig += "2.0" + _aTotal[098], "") //Emisor //Receptor Domicilio //Destinatarios (POS) cCadOrig += IIf(!Empty(cCadOriCCE), cCadOriCCE, "") //Carta Porte (POS) (cCadOrig += fXMLFUN("IL",.T., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.)),.T.) (POS) cCadOrig += _aTotal[098] //SELLO (PRE) lCCCE := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.) .And. !Empty(SF2->F2_TIPOPE) .And. _aTotal[114], .T., .F.) (PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",SYA->(MsSeek(xFilial("SYA")+SA2->A2_PAIS)) , .T.) (POS) cNodoCCE := IIf(lCCCE, ' <cce20:ComercioExterior' , "") [XXX CFDIREL] [XXX FACTURA GLOBAL] [XXX EMISOR] [XXX RECEPTOR_CLIENTE] (PREREG) AllTrim(SF2->F2_ESPECIE) <> "NDI" (POS) cNodoCCE += IIf(lCCCE, ' <cce20:Emisor' , "") [SD2 CONCEPTO] (PRE) DbGoTop() (PREREG) (cNodoCCE += IIf(lCCCE, ' <cce20:Mercancia' , ""),.T.) (POS) (cNodoCCE += IIf(lCCCE, ' </cce20:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.) (POS) (_aTotal[034] := fXMLFUN("CO",.F., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),_aTotal[104]),.T.) (PREREG) (_aTotal[001] := _aTotal[034] ,.T.) [XXX IMPUESTOS] //IMPUESTOS LOCALES// [XXX COMPLEMENT] [XXX COMERCIOEX] [XXX CARTAPORTE] [XXX IMPUESTOLOC] [XXX LEYENDASFIS]
//[XXX CAD_ORIG] [XXX FACTURA] |
Painel | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//FATEMEX.INI V4.0 --- Modelo 2022 [XXX INICIALIZACION] (PREREG) FsQuery(_aTotal[097],1,"D1_DOC='" + SF1->F1_DOC + "' AND D1_SERIE='" + SF1->F1_SERIE + "' AND D1_FORNECE='" + SF1->F1_FORNECE + "' AND D1_LOJA='" + SF1->F1_LOJA + "'","SD1->D1_DOC=SF1->F1_DOC .AND. SD1->D1_SERIE=SF1->F1_SERIE .AND. SD1->D1_FORNECE=SF1->F1_FORNECE .AND. SD1->D1_LOJA=SF1->F1_LOJA","D1_ITEM") .And. .T. (PRE) fImptosD(SF1->F1_DOC,SF1->F1_SERIE,SF1->F1_FORNECE,SF1->F1_LOJA, .F. , "SD1", .F., @(_aTotal[036])) [SD1 CADENAORIGINAL_SELLO] //Cadena Original | Complemento de Comercio Exterior //Cadena Original | Complemento de Comercio Exterior ///////////DATOS DE LA FACTURA///////////////// //////////////////////CFDI Relacionados////////////////////////// ///////////DATOS DEL EMISOR/////////////////////// //////////////////////DATOS DEL RECEPTOR////////////////////////// (PRE) (cCadOrig += fXMLFUN("CO",.T., .F. ,.F.)) //Cadena Original | Complemento de Comercio Exterior //Emisor //Receptor Domicilio (POS) cCadOrig += IIf(!Empty(cCadOriCCE), cCadOriCCE, "") (POS) cCadOrig += _aTotal[098] //SELLO [XXX CABECERA] [XXX FACTURA] (PRE) lCCCE := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.) .And. !Empty(SF1->F1_TIPOPE) .And. _aTotal[104], .T., .F.) (PRE) If(AllTrim(SF1->F1_ESPECIE)=="NCC",SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS)) , .T.) (POS) cNodoCCE := IIf(lCCCE, ' <cce20:ComercioExterior' , "") [XXX CFDIREL] [XXX EMISOR] [XXX RECEPTOR_CLIENTE] (PREREG) AllTrim(SF1->F1_ESPECIE) == "NCC" //Emisor //Receptor //Domicilio Receptor (POS) (cNodoCCE += IIf(lCCCE, ' <cce20:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.) [SD1 CONCEPTO] (PRE) DbGoTop() (POS) (cNodoCCE += IIf(lCCCE, ' </cce20:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.) (POS) (_aTotal[034] := fXMLFUN("CO",.F., .F. ,.F.)) [XXX IMPUESTOS] //IMPUESTOS LOCALES// [XXX COMPLEMENT] [XXX COMERCIOEX] [XXX IMPUESTOLOC] [XXX COMPLEMENT] [XXX CAD_ORIG] [XXX FACTURA] |
5.19 Ajustes en atributo "ObjetoImp" desde el Pedido de Venta
Producto | TOTVS Backoffice | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | ||||||||||||||||||||||||
Segmento: | Backoffice | ||||||||||||||||||||||||
Módulo: | SIGAFAT - Facturación | ||||||||||||||||||||||||
Función: |
| ||||||||||||||||||||||||
País: | México | ||||||||||||||||||||||||
Ticket: | 18161768 | ||||||||||||||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-21137 (pacote 031390) |
SITUACIÓN
Se solicita realizar ajustes para permitir al usuario modificar el valor del atributo ObjetoImp, para el timbrado de Facturas de Venta (NF) de tipo Ingreso (Normal) generadas a partir de un Pedido de Venta (MATA410), permitiendo utilizar los valores que se definen en el catálogo del SAT c_ObjetoImp:
SOLUCIÓN
En el archivo de Funciones Genéricas para Documentos Fiscales para México (LOCXMEX):
Se realizaron los siguientes ajustes:
- Se crea función LxVldCpos(), para que cuando se indica en un ítem el campo Objeto Imp (C6_NIT) el valor "01", se realice la validación para que solo permita indicar un Tipo de Entrada y Salida sin impuestos.
En el archivo de Generación de Notas (MATA468N):
Se realizaron los siguientes ajustes:
- Se copia el valor del campo Objeto Imp (C6_NIT) al campo Objeto Imp (D2_NIT), cuando ambos campos existan y se genere una Factura de Venta a partir de un Pedido de Venta.
Aviso | ||
---|---|---|
| ||
IMPORTANTE La funcionalidad del campo Objeto Imp (C6_NIT), en caso de no existir el campo o estar vacío, se tomará la funcionalidad anterior para la generación del nodo de Impuestos por Concepto. |
INFORMACIÓN ADICIONAL
Realizar los cambios de INI y diccionario indicados en la sección 5.17 Ajustes en atributo "ObjetoImp" de la NF
Activar el siguiente campo en la tabla SC6 - Ítems de Pedido de Venta:
Campo | Contenido |
---|---|
Validación | Vazio() .or. ValidF3I("S031", M->C6_NIT,1,2) |
Usado | Si |
Tit. Español | Objeto Imp |
Tipo | 1 - Caracter |
Tamaño | 2 |
Propiedad | Modificar |
Help | Indica si el Concepto del CFDI es Objeto de Impuesto, y el valor debe corresponder a un valor del catálogo c_ObjetoImp definido por el SAT. (Tabla S031 - Catálogo Objeto Impuesto), si el código es 01, 03 o 04 no se generará el nodo de Impuestos del Concepto. |
Formato | @! |
Des. Español | Objeto Impuesto |
Decimal | 0 |
Contexto | Real |
Campo | C6_NIT |
5.20 Activación de PE PEXMLCCE para personalizar nodos de Complemento de Comercio Exterior
Producto |
| ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: |
| ||||||||||||
Segmento: |
| ||||||||||||
Módulo: | SIGAFAT - Facturación | ||||||||||||
Función: |
| ||||||||||||
País: | México (MEX) | ||||||||||||
Ticket: | No aplica. | ||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-23099 |
SITUACIÓN:
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.
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:
Informações | ||
---|---|---|
| ||
El punto de Entrada PEXMLCCE,recibe 2 parámetros, donde: El primer parámetro es de tipo caracter, con las siguientes opciones:
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:
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. |
EJEMPLO DE PUNTO DE ENTRADA:
Bloco de código | ||||
---|---|---|---|---|
| ||||
#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 == "MER"
Endif
Return aData |
5.21 Factura de Exportación Temporal
Producto |
| |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: |
| |||||||||||||||
Segmento: |
| |||||||||||||||
Módulo: | SIGAFAT - Facturación | |||||||||||||||
Función: |
| |||||||||||||||
País: | México (Pacote: 013995) | |||||||||||||||
Ticket: | 19925853 | |||||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-23142 |
SITUACIÓN/REQUISITO
De acuerdo el articulo 29 del CFF que indica que los contribuyentes que exporten mercancías que no sean objetos de enajenación deberán expedir el comprobante fiscal digital por internet que ampare la operación. Por lo cual se solicita poder generar y timbrar una Factura de tipo "Exportación Temporal (03)" donde de acuerdo a lo definido por el SAT indica que cuando se registre la clave “03” (Temporal) se debe omitir el “Complemento para Comercio Exterior."
En caso tener personalizaciones en el archivo FATSMEX.INI, se debe hacer los ajustes que se enmarcan a continuación:
Informações | ||
---|---|---|
| ||
Los ajustes al archivo fatsmex.ini, solo aplican para cuando el parámetro MV_FEXML se encuentra configurado con un valor diferente de .T. Para más información acerca de este parámetro, consulte el enlace DT Factura electrónica, sin uso de archivos .INI para México |
Painel | ||
---|---|---|
| ||
//FATSMEX.INI V4.0 --- Modelo 2022 [XXX POSICIONAMENTOS] [XXX INICIALIZACION] |
Realizar los siguientes ajustes en el campo F2_TIPOPE:
Campo | F2_TIPOPE |
---|---|
Titulo | Tipo Opera |
Opciones | 1=Exportación de servicios;2=Exportación;3=Exportación sin enajenación;4=Exportación Temporal |
Val Sistema | Vazio() .Or. (Pertence('1234') .And. ValTipoOpe(2)) |
Ejemplo de Utilización
- En el módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Facturación | Facturaciones (MATA467N).
- Informar en la pregunta ¿Normal/Benef./Anticipo? la opción Traslado.
- En el encabezado informar los campos relacionados al complemento de Comercio Exterior:
- Tipo Opera (F2_TIPOPE) - "04 - Exportación temporal"
- Informar el campo Uso CFDI (F2_USOCFDI) con el valor S01 - Sin efectos fiscales.
- Informar el campo Carta Porte? (F2_TPCOMPL) con la opción N - No.
- Informar los ítems de la Factura.
- Dar clic en "Grabar".
- Confirmar la generación y timbrado del Comprobante Fiscal Digital por Internet (CFDI).
- Validar que el timbrado haya sido exitoso.
- Validar en el XML:
Que en el nodo cfdi:Comprobante, el atributo Exportación se encuentre informado con el valor "03".
5.22 Activación del Complemento de Carta Porte Versión 3.1
Producto |
| |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: |
| |||||||||||||||
Segmento: |
| |||||||||||||||
Módulo: | SIGAFAT - Facturación | |||||||||||||||
Función: |
| |||||||||||||||
País: | México | |||||||||||||||
Ticket: | 20461724 | |||||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-23609 |
SITUACIÓN/REQUISITO
Se solicita realizar los ajustes para que en el sistema Protheus, se active la funcionalidad del Complemento de Carta Porte para versión 3.1:
- El complemento Carta Porte versión 3.1, se publicó en el Portal del SAT el 17 de junio de 2024.
- El complemento Carta Porte versión 3.1, se debe estar utilizando a partir del 17 de julio de 2024.
SOLUCIÓN
En la rutina de Funciones Generales de Documentos Fiscales (LOXFUNCA):
En la función que Genera la cadena original y nodo para complemento de Carta Porte para México (LxFunaCaPo):
Se realiza ajuste para activar el uso del prefijo cartaporte31 en el nodo de Complemento de Carta Porte y el atributo Versión como 3.1.
Se activa la generación del nodo cartaporte31:RegimenesAduaneros para informar los códigos de Régimen Aduanero, se elima la generación del atributo RegimenAduanero del nodo ..cfdi:Complemento\cartaporte30:CartaPorte.
El atributo FraccionArancelarcia se hace opcional, solo se informará si el campo Frac. Arance (D2_FRACCA) es informado, ya no depende de que el campo Transp Inter (A1X_INTERN) sea S - Si.
Se modifica para que el atributo FraccionArancelaria sea opcional.
En la rutina del Informe de Notas Fiscales (MATR475):
Se realizan ajustes para permitir la impresión de los datos del complemento de Carta Porte para versión 3.1.
Informações | ||
---|---|---|
| ||
Para desactivar la funcionalidad del Complemento de Carta Porte versión 3.1 se debe crear el parámetro MV_ACTCOCP de tipo lógico y configurarlo con el valor .F., con lo cual se revierten lo sajustes realizados para versión 3.1 y se generan de acuerdo a la versión 3.0. Para la generación del XML si se utiliza el archivo FATSMEX.INI, se debe hacer de manera manual el ajuste de las url's de la declaración del complemento de carta porte. Para la generación del Nodo cartaporte31:RegimenesAduaneros, actualmente el sistema Portheus sólo permite relacionar un código de Régimen Aduanero, el cual se informa en el campo Rég. Aduana (A1X_REGADU). |
Realizar los ajustes que se marcan en color Naranja en el archivo de Estructura de XML para Documentos de Salida, que corresponde a las url's del Complemento de Carta Porte:
Informações | ||
---|---|---|
| ||
//FATSMEX.INI V4.0 --- Modelo 2022 [XXX POSICIONAMENTOS] [XXX INICIALIZACION] (PRE) fImptosD(SF2->F2_DOC,SF2->F2_SERIE,SF2->F2_CLIENTE,SF2->F2_LOJA,IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),"SD2", SF2->F2_GLOBAL == "1",@(_aTotal[036]),_aTotal[104],@_aTotal[037], @_aTotal[038], ,@_aTotal[115]) [SD2 CADENAORIGINAL_SELLO] //Cadena Original | Complemento de Comercio Exterior (Mercancias) ///////////DATOS DE LA FACTURA///////////////// //////////////////////CFDI Relacionados////////////////////////// ///////////DATOS DEL EMISOR/////////////////////// //////////////////////DATOS DEL RECEPTOR////////////////////////// (PRE) (cCadOrig += fXMLFUN("CO",.T., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),_aTotal[104]),.T.) (POS) IIf(lCCCE, cCadOrig += "2.0" + _aTotal[098], "") //Emisor //Receptor Domicilio //Destinatarios (POS) cCadOrig += IIf(!Empty(cCadOriCCE), cCadOriCCE, "") //Carta Porte (POS) (cCadOrig += fXMLFUN("IL",.T., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.)),.T.) (POS) cCadOrig += _aTotal[098] //SELLO (PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",SYA->(MsSeek(xFilial("SYA")+SA2->A2_PAIS)) , .T.) (POS) cNodoCCE := IIf(lCCCE, ' <cce20:ComercioExterior' , "") [XXX CFDIREL] [XXX FACTURA GLOBAL] [XXX EMISOR] [XXX RECEPTOR_CLIENTE] (PREREG) AllTrim(SF2->F2_ESPECIE) <> "NDI" (POS) cNodoCCE += IIf(lCCCE, ' <cce20:Emisor' , "") [SD2 CONCEPTO] (PRE) DbGoTop() (PREREG) (cNodoCCE += IIf(lCCCE, ' <cce20:Mercancia' , ""),.T.) (POS) (cNodoCCE += IIf(lCCCE, ' </cce20:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.) (POS) (_aTotal[034] := fXMLFUN("CO",.F., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),_aTotal[104]),.T.) (PREREG) (_aTotal[001] := _aTotal[034] ,.T.) [XXX IMPUESTOS] //IMPUESTOS LOCALES// [XXX COMPLEMENT] [XXX COMERCIOEX] [XXX CARTAPORTE] [XXX IMPUESTOLOC] [XXX LEYENDASFIS]
//[XXX CAD_ORIG] [XXX FACTURA] |
06. OTRAS DOCUMENTACIONES
- CFDI con Complemento Carta Porte versión 2.0
- Cancelación de CFDI con Motivo de Cancelación
- CFDI con Complemento de Recepción de Pago versión 2.0 con CFDI versión
- CFDI con Complemento Carta Porte versión 2.0
- Cancelación de CFDI con Motivo de Cancelación
- CFDI con Complemento de Recepción de Pago versión 2.0 con CFDI versión 4.0
- Cancelación de CFDI con Complemento de Recepción de Pago versión 4.0
- Desactivar la Cancelación Automática ante el SAT de los documentos con Motivo de cancelación 01 CFDI 4.0
- Reenvió de cancelación de una solicitud rechazada con motivo 01 FISA817 MEX
- Cambios en CFDI 4.0 en el atributo de Exportación MEX
...
08.LINK DE DESCARGA EJECUTABLES
A continuación se encuentran las instrucciones para la actualización de los ejecutables homologados de los diferentes PAC's (Proveedores Autorizados de Certificados), con los que TOTVS mantiene los servicios de timbrado de CFDI's (Comprobantes Fiscales Digitales).
- Ingresar a la Central de Descargas y Actualizaciones:
Portal de Descargas - Seleccionar la opción, TOTVS Línea Protheus:
- Dar clic en la opción "Artefactos Generales del Producto":
- Dar clic en la opción "Rdmake Estándar":
- De las opciones desplegadas; buscar la opción "Localizaciones" y dar clic en ella:
- Dar clic en en el botón "Haga download del archivo":
- Tras completarse la descarga del archivo; descomprimir el contenido.
- Se mostrará la siguiente estructura de carpetas:
Los ejecutables se encuentra dentro de la carpeta RDMAKES_LOCALIZACIONES, en la ruta México\CFDI. Dentro de esta ruta se encuentran las carpetas comprimidas(archivos .zip) con el nombre de cada PAC, como se muestra en la siguiente imagen:
Dicha carpeta puede ser descargada desde el portal de descargas utilizando el siguiente enlace:
...