Árvore de páginas

Versões comparadas

Chave

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

...

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
LOCXFUNAFunciones Genéricas de Notas Fiscales2122/02/2023
País:México
Ticket:16350719
Requisito/Story/Issue (informe el requisito vinculado):DMINA-18777

...

Se solicita la activación de un Punto de Entrada,que permita personalizar el detalle del XML de CFDI de Documentos Fiscales, y un Punto de Entrada que permita personalizar completamente para la generación del XML de CFDI de Documentos FiscalesNodo de Conceptos con sus respectivos Impuestos, y el acumulado de Impuestos por Documento (nodo cfdi:Comprobante\cfdi:Impuestos).

03. SOLUCIÓN

En la rutina Funciones Genéricas de Notas Fiscales (LOCXFUNA):

  • Se activó el Punto de Entrada PEXMLDETA, el cual permite alterar la generación de los Conceptos, Impuestos (Traslados y Retenciones) por Concepto e Impuestos Totales (Traslados y Retenciones) por Documento.
  • Se activo el Punto de Entrada PEGENXML, el cual desactiva la generación del XML del CFDI de Documentos Fiscales a través del uso de archivo .INI, y permite la libre generación del XML.

Para el Punto Entrada PEXMLDETA,se deben tener en cuenta las siguientes consideraciones:

Se debe retornar un arreglo con 2 posiciones, donde:

La primer Primer posición debe contener la siguiente estructura:

...

Posición 10: Array con valores de Impuestos de Traslado por ítem, donde:

Posición Impuestos 1: Código de impuesto Protheus.

Posición Impuestos 2: Indica si el impuesto de un Impuesto o Traslado Local (Exclusivo para funcionalidad del Complemento de Impuestos Locales, se recomienda enviar vacío si no aplica) 

Posición Impuestos 3: Base del Impuesto por ítem.

Posición Impuestos 24: Código de Impuesto SAT, de acuerdo al catálogo c_Impuesto definido por el SAT.Image Removed

Posición Impuestos 35: Alícuota que aplica para el cálculo del impuesto (mostrado alícuota sobre cien, por ejemplo 0.16).del Impuesto por ítem.

Posición Impuestos 46: Valor del Impuesto por ítem.

Posición Impuestos 7: Descripción del impuesto (Puede ser la descripción del impuesto de Protheus)

Posición Impuestos 8: T para Traslados y R para retenciones.

Posición Impuestos 9: Enviar 0.

Posición Impuestos 10: Enviar 0.

Posición Impuestos 11: Indica si es impuesto incluido (.T. es igual a Si y .F. igual a No)

Posición 11: Enviar con valor Nil.

Posición 12: Enviar con valor Nil.

Posición 13: Valor que corresponde al atributo NumeroPedimento del nodo cfdi:InformacionAduanera.

...

Posición 17: .Número de ítem, por ejemplo "01", "02".

La Segunda posición debe contener la siguiente estructura:

Posición 1: Campo de Libro Fiscal del Impuesto (No aplica para funcionalidad de Punto de Entrada, se puede enviar con un string vacío)

Posición 2: Enviar con un string vacío.

Posición 3: Valor del Impuesto.

Posición 4: Código del Impuesto (Puede enviarse con el código del Impuesto variable de Protheus o un string vacío).

Posición 5: Código de Impuesto SAT, de acuerdo al catálogo c_Impuesto definido por el SAT.

Posición 6: Descripción del Impuesto (Puede enviarse con el código del Impuesto variable de Protheus o un string vacío).

Posición 7: T para Traslados y R para retenciones.

Posición 8: Alícuota que aplica para el cálculo del impuesto (mostrado alícuota sobre cien, por ejemplo 0.16).

Posición 9: Indica si el impuesto es incluido (.T. es igual a Si y .F. igual a No).

Posición 10: Base del Impuesto.



Totvs custom tabs box
tabsPre-condiciones, Timbrado de Documento, Paso 03, Paso 04
idspaso1,paso2
Totvs custom tabs box items
defaultyes
referenciapaso1
  1. Realizar un respaldo de repositorio del ambiente (archivo .rpo).
  2. Aplicar el parche que fue generado para la issue DMINA-18777.
  3. Compilar el Punto de Entrada a utilizar


Aviso
titleImportante

Al compilar el Punto de Entrada a utilizar se recomienda bifurcar correctamente el documento a alterar, ya que el no realizarlo de manera correcta podría ocasionar problemas de transmisión que no se presenten en la funcionalidad estándar el sistema, y los importes de los conceptos en conjunto con los impuestos por Concepto debe cuadrar con el Subtotal y Total del XML.

Totvs custom tabs box items
defaultno
referenciapaso2
  1. En el módulo Facturación (SIGAFAT) desde el menú Actualización | Facturación | Facturaciones (MATA467N) o vía ExecAuto, incluir una Factura de Venta.
  2. En el Browse de Facturaciones (MATA467N), seleccionar la Factura de Venta y ejecutar la acción 
  3. Validar el timbrado exitoso del CFDI de la Factura de Venta.
  4. Validar que la información corresponde con la personalización de acuerdo al Punto de Entrada.

...

Ejemplo del Punto de Entrada PEXMLDETA:

En el siguiente ejemplo, se llenan los arreglos para generar dos nodos de Conceptos con sus respectivos impuestos de IVA por Concepto, así como el acumulado del impuesto IVA a una tasa de 16.00.


Bloco de código
Bloco de código
#include 'protheus.ch'
#INCLUDE "FWMVCDEF.CH"

User Function PEXMLDETA()
	Local aDetFE   := {}
	Local aPartesaImpos   := {}
	Local aImposaImpNF   := {}
	Local aImpNFaIFact   := {}
	Local aRet     := {}
	Local aImpTras := {}
	Local aIFact    := {}

	//Ítem 01
	aImpNF := {"IVA", "", 2000, "002", 16, 320, "IVA ESTADAR", "T",0,0,.F. } //Impuestos del Ítem 01
    aAdd(aDetFE, {"01010101","OXXO-3526518", 1,"CLT","UN","VENTE OXXO-3526518",2000,2000,0,aAdd(aImpos,{aImpNF}),Nil,Nil,"", "", Nil,.F.,"01"})

	//Ítem 02
	aImpNF := {"IVA", "", 40002000, "002", 16, 640320, "IVA ESTADAR", "T",0,0,.F. }
	aAdd(aImpTras,{4000, "002", (16/100), 640})
	aAdd //Impuestos del Ítem 02
    aAdd(aDetFE, {"01010101","OXXO-35265183526519", 1,"CLT","UN","VENTE OXXO-35265183526519",40002000,40002000,0,aAdd(aImpos,{aImpNF}),aImpTrasNil,aRetNil,"", "", aPartesNil,.F.,"01"}02"})
    
    //Total de Impuestos del Documento (Acumulado por Impuesto y Alícuota)
	aAdd(aIFact,{"1", "", 640, "IVA", "002", "IVA ESTADAR", "T", (16/100),.F.,4000})

Return {aDetFE,aIFact}

Catálogo de Impuestos SAT

Image AddedEjemplo del Punto de Entrada PEGENXML:


Card documentos
InformacaoLa presente solución aplica para versión 12.1.33 o superior, y es responsabilidad del usuario la personalización del XML del CFDI y el impacto en que pudiera tener el no realizar la correcta definición de la lógica en el Punto de Entrada.
Titulo¡IMPORTANTE!


05. ASUNTOS RELACIONADOS