diff --git a/scripts/sar-erp-schema.sql b/scripts/sar-erp-schema.sql index a42ce5c..710f13d 100644 --- a/scripts/sar-erp-schema.sql +++ b/scripts/sar-erp-schema.sql @@ -125,7 +125,50 @@ FROM gestao.vendedor v LEFT JOIN gestao.flex f ON f.id_vendedor = v.id_vendedor; -- ----------------------------------------------------------------------------- --- 4. Clientes (sig.corrent) +-- 4. Metas de vendas por representante (gestao.metavenda) +-- +-- tipo (char 2) define o escopo da meta — valores comuns do ERP JCS: +-- 'G' ou 'GE' → meta geral de valor (a que o dashboard usa para % atingido) +-- 'GR' → meta por grupo de produto +-- 'SG' → meta por subgrupo +-- 'MA' → meta por marca +-- 'PR' → meta por produto +-- 'AC' → meta por classe ABC +-- +-- Comissão e flex vêm de vw_representantes (taxa_com, taxa_com_super, permitir_flex). +-- sar.meta_representante só guarda overrides que não existem no ERP (ex: taxa_flex SAR). +-- ----------------------------------------------------------------------------- +CREATE OR REPLACE VIEW sar.vw_metas AS +SELECT + m.id_metavenda, + m.id_empresa, + m.mes_ano, + EXTRACT(YEAR FROM m.mes_ano)::integer AS ano, + EXTRACT(MONTH FROM m.mes_ano)::integer AS mes, + m.cod_vendedor, + v.nome AS nome_vendedor, + m.tipo, + m.qtdade, + m.valor, + m.peso, + m.vl_fator, + -- Filtros de segmento (opcionais — NULL = meta geral) + m.cod_grupo, + grp.descricao AS desc_grupo, + m.cod_subgrupo, + sub.descricao AS desc_subgrupo, + m.cod_produto, + m.cod_marca, + mrc.nome AS nome_marca, + m.classe_abc +FROM gestao.metavenda m +LEFT JOIN gestao.vendedor v ON v.codigo = m.cod_vendedor AND v.id_empresa = m.id_empresa +LEFT JOIN gestao.grupo grp ON grp.codigo = m.cod_grupo AND grp.id_empresa = m.id_empresa +LEFT JOIN gestao.grupo sub ON sub.codigo = m.cod_subgrupo AND sub.id_empresa = m.id_empresa +LEFT JOIN gestao.marca mrc ON mrc.codigo = m.cod_marca AND mrc.id_empresa = m.id_empresa; + +-- ----------------------------------------------------------------------------- +-- 5. Clientes (sig.corrent) -- ----------------------------------------------------------------------------- CREATE OR REPLACE VIEW sar.vw_clientes AS SELECT @@ -167,7 +210,7 @@ SELECT FROM sig.corrent c; -- ----------------------------------------------------------------------------- --- 5. Municípios +-- 6. Municípios -- ----------------------------------------------------------------------------- CREATE OR REPLACE VIEW sar.vw_municipios AS SELECT @@ -178,7 +221,7 @@ SELECT FROM gestao.municipio; -- ----------------------------------------------------------------------------- --- 6. Formas de Pagamento +-- 7. Formas de Pagamento -- ----------------------------------------------------------------------------- CREATE OR REPLACE VIEW sar.vw_formas_pagamento AS SELECT @@ -197,7 +240,7 @@ SELECT FROM gestao.formapag; -- ----------------------------------------------------------------------------- --- 7. Produtos (catálogo com grupo, subgrupo, marca, tributação) +-- 8. Produtos (catálogo com grupo, subgrupo, marca, tributação) -- ----------------------------------------------------------------------------- CREATE OR REPLACE VIEW sar.vw_produtos AS SELECT @@ -244,7 +287,7 @@ LEFT JOIN gestao.st st ON st.codigo = p.cod_st WHERE p.id_erp IS NOT NULL; -- ----------------------------------------------------------------------------- --- 8. Estoque calculado (respeita tp_estoque da configuração SAR) +-- 9. Estoque calculado (respeita tp_estoque da configuração SAR) -- ----------------------------------------------------------------------------- CREATE OR REPLACE VIEW sar.vw_estoque AS SELECT @@ -275,7 +318,7 @@ WHERE p.id_erp IS NOT NULL AND (sub.produto_variacao = 0 OR p.id_prodvinc > 0); -- ----------------------------------------------------------------------------- --- 9. Situação Tributária ICMS-ST +-- 10. Situação Tributária ICMS-ST -- ----------------------------------------------------------------------------- CREATE OR REPLACE VIEW sar.vw_sticms AS SELECT @@ -295,7 +338,7 @@ FROM gestao.sticms si JOIN gestao.st st ON st.id_st = si.id_st; -- ----------------------------------------------------------------------------- --- 10. Pautas de Preço +-- 11. Pautas de Preço -- ----------------------------------------------------------------------------- CREATE OR REPLACE VIEW sar.vw_pautas AS SELECT @@ -324,7 +367,7 @@ SELECT FROM gestao.pauta p; -- ----------------------------------------------------------------------------- --- 11. Produtos por Pauta (preços específicos por pauta) +-- 12. Produtos por Pauta (preços específicos por pauta) -- ----------------------------------------------------------------------------- CREATE OR REPLACE VIEW sar.vw_pauta_produtos AS SELECT @@ -339,7 +382,7 @@ SELECT FROM gestao.pauxpro pp; -- ----------------------------------------------------------------------------- --- 12. Pedidos históricos do ERP (sig.pedidos — somente leitura) +-- 13. Pedidos históricos do ERP (sig.pedidos — somente leitura) -- ----------------------------------------------------------------------------- CREATE OR REPLACE VIEW sar.vw_pedidos_erp AS SELECT @@ -391,7 +434,7 @@ LEFT JOIN gestao.pauta pau ON pau.codigo = p.cod_pauta END; -- ----------------------------------------------------------------------------- --- 13. Itens dos Pedidos ERP (sig.peditens — somente leitura) +-- 14. Itens dos Pedidos ERP (sig.peditens — somente leitura) -- ----------------------------------------------------------------------------- CREATE OR REPLACE VIEW sar.vw_peditens_erp AS SELECT @@ -415,7 +458,7 @@ SELECT FROM sig.peditens i; -- ----------------------------------------------------------------------------- --- 14. Contas a Receber (sig.ctr — situação financeira do cliente) +-- 15. Contas a Receber (sig.ctr — situação financeira do cliente) -- ----------------------------------------------------------------------------- CREATE OR REPLACE VIEW sar.vw_ctr AS SELECT @@ -437,7 +480,7 @@ SELECT FROM sig.ctr c; -- ----------------------------------------------------------------------------- --- 15. Grupos de Produtos +-- 16. Grupos de Produtos -- ----------------------------------------------------------------------------- CREATE OR REPLACE VIEW sar.vw_grupos AS SELECT @@ -451,7 +494,7 @@ SELECT FROM gestao.grupo; -- ----------------------------------------------------------------------------- --- 16. Marcas +-- 17. Marcas -- ----------------------------------------------------------------------------- CREATE OR REPLACE VIEW sar.vw_marcas AS SELECT