Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa dia pessoal.

 

As vezes tenho recebido o erro de divisão por zero ao tentar efetuar a venda de item.

O erro o corre no método TACBrECF.VendeItem da unit ACBrECF (linha 2430), onde é usada a função RoundTo.

Substitui a função RoundTo por SimpleRoundTo e o erro parou de aparecer.

 

Não seria o caso de trocar todas funções RoundTo por SimpleRoundTo ou RoundABNT? Alguém mais teve este tipo de erro?

 

Estou utilizando a rev. 5365 do svn, D2010, win7-32.

Postado

O log original do ACBr não exibe o erro, então eu acrescentei no método VendeItem código para gravação do log.

Observe que o primeiro item é vendido com sucesso, aplicando o RoundTo sem erro.

Já na venda do segundo item, ocorre o erro exatamente na linha citada e com isso o comando não é enviado.

Acho estranho, mas já li na net de relatos de efeitos indesejáveis usando RoundTo.


--------------------------------------------------------------------------------
ATIVAR - 06/07/13 15:06:24:682 - Modelo: SwedaSTX - Porta: COM6 - TimeOut: 3
         Device: BAUD=115200 DATA=8 PARITY=N STOP=1 HANDSHAKE= MAXBANDWIDTH=0
--------------------------------------------------------------------------------

-- 15:06:24:683 RetornaInfoECF(I1)
                TX -> [STX]+34|I1[ETX][141]
   15:06:24:825 RX <- [STX]+34I0001SWEDA[NUL][ESC].IF ST200[NUL][ESC]+ECF-IF[NUL][NUL]0[ESC]11 [NUL]01.00.01[NUL]E[ETX][166][STX]+34+0000AA[152][208][146][128][128]I1[ETX]x
-- 15:06:24:826 RetornaInfoECF(H2)
                TX -> [STX],34|H2[ETX][142]
   15:06:24:964 RX <- [STX],34H0002[NUL][ESC]#001[NUL]SSS[ETX]j[STX],34+0000AA[152][208][146][128][128]H2[ETX]y
-- 15:06:24:969 RetornaInfoECF(U2)
                TX -> [STX]-34|U2[ETX][156]
   15:06:25:107 RX <- [STX]-34U00023NN[ETX][127][STX]-34+0000AA[152][208][146][128][128]U2[ETX][135]
-- 15:06:25:131 RetornaInfoECF(R2)
                TX -> [STX].34|R2[ETX][154]
   15:06:25:262 RX <- [STX].34R0002EPSON[NUL][ESC]&TM-H6000[NUL][NUL][NUL]TERMICA[NUL][ESC]"B122409170512180180[ESC]%[ETX][168][STX].34+0000AA[152][208][146][128][128]R2[ETX][133]
-- 15:06:25:283 Estado
                TX -> [STX]/34[ETX][155]
   15:06:25:408 RX <- [STX]/34+0000AA[152][208][146][128][128][ETX][STX]
                TX -> [STX]056|[ETX][FS]
-- 15:06:25:543 Estado
                TX -> [STX]134[ETX][157]
   15:06:25:677 RX <- [STX]134+0000AA[152][208][146][128][128][ETX][4]
-- 15:06:25:686 NumSerie
                TX -> [STX]234|I1[ETX][148]
   15:06:25:817 RX <- [STX]234I0001SWEDA[NUL][ESC].IF ST200[NUL][ESC]+ECF-IF[NUL][NUL]0[ESC]11 [NUL]01.00.01[NUL]E[ETX][173][STX]234+0000AA[152][208][146][128][128]I1[ETX][127]
-- 15:06:25:819 GrandeTotal
                TX -> [STX]334|A1[ETX][141]
   15:06:25:984 RX <- [STX]334A00010[ESC]*4378140[ESC]565142[ETX][211][STX]334+0000AA[152][208][146][128][128]A1[ETX]x
-- 15:06:39:712 Estado
                TX -> [STX]434[ETX][160]
   15:06:39:822 RX <- [STX]434+0000AA[152][208][146][128][128][ETX][7]
-- 15:06:43:695 Estado
                TX -> [STX]534[ETX][161]
   15:06:43:820 RX <- [STX]534+0000AA[152][208][146][128][128][ETX][BS]
