[firebase-br] Res: Duvida com Trigger

Jáber - CPD cpd em lekagi.com.br
Sex Jul 17 09:12:33 -03 2009


Olá pessoal. 

Consegui resolver o problema depois de uma pesquisa nas mensagens antigas da
lista. 

Usei o TRUNC para resolver: 

new.vlripi = Trunc(((new.percipi * new.total)/100),2); 

 

Abraço ... 

 

 

-------Mensagem original------- 

 

De: Jáber - CPD 

Data: 16/07/2009 14:44:16 

Para: FireBase 

Assunto: [firebase-br] Duvida com Trigger 

 

Olá pessoal 

 

Tenho a trigger abaixo para calcular o valor de um determinado imposto e 

salvar um uma tabela. 

 

O problema é que o valor está sendo arredondado. 

 

Supondo que o valor da venda é 18,80 o imposto calculado a 10% deveria ser 

gravado na tabela no valor de 1,88. 

 

O problema é que o firebird está gravando com o valor de 1,90. 

 

 

 

Como proceder para que o firebird não arredonde esse valor? 

 

Segue abaixo os detalhes da trigger. 

 

(Uso Delphi7+ZEOS+Firebird2.1.2) 

 

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

 

 

 

SET TERM ^ ; 

 

 

 

CREATE OR ALTER TRIGGER TBL_DVENDA_BIU0 FOR TBL_DVENDA 

 

ACTIVE BEFORE INSERT OR UPDATE POSITION 0 

 

AS 

 

begin 

 

select pro.ipi from tbl_produtos pro where pro.codigo = new.produto into new


percipi; 

 

new.vlripi = (new.percipi * new.total)/100; 

 

end 

 

^ 

 

 

 

SET TERM ; ^ 

 

 

 

Campos envolvidos: 

 

 

 

PERCIPI D_PERCENT NOT NULL /* D_PERCENT = NUMERIC(8,4) */, 

 

VLRIPI D_MONEY NOT NULL /* D_MONEY = NUMERIC(15,2) */, 

 

 

 

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

 

Desde já agradeço a todos.. 

 

 

 

Jáber S. C. Lima 

 

 

______________________________________________ 

FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br 

Para saber como gerenciar/excluir seu cadastro na lista, use: http://www
firebase.com.br/fb/artigo.php?id=1107 

Para consultar mensagens antigas: http://firebase.com.br/pesquisa 

 





Mais detalhes sobre a lista de discussão lista