Escolar Documentos
Profissional Documentos
Cultura Documentos
produto_permite_venda_f(bigint, bigint,
text);
DECLARE
v_empresa BIGINT;
v_resultado BOOLEAN;
v_distribuidora BIGINT;
v_permite_venda BOOLEAN;
BEGIN
IF $2 IS NULL THEN
SELECT empresa INTO v_empresa FROM empresa_local;
ELSE
v_empresa := $2;
END IF;
IF $3 IS NULL THEN
RETURN TRUE;
END IF;
-- Se codigo do produto
SELECT count(*) > 0 INTO v_resultado FROM produto p WHERE p.grid = $1
AND p.codigo = $3;
IF v_resultado THEN
RETURN TRUE;
END IF;
-- Verifica produto_livre
IF NOT v_resultado THEN
SELECT count(*) > 0 into v_resultado FROM
exc_ipp_produto_livre eipl
JOIN exc_ipp_produto_livre_empresa eiple ON
eiple.produto_livre = eipl.grid
WHERE eiple.empresa = v_empresa AND eipl.produto = $1
AND NOT EXISTS (
SELECT 1 FROM produto_distribuidora pd
JOIN exc_ipp_produto eip ON eip.grid =
pd.produto_dist
JOIN exc_ipp_produto_empresa eipe ON
eipe.produto = eip.grid
WHERE pd.produto = $1 AND
pd.distribuidora = 1 AND eipe.empresa = v_empresa LIMIT 1
);
END IF;
RETURN v_resultado;
RETURN v_resultado;
END IF;
RETURN TRUE;
END;
$BODY$;