Histórico da Página
...
Producto |
| ||||||
---|---|---|---|---|---|---|---|
Línea de producto: |
| ||||||
Segmento: |
| ||||||
Módulo: | SIGAFAT - Facturación | ||||||
Función: |
| ||||||
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 1: Valor que corresponde al atributo ClaveProdServ del nodo cfdi:Conceptos\cfdi:Concepto.
Posición 2: Valor que corresponde al atributo NoIdentificacion del nodo cfdi:Conceptos\cfdi:Concepto.
Posición 3: Valor que corresponde al atributo Cantidad del nodo cfdi:Conceptos\cfdi:Concepto.
Posición 4: Valor que corresponde al atributo ClaveUnidad del nodo cfdi:Conceptos\cfdi:Concepto.
Posición 5: Valor que corresponde al atributo Unidad del nodo cfdi:Conceptos\cfdi:Concepto.
Posición 6: Valor que corresponde al atributo Descripcion del nodo cfdi:Conceptos\cfdi:Concepto.
Posición 7: Valor que corresponde al atributo ValorUnitario del nodo cfdi:Conceptos\cfdi:Concepto.
Posición 8: Valor que corresponde al atributo Importe del nodo cfdi:Conceptos\cfdi:Concepto.
Posición 9: Valor que corresponde al atributo Descuento del nodo cfdi:Conceptos\cfdi:Concepto.
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 4: Código de Impuesto SAT, de acuerdo al catálogo c_Impuesto definido por el SAT.
Posición Impuestos 5: Alícuota del Impuesto por ítem.
Posición Impuestos 6: 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 14: Valor que corresponde al atributo Numero del nodo cfdi:CuentaPredial.
Posición 15: Arreglo con datos para la generación del nodo cfdi:Parte, donde:
Posición Partes 1: Valor del atributo ClaveProdServ.
Posición Partes 2: Valor del atributo NoIdentificacion.
Posición Partes 3: Valor del atributo Cantidad.
Posición Partes 4: Valor del atributo Unidad.
Posición Partes 5: Valor del atributo Descripcion.
Posición Partes 6: Valor del atributo ValorUnitario.
Posición 16: .T. si el ítem es Exento de Impuestos.
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 ImpuestoSe 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.
Totvs custom tabs box | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||
|
...
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.,"0102"}) //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
Ejemplo del Punto de Entrada PEGENXML:
Card documentos Informacao La 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
- Documento Técnico de Facturación Electrónica para México de Comprobantes Fiscales Digitales por Internet (CFDI) Versión 4.0No aplica.
Templatedocumentos