Arredondamento X Truncamento - ACBrMonitorPLUS - Projeto ACBr
Arredondamento X Truncamento
March 26, 2013 in ACBrMonitorPLUS
Este tópico foi criado há 3265 dias atrás.
Para resolver o problema da diferença de centavos no fechamento do cupom, fui orientado pelo pessoal da daruma e bematech a fazer o truncamento ou arredondamento conforme regra abnt... Até aí, tudo bem, é tranquilo...
Então, apenas preciso saber se o ECF irá arredondar ou truncar o valor do item...
Vi que o ACBRMonitor tem um comando "ECF.Arredonda" para saber isso...
Porém, no suporte da Daruma, me informaram que, nos novos ECF´s (MFD), a decisão de arredondar ou truncar é feita no momento de enviar o item para o ECF e não mais no momento da lacração do mesmo... Então, deveria ser no comando ECF.VendeItem... Essa informação procede?
No manual que tenho do ACBRMonitor, não tenho esse parâmetro no ECF.VendeItem... Isso já está implementado? Será implementado?
Bom, caso, não seja por item, então teria que usar mesmo o comando "ECF.Arredonda"? É ISSO?
Edited March 26, 2013 by reginaldosommus
Use o comando ECF.setarredondaitemmfd(1) para ativar a opção de arredondamento nos ECFs com MFD da daruma. Para ver como está a propriedade atual use o comando ECF.arredondaitemmfd.
Caso esta propriedade esteja como True o próprio ACBrECF se encarrega de enviar o comando de arredondamento a cada item.
Não entendi... não consta esses comandos no manual do acbrmonitor... então, o comando "ECF.setaarredondaitemmfd(1)" tenho que fazer a cada item? O comando ECF.arredondaitemmfd, para verificar, também tenho que fazer a cada item?
Se eu apenas verificar o comando ECF.Arredonda, funcionaria em qualquer impressora, pra saber se o total do item no ECF será arredondado/truncado?
E outra, qual a relevância dos flags "Arredondamento por quantidade" e "Arredondamento MFD", que são configurados no ACBRMonitor?
Esse flag "Arredondamento MFD" é o valor que o comando "ECF.setaarredondaitemmfd" mofifica?
Vc precisa chamar apenas uma vez o comando ECF.setaarredondaitemmfd(1) para ativar o arredondamento, o componente ACBrECF irá se encarregar de enviar automaticamente a cada comando de venda de item o comando para arredondar.
O comando ECF.arredondaitemmfd é apenas para saber o estado atual do parâmetro, se já está ativado ou não, e se vc ativar o flag "Arredondamento MFD" na interface do ACBrMonitor tem o mesmo efeito de chamar o comando ECF.setaarredondaitemmfd(1), os dois se referem a mesma propriedade do componente.
O comando ECF.Arredonda serve para ver como o ECF foi lacrado, mas como vc mesmo já viu na Daruma, isso não funciona mais nos ECFs novos.
O flag "Arredondamento por quantidade" tenta aumentar o valor da quantidade para chegar ao valor aproximado do total, por exemplo vc tem os seguintes valores:
0,015 x 1 = 0,015 - Seu ECF está configurado para truncar, então o valor final seria 0,01, mas vc gostaria que ficasse 0,02, então se o "Arredondamento por quantidade" estiver ativador o componente irá aumentar a quantidade para 0,02 para que o total fique como 0,02 - 0,02 x 1 = 0,02
Somente, para que não fique dúvida alguma:
1) O comando ecf.arredonda ainda funciona em todos os ecf´s (inclusive os novos com mfd) ?
2) Se o comando ECF.arredondaitemmfd me retorna que o item será arredondado, é CERTEZA que isso ocorrerá, em todos os modelos de ECF?
A questão é que tenho que ter certeza do que o ecf irá fazer: ARREDONDAR ou TRUNCAR... Pois, meu sistema fará o que o ECF fizer para que o total do item no meu sistema seja EXATAMENTE igual ao total do item no ecf... O ideal mesmo seria que eu pudesse ler o total do item registrado no ecf... aí não precisaria verificar nada, apenas pegar o total que o ecf calculou....
Edited March 27, 2013 by reginaldosommus
e o comando ECF.MudaArredondamento, não funciona mais? como fica?
Outra coisa... Eu posso desconsiderar ECF sem MFD... Hoje isso não pode funcionar mais, em lugar nenhum... ou estou enganado?
ah... quanto ao "Arredondamento MFD":
1) Tive problemas na ECF DARUMA... não funcionou!
2) O que exatamente o acbr faz nesse caso? Ele diz ao ECF que é pra arredondar, e o ECF arredonda conforme a regra ABNT, ou ele força um arredondamento, conforme a regra que estamos acostumados a trabalhar (até 4, pra baixo e acima de 4, pra cima) ???
Acho que o melhor a fazer é meu sistema ler ecf.arredonda e se arredonda eu aplico o arredondamento abnt e se trunca eu trunco... Resta saber, se o ecf.arredonda funciona tranquilo nos novos ecf´s....
Isso mesmo reginaldo
Mas, "Isso mesmo", em qual questão?
"Acho que o melhor a fazer é meu sistema ler ecf.arredonda e se arredonda eu aplico o arredondamento abnt e se trunca eu trunco... Resta saber, se o ecf.arredonda funciona tranquilo nos novos ecf´s...."
Pelo que o pessoal da Daruma me disse (Tô conversando com eles agora)... Não existe flag no ecf dizendo se vai arredondar ou truncar, isso é decidido somente na venda de cada item....
Não estou entendendo, isso tá muito confuso...
O negócio tá cada vez mais complicado... Falei na Bematech agora, alguns modelos somente truncam....
Tô meio perdido, sem saber se meu sistema deve ARREDONDAR ou TRUNCAR...
reginaldosommus
em primeiro lugar você tem alguns modelos mais recentes que ao vender o item ele passa essa informação
agora as que não possui você pode ou ler a informação na ecf que ela tem lá dizendo se arredonda ou trunca e efetuar
o calculo em cima dessa informação, ou usar o arredondaporqtd
que dai ele vai aproximar do valor caso tenha diferença lembrando que ele vai mexer na quantidade para chegar ao valor desejado
caso tenha falado besteira os colegas me corrijam
Não é tão simples assim... Veja bem:
Tenho aqui uma MP2100 (Que é de um convênio que não arredonda, ela somente trunca, independente de qualquer configuração)... Mas, percebi que o comando ECF.Arredonda, me retorna o mesmo que o comando ECF.ArredondaItemMFD... Então, ele me retorna "True", se o flag "Arredondamento MFD" no acbrmonitor tiver marcado... Mas, esse ecf não arredonda de forma alguma, somente trunca... Então, não posso confiar no comando ECF.Arredonda.
Acho que os comandos de leitura/definição de arredondamento/truncamento no acbrmonitor estão meio que confusos... não dá pra entender exatamente o que fazem...
O que preciso é simplesmente saber se ao enviar o item ao ecf devo calcular o arredondamento abnt ou truncar... mas, não consigo essa informação...
Será que a solução seria uma configuração no meu próprio sistema, se aquele ecf irá truncar ou arredondar?
Agora que me liguei que você está falando do monitor
Desculpe mas é mesmo você não vai saber ou melhor não lembro se tem um comando para saber ao iniciar a ecf no monitor
se ela está configurado para truncar ou arredondar
Não creio que seja problema com o acbrmonitor, não acho que com os componentes do acbr seja diferente, a questão são as diferenças nos próprios ecfs, tem ecf com mfd de convênio que não permite arredondamento, e tem ecf´s (os mais atuais) que o arredondamento é no item... então a conclusão que cheguei é que o melhor a fazer é colocar uma configuração (por ecf) no meu sistema para que o usuário "escolha" se o sistema vai arredondar ou truncar, então, se mesmo assim o total do cupom no ecf tiver dando diferença do total do cupom no sistema, o usuário tem a configuração... desde que meu sistema faça o cálculo do arredondamento conforme a norma abnt, assim não terá diferenças... Fica de forma manual, mas, não vejo outro jeito, ou seja, se o ECF somente trunca, então, o sistema será configurado para truncar, se o ECF tem opção de arredondar, então o usuário será configurado para arredondar....
O comando ECF.setaarredondaitemmfd() não existe... Estou usando a versão 0.9.19.0 do ACBRMonitor...
Encontrei o comando, que na verdade é ECF.SetArredondaItemMFD(), porém, não funciona....
Tentei enviar ECF.SETARREDONDAITEMMFD(1) e ECF.SETARREDONDAITEMMFD(True) e o resultado é o mesmo, não altera a configuração que está no ACBRMonitor...
O comando vai setar o arredondaitemMFD internamento no monitor, ou seja configurar o ACBrECF que o monitor possui para trabalhar assim.
Existem uma ressalva, nem toda a impressora fiscal aceita essa configuração.
Você pode ligar o Arredondamento de Item MFD na aba ECF ...
Como o Regys falou... alguns ECFs não suportam esse recurso... após a tentativa de Venda de Item, leia essa propriedade novamente... se ela estiver False, é porque o ECF não suporta...
No caso do ACBRMonitor, esse comando não deveria alterar o controle "Arredondamento MFD" que está na aba ECF?