Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2714 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

Postado

pelo menos o pessoal ta respeitando e postando td no mesmo topico, ja pensou se cada vez que alguem pergunta sobre isso tivesse um topico diferente no forum?
ahuahuhuahuauhahuauhauha

  • 1 mês depois ...
Postado

Igor obrigado pela sua atenção. se tiver skype me add la viniciuss.sanchez

 

Deixa te perguntar... então ainda não existe nenhuma maneira de realizar os downloads dos xmls via delphi? somente pelo site da receita um a um realizada pelo destinatário?

Postado

eh isso ai, e digo mais a sefaz nao quer que faça o download

 

entao se vc ficar fazendo muito vao te bloquear por consumo indevido, esse download eh somente em caso de emergencia, por exemplo> o emitente do XML perdeu o HD com tds XML dele

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

Postado (editado)

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
  • Moderadores
Postado

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_Transparent-02.png
 

 

  • 3 meses depois ...
Postado

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])

Postado

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 ?

Postado

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...

  • 1 ano depois...
Postado

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

  • Moderadores
Postado

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_Transparent-02.png
 

 

Postado

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

  • 2 anos depois...
Postado
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??

  • Este tópico foi criado há 2714 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.

The popup will be closed in 10 segundos...