Files
tracksteel_app/supabase/migrations/20250726165041-3540f745-5213-4155-880d-16199bceb9c0.sql

43 lines
1.1 KiB
PL/PgSQL

-- Corrigir a função para buscar prioridades corretamente pela configuração
CREATE OR REPLACE FUNCTION public.calcular_prioridades_pecas_bulk()
RETURNS TABLE(peca_id uuid, prioridade_mais_alta text)
LANGUAGE plpgsql
SECURITY DEFINER
AS $$
BEGIN
RETURN QUERY
WITH prioridades_hierarquia AS (
SELECT 'P1' as prioridade, 1 as ordem
UNION ALL
SELECT 'P2' as prioridade, 2 as ordem
UNION ALL
SELECT 'P3' as prioridade, 3 as ordem
UNION ALL
SELECT 'P4' as prioridade, 4 as ordem
),
pecas_com_prioridades AS (
SELECT
p.id as peca_id,
COALESCE(
(
SELECT pc.codigo
FROM itens_prioridade_fabricacao ipf
JOIN prioridades_fabricacao pf ON ipf.prioridade_fabricacao_id = pf.id
JOIN prioridades_config pc ON pf.prioridade_id = pc.id
JOIN prioridades_hierarquia ph ON pc.codigo = ph.prioridade
WHERE ipf.peca_id = p.id
ORDER BY ph.ordem ASC
LIMIT 1
),
'P4'
) as prioridade_mais_alta
FROM pecas p
)
SELECT
pcp.peca_id,
pcp.prioridade_mais_alta
FROM pecas_com_prioridades pcp;
END;
$$;