ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Arredondamento + Bematech MP-2100 TH FI

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> PAF-ECF-TEF
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
elandf
Novato
Novato


Registrado: Quinta-Feira, 25 de Novembro de 2004
Mensagens: 70

MensagemEnviada: Ter Mar 02, 2010 11:50 am    Assunto: Arredondamento + Bematech MP-2100 TH FI Responder com Citação

Galera,

Estou com problema de arredondamento grave. Tenho um cupom no valor de 193,50 e na hora de finalizar o cupom (Bematech_FI_IniciaFechamentoCupom), passo um valor de desconto de 14,23%, o que me dá um valor de 165,96495. A impressora arredonda para 165,97 mas no delphi RountTo(165,96495,-2) = 165,96. É um mega problema porque o lance de arredondamento pode dar diferença de centavos e complica o desenrolar do meu sistema Paf-ecf. Esse é o link do cupom http://www.4shared.com/file/232820128/48bfcfd6/02032010190.html. Por esse motivo quando eu informo o valor em dinheiro na forma de pagamento e finaliza o cupom, automaticamente ela gera um centravo em dinheiro para compensar a diferença.

Desde já agradeço que puder me ajudar.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
daytron
Novato
Novato


Registrado: Quinta-Feira, 15 de Janeiro de 2009
Mensagens: 10

MensagemEnviada: Ter Mar 02, 2010 1:51 pm    Assunto: Responder com Citação

Acho que voce poderia passar o desconto em valor(R$) mesmo, e nao em percentual.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
elandf
Novato
Novato


Registrado: Quinta-Feira, 25 de Novembro de 2004
Mensagens: 70

MensagemEnviada: Ter Mar 02, 2010 3:19 pm    Assunto: Responder com Citação

daytron escreveu:
Acho que voce poderia passar o desconto em valor(R$) mesmo, e nao em percentual.


Obrigado pela atenção, mas a legislação exige os dois descontos, percentual e valor
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
daytron
Novato
Novato


Registrado: Quinta-Feira, 15 de Janeiro de 2009
Mensagens: 10

MensagemEnviada: Ter Mar 02, 2010 4:26 pm    Assunto: Responder com Citação

elandf escreveu:
Obrigado pela atenção, mas a legislação exige os dois descontos, percentual e valor


Como assim exige os dois descontos?
Estou desenvolvendo o PAF-ECF aqui tambem e nao estava sabendo disso. Voce poderia me explicar?

[]'s
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
elandf
Novato
Novato


Registrado: Quinta-Feira, 25 de Novembro de 2004
Mensagens: 70

MensagemEnviada: Ter Mar 02, 2010 7:43 pm    Assunto: Responder com Citação

daytron escreveu:
elandf escreveu:
Obrigado pela atenção, mas a legislação exige os dois descontos, percentual e valor


Como assim exige os dois descontos?
Estou desenvolvendo o PAF-ECF aqui tambem e nao estava sabendo disso. Voce poderia me explicar?

[]'s


Liguei para UVA(homologadora) e me informaram que não pe necessário ter desconto por % ou valor, que podemos optar por um deles ou ter os dois. O que não pode é descontos/acréscimos negativos ou nulos
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
lucas_alves
Colaborador
Colaborador


Registrado: Domingo, 30 de Agosto de 2009
Mensagens: 1632
Localização: São Gonçalo - Rio de Janeiro

MensagemEnviada: Ter Mar 02, 2010 7:59 pm    Assunto: Responder com Citação

Caso ainda queira fazer o arredondamento,

Essa função faz o que voce quer:

Código:

//Uses Math
function RoundAdvanced(Value: Extended; Decimals: integer): Extended;
var
  Factor, Fraction: Extended;
begin
  Factor := IntPower(10, Decimals);
  { A conversão para string e depois para float evita
    erros de arredondamentos indesejáveis. }
  Value := StrToFloat(FloatToStr(Value * Factor));
  Result := Int(Value);
  Fraction := Frac(Value);
  if Fraction >= 0.01 then
    Result := Result + 1;

  Result := Result / Factor;
end;


RoundAdvanced(165,96495, 2);
sera igual a 165.97

Espero ter ajudado.

Abraços!!!
_________________
Agora eu também programo em PHP.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário
pebk
Novato
Novato


Registrado: Sábado, 21 de Abril de 2007
Mensagens: 61
Localização: Araçatuba

MensagemEnviada: Sex Mar 05, 2010 10:24 pm    Assunto: Responder com Citação

Cara soh pra lembra de acordo com o Suporte da Bematech as ECF Termicas não permite Aredondamento apenas Trucamento verifique no Help tem essa Informação Correta já as ECF da Daruma é atravéz de Configuração no Registro, qualquer duvida entre em contato pelo e-mail: bragaped@gmail.com.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> PAF-ECF-TEF Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB