Á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
LOCXFUNA.PRXFunciones genéricas de localizaciones.18/12/2024
FATEMEX.INIScript de generación de los archivos XML para Notas Fiscales de Entrada.18/12/2024
FATSMEX.INIScript de generación de los archivos XML para Notas Fiscales de Salida.18/12/2024
País:México
Ticket:21947550 
Requisito/Story/Issue (informe el requisito vinculado):DMICNS-22041


02. SITUACIÓN/REQUISITO

Se identifica que al generar una Factura de Venta con comercio exterior donde no se indica la (Frac.Arance =D2_FRACCA) en el ítem y se indica la Unidad Adu.(D2_UNIADU) igual a "99" no se esta mostrando el nodo UnidadAduana dentro del XML lo cual provoca los siguientes rechazos:

    • CCE160: El atributo cce20:ComercioExterior:Mercancias:Mercancia:FraccionArancelaria no existe y el atributo cce20:ComercioExterior:Mercancias:Mercancia:UnidadAduana tiene una clave distinta de "99"; o el atributo cfdi:Comprobante:Conceptos:Concepto:ClaveUnidad tiene una clave distinta de "E48".
    • CCE165: No se registró todos o alguno de los atributos CantidadAduana, UnidadAduana o ValorUnitarioAduana, o el atributo NoIdentificacion registrado en los conceptos son diferentes .
    • CCE166: No se registraron todos o alguno de los atributos CantidadAduana, UnidadAduana o ValorUnitarioAduana.
    • CCE172: El valor del atributo ValorDolares es diferente al producto del valor del atributo cfdi:Comprobante:Conceptos:Concepto:Importe por el valor del atributo cfdi:Comprobante:TipoCambio y dividido entre el valor del atributo cce20:ComercioExterior:TipoDeCambioUSD; o es diferente de Cero, cuando el atributo cce20:ComercioExterior:Mercancias:Mercancia:UnidadAduana o el atributo cfdi:Comprobante:Conceptos:Concepto:ClaveUnidad tienen el valor "99" y "E48" respectivamente, que corresponde a los servicios y el servicio no forma parte del valor en aduana.


03. SOLUCIÓN

En la rutina de Funciones genéricas de localizaciones (LOCXFUNA):

  • Se realiza ajuste para el llenado de la información de comercio exterior, donde cuando se indique la unidad aduana igual a "99" (D2_UNIADU/D1_UNIADU) el nodo de UnidadAduana sea contenido dentro de la información de comercio exterior y posterior pueda ser mostrados dentro del XML.

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



Totvs custom tabs box
tabsPre-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 servicio configurado con unidad de medida del SAT (AH_UNIDSAT = "E48").
  4. Contar con un producto configurado.
Aviso
titleIMPORTANTE

La modificación de las líneas indicados en el punto uno 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) .
  4. Indicar el producto configurado previamente indicando la información de "Cant. Aduana","Fracc. Arance.", "Unidad Adua.","Valor USD", Val Aduana"
  5. Indicar el servicio configurado previamente indicando la información de "Cant. Aduana","Unidad Adua.="99"","Valor USD*", Val Aduana*" 

    Aviso
    titleIMPORTANTE

    Los campos Valor USD y Val Aduana algunos Proveedores Autorizados de Certificación (PAC´S) verifican que cuando se trata de unidad aduana igual a "99" estos nodos deber ir en cero debido a lo que indica la guía que solo debe ser mayor a cero cuando se trate de un producto que no se indico con UnidadAduana igual "99"

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

    Por lo tanto tampoco estos valores deben considerarse en la suma del valor total de la factura en USD que se indica en el encabezado de la factura "Total USD(F2_TOTUSD)" este valor solo es la suma de todas las mercancías y el servicio no forma parte del valor en aduana.

  6. Confirmar el grabado de la Factura de Venta.
  7. 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).
  8. Validar el timbrado exitoso del documento.


04. INFORMACIÓN ADICIONAL


Expandir
titleFATSMEX
Painel
borderStylesolid
titleFATSMEX

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

[SD2 CADENAORIGINAL_SELLO]
(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",SYA->(MsSeek(xFilial("SYA")+SA2->A2_PAIS)) , .T.)
(PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",CTO->(MsSeek(xFilial("CTO")+Strzero(SF2->F2_MOEDA,2))) , .T.)
(PRE) If(AllTrim(SF2->F2_ESPECIE)<>"NDI",SA1->(MSSeek(xFilial("SA1")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)
(PRE) If(AllTrim(SF2->F2_ESPECIE)<>"NDI",SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS)) , .T.)
(PRE) If(AllTrim(SF2->F2_ESPECIE)<>"NDI",CTO->(MsSeek(xFilial("CTO")+Strzero(SF2->F2_MOEDA,2))) , .T.)
//////////////////////////////////////////////CADENA ORIGINAL//////////////////////////////////////////////
(PRE) cCadOrig   := _aTotal[099]
(PRE) lCCCE      := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.)  .And. !Empty(SF2->F2_TIPOPE)  .And. _aTotal[114], .T., .F.)
(PRE) cCadOriCCE := ""

