Ir para conteúdo
  • Cadastre-se

dev botao

Nfc-E - Nota Fiscal Do Consumidor Eletrônica


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

Recommended Posts

Bom dia,

 

Fiz a atualização do Danfe NFC-e em FastReport:

* Inclusão do campo "Valor Desconto R$" que busca a tag "VDesc" do grupo "Total".

* Alteração da altura do Danfe na propriedade PaperHeight para 29,70.

Útil somente para visualização em PDF pois na impressão não fiscal corta o papel ao final das informações do Danfe.

Há a possibilidade de inclusão no svn das alterações do ACBrNFeDANFEFRDM.pas e .dfm ?

 

 

Dae cara beleza... Estou com problema na impressão eu carrego o xml conforme exemplo

 

ACBrNFe1.NotasFiscais.Clear;

ACBrNFe1.NotasFiscais.LoadFromFile(PathDoXML);

ACBrNFe1.NotasFiscais.Imprimir;

 

porem esta me dando o seguinte erro em anexo...

 

Ja atualizei o ACBR.....   Obs: Peguei este ultimo arquivo que voce disponibilizou: DANFeNFCe.rar   3.38K   11 Downloads

 

Att

post-26-0-15316000-1383066898.jpg

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

Dae cara beleza... Estou com problema na impressão eu carrego o xml conforme exemplo

 

ACBrNFe1.NotasFiscais.Clear;

ACBrNFe1.NotasFiscais.LoadFromFile(PathDoXML);

ACBrNFe1.NotasFiscais.Imprimir;

 

porem esta me dando o seguinte erro em anexo...

 

Ja atualizei o ACBR.....   Obs: Peguei este ultimo arquivo que voce disponibilizou: DANFeNFCe.rar   3.38K   11 Downloads

 

Att

 

Você tem que substituir os arquivos ACBrNFeDANFEFRDM.pas e ACBrNFeDANFEFRDM.dfm da pasta \Fontes\ACBrNFe2\ para os que postei

Link para o comentário
Compartilhar em outros sites

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.

 

Beleza cara funcionou perfeitamente... so mais uma duvida e se eu nao quiser imprimir os produtos ?? Sou obrigado igual a imprimir?

 

Att

Link para o comentário
Compartilhar em outros sites

Beleza cara funcionou perfeitamente... so mais uma duvida e se eu nao quiser imprimir os produtos ?? Sou obrigado igual a imprimir?

 

Att

 

Na nota técnica não tem nada sobre isso, porém pela internet encontrei notícias sobre dois tipos diferentes: danfe detalhada (com produtos) e danfe "ecológica" (sem os produtos).

 

Eu criei outro arquivo "DANFeNFCe.fr3" e setei a propriedade "Visible" para "False" no GroupHeader DadosProdutosHeader e no MasterData DadosProdutos.

 

Deve haver uma forma melhor de programar isso mas não encontrei.

Link para o comentário
Compartilhar em outros sites

eu achei esse aqui:

http://theunknownones.googlecode.com/svn/trunk/Libraries/Zint (SVN)

mas só compativel com delphi 2010 pra cima ja testei até no xe5,

não consegui portar para o delphi 7 

Esse projeto do Zint deve está obsoleto, vou passar o link do que estou utilizando em meu delphi que está na versão XE2. link abaixo;

 

http://sourceforge.net/projects/zint/files/latest/download

 

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

Bom dia pessoal,

 

Lvr, as orientações sobre DANFE detalhada você vai encontrar no manual aqui . Eu fiz alguns ajustes na DANFE que você disponibilizou pra atender alguns dos requisitos solicitados pelo manual:

 

  •  Retornado logo para seu local;
  •  Adicionado imagem para carregar o QrCode;
  •  Removido bordas da pagina para impressão na mini-impressora;
  •  Adicionado informação de Troco e do Total pago;
  •  Adicionado Opção para impressão simplificada ou detalhada;
  •  E efetuado alguns ajustes no layout.
  danfe := TACBrNFeDANFEFR.Create(nil);
  FAcbr := TACBrNFe.Create(nil);
  try
    FAcbr.NotasFiscais.LoadFromFile(XMl);
    FAcbr.DANFE := danfe;
    danfe.FastFile := 'c:\DANFeNFCe.fr3';
    danfe.Logo := 'logoDanfe.jpg';
    danfe.ExibirTotalTributosItem := True;
    danfe.TributosPercentual := ptValorNF;
    // valor do troco
    danfe.vTroco := vTroco;
    // exibir detalhes da venda
    danfe.Detalhado := Detalhado;
    // QrCode
    danfe.ImgQrCode := ExtractFilePath(ParamStr(0))+'qrcode_temp.png';

    GerarQRCode();

    danfe.ImprimirDANFE();

  finally
    danfe.free;
    FAcbr.Free;
  end;

