Ir para conteúdo
  • Cadastre-se

dev botao

Nfc-E - Nota Fiscal Do Consumidor Eletrônica


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

Recommended Posts

Ajudou sim Ítalo. Muito obrigado pelo esclarecimento. Acho que o problema que estou enfrentando é devido ao WS do ambiente nacional ainda não está em funcionamento ou preparado para recepção das NFC-e. Eu já utilizo os componentes para emissão de NF-e, Cupom Fiscal, Boleto e todos funcionam muito bem.

 

Também utilizei o processo da NFC-e em minha aplicação. vou aguardar até a entrada da vigência para as demais UFs.

 

Att. Solivan

Editado por Solivan

Sistema de Automação Comercial para diversos segmentos
NF-e, NFC-e, SPED Fiscal - www.arenasoft.com.br

Link para o comentário
Compartilhar em outros sites

Boa tarde,

Como forma de retribuir a imensa ajuda que os componentes do ACBr nos dão, já que não pago o SAC tento contribuir com código ou encontrar bugs.

Criei um layout para NFC-e no FastReport com largura do papel de 8 cm para ser utilizado em impressoras não fiscais, mas nada impede de ser impresso em papel A4.

As alterações foram feitas somente no carregamento dos dados para o ClientDataSet do FastReport (ACBrNFeDANFEFRDM.pas) como:
* Criado o ClientDataSet para a tag "pag" (tag exlusiva para NFC-e)
* Alterado o ClientDataSet "Identificacao" para carregar a "MensagemFiscal" e compatibilizado a tag "DEmi" para a NFCe mostrar Data e Hora.
* Criado no CDS "Destinatario" o campo "Consumidor".

Nenhuma destas alterações influenciam ou causa "problemas" na impressão da NF-e.

Em anexo os arquivos ACBrNFeDANFEFRDM.pas e ACBrNFeDANFEFRDM.dfm com os últimos fontes do svn.

Limitações:
1. A impressão do QR Code vem de uma imagem externa, da mesma forma que é utilizado na impressão da logomarca da empresa.

A fazer:
1. Selecionar a URL dos Estados para gerar o endereço do site de consulta.
Pág. 14 do Manual de Especificações Técnicas do DANFE NFC-e e QR Code - versão 3.1

2. Criar uma nova propriedade no componente Danfe em FastReport para receber o caminho da imagem QR Code.

Utilização:

1. Caminho do arquivo FastReport:

ACBrNFeDANFEFR1.FastFile := 'C:\DANFeNFCe.fr3';

2. Caminho da imagem QR Code:

ACBrNFeDANFEFR1.Logo := C:\QR.jpeg';

3. Imprimir:

ACBrNFe1.NotasFiscais.Clear;
ACBrNFe1.NotasFiscais.LoadFromFile(PathDoXML);
ACBrNFe1.NotasFiscais.Imprimir;

Em anexo como ficou minha impressão, espero que ajude.

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Leonardo,

 

Parabens pelo seu tabalho e é lógico pela colaboração.

  • Curtir 1
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

 

veja o manual no link:

 

https://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCwQFjAA&url=http%3A%2F%2Fwww.nfe.fazenda.gov.br%2Fportal%2FexibirArquivo.aspx%3Fconteudo%3DjKHRw%2520g4V%2520E%3D&ei=8NxKUqzNOomS9QS86YCwAw&usg=AFQjCNHozXgGX-0zbCSRbWtioAASoDrXeQ&sig2=EbK5mlYLwPW5JRoIcI1FBw&bvm=bv.53371865,d.dmg

 

eu fiz mais ou menos assim:

 

   Memo1.Lines.Clear;
   // MONTA
   Texto := 'chNFe=' + edChave.Text                              { chave da NFCe }+
      '&nVersao=' + edVersao.Text                                { versão do QRCode - 100 }+
      '&tpAmb=' + edAmb.Text                                     { ambiente 1-producao, 2-homologacao }+
      IfThen(Length(edCPF.Text) > 0, '&cDest=' + edCPF.Text, '') { cpf/cnpj do destinatario }+
      '&dhEmi=' + TextToHex(edData.Text)                         { data/hora no formato 2012-09-27T16:20:34-03:00 }+
      '&vNF=' + edTotal.Text                                     { total do cupom 100.00 } +
      '&vICMS=' + edICMS.Text                                    { valor do icms 18.00 }+
      '&digVal=' + TextToHex(edDigestValue.Text)                 { tag digest value do xml }
      '&cIdToken=' + edToken.Text                                { numero do token 000001 };
   Hash_SHA1 := ACBrEAD1.CalcularHash(UTF8Encode(Texto), dgstSHA1);
   Texto := Texto + edToken2.Text;
   Memo1.Text := 'http://www.hom.nfe.sefaz.mt.gov.br/portal/consultarNFCe.jsp?' +
      Texto +
      '&cHashQRCode=' + Hash_SHA1;

 

