Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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.

 

leogregianin@gmail.com | github.com/leogregianin

Postado
  Em 01/10/2013 at 14:33, joemil disse:

 

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 ?

Postado (editado)

  Em 18/10/2013 at 20:06, Joabe Anderson da Silva disse:

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

leogregianin@gmail.com | github.com/leogregianin

Postado (editado)

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
Postado
  Em 18/10/2013 at 21:15, Aecio disse:

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

leogregianin@gmail.com | github.com/leogregianin

  • Membros Pro
Postado

  Em 18/10/2013 at 19:30, lvr disse:

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

 

 

Postado
  Em 18/10/2013 at 21:58, lvr disse:

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

  • Moderadores
Postado
  Em 18/10/2013 at 22:30, Solivan disse:

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: juliomar_m@yahoo.com.br
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado

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.

Postado (editado)
  Em 18/10/2013 at 22:33, Juliomar Marchetti disse:

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

  • Membros Pro
Postado

  Em 18/10/2013 at 23:25, Aecio disse:

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

 

 

Postado

Ainda não ValdirDill

valdirdil valdirdill

 

  Em 19/10/2013 at 11:51, valdirdill disse:

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.

Postado
  Em 19/10/2013 at 11:56, Aecio disse:

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.

  • Membros Pro
Postado
  Em 19/10/2013 at 12:13, Aecio disse:

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

 

 

  • Membros Pro
Postado
  Em 19/10/2013 at 12:48, Aecio disse:

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

 

 

  • Membros Pro
Postado
  Em 19/10/2013 at 13:23, valdirdill disse:

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

 

 

Postado
  Em 15/10/2013 at 21:30, udenilson disse:

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 ?

Postado (editado)
  Em 15/10/2013 at 21:30, udenilson disse:

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
  • Membros Pro
Postado (editado)
  Em 21/10/2013 at 15:07, Aecio disse:

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
Postado
  Em 21/10/2013 at 15:07, Aecio disse:

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

 

Aecio qual foi o componente que você usou para gerar o qrcode , aqui estou tendo problema ao gerar o qrcode , estou usando o delphi 7.

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