Fiz alguns testes parciais, se alguém puder testar mais a fundo e dar um feedback seria bom, assim que me sobrar mais um tempinho eu testo mais um pouco.

 

 

 

danfe_nfce.rar

preview_danfe_nfce.pdf

Link para o comentário
Compartilhar em outros sites

Roberto.Godinho, alguns apontamentos:

1- Teria como a Logomarca da empresa ser opcional? Eliminando também o espaço vago no danfe caso não houver imagem?

 

2- Quantidade de itens: Não seria melhor o FastReport fazer a contagem automática?

 

3 - Campo "Detalhado" é do tipo Boolean, portanto no seu exemplo seria Danfe.Detalhado := False; ou Danfe.Detalhado := True;

 

4 - O Memo46 com o conteúdo [Destinatario."Consumidor"] poderia ter a propriedade Height = 1,85 igual aos dados do emitente senão há cortes de informação.

 

5 - Diminuir o espaço no final do PageHeader "Emitente".

 

6 - O "vTotPago" não teria que diminuir o "vDesc":

FieldByName('vTotPago').AsCurrency := FvTroco+FieldByName('VProd').AsFloat-FieldByName('VDesc').AsFloat;

Obrigado por testar, vamos melhorando cada vez mais.

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

Esse projeto do Zint deve está obsoleto, vou passar o link do que estou utilizando em meu delphi que está na versão XE2. link abaixo;

 

http://sourceforge.net/projects/zint/files/latest/download

 

Solivan.

essa opção que vc postou é um aplicativo pronto. que pro sinal é muito bom também,

mas o que eu postei tem os fontes e demos em delphi,

e por sinal teve atualizações via svn hoje acabei de atualizar

Link para o comentário
Compartilhar em outros sites

essa opção que vc postou é um aplicativo pronto. que pro sinal é muito bom também,

mas o que eu postei tem os fontes e demos em delphi,

e por sinal teve atualizações via svn hoje acabei de atualizar

 Esse que postei não é um aplicativo e sim um componente com modelos de codigos de barras a perder de vista, dos quais o QRCode também faz parte, devo ter me equivocado ao passar a URL do verdadeiro componente.

 

Eu verifiquei a URL do SVN do Zint que uso e constatei que estamos falando do mesmo componente

 

URL para a Suíte: http://theunknownones.googlecode.com/svn

 

Somente o Zint em questão: http://theunknownones.googlecode.com/svn/trunk/Components/ZintBarcode/

 

 

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

Roberto.Godinho, alguns apontamentos:

1- Teria como a Logomarca da empresa ser opcional? Eliminando também o espaço vago no danfe caso não houver imagem?

 

2- Quantidade de itens: Não seria melhor o FastReport fazer a contagem automática?

 

3 - Campo "Detalhado" é do tipo Boolean, portanto no seu exemplo seria Danfe.Detalhado := False; ou Danfe.Detalhado := True;

 

4 - O Memo46 com o conteúdo [Destinatario."Consumidor"] poderia ter a propriedade Height = 1,85 igual aos dados do emitente senão há cortes de informação.

 

5 - Diminuir o espaço no final do PageHeader "Emitente".

 

6 - O "vTotPago" não teria que diminuir o "vDesc":

FieldByName('vTotPago').AsCurrency := FvTroco+FieldByName('VProd').AsFloat-FieldByName('VDesc').AsFloat;

Obrigado por testar, vamos melhorando cada vez mais.

 

opa,

 

Item 1 - coloquei logo opcional, se não informar a banda da logo será suprimida;

item 2 - Alterei para pegar automaticamente;

item 3 - O valor que eu estou atribuindo á propriedade danfe.Detalhado é uma variavel do tipo boolean;

