Ver Mensaje Individual
  #6  
Antiguo 08-07-2025
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 662
Reputación: 18
espinete Va camino a la fama
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Perdona, creo que soy yo el que no te había entendido.
Revisa el mensaje #2, donde hay referencias a varios códigos e hilos donde muestra cómo generar el XML de la factura.
https://www.clubdelphi.com/foros/sho...92&postcount=2
Gracias. He probado el código y efectivamente me genera el XML del RF que estoy creando, pero me añade un nodo que no debería ir:

<?xml version="1.0"?>
<RegistroAlta>
<RegistroFacturacionType>
<IDVersion>1.0</IDVersion>
<IDFactura>

Y además añade ese <?xml version="1.0"?> al principio, aunque eso es lo de menos porque puedo quitarlo a mano.

Supongo que también debo quitar a mano el <RegistroFacturacionType> y </RegistroFacturacionType> para dejarlo limpio?

Ahora que tengo la parte del XML correspondiente al RF (uno o varios), habría que crear el XML del envío, con el "bloque" de RF a enviar.

¿Hay algún ejemplo para extraer todos los XML de los RF a enviar al crear el XML del envío?

Yo lo tengo más o menos así:

Código:
            veriFactu:=RegFactuSistemaFacturacion.Create;

            veriFactu.Cabecera   := cabeceratype.Create;
            veriFactu.Cabecera.ObligadoEmision := PersonaFisicaJuridicaESType.Create;
            veriFactu.Cabecera.ObligadoEmision.NombreRazon := VeriFactuForm.Edit7.Text;
            veriFactu.Cabecera.ObligadoEmision.NIF  := VeriFactuForm.Edit8.Text;
            veriFactu.Cabecera.RemisionVoluntaria := RemisionVoluntaria.Create;
            veriFactu.Cabecera.RemisionVoluntaria.Incidencia := IncidenciaType(1);  //0=S / 1=N

            setLength(listaFacturas,Query.RecordCount);

            j:=0;
            while not (Query.Eof) do
            begin
                mov:=Query.FieldByName('TIPO').AsString;
                fac:=Query.FieldByName('NUM').AsString;
                ser:=Query.FieldByName('SER').AsString;

                //Añadiendo Fac. al bloque...

                FacturaEnvio := obtenerXMLdelRF();
                listaFacturas[ j]:= FacturaEnvio;

                Query.next;
                inc(j);
            end;

            veriFactu.RegistroFactura:= listaFacturas;

            if length(listaFacturas)>0 then
                enviarbloque(verifactu);
La verdad es que no esperaba encontrarme con este inconveniente de tener que tratar con los XML. Yo era super feliz generando y enviando los XML sobre la marcha
Responder Con Cita