Joemil esse endereço http://www.hom.nfe.sefaz.mt.gov.br/portal/consultarNFCe.jsp? , mudou aqui no mato grosso , você sabe qual é o endereço certo agora ?

Link para o comentário
Compartilhar em outros sites

Joemil esse endereço http://www.hom.nfe.sefaz.mt.gov.br/portal/consultarNFCe.jsp? , mudou aqui no mato grosso , você sabe qual é o endereço certo agora ?

 

Para Mato Grosso os endereços são:

http://www.sefaz.mt.gov.br/nfce/consultanfce?

e

http://homologacao.sefaz.mt.gov.br/nfce/consultanfce?

 

Os endereços de todos os Estados estão aqui.

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

Ola gente, poderiam me dar uma help como estao fazendo como campo dhEmi, pra usar ele no formato utc, creio que o meu esteja sendo convertido da forma erada oque esta tornando meu qrcode invalido, poderiam me dizer uma forma de tirar ele do xml da forma que ele esta visivel dentro do proprio xml, usando o tdatetime eu nao consigo obter ele da mesma forma que ele ta la, mesmo usando formatdate, ou datetostr, nenhuma das mascaras que eu achei funcionaram, como vocês estao extraindo ele ?

Estou usando o delphi.

Desde ja obrigado pela ajuda.

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

Ola gente, poderiam me dar uma help como estao fazendo como campo dhEmi, pra usar ele no formato utc, creio que o meu esteja sendo convertido da forma erada oque esta tornando meu qrcode invalido, poderiam me dizer uma forma de tirar ele do xml da forma que ele esta visivel dentro do proprio xml, usando o tdatetime eu nao consigo obter ele da mesma forma que ele ta la, mesmo usando formatdate, ou datetostr, nenhuma das mascaras que eu achei funcionaram, como vocês estao extraindo ele ?

Estou usando o delphi.

Desde ja obrigado pela ajuda.

 

Tente assim:

FormatDateTime('yyyy-mm-ddThh:nn:ss-03:00', NFe.NotasFiscais.Items[i].NFe.Ide.dEmi));
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde,

Como forma de retribuir a imensa ajuda que os componentes do ACBr nos dão, já que não pago o SAC tento contribuir com código ou encontrar bugs.

Criei um layout para NFC-e no FastReport com largura do papel de 8 cm para ser utilizado em impressoras não fiscais, mas nada impede de ser impresso em papel A4.

As alterações foram feitas somente no carregamento dos dados para o ClientDataSet do FastReport (ACBrNFeDANFEFRDM.pas) como:

* Criado o ClientDataSet para a tag "pag" (tag exlusiva para NFC-e)

* Alterado o ClientDataSet "Identificacao" para carregar a "MensagemFiscal" e compatibilizado a tag "DEmi" para a NFCe mostrar Data e Hora.

* Criado no CDS "Destinatario" o campo "Consumidor".

Nenhuma destas alterações influenciam ou causa "problemas" na impressão da NF-e.

Em anexo os arquivos ACBrNFeDANFEFRDM.pas e ACBrNFeDANFEFRDM.dfm com os últimos fontes do svn.

Limitações:

1. A impressão do QR Code vem de uma imagem externa, da mesma forma que é utilizado na impressão da logomarca da empresa.

A fazer:

1. Selecionar a URL dos Estados para gerar o endereço do site de consulta.

Pág. 14 do Manual de Especificações Técnicas do DANFE NFC-e e QR Code - versão 3.1

2. Criar uma nova propriedade no componente Danfe em FastReport para receber o caminho da imagem QR Code.

Utilização:

1. Caminho do arquivo FastReport:

ACBrNFeDANFEFR1.FastFile := 'C:\DANFeNFCe.fr3';

2. Caminho da imagem QR Code:

ACBrNFeDANFEFR1.Logo := C:\QR.jpeg';

3. Imprimir:

