-- FUNCTION: public.fnc_calcula_peso_ferragem_detalhe_dimensao_aux(integer, integer, integer, integer, integer) -- DROP FUNCTION IF EXISTS public.fnc_calcula_peso_ferragem_detalhe_dimensao_aux(integer, integer, integer, integer, integer); CREATE OR REPLACE FUNCTION public.fnc_calcula_peso_ferragem_detalhe_dimensao_aux( var_filial integer, var_prox_aux_vnd integer, var_seq_item integer, var_seq_dimensao integer, var_sequencia_detalhe integer) RETURNS numeric LANGUAGE 'plpgsql' COST 100 VOLATILE PARALLEL UNSAFE AS $BODY$ DECLARE var_peso numeric; BEGIN SELECT (SUM(valor)) AS valor INTO var_peso FROM ( ( SELECT COALESCE(CASE WHEN vnd_aux_orcamento_item_especificacao.largura = 0 AND vnd_aux_orcamento_item_especificacao.diametro_estribo = 0 THEN (TRUNC(((((((vnd_aux_orcamento_item_especificacao.comprimento + vnd_aux_orcamento_item_especificacao.altura) * 2) + vnd_aux_orcamento_item_especificacao.acrescimo) * pro_especificacao_vergalhao.fator_peso) * vnd_aux_orcamento_item_especificacao_detalhe.quantidade) * vnd_aux_orcamento_item.quantidade),6)) ELSE (TRUNC((((vnd_aux_orcamento_item_especificacao.comprimento + vnd_aux_orcamento_item_especificacao.acrescimo) * pro_especificacao_vergalhao.fator_peso) * vnd_aux_orcamento_item_especificacao_detalhe.quantidade) * vnd_aux_orcamento_item.quantidade,6)) END ,0.000000) AS valor FROM vnd_aux_orcamento_item LEFT JOIN vnd_aux_orcamento_item_especificacao ON vnd_aux_orcamento_item_especificacao.filial = vnd_aux_orcamento_item.filial_orc AND vnd_aux_orcamento_item_especificacao.prox_aux_venda = vnd_aux_orcamento_item.prox_aux_venda AND vnd_aux_orcamento_item_especificacao.sequencia_item = vnd_aux_orcamento_item.sequencia LEFT JOIN vnd_aux_orcamento_item_especificacao_detalhe ON vnd_aux_orcamento_item_especificacao_detalhe.filial = vnd_aux_orcamento_item.filial_orc AND vnd_aux_orcamento_item_especificacao_detalhe.prox_aux_venda = vnd_aux_orcamento_item.prox_aux_venda AND vnd_aux_orcamento_item_especificacao_detalhe.sequencia_item = vnd_aux_orcamento_item.sequencia AND vnd_aux_orcamento_item_especificacao_detalhe.sequencia_dimensao = vnd_aux_orcamento_item_especificacao.sequencia_dimensao LEFT JOIN pro_especificacao_vergalhao ON pro_especificacao_vergalhao.codigo = vnd_aux_orcamento_item_especificacao_detalhe.cod_especificacao WHERE vnd_aux_orcamento_item.filial_orc = var_filial AND vnd_aux_orcamento_item.prox_aux_venda = var_prox_aux_vnd AND vnd_aux_orcamento_item.sequencia = var_seq_item AND vnd_aux_orcamento_item_especificacao.sequencia_dimensao = var_seq_dimensao AND vnd_aux_orcamento_item_especificacao_detalhe.sequencia = var_sequencia_detalhe AND pro_especificacao_vergalhao.produto_ref IS NOT NULL ) ) AS tabaux WHERE valor > 0; RETURN var_peso; END; $BODY$; ALTER FUNCTION public.fnc_calcula_peso_ferragem_detalhe_dimensao_aux(integer, integer, integer, integer, integer) OWNER TO postgres;