- sar-erp-schema.sql: corrige grupo.nome (era descricao), tp_pauta inexistente
em pauxpro, COALESCE(id_empresa,1) em vw_clientes para bancos single-tenant,
e nome do cliente via COALESCE(NULLIF(TRIM(nome),''), TRIM(razao))
- WorkspacePrismaPool: PrismaPg({ schema: 'sar' }) + options search_path=sar
para ORM e queries raw funcionarem no schema correto
- JwtAuthGuard: força DEV_REP_CODE/DEV_EMPRESA_ID em não-prod — filtro
global sem tocar em nenhum service
- env.schema: adiciona DEV_REP_CODE e DEV_EMPRESA_ID com defaults 29 e 1
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
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>
Cria scripts/sar-erp-schema.sql com tudo no schema sar:
- 15 views de leitura (vw_clientes, vw_produtos, vw_estoque, vw_pautas,
vw_representantes, vw_empresas, vw_ctr, vw_pedidos_erp, etc.) que
espelham gestao.* e sig.* sem modificar o ERP
- Tabelas de escrita SAR: pedidos, pedido_itens, historico_pedido,
alcada_desconto, meta_representante, push_subscription
- Índices e grants comentados prontos para prod
Arquitetura: SAR on-prem no mesmo PostgreSQL do ERP (módulo SIG).
Substitui ADR 0006 (BD-por-workspace separado) — workspace = id_empresa.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>