//Cadena Original | Complemento de Comercio Exterior (Mercancias)
(PREREG) IIf(lCCCE .And. !Empty(SD2->D2_ITEM + SD2->D2_COD), (cCadOriCCE += Alltrim(SD2->D2_ITEM + SD2->D2_COD) + _aTotal[098],.T.),("",,.T.))
(PREREG) IIf(lCCCE .And. !Empty(SD2->D2_FRACCA), (cCadOriCCE += Alltrim(SD2->D2_FRACCA) + Alltrim(SD2->D2_NICO) + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. !Empty(Str(SD2->D2_CANADU)), (cCadOriCCE += Alltrim(Str(SD2->D2_CANADU)) + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. (!Empty(SD2->D2_FRACCA) .or. AllTrim(SD2->D2_UNIADU)== "99"), (cCadOriCCE += IIF(AllTrim(SD2->D2_UNIADU)!= "99",AllTrim(ObtColSAT("S014",AllTrim(SD2->D2_FRACCA),1,8,9,2)),"99") + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. !Empty(Str(SD2->D2_VALADU)), (cCadOriCCE += Alltrim(Str(SD2->D2_VALADU,14,2)) + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. !Empty(Str(SD2->D2_USDADU)), (cCadOriCCE += Alltrim(Str(SD2->D2_USDADU,14,2)) + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. SA1->A1_CONTRBE=="1" .And. Alltrim(SF2->F2_ESPECIE) == "NF", (cCadOriCCE += '1.0' +_aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. SA1->A1_CONTRBE=="1" .And. SF2->F2_CONUNI=="1", (cCadOriCCE += 'IMMEX:' + ALLTRIM(SA1->A1_PFISICA) + ' ' + _aTotal[101] + _aTotal[098],.T.), IIf (lCCCE .And. SA1->A1_CONTRBE=="1" .And. SF2->F2_CONUNI=="2", (cCadOriCCE += 'IMMEX:' + ALLTRIM(SA1->A1_PFISICA) + ' ' + _aTotal[102] + _aTotal[098],.T.), ("",,.T.)))


[SD2 CONCEPTO]
(PRE) lCCCE    := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.)  .And. !Empty(SF2->F2_TIPOPE) .And. _aTotal[114] , .T., .F.)
(PRE) cNodoCCE := ""

(PRE) DbGoTop()

(PREREG) (cNodoCCE += IIf(lCCCE, '                  <cce20:Mercancia' , ""),.T.)      
(PREREG) (cNodoCCE += IIf(lCCCE , ' NoIdentificacion="' + Alltrim(SD2->D2_ITEM + SD2->D2_COD) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(SD2->D2_FRACCA), ' FraccionArancelaria="' + Alltrim(SD2->D2_FRACCA) + Alltrim(SD2->D2_NICO) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(Str(SD2->D2_CANADU)), ' CantidadAduana="' + Alltrim(Str(SD2->D2_CANADU)) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. (!Empty(SD2->D2_FRACCA) .or. AllTrim(SD2->D2_UNIADU)== "99"),' UnidadAduana="' + IIF(AllTrim(SD2->D2_UNIADU)!= "99",AllTrim(ObtColSAT("S014",AllTrim(SD2->D2_FRACCA),1,8,9,2)),"99") + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(Str(SD2->D2_VALADU)), ' ValorUnitarioAduana="' + Alltrim(Str(SD2->D2_VALADU,14,2)) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE, ' ValorDolares="' + Alltrim(Str(SD2->D2_USDADU,14,2)) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE, '>' + ( chr(13)+chr(10) ) , ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE, '                  </cce20:Mercancia>' + ( chr(13)+chr(10) ), ""),.T.)

(POS) (cNodoCCE += IIf(lCCCE, '            </cce20:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.)
(POS) (cNodoCCE += IIf(lCCCE, '        </cce20:ComercioExterior>' , ""),.T.)
(POS) _aTotal[094] += cNodoCCE

(POS) (_aTotal[034] := fXMLFUN("CO",.F., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),_aTotal[104]),.T.)


Expandir
titleFATEMEX
Painel
borderStylesolid
titleFATEMEX

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

[SD1 CADENAORIGINAL_SELLO]
(PRE) If(AllTrim(SF1->F1_ESPECIE)=="NCC",SA1->(MSSeek(xFilial("SA1")+SF1->F1_FORNECE+SF1->F1_LOJA)) , .T.)
(PRE) If(AllTrim(SF1->F1_ESPECIE)=="NCC",SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS)) , .T.)
(PRE) If(AllTrim(SF1->F1_ESPECIE)=="NCC",CTO->(MsSeek(xFilial("CTO")+Strzero(SF1->F1_MOEDA,2))) , .T.)
(PRE) If(AllTrim(SF1->F1_ESPECIE)<>"NCC",SA2->(MSSeek(xFilial("SA2")+SF1->F1_FORNECE+SF1->F1_LOJA)) , .T.)
(PRE) If(AllTrim(SF1->F1_ESPECIE)<>"NCC",SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS)) , .T.)
(PRE) If(AllTrim(SF1->F1_ESPECIE)<>"NCC",CTO->(MsSeek(xFilial("CTO")+Strzero(SF1->F1_MOEDA,2))) , .T.)
//////////////////////////////////////////////CADENA ORIGINAL//////////////////////////////////////////////
(PRE) cCadOrig := _aTotal[099]
(PRE) lCCCE := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.) .And. !Empty(SF1->F1_TIPOPE) .And. _aTotal[104] , .T., .F.)
(PRE) cCadOriCCE := ""