ACBrNFe1.NotasFiscais.Clear;
ACBrNFe1.NotasFiscais.LoadFromFile(PathDoXML);
ACBrNFe1.NotasFiscais.Imprimir;

Em anexo como ficou minha impressão, espero que ajude.

Consegui imprimir e funcionou beleza. Só não sei como gerar o QR. Precisa de algum componente externo ou como faz?

Obrigado.

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

Consegui imprimir e funcionou beleza. Só não sei como gerar o QR. Precisa de algum componente externo ou como faz?

Obrigado.

 

Por enquanto utilizo o site do Google Chart, neste artigo tem o exemplo em Delphi, e depois da visualização salvo a imagem na máquina

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Quem estiver afim tem um fonte do lazarus para QRCode e pode ser usado para criar algo para o ACBr

alguém se habilita ?

http://wiki.freepascal.org/LazBarcodes

é fonte pascal então dá para usar em delphi e lazarus

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

Por enquanto utilizo o site do Google Chart, neste artigo tem o exemplo em Delphi, e depois da visualização salvo a imagem na máquina

Estou utilizando o zimp barcode component ele é muito bom e dar até pra usar com fortes report, acho que é free pq estou gerando codigos sem limitações ou mssgs.

Sistema de Automação Comercial para diversos segmentos
NF-e, NFC-e, SPED Fiscal - www.arenasoft.com.br

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Estou utilizando o zimp barcode component ele é muito bom e dar até pra usar com fortes report, acho que é free pq estou gerando codigos sem limitações ou mssgs.

poderia passar o site do fabricante do componente?

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

Ja devo ta abusando... mas como vcs estao convetendo os campos dhEmi, digVal e cHashQr para gerar o texto do qrcode, eu estou usando uma função encontrada no google, mas ela gera codigos com mais bitys que o determinado, como exemplo o dhemi que pra mim gerou com 58 e nao 50.

Como vcs estao gerando esse danado, graças as dicas do pessoal, so to pendente na geração do texto para o qrcode, fiz um usando um dos exemplos que tem no manual, mas os meus hexs ficaram diferentes dos do manual. Aguem pode me ajudar com a a gração do texto que vai para o qrcode.

 

 

a função que to usando e essa:

function StringToHex ( sValorC : String; pRemoverEspacos : Boolean = true ) : String;
var
    I, I2: Integer;
    S: string;
begin
    i2 := 1;
    for I := 1 to Length(sValorC) do begin
        Inc(i2);
        if i2 = 2 then begin
            s  := s + ' ';
            i2 := 1;
        end;
        S := S + IntToHex( Ord( sValorC ), 2 );
    end;
    if pRemoverEspacos then begin
        S := StringReplace( S, ' ', EmptyStr, [rfReplaceAll] );
    end;
    Result := s;
end;

 

 

Novamente obrigado pela ajuda pessoal.

Link para o comentário
Compartilhar em outros sites

poderia passar o site do fabricante do componente?

ai está o site nem lembrava mais que era fonte aberto, http://theunknownones.googlecode.com/svn/trunk/Components/ZintBarcode/

 

gerador de código de barras pra vários padrões, ele usa uma dll. zint.dll.

Editado por Solivan

Sistema de Automação Comercial para diversos segmentos
NF-e, NFC-e, SPED Fiscal - www.arenasoft.com.br

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Ja devo ta abusando... mas como vcs estao convetendo os campos dhEmi, digVal e cHashQr para gerar o texto do qrcode, eu estou usando uma função encontrada no google, mas ela gera codigos com mais bitys que o determinado, como exemplo o dhemi que pra mim gerou com 58 e nao 50.

Como vcs estao gerando esse danado, graças as dicas do pessoal, so to pendente na geração do texto para o qrcode, fiz um usando um dos exemplos que tem no manual, mas os meus hexs ficaram diferentes dos do manual. Aguem pode me ajudar com a a gração do texto que vai para o qrcode.

 

 

a função que to usando e essa:

function StringToHex ( sValorC : String; pRemoverEspacos : Boolean = true ) : String;

var

    I, I2: Integer;

    S: string;

begin

    i2 := 1;

    for I := 1 to Length(sValorC) do begin

        Inc(i2);

        if i2 = 2 then begin

            s  := s + ' ';

            i2 := 1;

        end;

        S := S + IntToHex( Ord( sValorC ), 2 );

    end;

    if pRemoverEspacos then begin

        S := StringReplace( S, ' ', EmptyStr, [rfReplaceAll] );

    end;

    Result := s;

