Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

01. DATOS GENERALES


Producto

Solucoes_espanhol
SolucaoTOTVS Backoffice

Línea de producto: 

Linhas_totvs_espanhol
LinhaLínea Protheus

Segmento:

Segmentos_totvs_espanhol
SegmentoBackoffice

Módulo:SIGAFAT - Facturación
Función:
RutinaNombre TécnicoFecha
FATSMEX.PRWGeneración de XML para Documentos de Salida
03/12/2024
FATEMEX.PRWGeneración de XML para Documentos de Entrada
03/12/2024
FATEMEX.INIScript de generación de los archivos XML para Notas Fiscales de Entrada.03/12/2024
FATSMEX.INIScript de generación de los archivos XML para Notas Fiscales de Salida.03/12/2024
País:México
Ticket:21782823
Requisito/Story/Issue (informe el requisito vinculado):DMICNS-21925


02. SITUACIÓN/REQUISITO

Se identifica que al generar una Factura de Venta con comercio exterior donde el Cliente tiene un RFC genérico "XEXX010101000" ó "XAXX010101000", y se realiza el timbrado de dicha factura existe el siguiente rechazo 

    • El campo DomicilioFiscalReceptor, no es igual al valor del campo LugarExpedicion.

Image Added

Para más detalle se puede consultar la Guía de llenado del SAT Guia_complemento_Comercio_Exterior.pdf

03. SOLUCIÓN

En la rutina de Generación de XML para Documentos de Salida/Entrada (FATSMEX.PRW/FATEMEX.PRW):

  • Se realiza ajuste para realizar el llamado a la función que Genera el XML de documentos de Salida /Entrada(FATSMEX/FATEMEX), para cuando el Cliente contenga un RFC genérico "XEXX010101000" ó "XAXX010101000" , indique en el nodo de  DomicilioFiscalReceptor el mismo código postal del nodo LugarExpedicion.

Estos cambios fueron realizados también en losScripts de generación de los archivos XML para Notas Fiscales de Salida y Entrada (FATSMEX.INI/FATEMEX.INI).

...

Totvs custom tabs box
tabsPaso 01, Paso 02Pre-condiciones, Pasos, Paso 03, Paso 04
idspaso1,paso2
Totvs custom tabs box items
defaultyes
referenciapaso1
  1. Realizar las modificaciones resaltadas en azul, sugeridas en la sección 04. INFORMACIÓN ADICIONAL.
  2. Configurar parámetro MV_CFDIEXP igual a ".T." para activar el complemento de comercio exterior.
  3. Contar con un Cliente con un RFC genérico "XEXX010101000" ó "XAXX010101000".

Aviso
titleIMPORTANTE

La modificación de las líneas solo aplica para la generación de XML que se realice mediante los archivos INI en caso que se utilicen las rutinas que generan los XML mediante el parámetro MV_FEXML=S no se requiere realizar ningún cambio.

Totvs custom tabs box items
defaultno
referenciapaso2
  1. Ingresar al módulo Facturación (SIGAFAT), ir al menú "Actualizaciones | Facturación | Facturaciones (MATA467N)
  2. Indicar los parámetros de la rutina, informando la pregunta ¿Normal/Benef./Anticipo? con la opción Normal.
  3. Incluir una Factura de Venta (NF) con el cliente configurado previamente.
  4. Confirmar el grabado de la Factura de Venta.
  5. Confirmar la generación y timbrado del Comprobante Fiscal Digital para Internet (Ésta confirmación puede presentarse o no de acuerdo a la configuración del parámetro MV_CFDUSO).
  6. Validar el timbrado exitoso del documento.


04. INFORMACIÓN ADICIONAL


Expandir
titleModificación de archivo FATSMEX.INI
Painel
titleFATSMEX

/FATSMEX.INI V4.0 --- Modelo 2022

