Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Olá!

Estou com problemas no arredondamento do valor total do meu produto no cupom fiscal.

Exemplo:

9,53 = Unitário

1,58 = Quantidade

------------------

15,0574 = Total

Na impressora fiscal o valor total está sendo truncado (R$ 15,05), já no meu aplicativo eu arredondo o valor total (R$ 15,06).

Olhando no código fonte, percebi que para truncar/arredondar o valor total o componente lê a propriedade chamada "Arredonda". Como ativo ou desativo esta funcionalidade?

Propriedades AcbrECF:

ArredondaItemMDF = True

ArredondaPorQTD = False

DecimaisPreco = 2

DecimaisQtd = 3

Segue em anexo uma imagem de uma venda feita pelo ECFTeste e o trecho do código do ACBrECF.VendeItem que efetua o arredondamento / truncamento do valor total.

Obrigado,

Lucas Borin

post-1946-13548987889089.jpg

post-1946-13548987889245.jpg

  • Respostas 58
  • Created
  • Última resposta

Top Posters In This Topic

Postado

Eu resolvi isso a um tempo atras marcando a opção ArredondaPorQuantidade=True.

Caso eu ative esta opção, ao digitar a quantidade "0,098", a quantidade é alterada para "0,099" no cupom fiscal.

Mas corrige o caso do valor total do item.

Você passa pelo mesmo problema?

Abraço,

Lucas Borin

  • Fundadores
Postado

Esse modelo (do emulador) não suporta ArredondaItemMDF = True ... observe que ele ficará False assim que você tentar vender um Item...

Seu sistema deve ser capaz de reproduzir o calculo da mesma maneira que o ECF... ou seja, se o ECF Trunca, faça o calculo da mesma forma no seu sistema

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Postado

Esse modelo (do emulador) não suporta ArredondaItemMDF = True ... observe que ele ficará False assim que você tentar vender um Item...

Seu sistema deve ser capaz de reproduzir o calculo da mesma maneira que o ECF... ou seja, se o ECF Trunca, faça o calculo da mesma forma no seu sistema

OK, tenho uma Bematech 4000 TH FI aqui e vou efetuar os testes.

Andei lendo sobre a DLL da bematech e encontrei uma função para modificar a maneira de arredondamento da impressora fiscal.

Tenho como definir pelo componente ACBrECF?

Postado

OK.

Mas continuo com o problema e ainda preciso de uma ajuda:

15,00 = Unitário

00,615 = Quantidade

------------------

9,225 = Total

No meu aplicativo e no espelho do cupom (memo ligado ao acbrEcf), aparece o valor total do item como R$ 9,23. Já na impressora fiscal fica como R$ 9,22.

Alguem sabe o que posso fazer?

Teste efetuado com a impressora Bematech 4000 TH FI.

Postado

Pela depuração, o parâmetro "Arredonda" no AcbrECF está como FALSO (o valor dele vem da impressora). Então está truncando.

Tenho como alterar para arredondar ou então ler esta variável da impressora?

Abraço

Postado

A lógica da minha impressora é a seguinte:

Unidade x Quantidade = Valor

0,015 x 1 = 0,02

0,025 x 1 = 0,02

0,035 x 1 = 0,04

0,045 x 1 = 0,04

Quando segundo número do valor decimal for impar, o valor é arredondado. Se não ele é truncado.

Agora lhes pergunto, todas impressoras funcionam desta maneira? Alguém sabe me dar esta dica?

(Fora o caso que comentamos acima que trabalha com configuração da impressora).

Abraço

Postado

Todas eu não sei, mas aqui explica como funciona na bematech :

Caso o valor da terceira casa decimal for igual a 5 (cinco), precisaremos saber se a segunda casa é par ou ímpar. Caso esta segunda casa seja ímpar, soma-se uma unidade nesta segunda casa decimal. Se o valor da segunda casa decimal for par precisaremos analisar se a quarta casa decimal é igual ou diferente de 0 (zero). Sendo 0 (zero) o valor da segunda casa decimal permanece o mesmo, caso contrário soma-se uma unidade.

Eles dizem que usam regra da ABNT para aplicar o arredondamento.Tenta fazer o mesmo teste no emulador da sweda

http://click2.virtualtarget.com.br/inde ... eb53a2bc,2

Quantas reuniões foram mesmo esta semana? Reúna os amigos!

  • Consultores
Postado

Esse não é o arredondamento bancário? Muitas vezes eu confundo o nome...

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Criei a função de arredondamento "ABNT" como me indicaram e funcionou perfeitamente, exceto no memoBobina!

