Jump to content

2 Dia do ACBr

Ingressos esgotados! Agradecemos a todos os inscritos.
Site do Evento

Nova Loja Oficial
loja.projetoacbr.com.br
Ajude o projeto a crescer, com estilo

Comprar

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Recommended Posts

Olá, realizei algumas alterações no layout do DANFCe bobina desenvolvido em Fast. Renomeei o arquivo para "DANFeNFCe5_00.fr3", o adaptando conforme o Manual de Padrões versão 5.0, o último liberado pelo Encat.

Foram necessárias algumas alterações na unit ACBrNFeDANFEFRDM.pas também. No seguintes locais:

1) Na geração do valor a pagar, conforme:

Antes:

FieldByName('ValorApagar').AsFloat  := VProd - VDesc - vICMSDeson + VOutro;

Agora:

FieldByName('ValorApagar').AsFloat  := VProd + FNFe.Total.ISSQNtot.vServ;

Deixei como já está no modelo EscPos, que imagino ser o mais usado e consequentemente o mais apurado. Não concordo com fazer cálculos na impressão do Danfe, os cálculos já devem ser feitos ao gerar o XML.

2) No preenchimento do nome do cliente:

Antes:

if EstaVazio(FieldByName('CNPJCPF').AsString) then
  FieldByName('Consumidor').AsString := ACBrStr('CONSUMIDOR NÃO IDENTIFICADO')
else
  FieldByName('Consumidor').AsString := IfThen(Length(CNPJCPF) = 11, 'CPF: ', 'CNPJ: ') + Trim(FieldByName('CNPJCPF').AsString) + ' ' + trim(FieldByName('XNome').AsString);

Agora:

if EstaVazio(FieldByName('CNPJCPF').AsString) then
  FieldByName('Consumidor').AsString := ACBrStr('CONSUMIDOR NÃO IDENTIFICADO')
else
  FieldByName('Consumidor').AsString := IfThen(Length(CNPJCPF) = 11, 'CONSUMIDOR CPF: ', 'CONSUMIDOR CNPJ: ') + Trim(FieldByName('CNPJCPF').AsString) + ' ' + trim(FieldByName('XNome').AsString);

Apenas inseri o prefixo "CONSUMIDOR" antes do CPF ou do CNPJ do cliente.

3) Na geração do texto da área de mensagem fiscal:

Antes:

if (FNFe.Ide.Modelo = 65) then
begin
  FieldByName('DEmi').AsString := FormatDateTimeBr(FNFe.Ide.DEmi);
  if FNFe.Ide.TpAmb = taHomologacao then
    FieldByName('MensagemFiscal').AsString := ACBrStr('EMITIDA EM AMBIENTE DE HOMOLOGAÇÃO - SEM VALOR FISCAL')
  else
  begin
    if (FNFe.Ide.tpEmis <> teNormal) and EstaVazio(FNFe.procNFe.nProt) then
      FieldByName('MensagemFiscal').AsString := ACBrStr('EMITIDA EM CONTINGÊNCIA'+LineBreak+'Pendente de autorização')
    else
      FieldByName('MensagemFiscal').AsString := ACBrStr('ÁREA DE MENSAGEM FISCAL');
  end;

 . . . .

Agora:

if (FNFe.Ide.Modelo = 65) then
begin
  FieldByName('DEmi').AsString := FormatDateTimeBr(FNFe.Ide.DEmi);

  if (FNFe.Ide.tpEmis <> teNormal) and EstaVazio(FNFe.procNFe.nProt) then
    FieldByName('MensagemFiscal').AsString := ACBrStr('EMITIDA EM CONTINGÊNCIA'+LineBreak+'Pendente de autorização');

  if FNFe.Ide.TpAmb = taHomologacao then
    FieldByName('MensagemFiscal').AsString := FieldByName('MensagemFiscal').AsString+LineBreak+LineBreak+ACBrStr('EMITIDA EM AMBIENTE DE HOMOLOGAÇÃO - SEM VALOR FISCAL');

  if EstaVazio(FieldByName('MensagemFiscal').AsString) then
    FieldByName('MensagemFiscal').AsString := ACBrStr('ÁREA DE MENSAGEM FISCAL');

. . . . 

Alterei para que a frase "EMITIDA EM CONTINGÊNCIA Pendente de autorização" seja gerada sempre que a NFCe estiver pendente, independente do ambiente utilizado (produção ou homologação)

 

Se alguém puder validar e encaminhar ao repositório.

ACBrNFeDANFEFRDM.pas DANFeNFCe5_00.fr3


tulio.jpg.f769746aeef14150d78e571e3a541eb3.jpg

Share this post


Link to post
Share on other sites
58 minutos atrás, Túlio de Pádua disse:

Olá, realizei algumas alterações no layout do DANFCe bobina desenvolvido em Fast.

Obrigado pelo interesse em contribuir.

Não me pareceu correto ignorar descontos e acréscimo no valor a pagar.

O mais correto seria usar a tag vNF como valor a pagar, da mesma forma como é feito no DANFE em EscPos. A soma de vProd + vServ seria o valor total.

  • Like 1

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Share this post


Link to post
Share on other sites
7 minutos atrás, BigWings disse:

Obrigado pelo interesse em contribuir.

Não me pareceu correto ignorar descontos e acréscimo no valor a pagar.

O mais correto seria usar a tag vNF como valor a pagar, da mesma forma como é feito no DANFE em EscPos. A soma de vProd + vServ seria o valor total.

@BigWings, erro meu, você está certo. Eu citei que havia feito conforme o DANFCe em EscPos mas está diferente. O EscPos gera o valor a pagar com o vNF. Alterei para ficar igual.

A ideia é justamente essa, deixar igual ao EscPos, que busca o valor da tag, em vez de fazer conta e correr risco de deixar a soma diferente do XML.

Anexei com essa alteração.

Obrigado.

ACBrNFeDANFEFRDM.pas

  • Like 2

tulio.jpg.f769746aeef14150d78e571e3a541eb3.jpg

Share this post


Link to post
Share on other sites
Em 17/07/2019 at 10:01, Túlio de Pádua disse:

@BigWings, erro meu, você está certo. Eu citei que havia feito conforme o DANFCe em EscPos mas está diferente. O EscPos gera o valor a pagar com o vNF. Alterei para ficar igual.

A ideia é justamente essa, deixar igual ao EscPos, que busca o valor da tag, em vez de fazer conta e correr risco de deixar a soma diferente do XML.

Anexei com essa alteração.

Obrigado.

ACBrNFeDANFEFRDM.pas 93 kB · 1 download

Muito obrigado pela contribuição.
Fiz a implementação baseada nela.
Subi as alterações para o SVN na Revisão  17347.
Pelo que vi está tudo certo.
Queira por favor atualizar, testar e reportar qualquer problema.

Mais uma vez obrigado.

  • Like 1
  • Thanks 1

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...