[XXX POSICIONAMENTOS]
(PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",SA2->(MSSeek(xFilial("SA2")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)
(PRE) If(AllTrim(SF2->F2_ESPECIE)<>"NDI",SA1->(MSSeek(xFilial("SA1")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)
(PRE) (SE4->(MSSeek(xFilial("SE4")+SF2->F2_COND)) , .T.)
(PRE) (AI0->(MSSeek(xFilial("AI0")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)

[XXX INICIALIZACION]
(PRE) SD2->(DbSetOrder(1))
(PRE) SB1->(DbSetOrder(1))
(PRE) SYA->(DbSetOrder(1))
(PRE) SC6->(DbSetOrder(1))
(PRE) SE4->(DbSetOrder(1))
(PRE) CTO->(DbSetOrder(1))
(PRE) SAH->(DbSetOrder(1))
(PRE) _aTotal[009] := SuperGetMV("MV_CFDICPG", .F., "")
(PRE) _aTotal[010] := FindFunction("zh_FechaHoraUTC") .And. !Empty(_aTotal[009])
(PRE) _aTotal[011] := FindFunction("LxFunaCaPo")
(PRE) _aTotal[094] := ""
(PRE) _aTotal[095] := ""
(PRE) _aTotal[033] := ""
(PRE) _aTotal[034] := ""
(PRE) _aTotal[035] := ""
(PRE) _aTotal[036] := 0
(PRE) _aTotal[037] := 0
(PRE) _aTotal[038] := 0
(PRE) _aTotal[039] := SuperGetMV("MV_CFDIEXP",.F.,.F.)
(PRE) _aTotal[075] := Alltrim(SM0->M0_NOMECOM)
(PRE) _aTotal[076] := Alltrim(SF2->F2_TIPODOC) == "21" .And. ((!(Alltrim(SF2->F2_TIPOPE) $ "3|4")) .Or. SF2->(ColumnPos("F2_TPCOMPL")) > 0 .And. AllTrim(SF2->F2_TPCOMPL)=="S")
(PRE) IIf(_aTotal[010],_aTotal[096] := zh_FechaHoraUTC(Alltrim(_aTotal[009]),Alltrim(SM0->M0_CEPENT),SF2->F2_EMISSAO,SF2->F2_HORA),"")
(PRE) IIf(!_aTotal[010],_aTotal[096] := DtoS(SF2->F2_EMISSAO),"")
(PRE) IIf(!_aTotal[010],_aTotal[096] := Left(_aTotal[096],4) + "-" + Substr(_aTotal[096],5,2)+ "-" + Right(_aTotal[096],2),"")
(PRE) IIf(!_aTotal[010],_aTotal[096] += "T" + SF2->F2_HORA,"")
(PRE) _aTotal[097] := {"SD2",""}
(PRE) _aTotal[098] := "|"
(PRE) _aTotal[099] := "||"
(PRE) _aTotal[100] := ""
(PRE) _aTotal[101] := "OPERACION DE CONFORMIDAD CON EL ART. 29 FRACCION I DE LIVA Y LO ESTIPULADO EN LAS RGCE 5.2.6. FRACCION I, 5.2.7 Y 4.3.21"
(PRE) _aTotal[102] := "OPERACION DE CONFORMIDAD CON EL ART. 29 FRACCION I DE LIVA Y LO ESTIPULADO EN LAS RGCE 5.2.6. FRACCION II, 5.2.7 Y 4.3.21"
(PRE) _aTotal[103] := fSumBC(SF2->F2_DOC,SF2->F2_SERIE,SF2->F2_CLIENTE,SF2->F2_LOJA)
(PRE) _aTotal[104] := IIf(SF2->(ColumnPos("F2_TPCOMPL")) > 0 .And. AllTrim(SF2->F2_TPCOMPL)=="S",.T.,.F.)
(PRE) _aTotal[105] := ""
(PRE) _aTotal[106] := IIf(Alltrim(SF2->F2_TIPODOC) == "21",0,2)
(PRE) _aTotal[107] := IIf(SF2->(ColumnPos("F2_TPDOC")) > 0,ALLTRIM(SF2->F2_TPDOC),ALLTRIM(AI0->AI0_MPAGO))
(PRE) _aTotal[108] := IIf(_aTotal[076],AllTrim(SM0->M0_CGC),AllTrim(SA1->A1_CGC))
(PRE) _aTotal[109] := IIf(FindFunction("FxDelExp"),FxDelExp(IIf(_aTotal[076],_aTotal[075],Alltrim(SA1->A1_NOME))),IIf(_aTotal[076],_aTotal[075],Alltrim(SA1->A1_NOME)))
(PRE) _aTotal[110] := IIf(_aTotal[076] .or. _aTotal[108]$ "XEXX010101000|XAXX010101000",AllTrim(SM0->M0_CEPENT),Alltrim(SA1->A1_CEP))
(PRE) _aTotal[111] := IIf(_aTotal[076],Alltrim(SM0->M0_DSCCNA),Alltrim(AI0->AI0_REGFIS))
(PRE) _aTotal[112] := FormPagGlo(SF2->F2_DOC,SF2->F2_SERIE)
(PRE) _aTotal[113] := IIf(!_aTotal[039] .Or. (_aTotal[039] .And. Empty(SF2->F2_TIPOPE)),"01",IIf(Alltrim(SF2->F2_TIPOPE)== "4","03",IIf(SF2->F2_CVEPED !="A1" .Or. Alltrim(SF2->F2_TIPOPE)== "3","04","02")))
(PRE) _aTotal[114] := IIf(_aTotal[113] == "03" .Or.(_aTotal[113] == "04" .And.( Empty(SF2->F2_CERORI) .Or. Empty(SF2->F2_INCOTER) .Or. Empty(SF2->F2_SUBDIV) .Or. Empty(SF2->F2_TCUSD) .Or. Empty(SF2->F2_TOTUSD))) ,.F.,.T.)
(PRE) _aTotal[115] := {}
(PRE) lCCCE := .F.
(PRE) cNodoCCE := ""
(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.

Expandir
titleModificación de archivo FATEMEX.INI



Painel
titleFATEMEX

//En la cadena de los datos de Receptor.

//////////////////////DATOS DEL RECEPTOR//////////////////////////
(PRE) AllTrim(SF1->F1_ESPECIE) == "NCC"
(PRE) SA1->(MSSeek(xFilial("SA1")+SF1->F1_FORNECE+SF1->F1_LOJA))
(PRE) SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS))
//Rfc
(PRE) (cCadOrig += CFDCarEsp(AllTrim(SA1->A1_CGC), .F.) + _aTotal[098], .T.)
//Nombre
(PRE) (cCadOrig += CFDCarEsp(Alltrim(_aTotal[105]),.F.) + _aTotal[098], .T.)
//DomicilioFiscalReceptor
(PRE) (cCadOrig += CFDCarEsp(IIF(AllTrim(SA1->A1_CGC)$ "XEXX010101000|XAXX010101000",AllTrim(SM0->M0_CEPENT),Alltrim(SA1->A1_CEP))),.F.) + _aTotal[098], .T.)
//ResidenciaFiscal
(PRE) IIf(lCCCE,(cCadOrig += Alltrim(SYA->YA_CCESAT) + _aTotal[098], .T.),"")
//NumRegIdTrib
(PRE) IIf(lCCCE,(cCadOrig += Alltrim(AI0->AI0_IDFIS) + _aTotal[098], .T.),"")
//RegimenFiscalReceptor
(PRE) (cCadOrig += IIf(AI0->(ColumnPos("AI0_REGFIS")) > 0,CFDCarEsp(Alltrim(AI0->AI0_REGFIS),.F.) + _aTotal[098],""), .T.)
//UsoCFDI
(PRE) (cCadOrig += Alltrim(SF1->F1_USOCFDI) + _aTotal[098], .T.)


//En los datos del Receptor

[XXX RECEPTOR_CLIENTE]
(PRE) lCCCE := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.)  .And. !Empty(SF1->F1_TIPOPE) .And. _aTotal[104], .T., .F.)
(PRE) cNodoCCE := ""

(PREREG) AllTrim(SF1->F1_ESPECIE) == "NCC"
(PREREG) (SA1->(MSSeek(xFilial("SA1")+SF1->F1_FORNECE+SF1->F1_LOJA)) , .T.)
(PREREG) (SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS)) , .T.)
(PREREG) (_aTotal[001] := '    <cfdi:Receptor' , .T.)
(PREREG) (_aTotal[001] += ' Rfc="' + CFDCarEsp(AllTrim(SA1->A1_CGC)) + '"' , .T.)
(PREREG) (_aTotal[001] += ' Nombre="' + CFDCarEsp(Alltrim(_aTotal[105]),.T.) + '"' , .T.)
(PREREG) (_aTotal[001] += ' DomicilioFiscalReceptor="' + IIF(AllTrim(SA1->A1_CGC)$ "XEXX010101000|XAXX010101000",AllTrim(SM0->M0_CEPENT),Alltrim(SA1->A1_CEP)) + '"' , .T.)
(PREREG) (_aTotal[001] += Iif(AI0->(ColumnPos("AI0_REGFIS")) > 0,' RegimenFiscalReceptor="' + Alltrim(AI0->AI0_REGFIS) + '"',""), .T.)
(PREREG) IIf(lCCCE,(_aTotal[001] += ' ResidenciaFiscal="' + Alltrim(SYA->YA_CCESAT) + '"' , .T.),"")
(PREREG) IIf(lCCCE,(_aTotal[001] += ' NumRegIdTrib="' + Alltrim(AI0->AI0_IDFIS) + '"' , .T.),"")
(PREREG) (_aTotal[001] += ' UsoCFDI="' + Alltrim(SF1->F1_USOCFDI) + '"' , .T.)
(PREREG) (_aTotal[001] += '/>' ,.T.)
(PREREG) _aTotal[001]

...

Card documentos
InformacaoEsta solución aplica para versión 12.1.2310 o superiores
Titulo¡IMPORTANTE!


05. ASUNTOS RELACIONADOS