Ir para conteúdo
  • Cadastre-se

dev botao

Receita mudou o código da página de consulta completa


sergiom
  • Este tópico foi criado há 2444 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Respostas 197
  • Created
  • Última resposta

Top Posters In This Topic

  • 1 mês depois ...
  • Consultores

Boa noite Vinicios,

 

Leia com muita atenção a NT 2012/002 que trata sobre a Manifestação do Destinatário, no final você vai encontrar informações sobre o Download utilizando o webservice.

 

O componente ACBrNFe já contem tudo da NT 2012/002 implementado e funcionando, mas lei com muita atenção essa NT.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Bom dia italojjr.

 

Eu li o arquivo que segue em anexo. Como ja foi dito deste tópico e também no arquivo, me parece que de forma alguma é disponibilizado 100% download das NFe pois normalmente o cliente ja deve possuir uma cópia dessa NF, porém ainda continuo com a dúvida. La fala tudo sobre a NFe, até mesmo do download. Mas enfim, é possivel ou não desenvolver um programa hoje que faça o download das NFe para facilitar a vida do cliente? 

 

- A meu conhecimento adquirido a partir das pesquisas, concluo que não, pois pelo que entendi so sera disponibilizado o download de uma certa porcentagem das NF da quele CNPJ, alem de ser apenas um download por NF e necessitar do Certificado Digital válido para cada cliente. Mas gostaria de saber a opinião de uma pessoa com um conhecimento maior. Tem como me dar algum caminho?

 

Obrigado pela atenção! 

Att: Vinicius Sanchez

 

DOCUMENTO: 

https://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CDEQFjAA&url=http%3A%2F%2Fwww.nfe.fazenda.gov.br%2Fportal%2FexibirArquivo.aspx%3Fconteudo%3DbUBJ%2FPmtKQo%3D&ei=Kdn3UNmgJYSo8QT5aA&usg=AFQjCNHEoDJQDN4BH6mnEopSPvukp-Hwbg&bvm=bv.41018144,d.eWU

Editado por Vinicius Sanchez
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Quanto a sua última pergunta o caminho mais correto é o emitente da nota disponibilizar e enviar por obrigação o xml e o cliente que não recebeu cobrar do seu fornecedor, e tendo a seu favor o fisco, onde se pode ser feito denuncia avisando que o fornecedor não está enviando o xml, outra coisa vai ser o manifesto do destinatário que lá ele vai informar se recebeu ou não.

com certeza o pessoal vai começar mesmo a ver que é de obrigação deles quando receber multas e notificações.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...

Consegui fazer o sistema de recuperação de xml funcionar.

Utilizei o código gerado pelo botão "Preparar documento para impressão".

Com esta opção é gerado a nota fiscal eletrônica com os campos em formato texto.

Modifiquei o evento WebBrowser1DocumentComplete para:

if WebBrowser1.LocationURL = 'http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=' then

begin

for k := 0 to WebBrowser1.OleObject.Document.Images.Length - 1 do

begin

Source := WebBrowser1.OleObject.Document.Images.Item(k).Src;

if (Source = 'http://www.nfe.fazenda.gov.br/scripts/srf/intercepta/captcha.aspx?opt=image') then

begin

dest := ExtractFilePath(ParamStr(0)) + 'captcha.gif';

DownloadFile(Source, dest);

end;

end;

Image1.Picture.LoadFromFile(dest);

btnPegarHTML.Enabled := True;

end

else if WebBrowser1.LocationURL = 'https://www.nfe.fazenda.gov.br/portal/visualizacaoNFe/completa/Default.aspx' then

begin

WebBrowser1.Navigate('https://www.nfe.fazenda.gov.br/PORTAL/visualizacaoNFe/completa/impressao.aspx');

end

else if WebBrowser1.LocationURL = 'http://www.nfe.fazenda.gov.br/portal/consultaCompleta.aspx?tipoConteudo=XbSeqxE8pl8=' then

begin

Memo2.Lines.Clear;

//

WebBrowser1.Navigate('http://www.nfe.fazenda.gov.br/portal/consultaImpressao.aspx?tipoConsulta=completa');

end

else if WebBrowser1.LocationURL = 'http://www.nfe.fazenda.gov.br/portal/consultaImpressao.aspx?tipoConsulta=completa' then

begin

textoNFe := WebBrowser1.Document as IHTMLDocument2;

repeat

Application.ProcessMessages;

until Assigned(textoNFe.body);

Memo2.Lines.Text := StripHTML(textoNFe.body.innerHTML);

Memo2.Lines.Text := StringReplace(Memo2.Lines.Text,' ','',[rfReplaceAll, rfIgnoreCase]);

i := 0;

while i < memo2.Lines.Count-1 do

begin

if trim(Memo2.Lines) = '' then

begin

Memo2.Lines.Delete(i);

i := i - 1;

end;

if pos('function',Memo2.lines)>0 then

begin

Memo2.Lines.Delete(i);

i := i - 1;

end;

