Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > General/Noticias
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 21-10-2025
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 662
Poder: 18
espinete Va camino a la fama
Por lo pronto, Hacienda acepta el XML aunque ponga <item> en vez de <DetalleDesglose>. También ocurre en el nodo <Destinatarios>. Pero lo dicho, se lo traga como si estuviera bien.

En nuestro caso, nosotros guardamos el RF en la BD, porque luego otra aplicación se encarga de hacer los envíos a Hacienda desde el Servidor, así que hay que "leer" ese XML y volver a convertirlo en objeto, para poder firmarlo y enviarlo.

Nosotros hemos optado por modificar el texto a mano, por si acaso algún día se pongan tiquismiquis con los nombres de esos nodos y deje de funcionar.

Concretamente hacemos esto:

Código:
    // Reemplazamos el nodo raíz con el generado
    MyXML.DocumentElement := NewNode;

    MyXML.XML.Text := stringreplace(MyXML.XML.Text,'<Desglose><item>','<Desglose><DetalleDesglose>',[rfReplaceAll]);
    MyXML.XML.Text := stringreplace(MyXML.XML.Text,'</item></Desglose>','</DetalleDesglose></Desglose>',[rfReplaceAll]);

    MyXML.XML.Text := stringreplace(MyXML.XML.Text,'<Destinatarios><item>','<Destinatarios><IDDestinatario>',[rfReplaceAll]);
    MyXML.XML.Text := stringreplace(MyXML.XML.Text,'</IDDestinatario></item>','</IDDestinatario></Destinatarios>',[rfReplaceAll]);

    MyXML.XML.Text := FormatXMLData(MyXML.XML.Text);
    MyXML.XML.SaveToFile(extractfilepath(application.exename)+'VeriFactu/RF'+RegistroFactura.RegistroAlta.RefExterna+'.xml',TEncoding.UTF8);  // Provisional
Hay que hacerlo ANTES de lalamr a FormatXMLData(), porque una vez formateado el XML, cada nodo tendrá su propia línea en el archivo y es más difícil encontrar los nodos chungos.
O eso, o usar la función ReemplazarItemEnSeccion() que has facilitado, que es más genérica y servirá para cualquier otra incidencia que pueda surgir.

Nosotros guardamos el XML/RF de cada factura en disco, pero solo por tener más seguridad y que en caso de algún error poder revisarlo todo más cómoda y rápidamente. En realidad el RF se guarda en la BD también, así que los archivos "sobran", pero es más rápido buscar/abrir un archivo en el disco que hacerlo en la BD.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Restar Campo Generados de SQL kurono Varios 15 23-06-2013 09:35:10
Archivos _XXXX.DBF generados por consulta sql klionsis Varios 1 08-09-2008 18:05:43
Ficheros generados por delphi.NET Mariolarr .NET 1 29-10-2007 19:59:41
Archivos .MAP generados por Delphi Ana Tudela Varios 2 26-10-2005 18:44:48
Archivos temporales generados por TQuerys Balda Conexión con bases de datos 0 14-04-2005 14:18:29


La franja horaria es GMT +2. Ahora son las 08:07:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi