Ir para conteúdo
  • Cadastre-se

dev botao

Dúvidas Na Geração Do Qr Code: Onde Buscar Os Valores?


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

Recommended Posts

Senhores  estou tentando gerar o QR Code da NFC. Confesso que até aquí entendendo muito pouco sobre o assunto.

 

Minhas Dúvidas:

 

1) Vale a pena usar o google para gerar o QR Code? Neste Caso eu não consigo gerar o código em contingência, quando  da ausência de sinal de internet - o QR Code não é obrigatório mesmo em contingência?.

 

2) Baixei o Han-Soft 2D Barcodes como indicado em alguns posts aqui, mas percebí que elé é uma versão trial. Como faço para adquirir, ou comprar uma versão definitiva?

 

3) Ainda na utilização do   Han-Soft 2D Barcodes, fiquei com uma dúvida na linha :

 

   "with TfrxPictureView(frxReport1.FindObject('Picture1')).Picture.Bitmap do"

 

P.S.: Eu não soube direcionar para o meu projeto. Formulário do Delphi:  F_DanfeNFC e Componente Imagem : QRImage2.

 

4) De que propriedade do componente ACBrNFe1 eu deverei buscar o "Digest Value" da NFC?

 

5) Como faço para formatar a data e hora de emissão no formato exigido do manual?

 

6) Qual código eu uso para converter estes valores em Hexadecimal?

 

e finalmente ...

 

7) como calcular o código hash sha1 destas informações?

 

 

Senhores, desculpem-me, estou meio perdido no assunto. 

 

Preciso mesmo da ajuda de vocês, obrigado!
 

 

Link para o comentário
Compartilhar em outros sites

1 - eu utilizo o google por enquanto, mas é por que estou com muita coisa em andamento (entenda atrasado) e não estou tendo tempo pra testar os componetes sugeridos no outro post. é claro que terei que rever isto daki alguns dias pois o google é uma solução temporaria.

 

2 - 

 

3 - voce pode salvar esta imagem e enviar o caminho dela pro componente. TfrxPictureView(frxReport1.FindObject('Picture1')).Picture.SaveToFile(xxx.bmp);

 

4 - o digest value esta na assinatura da tua nota. pelo acbr faz o seguinte: 

acbr.NotasFiscais.Items[0].NFe.signature.DigestValue

5 - 

  dh_emi := StrToHex( FormatDateTime('yyyy-mm-dd',facbr.NotasFiscais.Items[0].NFe.Ide.dEmi)+'T'+
              FormatDateTime('hh:mm:ss', facbr.NotasFiscais.Items[0].NFe.Ide.dEmi)+UTC );

Nota: UTC voce deve verificar qual é de acordo com o fuso horario e concatenar à string dh_emi. ex: '-3:00', '4:00'

EDIT: adicione ao uses a unit pcnAuxiliar

GetUTC('MT', StrToDateTime(FormatDateTime('dd/mm/yyyy hh:mm:ss',facbr.NotasFiscais.Items[0].NFe.Ide.dEmi))

6 - 

function StrToHex(const S: String): String;
const
  HexDigits: array[0..15] of Char = '0123456789ABCDEF';
var
  I: Integer;
  P1: PChar;
  P2: PChar;
  B: Byte;
begin

  SetLength(Result, Length(S) * 2);
  P1 := @S[1];
  P2 := @Result[1];

  for I := 1 to Length(S) do
  begin
    B := Byte(P1^);
    P2^ := HexDigits[B shr 4];
    Inc(P2);
    P2^ := HexDigits[B and $F];
    Inc(P1);
    Inc(P2);
  end;

end;

7 - adicione ACBrEAD ao uses

  with TACBrEAD.Create(nil) do
  try
    s_hash := CalcularHash(s_hash, dgstSHA1);
  finally
    Free;
  end;

espero que tenha ajudado.

 

PS: estas informações ja estão contidas no topico official sobre o assunto, você por estar acompanhando por lá.

Editado por Roberto.Godinho
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Bom dia,

 

você pode gerar a NFC-e normalmente, trocar as informações referente a contigência, ou seja, tpEmis (9-impressão offline, ...), dhCont (data hora da entrada em contingência) e xMotivo (motivo da entrada em contingencia).

 

segundo passo, efetuar a validação, assinatura e salvar o arquivo XML: 

acbr.NotasFiscais.Assinar;
acbr.NotasFiscais.Validar;

apartir daí você terá toda a informação necessária pra gerar o DANFE menos o protocolo, este, só pode ser obtido com a autorização da NFC-e.

 

terceiro passo: imprimir a DANFE em contingencia.

 

quarto passo (Este só depois de regularizado a situação da emissão): simplesmente carregar o xml e efetua o envio.

 

EDIT: nos casos de impressão em contigência, o local destinado a impressão do protocolo deve ser suprimido.

Editado por Roberto.Godinho
Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.