Se abrimos a aplicação com os fontes e executamos via F5, flui sem erro.
Utilizamos os mesmos trecho do exemplo fornecido pela ACBR e adequamos na parte de alimentação.
ACBrNFSeX1.Configuracoes.Geral.Provedor := proISSNet;
Sleep(2000);
ACBrNFSeX1.Emitir(iLote, meUnitario, true);
Sleep(2000);
dtmdlNFSe.ObterResposta( tmRecepcionar);
Sleep(2000);
Colocamos uma pausa de 2 segundos apenas por precaução. Executando sem debugar não dá para saber em qual das duas linhas efetivamente o erro ocorre. Debugando, passa sem erro.
Na função ObterResposta temos:
Function TdtmdlNFSe.ObterResposta( aMetodo: TMetodo) : TStringList;
var
i: Integer;
sLote : string;
sNumero : string;
begin
lstResposta.Clear;
lstResposta.Add('Requisição');
lstResposta.Add('Ambiente: ' + TpAmbToStr(ACBrNFSeX1.Configuracoes.WebServices.Ambiente));
lstResposta.Add('Cidade: ' + ACBrNFSeX1.Configuracoes.Geral.xMunicipio +
' UF: ' + ACBrNFSeX1.Configuracoes.Geral.xUF +
' Provedor: ' + ACBrNFSeX1.Configuracoes.Geral.xProvedor +
' Versão: ' + VersaoNFSeToStr(ACBrNFSeX1.Configuracoes.Geral.Versao));
with ACBrNFSeX1.WebService do
begin
case aMetodo of
tmRecepcionar,
tmTeste:
begin
with Emite do
begin
sLote := Emite.Lote;
lstResposta.Add('Método Executado: ' + ModoEnvioToStr(Emite.ModoEnvio));
lstResposta.Add('Número do Lote: ' + Emite.Lote +
' Data de Envio: ' + DateToStr(Emite.Data) +
' Protocolo: ' + Emite.Protocolo +
' NroNota: ' + Emite.NumeroNota);
lstResposta.Add('Link: ' + Emite.Link);
lstResposta.Add('CodRetorno: ' + Emite.CodVerificacao +
' Sucesso: ' + BoolToStr(Emite.Sucesso, True));
if Erros.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Erro:');
for i := 0 to Erros.Count -1 do
begin
lstResposta.Add('Codigo: ' + Erros[i].Codigo +
' > Mensagem: ' + Erros[i].Descricao +
' > Correção: ' + Erros[i].Correcao );
end;
end;
if Alertas.Count > 0 then
begin
lstResposta.Add('Alerta(s) Lote: ');
for i := 0 to Alertas.Count -1 do
begin
lstResposta.Add('Codigo: ' + Alertas[i].Codigo +
' > Mensagem: ' + Alertas[i].Descricao +
' > Correção: ' + Alertas[i].Correcao);
end;
end;
end;
if ACBrNFSeX1.Configuracoes.Geral.ConsultaLoteAposEnvio and
((Emite.Protocolo <> '') or (Emite.Lote <> '')) then
begin
if ACBrNFSeX1.Provider.ConfigGeral.ConsultaSitLote then
begin
with ConsultaSituacao do
begin
lstResposta.Add('Situação do Lote: ');
lstResposta.Add(' > Método Executado|' + MetodoToStr(tmConsultarSituacao ) +
' > Numero do Prot|' + Protocolo +
' > Numero do Lote|' + Lote +
' > Situação Lote|' + Situacao +
' > Sucesso| ' + BoolToStr(Sucesso, True));
if Erros.Count > 0 then
begin
lstResposta.Add('Erro(s) Lote:');
for i := 0 to Erros.Count -1 do
begin
lstResposta.Add('Código : ' + Erros[i].Codigo +
' > Mensagem: ' + Erros[i].Descricao +
' > Correção: ' + Erros[i].Correcao);
end;
end;
if Alertas.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Alerta(s) Lote:');
for i := 0 to Alertas.Count -1 do
begin
lstResposta.Add('Código : ' + Alertas[i].Codigo +
' > Mensagem: ' + Alertas[i].Descricao +
' > Correção: ' + Alertas[i].Correcao);
end;
end;
end;
end;
if ACBrNFSeX1.Provider.ConfigGeral.ConsultaLote then
begin
with ConsultaLoteRps do
begin
lstResposta.Add(' ');
lstResposta.Add('Consulta Lote');
lstResposta.Add('Método Executado| ' + MetodoToStr(tmConsultarLote) +
' > Numero do Prot| ' + Protocolo +
' > Numero do Lote| ' + Lote +
' > Situação Lote | ' + Situacao +
' > Sucesso| ' + BoolToStr(Sucesso, True));
if Resumos.Count > 0 then
begin
lstResposta.Add('Resumo(s):');
for i := 0 to Resumos.Count -1 do
begin
lstResposta.Add('Numero Nota| ' + Resumos[i].NumeroNota +
' > Código Verificação: ' + Resumos[i].CodigoVerificacao +
' > Numero Rps : ' + Resumos[i].NumeroRps +
' > Série Rps : ' + Resumos[i].SerieRps);
end;
end;
if Erros.Count > 0 then
begin
lstResposta.Add('Erro(s):');
for i := 0 to Erros.Count -1 do
begin
lstResposta.Add('Código| ' + Erros[i].Codigo +
' > Mensagem| ' + Erros[i].Descricao +
' > Correção|: ' + Erros[i].Correcao );
end;
end;
if Alertas.Count > 0 then
begin
lstResposta.Add('Alerta(s):');
for i := 0 to Alertas.Count -1 do
begin
lstResposta.Add('Código| ' + Alertas[i].Codigo +
' > Mensagem| ' + Alertas[i].Descricao +
' > Correção| ' + Alertas[i].Correcao);
end;
end;
end;
end;
end;
end;
tmRecepcionarSincrono,
tmGerar:
begin
with Emite do
begin
lstResposta.Add('Método Executado|' + ModoEnvioToStr(Emite.ModoEnvio));
lstResposta.Add('Numero do Lote|' + Emite.Lote);
lstResposta.Add('Data de Envio |' + DateToStr(Emite.Data));
lstResposta.Add('Protocolo|' + Emite.Protocolo);
lstResposta.Add('NroNota|' + Emite.NumeroNota);
lstResposta.Add('Link|' + Emite.Link);
lstResposta.Add('CodRetorno|' + Emite.CodVerificacao);
lstResposta.Add('Sucesso|' + BoolToStr(Emite.Sucesso, True));
if Erros.Count > 0 then
begin
lstResposta.Add('Erro(s)|');
for i := 0 to Erros.Count -1 do
begin
lstResposta.Add('Código| ' + Erros[i].Codigo +
' > Mensagem| ' + Erros[i].Descricao +
' > Correção|| ' + Erros[i].Correcao );
end;
end;
if Alertas.Count > 0 then
begin
lstResposta.Add('Alerta(s)|');
for i := 0 to Alertas.Count -1 do
begin
lstResposta.Add('Código| ' + Alertas[i].Codigo +
' > Mensagem| ' + Alertas[i].Descricao +
' > Correção| ' + Alertas[i].Correcao);
end;
end;
end;
end;
tmConsultarSituacao:
begin
with ConsultaSituacao do
begin
lstResposta.Add('Método Executado| ' + MetodoToStr(tmConsultarSituacao));
lstResposta.Add('Numero do Prot| ' + Protocolo);
lstResposta.Add('Numero do Lote| ' + Lote);
lstResposta.Add('Situação Lote| ' + Situacao);
lstResposta.Add('Sucesso|| ' + BoolToStr(Sucesso, True));
if Erros.Count > 0 then
begin
lstResposta.Add('Erro(s)|');
for i := 0 to Erros.Count -1 do
begin
lstResposta.Add('Código| ' + Erros[i].Codigo +
' > Mensagem| ' + Erros[i].Descricao +
' > Correção|| ' + Erros[i].Correcao );
end;
end;
if Alertas.Count > 0 then
begin
lstResposta.Add('Alerta(s)|');
for i := 0 to Alertas.Count -1 do
begin
lstResposta.Add('Código| ' + Alertas[i].Codigo +
' > Mensagem| ' + Alertas[i].Descricao +
' > Correção| ' + Alertas[i].Correcao);
end;
end;
end;
end;
tmConsultarLote:
begin
with ConsultaLoteRps do
begin
lstResposta.Add('Método Executado| ' + MetodoToStr(tmConsultarLote));
lstResposta.Add('Numero do Prot| ' + Protocolo);
lstResposta.Add('Numero do Lote| ' + Lote);
lstResposta.Add('Situação Lote| ' + Situacao);
lstResposta.Add('Sucesso|| ' + BoolToStr(Sucesso, True));
if Erros.Count > 0 then
begin
lstResposta.Add('Erro(s)|');
for i := 0 to Erros.Count -1 do
begin
lstResposta.Add('Código| ' + Erros[i].Codigo +
' > Mensagem| ' + Erros[i].Descricao +
' > Correção|| ' + Erros[i].Correcao );
end;
end;
if Alertas.Count > 0 then
begin
lstResposta.Add('Alerta(s)|');
for i := 0 to Alertas.Count -1 do
begin
lstResposta.Add('Código| ' + Alertas[i].Codigo +
' > Mensagem| ' + Alertas[i].Descricao +
' > Correção| ' + Alertas[i].Correcao);
end;
end;
end;
end;
tmConsultarNFSePorRps:
begin
with ConsultaNFSeporRps do
begin
lstResposta.Add('Método Executado| ' + MetodoToStr(tmConsultarNFSePorRps));
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Envio');
lstResposta.Add('Numero do Rps | ' + NumRPS);
lstResposta.Add('Série do Rps | ' + Serie);
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Retorno');
lstResposta.Add('Numero do Lote| ' + Lote);
lstResposta.Add('Numero do Prot| ' + Protocolo);
lstResposta.Add('Situação | ' + Situacao);
lstResposta.Add('Data | ' + DateToStr(Data));
lstResposta.Add('Desc. Situação| ' + DescSituacao);
lstResposta.Add('ID Nota | ' + idNota);
lstResposta.Add('Link | ' + Link);
lstResposta.Add('Sucesso | ' + BoolToStr(Sucesso, True));
lstResposta.Add('Método Executado| ' + MetodoToStr(tmConsultarSituacao));
if Erros.Count > 0 then
begin
lstResposta.Add('Erro(s)|');
for i := 0 to Erros.Count -1 do
begin
lstResposta.Add('Código| ' + Erros[i].Codigo +
' > Mensagem| ' + Erros[i].Descricao +
' > Correção|| ' + Erros[i].Correcao );
end;
end;
if Alertas.Count > 0 then
begin
lstResposta.Add('Alerta(s)|');
for i := 0 to Alertas.Count -1 do
begin
lstResposta.Add('Código| ' + Alertas[i].Codigo +
' > Mensagem| ' + Alertas[i].Descricao +
' > Correção| ' + Alertas[i].Correcao);
end;
end;
end;
end;
tmConsultarNFSe,
tmConsultarNFSePorFaixa,
tmConsultarNFSeServicoPrestado,
tmConsultarNFSeServicoTomado:
begin
with ConsultaNFSe do
begin
lstResposta.Add('Método Executado| ' + MetodoToStr(Metodo));
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Envio');
lstResposta.Add('Num. Ini. NFSe| ' + InfConsultaNFSe.NumeroIniNFSe);
lstResposta.Add('Num. Fin. NFSe| ' + InfConsultaNFSe.NumeroFinNFSe);
lstResposta.Add('Data Inicial | ' + DateToStr(InfConsultaNFSe.DataInicial));
lstResposta.Add('Data Final | ' + DateToStr(InfConsultaNFSe.DataFinal));
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Retorno');
lstResposta.Add('Sucesso | ' + BoolToStr(Sucesso, True));
if Erros.Count > 0 then
begin
lstResposta.Add('Erro(s)|');
for i := 0 to Erros.Count -1 do
begin
lstResposta.Add('Código| ' + Erros[i].Codigo +
' > Mensagem| ' + Erros[i].Descricao +
' > Correção|| ' + Erros[i].Correcao );
end;
end;
if Alertas.Count > 0 then
begin
lstResposta.Add('Alerta(s)|');
for i := 0 to Alertas.Count -1 do
begin
lstResposta.Add('Código| ' + Alertas[i].Codigo +
' > Mensagem| ' + Alertas[i].Descricao +
' > Correção| ' + Alertas[i].Correcao);
end;
end;
end;
end;
tmCancelarNFSe:
begin
with CancelaNFSe do
begin
lstResposta.Add('Método Executado| ' + MetodoToStr(tmCancelarNFSe));
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Envio');
lstResposta.Add('Numero da NFSe| ' + InfCancelamento.NumeroNFSe);
lstResposta.Add('Série da NFSe | ' + InfCancelamento.SerieNFSe);
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Retorno');
lstResposta.Add('Situação| ' + Situacao);
lstResposta.Add('Link | ' + Link);
lstResposta.Add('Sucesso | ' + BoolToStr(Sucesso, True));
lstResposta.Add(' ');
lstResposta.Add('Retorno do Pedido de Cancelamento|');
lstResposta.Add('Situação | ' + RetCancelamento.Situacao);
lstResposta.Add('Data/Hora| ' + DateToStr(RetCancelamento.DataHora));
lstResposta.Add('Mensagem | ' + RetCancelamento.MsgCanc);
lstResposta.Add('Sucesso | ' + RetCancelamento.Sucesso);
lstResposta.Add('Link | ' + RetCancelamento.Link);
end;
if ACBrNFSeX1.Configuracoes.Geral.ConsultaAposCancelar and
ACBrNFSeX1.Provider.ConfigGeral.ConsultaNFSe then
begin
with ConsultaNFSe do
begin
lstResposta.Add(' ');
lstResposta.Add(' ');
lstResposta.Add('Método Executado| ' + MetodoToStr(Metodo));
lstResposta.Add('Parâmetros de Envio');
lstResposta.Add('Num. Ini. NFSe| ' + InfConsultaNFSe.NumeroIniNFSe);
lstResposta.Add('Num. Fin. NFSe| ' + InfConsultaNFSe.NumeroFinNFSe);
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Retorno');
lstResposta.Add('Sucesso | ' + BoolToStr(Sucesso, True));
end;
end;
end;
tmSubstituirNFSe:
begin
with SubstituiNFSe do
begin
lstResposta.Add('Método Executado| ' + MetodoToStr(tmSubstituirNFSe));
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Envio');
lstResposta.Add('Numero da NFSe| ' + InfCancelamento.NumeroNFSe);
lstResposta.Add('Série da NFSe | ' + InfCancelamento.SerieNFSe);
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Retorno');
lstResposta.Add('Situação| ' + Situacao);
lstResposta.Add('Link | ' + Link);
lstResposta.Add('Sucesso | ' + BoolToStr(Sucesso, True));
lstResposta.Add('Numero da NFSe Substituida | ' + NumNotaSubstituida);
lstResposta.Add('Numero da NFSe Substituidora| ' + NumNotaSubstituidora);
lstResposta.Add(' ');
lstResposta.Add('Retorno do Pedido de Cancelamento|');
lstResposta.Add('Situação | ' + RetCancelamento.Situacao);
lstResposta.Add('Data/Hora| ' + DateToStr(RetCancelamento.DataHora));
lstResposta.Add('Mensagem | ' + RetCancelamento.MsgCanc);
lstResposta.Add('Sucesso | ' + RetCancelamento.Sucesso);
lstResposta.Add('Link | ' + RetCancelamento.Link);
end;
end;
tmGerarLote:
begin
with Gerar do
begin
lstResposta.Add('Método Executado| ' + ModoEnvioToStr(ModoEnvio));
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Envio');
lstResposta.Add('Numero do Lote| ' + Lote);
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Retorno');
lstResposta.Add('Nome Arquivo | ' + NomeArq);
if Erros.Count > 0 then
begin
lstResposta.Add('Erro(s)|');
for i := 0 to Erros.Count -1 do
begin
lstResposta.Add('Código| ' + Erros[i].Codigo +
' > Mensagem| ' + Erros[i].Descricao +
' > Correção|| ' + Erros[i].Correcao );
end;
end;
if Alertas.Count > 0 then
begin
lstResposta.Add('Alerta(s)|');
for i := 0 to Alertas.Count -1 do
begin
lstResposta.Add('Código| ' + Alertas[i].Codigo +
' > Mensagem| ' + Alertas[i].Descricao +
' > Correção| ' + Alertas[i].Correcao);
end;
end;
end;
end;
tmGerarToken:
begin
with GerarToken do
begin
lstResposta.Add(' ');
lstResposta.Add(' ');
lstResposta.Add('Método Executado| ' + MetodoToStr(tmGerarToken));
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Envio');
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Retorno');
lstResposta.Add('Token | ' + Token);
lstResposta.Add('Data Expiracao| ' + DateTimeToStr(DataExpiracao));
lstResposta.Add('Sucesso | ' + BoolToStr(Sucesso, True));
if Erros.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Erro(s)|');
for i := 0 to Erros.Count -1 do
begin
lstResposta.Add('Código | ' + Erros[i].Codigo);
lstResposta.Add('Mensagem| ' + Erros[i].Descricao);
lstResposta.Add('Correção| ' + Erros[i].Correcao);
end;
end;
if Alertas.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Alerta(s)|');
for i := 0 to Alertas.Count -1 do
begin
lstResposta.Add('Código | ' + Alertas[i].Codigo);
lstResposta.Add('Mensagem| ' + Alertas[i].Descricao);
lstResposta.Add('Correção| ' + Alertas[i].Correcao);
end;
end;
end;
end;
tmAbrirSessao:
begin
end;
tmFecharSessao:
begin
end;
tmEnviarEvento:
begin
with EnviarEvento do
begin
lstResposta.Add('Método Executado| ' + MetodoToStr(tmEnviarEvento));
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Envio');
with InfEvento.pedRegEvento do
begin
lstResposta.Add('Chave NFSe | ' + chNFSe);
lstResposta.Add('Evento | ' + tpEventoToDesc(tpEvento));
end;
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Retorno');
lstResposta.Add('Chave NFSe | ' + idNota);
lstResposta.Add('Data | ' + DateToStr(Data));
lstResposta.Add('Tipo Evento | ' + tpEventoToDesc(tpEvento));
lstResposta.Add('Num. Seq. Evento| ' + IntToStr(nSeqEvento));
lstResposta.Add('ID do Evento | ' + idEvento);
lstResposta.Add('Sucesso | ' + BoolToStr(Sucesso, True));
if Erros.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Erro(s)|');
for i := 0 to Erros.Count -1 do
begin
lstResposta.Add('Código | ' + Erros[i].Codigo);
lstResposta.Add('Mensagem| ' + Erros[i].Descricao);
lstResposta.Add('Correção| ' + Erros[i].Correcao);
end;
end;
if Alertas.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Alerta(s)|');
for i := 0 to Alertas.Count -1 do
begin
lstResposta.Add('Código | ' + Alertas[i].Codigo);
lstResposta.Add('Mensagem| ' + Alertas[i].Descricao);
lstResposta.Add('Correção| ' + Alertas[i].Correcao);
end;
end;
end;
end;
tmConsultarEvento:
begin
with ConsultarEvento do
begin
lstResposta.Add('Método Executado| ' + MetodoToStr(tmConsultarEvento));
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Envio');
lstResposta.Add('Chave NFSe | ' + ChaveNFSe);
lstResposta.Add('Evento | ' + tpEventoToDesc(tpEvento));
lstResposta.Add('Num. Seq. Evento| ' + IntToStr(nSeqEvento));
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Retorno');
lstResposta.Add('Chave NFSe | ' + idNota);
lstResposta.Add('Data | ' + DateToStr(Data));
lstResposta.Add('Tipo Evento | ' + tpEventoToDesc(tpEvento));
lstResposta.Add('Num. Seq. Evento| ' + IntToStr(nSeqEvento));
lstResposta.Add('ID do Evento | ' + idEvento);
lstResposta.Add('Sucesso | ' + BoolToStr(Sucesso, True));
if Erros.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Erro(s)|');
for i := 0 to Erros.Count -1 do
begin
lstResposta.Add('Código | ' + Erros[i].Codigo);
lstResposta.Add('Mensagem| ' + Erros[i].Descricao);
lstResposta.Add('Correção| ' + Erros[i].Correcao);
end;
end;
if Alertas.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Alerta(s)|');
for i := 0 to Alertas.Count -1 do
begin
lstResposta.Add('Código | ' + Alertas[i].Codigo);
lstResposta.Add('Mensagem| ' + Alertas[i].Descricao);
lstResposta.Add('Correção| ' + Alertas[i].Correcao);
end;
end;
end;
end;
tmConsultarDFe:
begin
with ConsultarDFe do
begin
lstResposta.Add('Método Executado| ' + MetodoToStr(tmConsultarDFe));
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Envio');
lstResposta.Add('Chave NFSe | ' + ChaveNFSe);
lstResposta.Add('Num. Seq. Unico| ' + IntToStr(NSU));
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Retorno');
lstResposta.Add('Data | ' + DateToStr(Data));
lstResposta.Add('Sucesso| ' + BoolToStr(Sucesso, True));
if Resumos.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Resumo(s)|');
for i := 0 to Resumos.Count -1 do
begin
lstResposta.Add('NSU | ' + IntToStr(Resumos[i].NSU));
lstResposta.Add('Chave DFe| ' + Resumos[i].ChaveDFe);
lstResposta.Add('Tipo Doc.| ' + Resumos[i].TipoDoc);
end;
end;
if Erros.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Erro(s)|');
for i := 0 to Erros.Count -1 do
begin
lstResposta.Add('Código | ' + Erros[i].Codigo);
lstResposta.Add('Mensagem| ' + Erros[i].Descricao);
lstResposta.Add('Correção| ' + Erros[i].Correcao);
end;
end;
if Alertas.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Alerta(s)|');
for i := 0 to Alertas.Count -1 do
begin
lstResposta.Add('Código | ' + Alertas[i].Codigo);
lstResposta.Add('Mensagem| ' + Alertas[i].Descricao);
lstResposta.Add('Correção| ' + Alertas[i].Correcao);
end;
end;
end;
end;
tmConsultarParam:
begin
with ConsultarParam do
begin
lstResposta.Add('Método Executado| ' + MetodoToStr(tmConsultarParam));
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Envio');
lstResposta.Add('Tipo Parâmetro | ' + ParamMunicToStr(tpParamMunic));
lstResposta.Add('Código Municipío| ' + IntToStr(CodigoMunic));
lstResposta.Add('Código Serviço | ' + CodigoServico);
lstResposta.Add('Competencia | ' + DateToStr(Competencia));
lstResposta.Add('Numero Beneficio| ' + NumeroBeneficio);
lstResposta.Add(' ');
lstResposta.Add('Parâmetros de Retorno');
lstResposta.Add('Data | ' + DateTimeToStr(Data));
lstResposta.Add('Sucesso | ' + BoolToStr(Sucesso, True));
if Parametros.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Parâmetros(s)|');
for i := 0 to Parametros.Count -1 do
begin
lstResposta.Add(Parametros[i]);
end;
end;
if Resumos.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Resumo(s)|');
for i := 0 to Resumos.Count -1 do
begin
lstResposta.Add('NSU | ' + IntToStr(Resumos[i].NSU));
lstResposta.Add('Chave DFe| ' + Resumos[i].ChaveDFe);
lstResposta.Add('Tipo Doc.| ' + Resumos[i].TipoDoc);
end;
end;
if Erros.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Erro(s)|');
for i := 0 to Erros.Count -1 do
begin
lstResposta.Add('Código | ' + Erros[i].Codigo);
lstResposta.Add('Mensagem| ' + Erros[i].Descricao);
lstResposta.Add('Correção| ' + Erros[i].Correcao);
end;
end;
if Alertas.Count > 0 then
begin
lstResposta.Add(' ');
lstResposta.Add('Alerta(s)|');
for i := 0 to Alertas.Count -1 do
begin
lstResposta.Add('Código | ' + Alertas[i].Codigo);
lstResposta.Add('Mensagem| ' + Alertas[i].Descricao);
lstResposta.Add('Correção| ' + Alertas[i].Correcao);
end;
end;
end;
end;
end;
end;
for i := 0 to ACBrNFSeX1.NotasFiscais.Count -1 do
begin
lstResposta.Add(' ');
lstResposta.Add('NFS-e Numero....: ' + ACBrNFSeX1.NotasFiscais.Items[i].NFSe.Numero);
lstResposta.Add('Cod. Verificacao: ' + ACBrNFSeX1.NotasFiscais.Items[i].NFSe.CodigoVerificacao);
lstResposta.Add('Prestador.......: ' + ACBrNFSeX1.NotasFiscais.Items[i].NFSe.Prestador.RazaoSocial);
lstResposta.Add('Tomador.........: ' + ACBrNFSeX1.NotasFiscais.Items[i].NFSe.Tomador.RazaoSocial);
if ACBrNFSeX1.NotasFiscais.Items[i].NFSe.SituacaoNfse = ACBrNFSeXConversao.snCancelado then
lstResposta.Add('A Nota encontra-se Cancelada.');
if ACBrNFSeX1.NotasFiscais.Items[i].NomeArq <> '' then
begin
lstResposta.Add('Nome do arquivo.: ' + ACBrNFSeX1.Configuracoes.Arquivos.GetPathNFSe() + '\' +
ACBrNFSeX1.NotasFiscais.Items[i].NomeArq);
if ACBrNFSeX1.Configuracoes.Arquivos.Salvar then
lstResposta.Add('==> Xml da nota salvo na pasta e com o nome informado acima.')
else
lstResposta.Add('==> Xml da nota não salvo em disco.');
sNumero := ACBrNFSeX1.NotasFiscais.Items[i].NFSe.Numero;
if sNumero <> '' then
begin
mtbNFSe.Locate( 'numero', sNumero, []);
mtbNFSE.Edit;
mtbNFSeNumero.AsString := ACBrNFSeX1.NotasFiscais.Items[i].NFSe.Numero;
mtbNFSeprotocolo.Value := ACBrNFSeX1.NotasFiscais.Items[i].NFSe.CodigoVerificacao;
mtbNFSenomeXML.Value := ACBrNFSeX1.NotasFiscais.Items[i].NomeArq;
mtbNFSelote.AsString := sLote;
mtbNFSe.Post;
GravaNroLoteOperacao( mtbNFSebordero.AsInteger, strToInt( sLote ),
mtbNFSEnumero.value,
'', mtbNFSeprotocolo.Value, mtbNFSenomeXML.Value );
pEnviarEMail( i, mtbNFSenomeXML.Value);
end;
end;
end;
result := lstResposta;