item 4 - Alterado tamanho como sugerido;

Item 5 - Alterado como sugerido;

item 6 - o vTotPago é o total que o cliente pagou, ou seja, se a compra dele é de R$ 8,00, o cliente pagou R$ 10,00 e recebeu o troco de R$ 2,00, não significa que é o total da nota.

 

- Força danfe detalhado caso tpEmis seja teOffline;

- Adicionei mais uma propriedade contendo a informação se a via Impressa é do Consumidor ou do estabelecimento, como exigido no item 2.2.6 do manual técnico da danfe;

 

OBS: utilizo assim

    // imprime a primeira via do consumidor
    danfe.ImprimirDANFE();
    if FAcbr.NotasFiscais.Items[0].NFe.Ide.tpEmis = teOffLine then
    begin
      // 2.2.6 - Esta segunda via deverá estar identificada como “Via do Estabelecimento” conforme
      //         modelo constante da figura 7  a seguir. Alternativamente a impressão da segunda via do
      //         DANFE NFC-e quando de emissão em contingência, o contribuinte poderá optar pela
      //         guarda eletrônica do respectivo arquivo XML da NFC-e.
      if Application.MessageBox(PChar('NFC-e Emitida em modo de Contingência off-line.'+sLineBreak+
          'Deseja efetuar a Impressão da Via do Estabelecimento?'+sLineBreak+sLineBreak+
          'Atenção: Optando por "não" imprimir a segunda via, estará automáticamente optando pela guarda do XML.'+sLineBreak),
          PChar(Application.Title),MB_YESNO+MB_ICONWARNING) = IDYES then
      begin
        danfe.DescricaoViaEstabelec := 'Via do Estabelecimento';
        danfe.ImprimirDANFE();
      end;
    end;

continuem testando e passando o feedback, assim que sobrar mais um tempinho eu do uma olhada e implemento oque for necessário.

danfe_nfce.rar

Link para o comentário
Compartilhar em outros sites

  • Moderadores

bom dia, todos, a impressao do DANFE NFC-e nao mostra os itens? e outra como faço para pode imprimir o QR CODE?

 

Por favor leia todo o tópico antes de postar uma nova pergunta, essas duas perguntas já foram discutidas aqui e no outro tópico da NFC-e, basta utilizar a caixa de busca no topo da página.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

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

  • Membros Pro

Parabens pelo trabalho no danfe, vou baixar e dar uma analisar e ver em que posso contribuir..

Bom dia!

Sergio tudo bem, cara eu baixei o barcode studio para fazer testes com qr code, qdo a imagem é pequena nao consigo ler, so consigo qdo a imagem é grande, tem algum problema no seu ai, ou tem alguma dica que posso utilizar?

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia!

Sergio tudo bem, cara eu baixei o barcode studio para fazer testes com qr code, qdo a imagem é pequena nao consigo ler, so consigo qdo a imagem é grande, tem algum problema no seu ai, ou tem alguma dica que posso utilizar? Outra pergunta vc esta imprimindo o qr code off-line.

Obrigado.

descupem erro duplicacao

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

Roberto está ficando muito bom,

 

opa,

 

Item 1 - coloquei logo opcional, se não informar a banda da logo será suprimida;

item 2 - Alterei para pegar automaticamente;

item 3 - O valor que eu estou atribuindo á propriedade danfe.Detalhado é uma variavel do tipo boolean;

item 4 - Alterado tamanho como sugerido;

Item 5 - Alterado como sugerido;

item 6 - o vTotPago é o total que o cliente pagou, ou seja, se a compra dele é de R$ 8,00, o cliente pagou R$ 10,00 e recebeu o troco de R$ 2,00, não significa que é o total da nota.

 

1 - A falta da logomarca não suprimiu o espaço no início da danfe.

2 - A quantidade de itens não aparece nada, tenho que passar pelo código? Não poderia passar direto no FastReport com a função COUNT?

3 - O total do valor pago não existe mais em comparação a sua primeira versão do DANFeNFCe.fr3 ?

4 - O tamanho do Memo "Consumidor" não aumentou. Sugiro Memo46.Height = 1,85

5 - Ainda temos que arrumar a URL para ser carregada pelo componente conforme ambiente e UF.

 

Link para o comentário
Compartilhar em outros sites

