Consulta
en el método de la demo procedure TForm1.procesarEnvio(resultado:TResultadoEnvio);
¿No debería también guardar la huella y lo disponible en registros de facturación para incorrectos ?
Algo así:
Código Delphi
[-]
procedure TForm1.procesarEnvio(resultado:TResultadoEnvio);
var
desError,error,estado,factura, emisor:string;
j:integer;
_ok,_oke,_err:integer;
begin
memoXML.Lines.LoadFromFile(xmlEnvio);
memoXML.Text:=FormatXMLData(memoXML.Text);
memoRes.lines.clear;
memoRes.lines.Add('Se ha realizado el envío');
memoRes.Lines.Add('');
memoRes.Lines.Add('Estado Del Envio:'+resultado.EstadoEnvio );
memoRes.lines.Add('CSV: ' + resultado.CSV);
memoRes.lines.Add('TimeStamp: ' + resultado.Fecha+' '+resultado.Hora);
memoRes.Lines.Add('');
_ok :=0; _oke :=0; _err :=0;
for j:=0 to resultado.nFacturas-1 do
begin
factura := resultado.facturas[j].NumSerieFactura;
emisor := resultado.facturas[j].IDEmisorFactura;
estado := resultado.facturas[j].estado;
error := inttostr(resultado.facturas[j].errorcodigo);
desError := resultado.facturas[j].descripcionError;
memoRes.Lines.Add( factura + ' ' + estado + ' '+error+' '+desError );
if resultado.facturas[j].OK then begin
if facturasEnviadas.locate('emisor;NumSerieFactura',vararrayof([emisor, factura ]),[]) then
begin
FacturasEnviadas.edit;
FacturasEnviadas.fieldbyName('csv').text :=resultado.CSV;
FacturasEnviadas.FieldByName('huella').text :=resultado.facturas[j].huellaFactura;
FacturasEnviadas.fieldbyName('situacion').text:=estado;
FacturasEnviadas.post;
end;
if resultado.facturas[j].aceptadoConErrores then inc(_oke) else inc(_ok);
end
else
begin
FacturasEnviadas.edit;
FacturasEnviadas.fieldbyName('csv').text :=resultado.CSV;
FacturasEnviadas.FieldByName('huella').text :=resultado.facturas[j].huellaFactura;
FacturasEnviadas.fieldbyName('situacion').text:=estado;
FacturasEnviadas.post;
inc(_err); end;
end;
memoRes.Lines.Add('');
memoRes.Lines.Add('Facturas Aceptadas: '+inttostr(_ok) );
memoRes.Lines.Add('Facturas Aceptadas Con Errores: '+inttostr(_oke) );
memoRes.Lines.Add('Facturas Con Errores: '+inttostr(_err) );
if resultado.tiempoDeEspera<>'' then memoRes.Lines.Add('Se Ha Establecido Un Tiempo De Espera Proximo Envio De '+resultado.tiempoDeEspera);
end;