Não sei se é o lugra certo para isso, mas talvez aqui consiga mais ajuda do que no forum para demais bancos. é o seguinte: vejam minha SP, ela funciona e atende a uma de minhas necessidades, mas tenho problemas para transformar em SP um código Delhpi q faz o q é mostrado nas figuras logo abaixo.
CREATE PROCEDURE MOVIMENTO (
CODIGO INTEGER)
RETURNS (
PROVENTOS NUMERIC(15,2),
DESCONTOS NUMERIC(15,2),
LIQUIDO NUMERIC(15,2),
VLRINSS NUMERIC(15,2))
AS
DECLARE VARIABLE INSS NUMERIC(15,2);
DECLARE VARIABLE IRRF NUMERIC(15,2);
DECLARE VARIABLE INSS2 NUMERIC(15,2);
DECLARE VARIABLE ALIQ NUMERIC(15,2);
DECLARE VARIABLE ALIQ2 NUMERIC(15,2);
begin
PROVENTOS = 0;
DESCONTOS = 0;
LIQUIDO = 0;
INSS = 0;
IRRF = 0;
/* ACUMULA OS PROVENTOS*/
SELECT SUM(VALOR) FROM DIGITA
WHERE (CODFUN=:CODIGO) and (TIPO='P')
INTO :PROVENTOS;
/* ACUMULAR DESCONTOS */
SELECT SUM(VALOR) FROM DIGITA
WHERE (CODFUN =:CODIGO) AND (TIPO='D')
INTO :DESCONTOS;
SELECT VALOR,ALIQ, VALOR2, ALIQ2 FROM TABELAS
INTO :INSS, :ALIQ, :INSS2, :ALIQ2;
if (INSS IS NULL) then
INSS = 0;
if (IRRF IS NULL) then
IRRF = 0;
if (Proventos <= INSS2) then
begin
VLRINSS=(PROVENTOS*ALIQ)/100;
end
else
begin
VLRINSS=(PROVENTOS*ALIQ2)/100;
end
DESCONTOS = DESCONTOS + VLRINSS;
LIQUIDO = (PROVENTOS - DESCONTOS);
SUSPEND;
end Agora vejam o q quero, quero uma SP em Interbase, q me faça os calculos para q fique igual as imagens abaixo: Tela de lançamento dos eventos manualmente, nada de INSS/IRRF/FGTS Tela com os funcionários e os eventos lançados manualmente e um evento calculado pelo sistema, isso foi feito via código 100% Delphi, quero q uma SP faça isso tb, mas não consigo ter uma idéia de como fazer isso. Aqui é o comprovante de pagamento com todos os calculos feitos pelo sistema, com códigos Delphi, fiz legal, mas quero rodar dentro do BD, em uma SP, pois ficará mais rápido. Se alguém puder me ajudar.