end;

 

 

Novamente obrigado pela ajuda pessoal.

Bom dia Aecio!

Conseguistes resolver esse problema do hexa do campo dhEmi?

Testei vários exemplos de conversão de string para hexa e todos retornam 58 dígitos para o valor - 2012-09-27T16:20:34-03:00 - citado lá no exemplo hipotético 1 da nota técnica do QrCode .

No exemplo, o manual traz o valor convertido em hexa com 50 dígitos, o que estaria de acordo com o manual, mas não consegui.

 

Alguém teria alguma sugestão?

 

Obrigado.

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

Ainda não ValdirDill

valdirdil valdirdill

 

Bom dia Aecio!

Conseguistes resolver esse problema do hexa do campo dhEmi?

Testei vários exemplos de conversão de string para hexa e todos retornam 58 dígitos para o valor - 2012-09-27T16:20:34-03:00 - citado lá no exemplo hipotético 1 da nota técnica do QrCode .

No exemplo, o manual traz o valor convertido em hexa com 50 dígitos, o que estaria de acordo com o manual, mas não consegui.

 

Alguém teria alguma sugestão?

 

Obrigado.

ainda não mas vou ter achar alguma coisa, caso encontre eu posto aqui pode deixar, tenho pra mim se to to pendente nessa parte de conversão pra matar o meu qrcode.

Link para o comentário
Compartilhar em outros sites

Ainda não ValdirDill

valdirdil valdirdill

 

ainda não mas vou ter achar alguma coisa, caso encontre eu posto aqui pode deixar, tenho pra mim se to to pendente nessa parte de conversão pra matar o meu qrcode.

Amigo acho que encontrei alguma coisa eu fiz a conversao usando um convertor web usando o texto do manual 2012-09-27T16:20:34-03:00 e ele me retornou o hex certo 323031322D30392D32375431363A32303A33342D30333A3030, ai verifiquei qual era o valor retornado do meu formatdate to usando a mascara yyyy-mm-ddThh:nn:ss-03:00, ele me retorna 2012-09-2716:2016:20:34-03:00, acho que o valor retornado que e o nosso poblema, temos que deixar o campo no formato certinho "2012-09-27T16:20:34-03:00", devo ta com algum poblema na mascara, vou mexer mais aqui qualquer novidade so avisar.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Amigo acho que encontrei alguma coisa eu fiz a conversao usando um convertor web usando o texto do manual 2012-09-27T16:20:34-03:00 e ele me retornou o hex certo 323031322D30392D32375431363A32303A33342D30333A3030, ai verifiquei qual era o valor retornado do meu formatdate to usando a mascara yyyy-mm-ddThh:nn:ss-03:00, ele me retorna 2012-09-2716:2016:20:34-03:00, acho que o valor retornado que e o nosso poblema, temos que deixar o campo no formato certinho "2012-09-27T16:20:34-03:00", devo ta com algum poblema na mascara, vou mexer mais aqui qualquer novidade so avisar.

Não sei se é o valor, pois eu fiz um teste à parte do meu sistema e tentei converter o valor do campo como ele está no manual, ou seja, o texto 2012-09-27T16:20:34-03:00, sem nenhum formatDate ou outra formatação.

Qual  conversor que você utilizou e que deu certo?

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

qual mascara ou metodo voce usou para tirar a data do campo  NFe.NotasFiscais.Items.NFe.Ide.dEmi ?

Na verdade a tag dhEmi no XML já está no formato correto para NFCe, ou seja, no padrão yyyy-mm-dd7Thh:mm:ss-03:00.

Para compor o texto que gerará o QrCode você pode pegar direto do xml ( NFe.NotasFiscais.Items.NFe.Ide.dEmi) ou então pegar a data/hora no formato normal (dd/mm/yyyy hh:mm:ss) da nota e transformar para o esse padrão pelo método DateTimeTodh(vDataHora) da pcnAuxiliar.

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Na verdade a tag dhEmi no XML já está no formato correto para NFCe, ou seja, no padrão yyyy-mm-dd7Thh:mm:ss-03:00.

Para compor o texto que gerará o QrCode você pode pegar direto do xml ( NFe.NotasFiscais.Items.NFe.Ide.dEmi) ou então pegar a data/hora no formato normal (dd/mm/yyyy hh:mm:ss) da nota e transformar para o esse padrão pelo método DateTimeTodh(vDataHora) da pcnAuxiliar.