//Cadena Original | Complemento de Comercio Exterior
(PREREG) IIf(lCCCE .And. !Empty(SD1->D1_ITEM + SD1->D1_COD), (cCadOriCCE += Alltrim(SD1->D1_ITEM + SD1->D1_COD) + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. !Empty(SD1->D1_FRACCA), (cCadOriCCE += Alltrim(SD1->D1_FRACCA) + Alltrim(SD1->D1_NICO) + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. !Empty(Str(SD1->D1_CANADU)), (cCadOriCCE += Alltrim(Str(SD1->D1_CANADU)) + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. (!Empty(SD1->D1_FRACCA) .or. AllTrim(SD1->D1_UNIADU)== "99"), (cCadOriCCE += IIF(AllTrim(SD1->D1_UNIADU)!= "99",AllTrim(ObtColSAT("S014",AllTrim(SD1->D1_FRACCA),1,8,9,2)),"99")  + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. !Empty(Str(SD1->D1_VALADU)), (cCadOriCCE += Alltrim(Str(SD1->D1_VALADU,14,2)) + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. !Empty(Str(SD1->D1_USDADU)), (cCadOriCCE += Alltrim(Str(SD1->D1_USDADU,14,2)) + _aTotal[098],.T.), ("",,.T.))


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

(PRE) DbGoTop()
 
(PREREG) (cNodoCCE += IIf(lCCCE, '                  <cce20:Mercancia' , ""),.T.)      
(PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(SD1->D1_ITEM + SD1->D1_COD), ' NoIdentificacion="' + Alltrim(SD1->D1_ITEM + SD1->D1_COD) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(SD1->D1_FRACCA), ' FraccionArancelaria="' + Alltrim(SD1->D1_FRACCA) + Alltrim(SD1->D1_NICO) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(Str(SD1->D1_CANADU)), ' CantidadAduana="' + Alltrim(Str(SD1->D1_CANADU)) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. (!Empty(SD1->D1_FRACCA) .or. AllTrim(SD1->D1_UNIADU)== "99"), ' UnidadAduana="' + IIF(AllTrim(SD1->D1_UNIADU)!= "99",AllTrim(ObtColSAT("S014",AllTrim(SD1->D1_FRACCA),1,8,9,2)),"99")  + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(Str(SD1->D1_VALADU)), ' ValorUnitarioAduana="' + Alltrim(Str(SD1->D1_VALADU,14,2)) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(Str(SD1->D1_USDADU)), ' ValorDolares="' + Alltrim(Str(SD1->D1_USDADU,14,2)) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE, '>' + ( chr(13)+chr(10) ) , ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE, '                  </cce20:Mercancia>' + ( chr(13)+chr(10) ), ""),.T.)

(POS) (cNodoCCE += IIf(lCCCE, '            </cce20:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.)
(POS) (cNodoCCE += IIf(lCCCE, '           </cce20:ComercioExterior>'  , ""),.T.)
(POS) _aTotal[094] += cNodoCCE

(POS) (_aTotal[034] := fXMLFUN("CO",.F.,  .F. ,.F.))

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


05. ASUNTOS RELACIONADOS