O memoBobina continua truncando os valores, ele precisa utilizar a rotina de arredondamento "ABNT" também.

Para efetuar o teste, podem usar os valores que mencionei acima (0.015, 0.025, 0.035 e 0.045).

Postado

Criei uma função para efetuar o arredondamento, semelhante a da impressora fiscal. Testei aqui e funcionou.

function Arredondamento_ECF(Valor:Extended; Decimal:Integer = 2): Extended;

begin

    FUNÇÃO CORRIGIDA NA PÁGINA 03

end;

Postado

ok... mas não compreendi se é necessária ou não alguma correção nos fontes do ACBrECF, e se SIM, como ela seria...

A imagem "Captura2.JPG" que foi anexada na primeira página, mostra o trecho do código que efetua o truncamento/arredondamento do memoBobina (espelho do cupom).

Não sei se isto ocorre para todos os ECF, mas no meu caso a impressora retorna o arredondamento como falso e a rotina efetua o truncamento, quando o correto deveria ser o uso desta rotina de arredondamento que postei logo acima.

Vou efetuar um teste em outro emulador e verificar o que ocorre.

  • Fundadores
Postado

Pelo que compreendi você afirma que:

- O ECF efetua trancamento por hardware

- O valor impresso no ECF não bate com o exibido no MemoBobina

E isso mesmo ?

Se SIM, por favor informe os valores de QTD e Prec. Unitário que isso ocorre

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Postado

Correto, o valor total do produto/serviço que está sendo impresso no cupom fiscal é diferente do que está aparecendo no memoBobina.

Impressora Fiscal (correto):

0,015 KG x R$ 1,00 = R$ 0,02

0,025 KG x R$ 1,00 = R$ 0,02

0,035 KG x R$ 1,00 = R$ 0,04

0,045 KG x R$ 1,00 = R$ 0,04

memoBobina (errado):

0,015 KG x R$ 1,00 = R$ 0,01

0,025 KG x R$ 1,00 = R$ 0,02

0,035 KG x R$ 1,00 = R$ 0,03

0,045 KG x R$ 1,00 = R$ 0,04

Compreendeu?

Impressora de teste: BEMATECH MP-4000 TH FI

Abraço,

Lucas Borin

Postado

Apenas a propriedade ArredondaItemMFD está ATIVA, a ArredondaPorQtd está DESATIVADA.

Caso eu ative o arredondamento por quantidade, o valor informado 0,015 passa a ser 0,02. Porem meu cliente utiliza balança e precisa da terceira casa da quantidade.

Mais informações:

ArredondaItemMFD = True

ArredondaPorQtd = False

DeciamisPreco = 2

DecimaisQtd = 3

  • Membros Pro
Postado

Você deve verificar o modo de operação da impressora, no seu caso a impressora está fazendo truncamento.

Pode-se criar uma função para fazer truncamento, como no exemplo a seguir:


function Trunca(const nValor: Currency; const iCasas: Integer): Currency;

begin

  Result := nValor;


  if iCasas <= 0 then

    Result := Trunc(nValor)

  else

    if iCasas = 1 then

      Result := Trunc(nValor * 10) / 10

    else

      if iCasas = 2 then

        Result := Trunc(nValor * 100) / 100

      else

        if iCasas = 3 then

          Result := Trunc(nValor * 1000) / 1000

        else

          if iCasas = 4 then

            Result := Trunc(nValor * 10000) / 10000;

end;

e então, para obter o mesmo valor calculado pela impressora:

      nVlrTot := Trunca(nVlrUnit * nQtd, 2);

  • Fundadores
Postado

Apenas a propriedade ArredondaItemMFD está ATIVA, a ArredondaPorQtd está DESATIVADA.

Caso eu ative o arredondamento por quantidade, o valor informado 0,015 passa a ser 0,02. Porem meu cliente utiliza balança e precisa da terceira casa da quantidade.

Mais informações:

ArredondaItemMFD = True

ArredondaPorQtd = False

DeciamisPreco = 2

DecimaisQtd = 3

O seu ECF está Arredondando, pois ele é compatível com o ArredondaItemMFD... Talvez a rotina que mostre o total em MemoBobina não esteja levando isso em consideração

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Postado

O seu ECF está Arredondando, pois ele é compatível com o ArredondaItemMFD... Talvez a rotina que mostre o total em MemoBobina não esteja levando isso em consideração

Sim, o problema está na função que calcular o valor total do item no memoBobina.

Porem a propriedade "arredonda" que é lida do ECF está como false, quando o correto era se true e efetuar o calculo conforme conversamos.

No teste que passei acima, deu certo para você?

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