Você está na página 1de 4

PERC_PROJETOS_E_APROVACOES

PERC_SERVICOS_PRELIMINARES
PERC_FUNDACOES
PERC_ESTRUTURA
PERC_ALVENARIA
PERC_COBERTURA
PERC_INSTALACAO_ELETRICA
PERC_INSTALACAO_HIDRAULICA
PERC_IMPERMEABILIZACAO
PERC_ESQUADRIAS
PERC_REVESTIMENTOS_ACAB
PERC_VIDROS
PERC_PINTURA
PERC_SERVICOS_COMP

'TAXAS E IMPOSTOS' = PERC_PROJETOS_E_APROVACOES


'ALVENARIA' = PERC_ALVENARIA
'COBERTURA' = PERC_COBERTURA
'ESQUADRIAS' = PERC_ESQUADRIAS
'ESTRUTURA' = PERC_ESTRUTURA
'FUNDACOES' = PERC_FUNDACOES
'GERENCIAMENTO'
'IMPERMEABILIZACAO' = PERC_IMPERMEABILIZACAO
'INSTALACAO ELETRICA' = PERC_INSTALACAO_ELETRICA
'INSTALACAO HIDRAULICA' = PERC_INSTALACAO_HIDRAULICA
'MAO DE OBRA'
'MATERIAIS ELETRICOS' =
'PINTURA' = PERC_PINTURA
'PROJETOS E APROVACOES' = PERC_PROJETOS_E_APROVACOES
'REVESTIMENTOS E ACABAMENTOS' = PERC_REVESTIMENTOS_ACAB
'SERVICOS COMPLEMENTARES' = PERC_SERVICOS_COMP
'SERVICOS PRELIMINARES' = PERC_SERVICOS_PRELIMINARES
'VIDROS' = PERC_VIDROS

if (new.cdcentro_custo = 'TAXAS E IMPOSTOS') then


new.etapa_obra = 'PERC_PROJETOS_E_APROVACOES';
end;

if (new.cdcentro_custo = 'ALVENARIA') then


new.etapa_obra ='PERC_ALVENARIA';
end;

if (new.cdcentro_custo = 'COBERTURA') then


new.etapa_obra ='PERC_COBERTURA';
end;

if (new.cdcentro_custo = 'ESQUADRIAS') then


new.etapa_obra ='PERC_ESQUADRIAS';
end;

if (new.cdcentro_custo = 'ESTRUTURA') then


new.etapa_obra ='PERC_ESTRUTURA';
end;

if (new.cdcentro_custo = 'FUNDACOES') then


new.etapa_obra ='PERC_FUNDACOES';
end;

if (new.cdcentro_custo = 'IMPERMEABILIZACAO') then


new.etapa_obra ='PERC_IMPERMEABILIZACAO';
end;

if (new.cdcentro_custo = 'INSTALACAO ELETRICA') then


new.etapa_obra ='PERC_INSTALACAO_ELETRICA';
end;

if (new.cdcentro_custo = 'INSTALACAO HIDRAULICA') then


new.etapa_obra ='PERC_INSTALACAO_HIDRAULICA';
end;

if (new.cdcentro_custo = 'PINTURA') then


new.etapa_obra ='PERC_PINTURA';
end;

if (new.cdcentro_custo = 'PROJETOS E APROVACOES') then


new.etapa_obra ='PERC_PROJETOS_E_APROVACOES';
end;

if (new.cdcentro_custo = 'REVESTIMENTOS E ACABAMENTOS') then


new.etapa_obra ='PERC_REVESTIMENTOS_ACAB';
end;

if (new.cdcentro_custo = 'SERVICOS COMPLEMENTARES') then


new.etapa_obra ='PERC_SERVICOS_COMP';
end;

if (new.cdcentro_custo = 'SERVICOS PRELIMINARES') then


new.etapa_obra ='PERC_SERVICOS_PRELIMINARES';
end;

if (new.cdcentro_custo = 'VIDROS') then


new.etapa_obra ='PERC_VIDROS';
end;

SELECT L.CDCENTRO_CUSTO, L.etapa_obra ,