if pos('document',Memo2.lines)>0 then

begin

Memo2.Lines.Delete(i);

i := i - 1;

end;

if pos('{',Memo2.lines)>0 then

begin

Memo2.Lines.Delete(i);

i := i - 1;

end;

if pos('}',Memo2.lines)>0 then

begin

Memo2.Lines.Delete(i);

i := i - 1;

end;

i := i + 1;

end;

Image1.Picture := nil;

btnGerarXML.Enabled := True;

GeraXml;

end

else if WebBrowser1.LocationURL = 'https://www.nfe.fazenda.gov.br/portal/inexistente_completa.aspx' then

begin

MessageDlg('NF-e INEXISTENTE na base nacional, favor consultar esta NF-e no site da SEFAZ de origem.',mtError,[mbok],0);

Image1.Picture := nil;

btnGerarXML.Enabled := True;

btnNovaConsulta.Enabled := True;

end

else

begin

MessageDlg('Erro carregando URL: '+WebBrowser1.LocationURL,mtError,[mbok],0);

Image1.Picture := nil;

btnGerarXML.Enabled := True;

btnNovaConsulta.Enabled := True;

end;

//////////////////////////////

Depois é preciso alterar o código para buscar os campos corretos do emitente.

 

 

 

boa noite amigos!

 

alguém tem esse fonte? Se poder me enviar agradeço! 

([email protected])

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Como é um projeto desativado a muito tempo ele não está no repositório normal, mas você pode pegar por aqui:

http://acbr.svn.sourceforge.net/viewvc/acbr/tags/Projetos/RecuperarXML/

 

Da próxima vez faça uma busca, porque está informação já existe em pelo menos uns 3 tópicos do fórum.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

Como é um projeto desativado a muito tempo ele não está no repositório normal, mas você pode pegar por aqui:

http://acbr.svn.sourceforge.net/viewvc/acbr/tags/Projetos/RecuperarXML/

 

Da próxima vez faça uma busca, porque está informação já existe em pelo menos uns 3 tópicos do fórum.

 

OK amigo! muito obrigado é que ainda estou me encontrando por aqui!

 

Quando compilo esse fonte o avira  detecta um 

TR/Spy.Banker.Gen

 

porque ?

Link para o comentário
Compartilhar em outros sites

Fontes não contém vírus, são simplesmente arquivos texto, o que pode estar acontecendo é um falso positivo devido as classes de acesso a internet que o componente possui.

Sei que nao sao dos fonte e lhe agradeço pelo esclarecimento, mas questão é como contornar rs ja tentei e sem secesso...

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Olá Pessoal,

atribuindo a propriedade Silent=False, meu problema ainda não foi resolvido. Para esclarecer melhor, tenha uma tela onde o usuário informa a chave de acesso e o captcha, com isso atribuo os valores ao campos, chamo o evento de consulta, até aqui sem problemas, e em seguida, chamo o evento que citou acima, apenas esse código é o suficiente, não deveria ter nenhum outro tratamento, por exemplo, no evento "WebBrowser1DocumentComplete", como direciono o caminho para salvar o arquivo?

Tentei usar a url de um xml baixado pelo navegador, onde tive que clicar no Ok e informar o certificado, e mesmo assim não funcionou, pelo que percebi, existe alguma criptografia nesse momento também, vejam: https://www.nfe.fazenda.gov.br/PORTAL/downloadNFe.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=&a=SYTkiCl862LAAIAN2OcKp1kLEbLjVfpck8QmdDzohreWuY2ZufGtSCLxO2iM6I9n

 

Bom dia, poderia postar os fontes, de como passa as variáveis da chave e captcha e do certificado digital 

muito grato pela força

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom dia, poderia postar os fontes, de como passa as variáveis da chave e captcha e do certificado digital 

muito grato pela força

Bom dia

se está falando de um antigo projeto que existia não é mais prestado suporte nem mesmo atualizações de códigos do mesmo!

existe no sourceforge algo então sugiro procurar lá

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

programadorbq, em 08 Mar 2012 - 1:35 PM, disse:
Consegui fazer o sistema de recuperação de xml funcionar.

Utilizei o código gerado pelo botão "Preparar documento para impressão".

Com esta opção é gerado a nota fiscal eletrônica com os campos em formato texto.

Modifiquei o evento WebBrowser1DocumentComplete para:

if WebBrowser1.LocationURL = 'http://www.nfe.fazen...do=XbSeqxE8pl8=' then

begin

for k := 0 to WebBrowser1.OleObject.Document.Images.Length - 1 do

begin

Source := WebBrowser1.OleObject.Document.Images.Item(k).Src;

if (Source = 'http://www.nfe.fazen....aspx?opt=image') then

begin

dest := ExtractFilePath(ParamStr(0)) + 'captcha.gif';

DownloadFile(Source, dest);

end;

end;

Image1.Picture.LoadFromFile(dest);

btnPegarHTML.Enabled := True;

end

else if WebBrowser1.LocationURL = 'https://www.nfe.faze...ta/Default.aspx' then

