Árvore de páginas

01. DATOS GENERALES


Producto

TOTVS Backoffice

Línea de producto: 

Línea Protheus

Segmento:

Backoffice

Módulo:SIGAFAT - Facturación
Función:
RutinaNombre TécnicoFecha
FATSMEX.INIGeneración de XML para Documentos de Salida28/05/2024
FATSEMEX.PRWGeneración de XML de Documentos de Salida28/05/2024
OutputFieldsMexEstructura de Campos de Documentos de Salida28/05/2024
FATXFUMIFunciones genéricas para Facturación - Mercado Internacional25/05/2024
País:México (Pacote: 013995)
Ticket:19925853 
Requisito/Story/Issue (informe el requisito vinculado):DMINA-23142


02. 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."


03. SOLUCIÓN

En la rutina de Estructura de Campos de Documentos de Salida (OutputFieldsMex):

    • Se habilita la opción "4 - Exportación Temporal" para el campo Tipo Ope (F2_TIPOPE).

En la rutina de Generación de XML de Documentos de Salida (FATSEMEX):

    • Se realiza ajuste para el atributo "Exportacion", cuando se genera una Factura y se indica en el campo Tipo Ope (F2_TIPOPE) la opción "4 - Exportación Temporal" se indicará en el atributo el valor "03".



  1. Realizar un respaldo del repositorio del ambiente (archivo RPO).
  2. Aplicar el parche correspondiente al issue DMINA-23142.
  3. Validar que las rutinas incluidas en el parche coincidan con las mencionadas en la sección "Función" del encabezado del presente Documento Técnico, así como las fechas.
  4. Configurar el parámetro MV_CFDIEXP con valor .T.
  5. Realizar un respaldo del archivo fatsmex.ini.
  6. Realizar los ajustes al archivo fatsmex.ini y cambios a diccionario de acuerdo a lo mencionado en la sección 04. INFORMACIÓN ADICIONAL.

    Información

    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

  7. En el módulo Configurador (SIGACFG), ir al menú Entorno Empresas Sucursal (CFGX032).
  8. En el módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Archivos | Clientes.
  9. Configurar un Cliente como Extranjero, informando los siguientes campos:
    • Est. Cliente (A1_EST) igual a EX.
    • Rfc (A1_CGC) con el valor XEXX010101000.
  10. En modo Modificar para el Cliente, desde Otras acciones ejecutar la acción Complemento del Cliente e informar los siguientes campos:
    • Método Pago (AI0_MPAGO) igual a 99 - Por definir.
    • NumRegIdTrib (AI0_IDFIS).
    • Rég. Fiscal (AI0_REGFIS) igual a 616 - Sin obligaciones fiscales.
  1. En el módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Facturación | Facturaciones (MATA467N).
  2. Informar en la pregunta ¿Normal/Benef./Anticipo? la opción Traslado.
  3. En el encabezado informar los campos relacionados al complemento de Comercio Exterior:
    • Tipo Opera (F2_TIPOPE) - "04 - Exportación temporal"
  4. Informar el campo Uso CFDI (F2_USOCFDI) con el valor S01 - Sin efectos fiscales.
  5. Informar el campo Carta Porte? (F2_TPCOMPL) con la opción N - No.
  6. Informar los ítems de la Factura.
  7. Dar clic en "Grabar".
  8. Confirmar la generación y timbrado del Comprobante Fiscal Digital por Internet (CFDI).
  9. Validar que el timbrado haya sido exitoso.
  10. Validar en el XML :
    Que en el nodo cfdi:Comprobante, el atributo Exportación se encuentre informado con el valor  "03".
  1. En el módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Facturación | Facturaciones (MATA467N).
  2. Informar en la pregunta ¿Normal/Benef./Anticipo? la opción Normal.
  3. Informar los datos del encabezado y el tipo de operación:
    • Tipo Opera (F2_TIPOPE) - "04 - Exportación temporal"
  4. Informar el campo Uso CFDI (F2_USOCFDI) .
  5. Informar los ítems de la Factura.
  6. Dar clic en "Grabar".
  7. Confirmar la generación y timbrado del Comprobante Fiscal Digital por Internet (CFDI).
  8. Validar que el timbrado haya sido exitoso.
  9. Validar en el XML :
    El nodo cfdi:Comprobante el atributo Exportación se encuentre con el valor informado "03".


04. INFORMACIÓN ADICIONAL

En caso de tener personalizaciones en el archivo FATSMEX.INI se debe hacer los ajustes que se enmarcan a continuación:

FATSMEX.INI

//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],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] := {}

CampoF2_TIPOPE
TituloTipo Opera  
Opciones1=Exportación de servicios;2=Exportación;3=Exportación sin enajenación;4=Exportación Temporal                                                         
Val SistemaVazio() .Or. (Pertence('1234') .And. ValTipoOpe(2))        


¡IMPORTANTE!

La presente solución aplica para versión 12.1.2210 o superior, y es necesario tener activa la funcionalidad de Facturación Electrónica para el país México.


05. ASUNTOS RELACIONADOS

  • Documento Técnico de Facturación Electrónica para México de Comprobantes Fiscales Digitales por Internet (CFDI) Versión 4.0