SUM(L.VALOR) TOTAL FROM LANCAMENTOS L
WHERE
L.CDOBRA = 13
GROUP BY L.CDCENTRO_CUSTO, L.etapa_obra
ORDER BY L.CDCENTRO_CUSTO
SELECT X.CDCENTRO_CUSTO, X.ETAPA_OBRA, X.TOTAL,
(SELECT * FROM etapa_prevista(13,X.ETAPA_OBRA)) PREVISTO
FROM

(SELECT L.CDCENTRO_CUSTO, L.etapa_obra ,


SUM(L.VALOR) TOTAL FROM LANCAMENTOS L
WHERE
L.CDOBRA = 13
GROUP BY L.CDCENTRO_CUSTO, L.etapa_obra
ORDER BY L.CDCENTRO_CUSTO) X

create procedure etapa_prevista (vcdobra int, vcdetapa varchar(40)) returns (vperc


decimal)
as
declare variable vperc1 decimal(10,2);
begin
begin
if (:vcdetapa = 'PERC_PROJETOS_E_APROVACOES') then
select VALOR_PREVISTO * (PERC_PROJETOS_E_APROVACOES/100) from obras where cdobra
= :vcdobra into :vperc1;
vperc = vperc1;

if (:vcdetapa = 'PERC_SERVICOS_PRELIMINARES') then


select VALOR_PREVISTO * (PERC_SERVICOS_PRELIMINARES/100) from obras where cdobra
= :vcdobra into :vperc1;
vperc = vperc1;

if (:vcdetapa = 'PERC_FUNDACOES') then


select VALOR_PREVISTO * (PERC_FUNDACOES/100) from obras where cdobra = :vcdobra
into :vperc1;
vperc = vperc1;

if (:vcdetapa = 'PERC_ESTRUTURA') then


select VALOR_PREVISTO * (PERC_ESTRUTURA/100) from obras where cdobra = :vcdobra
into :vperc1;
vperc = vperc1;

if (:vcdetapa = 'PERC_ALVENARIA') then


select VALOR_PREVISTO * (PERC_ALVENARIA/100) from obras where cdobra = :vcdobra
into :vperc1;
vperc = vperc1;

if (:vcdetapa = 'PERC_COBERTURA') then


select VALOR_PREVISTO * (PERC_COBERTURA/100) from obras where cdobra = :vcdobra
into :vperc1;
vperc = vperc1;

if (:vcdetapa = 'PERC_INSTALACAO_ELETRICA') then


select VALOR_PREVISTO * (PERC_INSTALACAO_ELETRICA/100) from obras where cdobra =
:vcdobra into :vperc1;
vperc = vperc1;

if (:vcdetapa = 'PERC_INSTALACAO_HIDRAULICA') then


select VALOR_PREVISTO * (PERC_INSTALACAO_HIDRAULICA/100) from obras where cdobra
= :vcdobra into :vperc1;
vperc = vperc1;

if (:vcdetapa = 'PERC_IMPERMEABILIZACAO') then


select VALOR_PREVISTO * (PERC_IMPERMEABILIZACAO/100) from obras where cdobra
= :vcdobra into :vperc1;
vperc = vperc1;

if (:vcdetapa = 'PERC_ESQUADRIAS') then


select VALOR_PREVISTO * (PERC_ESQUADRIAS/100) from obras where cdobra = :vcdobra
into :vperc1;
vperc = vperc1;

if (:vcdetapa = 'PERC_REVESTIMENTOS_ACAB') then


select VALOR_PREVISTO * (PERC_REVESTIMENTOS_ACAB/100) from obras where cdobra
= :vcdobra into :vperc1;
vperc = vperc1;

if (:vcdetapa = 'PERC_VIDROS') then


select VALOR_PREVISTO * (PERC_VIDROS/100) from obras where cdobra = :vcdobra
into :vperc1;
vperc = vperc1;

if (:vcdetapa = 'PERC_PINTURA') then


select VALOR_PREVISTO * (PERC_PINTURA/100) from obras where cdobra = :vcdobra
into :vperc1;
vperc = vperc1;

if (:vcdetapa = 'PERC_SERVICOS_COMP') then


select VALOR_PREVISTO * (PERC_SERVICOS_COMP/100) from obras where cdobra
= :vcdobra into :vperc1;
vperc = vperc1;
suspend;
end
end

cast(PERC_SERVICOS_PRELIMINARES as decimal(15,4))/100

Você também pode gostar