-- 15:06:46:656 Estado
                TX -> [STX]634[ETX][162]
   15:06:46:797 RX <- [STX]634+0000AA[152][208][146][128][128][ETX][TAB]
-- 15:06:46:802 LerTotaisAliquota
                TX -> [STX]734|D4[ETX][151]
   15:06:46:925 RX <- [STX]734D000417000500070010001200[ETX][131][STX]734+0000AA[152][208][146][128][128]D4[ETX][130]
-- 15:06:46:939 
                TX -> [STX]834|E4[ETX][153]
   15:06:47:093 RX <- [STX]834E0004[ETX][173][STX]834+0000AA[152][208][146][128][128]E4[ETX][132]
-- 15:06:47:105 
                TX -> [STX]934|D2[ETX][151]
   15:06:47:227 RX <- [STX]934D00020[ESC]_[ETX]U[STX]934+0000AA[152][208][146][128][128]D2[ETX][130]
-- 15:06:47:237 
                TX -> [STX]:34|E2[ETX][153]
   15:06:47:355 RX <- [STX]:34E0002[ETX][173][STX]:34+0000AA[152][208][146][128][128]E2[ETX][132]
-- 15:06:47:361 AbreCupom( , ,  )
                TX -> [STX];01[ETX][161]
         VerificaFimImpressao: Pedindo o Status. Seq:60
         VerificaFimImpressao: ACK = 6, OK... Aguardando Bloco
   15:06:47:580 RX <- [STX];01+0000AC[152][144][146][128][128][ETX][202][STX]<34+0000AC[152][144][146][128][128][ETX][209]
-- 15:06:47:580 NumCupom
                TX -> [STX]=34|A4[ETX][154]
   15:06:47:779 RX <- [STX]=34A0004000100010[ESC]#80[ESC]#20[ESC]"450[ESC](650[ESC]-4[ETX][214][STX]=34+0000AC[152][144][146][128][128]A4[ETX]G
-- 15:06:47:780 NumCCF
                TX -> [STX]>34|I8[ETX][167]
   15:06:47:940 RX <- [STX]>34I000806/07/2013[NUL]15:06:47[NUL][NUL][ETX]W[STX]>34+0000AC[152][144][146][128][128]I8[ETX]T
Iniciando venda de item: DecimaisQtd=3; DecimaisPreco=3
Linha 2430: Aplicando RoundTo
RoundTo aplicado com sucesso
-- 15:06:48:023 VendeItem( 100 , Produto de teste 100 , II , 1 , 9,9 , 0 , un , $ , D , -1 )
                TX -> [STX]?02|1,000|100|9,900|un|I1|Produto de teste 100|T[ETX][ETX]
   15:06:48:797 RX <- [STX]?02+0000AC[152][144][146][128][128][ETX][207]
-- 15:06:48:860 GrandeTotal
                TX -> [STX]@34|A1[ETX][154]
   15:06:49:417 RX <- [STX]@34A00010[ESC]*4388040[ESC])990[ESC](66132[ETX][185][STX]@34+0000AC[152][144][146][128][128]A1[ETX]G
Iniciando venda de item: DecimaisQtd=3; DecimaisPreco=3
Linha 2430: Aplicando RoundTo
Postado

Dei uma olhada no método RoundTo, e o mesmo esta escrito em assembler. Será alguma coisa com minha máquina em específico? 

Detalhe que não havia dito antes, utilizo o componente em uma DLL.

  • Fundadores
Postado

Na Unit atual, o RoundTo não está mais na linha indicada... qual é o conteúdo da linha com o erro ?

 

Em todo caso, a Qtd = 1 e o Preço Unit = 9,9... Nenhum desses casos seriam passíveis de erro de divisão por zero, no RoundTo

 

Não está faltando algum patch para ser aplicado no seu Delphi ?

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

 

Não está faltando algum patch para ser aplicado no seu Delphi ?

 Pode ser, vou verificar isso.

No Lazarus o erro não ocorre, mas tive problemas em usar o Lazarus na dll pelo componente fazer uso da LCL.

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