begin

WebBrowser1.Navigate('https://www.nfe.faze.../impressao.aspx');

end

else if WebBrowser1.LocationURL = 'http://www.nfe.fazen...do=XbSeqxE8pl8=' then

begin

Memo2.Lines.Clear;

//

WebBrowser1.Navigate('http://www.nfe.fazen...nsulta=completa');

end

else if WebBrowser1.LocationURL = 'http://www.nfe.fazen...nsulta=completa' then

begin

textoNFe := WebBrowser1.Document as IHTMLDocument2;

repeat

Application.ProcessMessages;

until Assigned(textoNFe.body);

Memo2.Lines.Text := StripHTML(textoNFe.body.innerHTML);

Memo2.Lines.Text := StringReplace(Memo2.Lines.Text,' ','',[rfReplaceAll, rfIgnoreCase]);

i := 0;

while i < memo2.Lines.Count-1 do

begin

if trim(Memo2.Lines) = '' then

begin

Memo2.Lines.Delete(i);

i := i - 1;

end;

if pos('function',Memo2.lines)>0 then

begin

Memo2.Lines.Delete(i);

i := i - 1;

end;

if pos('document',Memo2.lines)>0 then

begin

Memo2.Lines.Delete(i);

i := i - 1;

end;

if pos('{',Memo2.lines)>0 then

begin

Memo2.Lines.Delete(i);

i := i - 1;

end;

if pos('}',Memo2.lines)>0 then

begin

Memo2.Lines.Delete(i);

i := i - 1;

end;

i := i + 1;

end;

Image1.Picture := nil;

btnGerarXML.Enabled := True;

GeraXml;

end

else if WebBrowser1.LocationURL = 'https://www.nfe.faze...e_completa.aspx' then

begin

MessageDlg('NF-e INEXISTENTE na base nacional, favor consultar esta NF-e no site da SEFAZ de origem.',mtError,[mbok],0);

Image1.Picture := nil;

btnGerarXML.Enabled := True;

btnNovaConsulta.Enabled := True;

end

else

begin

MessageDlg('Erro carregando URL: '+WebBrowser1.LocationURL,mtError,[mbok],0);

Image1.Picture := nil;

btnGerarXML.Enabled := True;

btnNovaConsulta.Enabled := True;

end;

//////////////////////////////

Depois é preciso alterar o código para buscar os campos corretos do emitente.

 

Boa tarde, 

assim, sei que foi descontinuado eu me refiro ao código acima,  pois vi que tem gente que consegue manipular o WebBrowser1 e adicionar o certificado, eu não consegui ainda jogar o captcha em um Timage;

 

essa é minha duvida, como vincular um certificado digital no WebBrowser1

 

Grato pela atenção

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...
Em 20/03/2012 at 10:58, lazaro disse:

 

 

Olá CarlosFilho, como vai?

 

Minha aplicação também parou com a mudança na receita depois de muito pesquisar, verifiquei realmente que aqui algumas soluções já foram apresentadas, entretanto, ainda não atendeu totalmente o que eu gostaria de fazer, vou postar meu código aqui e pedir a ajuda de vocês para concluir esse desenvolvimento.

 

veja:

 

Utilizando o componente TWebBrowser, atribuo os campos para a página até chegar a página de download, pois bem, o download pela pagina pede confirmação como é possível ver no próprio código fonte da página: " " e acreedito que isso esteja causando um erro que não me deixar baixar o arquivo, até porque em seguida o SO, envia a escolha do certificado para completar o download.

 

Em resumo, preciso saber como fazer o download mesmo com essa confirmação e digamos que passar o certificado como parâmetro para o download.

 

Abaixo o código que realizei.

 

Abre a página:

WebBrowser1.Navigate('http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=');

 

Atribui a chave da Nfe a página:

WebBrowser1.OleObject.Document.all.Item('ctl00$ContentPlaceHolder1$txtChaveAcessoCompleta', 0).value := edtChaveNFe.Text;

 

Atribui a Captcha a página:

WebBrowser1.OleObject.Document.all.Item('ctl00$ContentPlaceHolder1$txtCaptcha', 0).value := edtCaptcha.Text;

 

Realiza a consulta da página, nesse momento a nova página aberta me da acesso ao download:

WebBrowser1.OleObject.Document.all.Item('ctl00$ContentPlaceHolder1$btnConsultar', 0).click;

 

Aguardo o carregamento da página

repeat

Application.ProcessMessages;

until (WebBrowser1.ReadyState >= READYSTATE_COMPLETE);

 

Nesse momento clico no botão de download, aqui da um erro de access violation, realizando pelo site, tem uma mensagem de confirmação e mais a escolha do certificado.

WebBrowser1.OleObject.Document.all.Item('ctl00$ContentPlaceHolder1$btnDownload', 0).click;

 

Grato pela ajuda.

 

Lázaro Mariano

Lázaro Mariano você conseguiu resolver esse erro??

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2444 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.