feat(infra): adiciona vw_metas ao schema SAR — metas do ERP (gestao.metavenda)
View sar.vw_metas expõe gestao.metavenda com joins descritivos: - nome_vendedor (gestao.vendedor) - desc_grupo / desc_subgrupo (gestao.grupo) - nome_marca (gestao.marca) - Campos calculados: ano e mes extraídos de mes_ano (date) Campo tipo (char 2) controla o escopo da meta: G/GE=geral, GR=grupo, SG=subgrupo, MA=marca, PR=produto, AC=classe ABC DashboardService usará tipo='G' (ou equivalente) para calcular % atingido vs meta; os demais tipos ficam disponíveis para detalhamento futuro. Taxas de comissão/flex vêm de vw_representantes (taxa_com), não da tabela sar.meta_representante (que guarda apenas overrides SAR). Renumera seções 4-16 → 5-17 para acomodar vw_metas como seção 4. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user