Só complementando, a função completa seria que utilizo é DateTimeTodhUTC(vDataHora,GetUTC(VUF, vDataHora));

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

Boa tarde!

Pessoal  era a url de Mato grosso que estava errado corrigi e enviei a consulta via qr code no meu celular deu certinho

URL consulta : http://homologacao.sefaz.mt.gov.br/nfce/consultanfce? agora é fazer em produção.

 

obrigado pela contribuição dos senhores e que Deus lhes abençoe.

http://homologacao.sefaz.mt.gov.br/nfce/consultanfce?chNFe=51131009471363000180650010000000031000000030&nVersao=100&tpAmb=2&dhEmi=323031332d31302d31355431363a34353a34382d30343a3030&vNF=10.00&vICMS=0&digVal=773151496b7775777678617134527954714357424952316f3243383d&cIdToken=000001&cHashQRCode=AC41073C91FD8DC761A8DE159406BCF26484352A

 

Udenilson.

Como você resolveu o  Erro 100 - QR Code Inválido ?

Link para o comentário
Compartilhar em outros sites

Boa tarde!

Pessoal  era a url de Mato grosso que estava errado corrigi e enviei a consulta via qr code no meu celular deu certinho

URL consulta : http://homologacao.sefaz.mt.gov.br/nfce/consultanfce? agora é fazer em produção.

 

obrigado pela contribuição dos senhores e que Deus lhes abençoe.

http://homologacao.sefaz.mt.gov.br/nfce/consultanfce?chNFe=51131009471363000180650010000000031000000030&nVersao=100&tpAmb=2&dhEmi=323031332d31302d31355431363a34353a34382d30343a3030&vNF=10.00&vICMS=0&digVal=773151496b7775777678617134527954714357424952316f3243383d&cIdToken=000001&cHashQRCode=AC41073C91FD8DC761A8DE159406BCF26484352A

 

Udenilson.

Amigo posso te pedir um help,  e possível manda-se o XML, para que pra eu fazer umas comparações aqui a minha consulta não ta dando certo, ai queria comparar o XML e ir editando o meu pra ver se minhas validações e conversões estão corretas.

 

A proposito pessoal como vcs estao validando o Hash eu estou usando o ACBrEAD.CalcularHash(tHashQRCode, dgstSHA1 ), pelo que entendi o hash gerado por ele ja sai em HEX, então nao e necessario fazer conversão, mas o que ta gerando por essa função munca bate com os dos manuais e com o do post acima ( eu peguei os dados dele e modifiquei o meu xml pra testar se meus dados estavam saindo da mesma forma, o unico que ficou diferente e o danado do hash ), apesar do tamanho esta certo.

 

 

Desde já obrigado...

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

  • Membros Pro

Amigo posso te pedir um help,  e possível manda-se o XML, para que pra eu fazer umas comparações aqui a minha consulta não ta dando certo, ai queria comparar o XML e ir editando o meu pra ver se minhas validações e conversões estão corretas.

 

A proposito pessoal como vcs estao validando o Hash eu estou usando o ACBrEAD.CalcularHash(tHashQRCode, dgstSHA1 ), pelo que entendi o hash gerado por ele ja sai em HEX, então nao e necessario fazer conversão, mas o que ta gerando por essa função munca bate com os dos manuais e com o do post acima ( eu peguei os dados dele e modifiquei o meu xml pra testar se meus dados estavam saindo da mesma forma, o unico que ficou diferente e o danado do hash ), apesar do tamanho esta certo.

 

 

Desde já obrigado...

Amigao usei o proprio componente acbr pra calcular o hash e deu certo, vou anexar o endereço de consulta do xml que enviei e o proprio xml.

http://homologacao.sefaz.mt.gov.br/nfce/consultanfce?chNFe=51131009471363000180650010000000021000000025&nVersao=100&tpAmb=2&dhEmi=323031332d31302d31345430383a30343a35372d30343a3030&vNF=54.91&vICMS=0&digVal=7a75777551485a6a68574c4f7952776a366253484f4d52686a68673d&cIdToken=000001&cHashQRCode=5487648014f46599400a6e10150604c960f246cc

Coloca esse endereco no seu browser, que vai dar certo a consulta, sai um erro de imagem Qd no site mais isso ta normal inclusive em produção esta dando essa mesma mensagem, mais esta consultando normalmente.

 

Udenilson

51131009471363000180650010000000021000000025-nfe.xml

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

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