Roberto está ficando muito bom,

 

 

1 - A falta da logomarca não suprimiu o espaço no início da danfe.

2 - A quantidade de itens não aparece nada, tenho que passar pelo código? Não poderia passar direto no FastReport com a função COUNT?

3 - O total do valor pago não existe mais em comparação a sua primeira versão do DANFeNFCe.fr3 ?

4 - O tamanho do Memo "Consumidor" não aumentou. Sugiro Memo46.Height = 1,85

5 - Ainda temos que arrumar a URL para ser carregada pelo componente conforme ambiente e UF.

 

 

perdão jovem, devo ter enviado o arquivo errado pra ti, estou anexando novamente.

DANFeNFCe.rar

Link para o comentário
Compartilhar em outros sites

Bom dia!

Sergio tudo bem, cara eu baixei o barcode studio para fazer testes com qr code, qdo a imagem é pequena nao consigo ler, so consigo qdo a imagem é grande, tem algum problema no seu ai, ou tem alguma dica que posso utilizar?

Obrigado.

 

Boa tarde, você pode aumentar o tamanho da imagem que funciona normalmente.

 

abraços

Atenciosamente

Sérgio Guedes

LSI Sistemas

Email: [email protected]

Skype: sergio.lsisistemas

www.lsisistemas.com.br

Precisando de Integração com PDV NFC-e?

Conheça ClickPDVOEM

 

Link para o comentário
Compartilhar em outros sites

perdão jovem, devo ter enviado o arquivo errado pra ti, estou anexando novamente.

 

 

1 - A falta da logomarca não suprimiu o espaço no início da danfe.

R.: Continua não suprimindo o espaço.

procedure TdmACBrNFeFR.frxReportBeforePrint(Sender: TfrxReportComponent);
begin
   if (NFe.Ide.modelo = 65) then
   begin
     if cdsParametros.FieldByName('Imagem').AsString = '' then
     begin
        frxReport.FindObject('ReportTitle1').Visible := False;
        frxReport.FindObject('Picture2').Visible := False;
     end
     else
     begin
        frxReport.FindObject('ReportTitle1').Visible := True;
        frxReport.FindObject('Picture2').Visible := True;
     end;
   end;
end;

2 - A quantidade de itens não aparece nada, tenho que passar pelo código? Não poderia passar direto no FastReport com a função COUNT?

R.: Resolvido. Faz a somatória automática.

 

3 - O total do valor pago não existe mais em comparação a sua primeira versão do DANFeNFCe.fr3 ?

R.: Resolvido. Não existe mais o campo.

 

4 - O tamanho do Memo "Consumidor" não aumentou. Sugiro Memo46.Height = 1,85

R.: Continua do mesmo tamanho. No meu caso utilizo Height no mínimo com 1,55 senão corta informações do consumidor.

 

** Imagem QR Code: Com a propriedade "Stretched" sendo False corta a imagem e consequentemente não lê a imagem.

** O Memo12 e o Memo2 estão muito juntos, deveria separá-lo um pouco mais.

** Mem123 "VL.UNIT" está cortado.

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

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

Amigão, nen vou falar não querendo abusar.. pq ja to abusando to usando o o seguinte pra tentar gerar meu qrcode:

function GerarStringQrCodeNFC ( pcldToken : String ) : WideString;

var

    tHashQRCode : WideString;

    sAux : String;

    sWebService : String;

    chNFe : String;

    nVersao : String;

    tpAmb : String;

    cDest : String;

    dhEmi : String;

    vNF : String;

    vICMS : String;

    digVal : String;

    cldToken  : String;  // identificação do token 00000X

    scldToken : String;  // chave do token

    cHashQRCode : String;

