-- FUNCTION: public.fnc_calcula_peso_ferragem_especificacao_aux(integer, integer, integer) -- DROP FUNCTION IF EXISTS public.fnc_calcula_peso_ferragem_especificacao_aux(integer, integer, integer); CREATE OR REPLACE FUNCTION public.fnc_calcula_peso_ferragem_especificacao_aux( var_filial integer, var_prox_aux_venda integer, var_seq_item 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 TRUNC(COALESCE(CASE WHEN vnd_aux_orcamento_item_especificacao.diametro_estribo = 0 THEN (TRUNC((((vnd_aux_orcamento_item_especificacao.comprimento / CASE WHEN vnd_aux_orcamento_item_especificacao.espacamento_estribo = 0 THEN 1 ELSE vnd_aux_orcamento_item_especificacao.espacamento_estribo END ) * ((vnd_aux_orcamento_item_especificacao.largura * 2) + (vnd_aux_orcamento_item_especificacao.altura * 2) + vnd_aux_orcamento_item_especificacao.acrescimo_estribo)) * pro_especificacao_vergalhao.fator_peso),6)) ELSE (TRUNC((((vnd_aux_orcamento_item_especificacao.comprimento / CASE WHEN vnd_aux_orcamento_item_especificacao.espacamento_estribo = 0 THEN 1 ELSE vnd_aux_orcamento_item_especificacao.espacamento_estribo END) * ((vnd_aux_orcamento_item_especificacao.diametro_estribo * 3.14159) + vnd_aux_orcamento_item_especificacao.acrescimo_estribo)) * pro_especificacao_vergalhao.fator_peso),6)) END ,0.000000) * vnd_aux_orcamento_item.quantidade,6) 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 pro_especificacao_vergalhao ON pro_especificacao_vergalhao.codigo = vnd_aux_orcamento_item_especificacao.cod_especificacao_estribo WHERE vnd_aux_orcamento_item.filial_orc = var_filial AND vnd_aux_orcamento_item.prox_aux_venda = var_prox_aux_venda AND vnd_aux_orcamento_item.sequencia = var_seq_item 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_especificacao_aux(integer, integer, integer) OWNER TO postgres;