Á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.

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

Se debe retornar un arreglo con 2 posiciones, donde:

La Primer posición debe contener la siguiente estructura:

...

Posición 9: Valor que corresponde al atributo Descuento del nodo cfdi:Conceptos\cfdi:Concepto.

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

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

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 11: Indica si es impuesto incluido (.T. es igual a Si y .F. igual a No)

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

...

Enviar con valor Nil.

Posición

...

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

...

12: Enviar con valor Nil.

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

...

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 el 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 para de Conceptos con sus respectivos impuestos de IVA por Concepto, así como el acumulado por del impuesto IVA a una tasa del de 16.00.


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

User Function PEXMLDETA()
	Local aDetFE   := {}
	Local aPartes  := {}
	Local aImpos   := {}
	Local aImpNF   := {}
	Local aRet     := {}
	Local aImpTras := {}
	Local aIFact    := {}

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

	//Ítem 02
	aImpTras := {}
	aAdd(aImpTras,{2000, "002", (16/100), 320})
	aImpNF := {"IVA", "", 2000, "002", 16, 320, "IVA ESTADAR", "T",0,0,.F. }
	aAdd //Impuestos del Ítem 02
    aAdd(aDetFE, {"01010101","OXXO-3526519", 1,"CLT","UN","VENTE OXXO-3526519",2000,2000,0,aAdd(aImpos,{aImpNF}),aImpTrasNil,aRetNil,"", "", aPartesNil,.F.,"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 Added


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