Ver Mensaje Individual
  #414  
Antiguo 22-03-2017
Avatar de dimony
dimony dimony is offline
Miembro
 
Registrado: oct 2006
Posts: 28
Reputación: 0
dimony Va por buen camino
Resultado consulta facturas expedidas

Hola a tod@s, estoy intentando hacer la parte referente a la consulta de fras. expedidas y este es mi código:

Código Delphi [-]
function suministra_informacion: string;
var
  v_register: integer;

  certificado:String;

  // Libro registro de facturas emitidas //
  AConsultaLRFacturasEmitidas:ConsultaLRFacturasEmitidas;
  ARespuestaConsultaLRFacturasEmitidas:RespuestaConsultaLRFacturasEmitidas;
  AResultadoConsulta:ResultadoConsultaType;
  a :string;
  i:LongInt;

begin

  if main.lista_certificados.itemindex<0 then
    begin
    exit;
    end;

  certificado := numero_certificado(main.lista_certificados.text);
  if(certificado = '') then
    begin
    ShowMessage('No encuento el certificado');
    Exit;
    end;



  datos.Data.LibrosRegistros.First;
  v_register := 1;
  while v_register <= datos.Data.LibrosRegistros.RecordCount do
    begin

    //Si quitamos esta linea nos pedira el certificado a la hora de enviar la factura.
    Data.HTTPRIO1.HTTPWebNode.ClientCertificate.SerialNum := certificado;

    try

      AConsultaLRFacturasEmitidas := ConsultaLRFacturasEmitidas.Create;

      AConsultaLRFacturasEmitidas.Cabecera := CabeceraConsultaSii.Create;
      AConsultaLRFacturasEmitidas.Cabecera.IDVersionSii:=VersionSiiType(0);
      AConsultaLRFacturasEmitidas.Cabecera.titular := PersonaFisicaJuridicaUnicaESType.Create;
      AConsultaLRFacturasEmitidas.Cabecera.Titular.NombreRazon:= main.g_name;  // NOMBRE DEL PRESENTADOR (CUALQUIERA VALE)
      AConsultaLRFacturasEmitidas.Cabecera.Titular.NIF:= main.g_nif;     // CIF del PRESENTADOR (DEBE COINCIDIR CON EL CERTIFICADO SELECCIONADO)

      AConsultaLRFacturasEmitidas.FiltroConsulta := LRFiltroEmitidasType.Create;
      AConsultaLRFacturasEmitidas.FiltroConsulta.PeriodoImpositivo := PeriodoImpositivo.Create;
      AConsultaLRFacturasEmitidas.FiltroConsulta.PeriodoImpositivo.Ejercicio := formatdatetime('yyyy',data.LibrosRegistros.FieldByName('FechaExpedicionFacturaEmisor').AsDateTime);
      AConsultaLRFacturasEmitidas.FiltroConsulta.PeriodoImpositivo.Periodo := TipoPeriodoType(1);

      AConsultaLRFacturasEmitidas.FiltroConsulta.ClavePaginacion := IDFacturaExpedidaBCType.Create;
      AConsultaLRFacturasEmitidas.FiltroConsulta.ClavePaginacion.IDEmisorFactura := IDEmisorFactura3.Create;
      AConsultaLRFacturasEmitidas.FiltroConsulta.ClavePaginacion.IDEmisorFactura.NIF := main.g_nif;
      AConsultaLRFacturasEmitidas.FiltroConsulta.ClavePaginacion.NumSerieFacturaEmisor := data.LibrosRegistros.FieldByName('NumeroFacturaEmisor').AsString;
      AConsultaLRFacturasEmitidas.FiltroConsulta.ClavePaginacion.FechaExpedicionFacturaEmisor := data.LibrosRegistros.FieldByName('FechaExpedicionFacturaEmisor').asstring;

      try
        ARespuestaConsultaLRFacturasEmitidas := GetsiiSOAP(true,'',data.HTTPRIO1).ConsultaLRFacturasEmitidas(AConsultaLRFacturasEmitidas);

        for i := low(ARespuestaConsultaLRFacturasEmitidas.RegistroRespuestaConsultaLRFacturasEmitidas) to High(ARespuestaConsultaLRFacturasEmitidas.RegistroRespuestaConsultaLRFacturasEmitidas) do
          begin
          with ARespuestaConsultaLRFacturasEmitidas.RegistroRespuestaConsultaLRFacturasEmitidas[i] do
            begin
            AResultadoConsulta := ARespuestaConsultaLRFacturasEmitidas.ResultadoConsulta;

            if aresultadoconsulta = ResultadoConsultaType(1) then
              showmessage('hola')
            else
              showmessage('adios')
            end;
          end;
      except
        On E:Exception do
          //El proceso de envio dio error
          MessageDlg(E.Message, mtError, [mbOK], 0);
      end;
    finally
      AConsultaLRFacturasEmitidas.Free;
      ARespuestaConsultaLRFacturasEmitidas.Free;
    end;


    datos.Data.LibrosRegistros.Next;
    v_register := v_register + 1;
  end;


end;


El xml se envia correctamente y devuelve respuesta correctamente (SINDATOS), pero a la hora de gestionarlo a través de la variable AResultadoConsulta, no se gestionarlo.
Quiero decir como controlo con AresultadoConsulta si devuelve CONDATOS o SINDATOS. No logro hacerlo.
Gracias.
Responder Con Cita