Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Registros de Facturacion y Eventos (XML)
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #23  
Antiguo 03-01-2025
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.214
Poder: 24
newtron Va camino a la fama
Ok.


Por si a alguien le viene bien creo que he conseguido enviar registros en modo NO Verifactu a partir de los ficheros XML de las facturas firmados en disco con una pequeña "ñapa".


Lo que he hecho ha sido crear un fichero .xml con la cabecera "a pelo" hasta el nodo "RegistroFactura"

A esto le añado los ficheros xml firmados leyendo cada uno de ellos y al final cierro los nodos.

Una vez creado este fichero hago una llamada SOAP e intercepto el evento "beforeexecute" del objeto HTTPRIO y sustituyo el stream por el del fichero que he generado con el siguiente código:

Código Delphi [-]
  // Cargar el archivo XML desde disco
  XMLFactura := TStringList.Create;
  XMLFactura.LoadFromFile('C:\TEMP\prueba.xml'); // Fichero creado "a pelo"
  // Leer el contenido del flujo SOAPRequest
  RequestStream := TStringStream.Create;
  SOAPRequest.Position := 0;
  RequestStream.CopyFrom(SOAPRequest, SOAPRequest.Size);
  // Convertir el flujo a una cadena para su manipulación
  ModifiedRequest := RequestStream.DataString;
  ModifiedRequest:=XMLFactura.Text;
  // Sobrescribir el contenido del flujo con la solicitud modificada
  RequestStream.Size := 0; // Limpiar el flujo
  RequestStream.WriteString(ModifiedRequest);
  RequestStream.Position := 0;
  // Reemplazar el flujo original con el modificado
  SOAPRequest.Size := 0;
  SOAPRequest.CopyFrom(RequestStream, RequestStream.Size);
  SOAPRequest.Position := 0;
  RequestStream.Free;
  XMLFactura.Free;


Esto hace la llamada SOAP con el fichero que hemos creado y debe de funcionar. Todo esto lo he hecho en pruebas sueltas y me falta implementarlo en mi programa pero creo que funciona, lo digo por si alguien quiere ir trabajando en ello.


Saludos.
__________________
Be water my friend.
Responder Con Cita
 



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
Posicion Firma shoulder Varios 9 11-10-2016 17:03:20
Chequeo para InputBox... bulc OOP 1 20-06-2014 22:18:14
Calcular un digito de chequeo GrupoDatasoft Varios 7 09-02-2009 17:53:53
Firma Digital Dado de baja Varios 5 30-11-2008 20:52:16
La firma de la semana, del mes, del año... kinobi Debates 3 23-05-2005 01:00:52


La franja horaria es GMT +2. Ahora son las 15:32:53.


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