[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