begin

    with dm.NFe.NotasFiscais.Items[0].NFe do begin

        // QRCode - Endereço do webservice para a consulta da NFC-e

        if ide.tpAmb = taHomologacao then begin

            sWebService := 'http://homologacao.sefaz.mt.gov.br/nfce/consultanfce?';

            //sWebService := 'http://www.hom.nfe.sefaz.mt.gov.br/portal/consultarNFCe.jsp';

        end else begin

            sWebService := 'http://www.sefaz.mt.gov.br/nfe/portal/consultanfce';

        end;

        // parametros para o QRCode ==> chNFe - chave de acesso

        chNFe := apenasNumeros(infNFe.ID, 'N');

        // parametros para o QRCode ==> nVersao - versao do QRCode ( fixo 100 )

        nVersao := '100';

        // parametros para o QRCode ==> tpAmb - Identificação do ambiente ( 1 Prod / 2 Homolog )

        if ide.tpAmb = taHomologacao  then begin

            tpAmb := '2';

        end else begin

            tpAmb := '1';

        end;

        // parametros para o QRCode ==> cDest - Documetno de Identificação do Consumidor CNPJ/CPF/ID Estrangueiro )

        cDest := Dest.CNPJCPF;

        // parametros para o QRCode ==> dhEmi - Data e Horqa de Emissão da NFC-e ( padrao UTC convertido em formato hexadecimal )

        dhEmi := DateTimeTodhUTC( ide.dEmi, GetUTC( Emit.EnderEmit.UF, ide.dEmi) );

        dhEmi := StringToHex( dhEmi );

        // parametros para o QRCode ==> vNF - Valor total da NFC-e ( decimais separados por . e sem separadores de milhar )

        sAux := FormatCurr('##0.00', Total.ICMSTot.vNF );

        sAux := StringReplace( sAux, ',', '.', [rfReplaceAll] );

        vNF := sAux;

        // parametros para o QRCode ==> vICMS - Valor total de ICMS da NFC-e ( decimais separados por . e sem separadores de milhar )

        if Total.ICMSTot.vICMS > 0 then begin

            sAux := FormatCurr('##0.00', Total.ICMSTot.vICMS );

            sAux := StringReplace( sAux, ',', '.', [rfReplaceAll] );

            vICMS := sAux;

        end else begin

            vICMS := '0';

        end;

        // parametros para o QRCode ==> digVal - Digest Value da NFC-e

        digVal := signature.DigestValue;

        digVal := StringToHex( digVal );

        // parametros para o QRCode ==> cldToken

        if tpAmb = '2' then begin

            // token para Homologação

            cldToken := '000001';

            //sAux := apenasNumeros( getCNPJ, 'N' );

            sAux := Emit.CNPJCPF;

            sAux := Copy(sAux,1,8);

            scldToken := '';

            scldToken := sAux;

            sAux := FormatDateTime('YYYY', NowSis);

            scldToken := scldToken + sAux;

            sAux := copy(cldToken, length(cldToken) - 3, 4);

            scldToken := scldToken + sAux;

            scldToken := cldToken + scldToken;

        end else begin

            // token de produção

            cldToken  :=  espaco( 6 - Length(pcldToken), '0') + pcldToken;

            scldToken := ShowGenerico('NFC_TOKEN','TOKEN','IDENTIFICACAOTOKEN', pcldToken );

        end;

    end;

    Result := '';

    Result := Result + 'chNFe=' + chNFe;

    Result := Result + '&nVersao=' + nVersao;

    Result := Result + '&tpAmb=' + tpAmb;

    if cDest <> '' then begin

        Result := Result + '&cDest=' + cDest;

    end;

    Result := Result + '&dhEmi=' + dhEmi;

    Result := Result + '&vNF=' + vNF;

    Result := Result + '&vICMS=' + vICMS;

    Result := Result + '&digVal=' + digVal;

    // texto que sera usado para gerar o Hash do QrCode.

    tHashQRCode := Result + '&cldToken=' + scldToken;

    // Texto que sera retornado como texto do QrCode

    Result := Result + '&cldToken=' + cldToken;

    cHashQRCode := Dm.ACBrEAD.CalcularHash(UTF8Encode(tHashQRCode),dgstSHA1 );

    //cHashQRCode := StringToHex( cHashQRCode );

    Result := sWebService + Result + '&cHashQRCode=' + cHashQRCode;

end;

 

funcao que eu to usando pra fazer a conversao para hex

function StringToHex ( 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;

 

Eu nao consigo nen a pau gerar um qrcode valido, como eu fiz baseado no xml, eu to tenatndo com o seu xml mas mesmo assim nao da certo.. poderia me dar uma mão na geração do texto do qrcode.

Desde ja obrigado amigo...

Me desculpa a falta de EXP, mas sou meio novatão e jogaram a bomba na minha mao.

 

Link para o comentário
Compartilhar em outros sites

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