![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Cita:
Según la documentación y para evitar problemas posteriores (sobre todo con fechas y horas) el RF se debe generar en el mismo momento de emitir la factura. Lo más sencillo es, como has dicho, en el OneforeExecure. En el ejemplo de [seccion_31] tienes el código sencillo que lo hace. Captura el evento con el siguinte procedimiento: https://www.clubdelphi.com/foros/showthread.php?t=97004
Una vez los tienes todos almacenados. LA APP2 sólo tienes que recogerlos, montar el paquete y enviarlo. NOTA: En el código lo guarda a fichero, nosotros en nuestroi caso lo enviamos a B.D. también.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#2
|
|||
|
|||
|
Lo siento, a veces me explico peor que la AEAT...
En efecto, el RF lo creo al emitir la factura, para poder obtener el QR e imprimirlo. La otra APP2 solo hace los envíos (el XML "grande" que incluye una o 1000 facturas). Mi duda es como guardar (la parte del XML de <RegistroFactura>) en la app1 para luego armar el nuevo XML del envío con todos esos RF. Anteriormente hacia el envío en el momento de crear el RF, QR, etc (es decir, envío inmediato). Pero como hay que hacerle caso a Hacienda... En el software en la nube no pasa nada porque el XML lo creo "a pelo", pero aquí no. |
|
#3
|
||||
|
||||
|
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
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#4
|
|||
|
|||
|
Cita:
<?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);
![]() |
|
#5
|
|||
|
|||
|
Ok, he estado haciendo pruebas para convertir ahora de XML al objeto adecuado y tengo esta función:
Código:
function CargarRegistroAltaDesdeXML(const XMLText: string): RegistroFacturaType;
var
XMLDoc: IXMLDocument;
RootNode: IXMLNode;
SOAPConv: TOPToSoapDomConvert;
Resultado: RegistroFacturaType;
begin
XMLDoc := TXMLDocument.Create(nil);
try
XMLDoc.LoadFromXML(XMLText);
XMLDoc.Active := True;
RootNode := XMLDoc.DocumentElement;
SOAPConv := TOPToSoapDomConvert.Create(nil);
try
SOAPConv.Encoding := 'utf-8';
SOAPConv.Options := [
TSOAPConvertOption.soDontSendEmptyNodes,
TSOAPConvertOption.soSendUntyped,
TSOAPConvertOption.soTryAllSchema,
TSOAPConvertOption.soUTF8EncodeXML
];
Resultado := RegistroFacturaType.Create;
Resultado.SOAPToObject(RootNode, RootNode, SOAPConv);
Result := Resultado;
finally
SOAPConv.Free;
end;
finally
XMLDoc := nil;
end;
end;
Si alguien puede echarme un cable se lo agradecería, porque no sé si voy por buen camino o no. Nunca he usado los conversores estos Soap <-> XML |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Guardar y Leer fotos directamente a una base de datos sin antes guardar como archivo | rmeckbell | Desarrollo en Delphi para Android | 6 | 26-06-2017 18:24:20 |
| como guardar en postgresql (como trabaja el datamodule) | mematanlimon | Lazarus, FreePascal, Kylix, etc. | 0 | 15-02-2010 19:06:12 |
| Como guardar .JPG como Bitmap en Base de Datos | Javi2 | Gráficos | 4 | 25-03-2007 17:21:57 |
| ¿Cómo guardar el Valor de TColor como un String? | nesetru | Gráficos | 3 | 27-02-2004 20:21:32 |
|