# As telas do Sankhya — de onde vem o número que a pessoa vê
> QUANDO LER: quando ela **citar uma tela, um card ou um painel do Sankhya** — ou quando o seu número tiver de bater com o que ela vê na tela dela.

## A regra de ouro

**Se a pessoa olha uma tela todo dia, o número dela é essa tela.** Não adianta você somar
"do seu jeito" e entregar diferente — vai parecer que você errou (ou pior: ela vai achar que o
sistema dela errou). **Descubra a consulta que a tela roda e reproduza.** Dá pra fazer isso
inteiro pelo banco, sem navegador.

## Como achar a fonte de qualquer tela, painel ou card (só leitura)

| O que é | Onde mora o SQL |
|---|---|
| **Painel / dashboard (gadget)** | `sankhya.TSIGDG` — `TITULO`, e o **`CONFIG`** (XML) traz a consulta inteira, os filtros e as fórmulas |
| **Card de auditoria/pendência** | `sankhya.AD_TCCCAB` — `NOME`, `TELA`, `SETOR`, `ATIVO` e **`CONSULTA`** (o SQL do card) |
| **Análise / indicador** | `sankhya.TFPANA` — `NOMEANALISE`, `SQLCONSULTA` |
| **Consulta salva (DBExplorer)** | `sankhya.TSIDBQUERY` — `TITULOQUERY`, `TEXTOQUERY` |

Receita:

```sql
-- 1) achar o painel pelo nome
SELECT NUGDG, TITULO, CATEGORIA, ATIVO FROM sankhya.TSIGDG
WHERE TITULO LIKE '%Resumo%Vendas%' ORDER BY NUGDG;

-- 2) ler a definição (vem grande; leia por pedaços)
SELECT CAST(CONFIG AS VARCHAR(MAX)) FROM sankhya.TSIGDG WHERE NUGDG = 457;
```

Dentro do `CONFIG` a consulta vem em blocos `<![CDATA[ ... ]]>`, com os parâmetros da tela
(`:P_DT.INI`, `:P_DT.FIN`, `:VISAO1`, `:P_CODEMPALIANCA`…). **Troque o parâmetro por um valor
literal e a consulta roda.**

Existe também a tela **Monitor de Consultas** (Configurações » Avançado), que grava o SQL ao
vivo enquanto alguém opera. Serve pra tela nativa; **pra painel/card, ler o banco é mais rápido
e mais confiável.**

## As telas que essa casa realmente usa

| Tela | Gadget | O que é / de onde puxa |
|---|---|---|
| **Resumo Geral de Vendas 2.0** | `NUGDG 457` | **A referência de venda de concreto.** Lê `CND_VGF_AD_VENDAS`. Detalhe abaixo |
| Resumo Geral de Vendas Diretoria 2.0 / 2.1 | 461 / 505 | mesma coisa, corte de diretoria (`CND_VGF_AD_VENDAS_DIR`) |
| **Análise de Vendas São José 2.0** | `NUGDG 500` | cimento — lê `AD_CND_VGFFAT` (ver `sankhya-cimento.md`) |
| Comparativo Mensal de Vendas | 401 | |
| Tabelão de Vendas / da Saroo | 451 / 312 | grade analítica |
| Card Pendências Auditoria 2.0 | — | fila de pendências (`AD_TCCCAB`) |
| Fechamento Empresarial (Entre Alianças) | — | quem deve a quem (`AD_FECHAMENTO_ALIANCAS`) |

## O "Resumo Geral de Vendas 2.0" — como ele pensa (copie isto)

É o painel que a casa usa pra tudo em concreto. Vale a pena imitar a **lógica** dele:

- **Fonte:** `CND_VGF_AD_VENDAS` (a tabela snapshot — não a view. Por isso a tela é rápida).
- **Dois níveis de visão** (`VISÃO 1` e `VISÃO 2`), que o usuário escolhe: **Vendedor · Aliança ·
  Ano/Mês · Cidade · Grupo de formulação · Grupo econômico · Parceiro · Ponto de carga · Produto ·
  Tipo de produto · Usina.** Clica na linha da Visão 1 e abre a Visão 2 dentro dela; clica de novo
  e abre os **itens do pedido** (nota a nota).
- **Filtros:** período (padrão = **do 1º dia do mês até ontem**), tipo de serviço, tipo de produto,
  vendedor, aliança, cidade, usina, cliente, grupo econômico, contrato, pedido, entrega, DANFE.
- **As medidas — e é daqui que sai o jeito certo de calcular:**

| Coluna da tela | Fórmula exata |
|---|---|
| Volume | `SUM(QUANTIDADE)` |
| Faturamento | `SUM(VALORTOTALSERVICO)` |
| **Preço médio** | `SUM(VALORTOTALSERVICO) / SUM(QUANTIDADE)` |
| **Margem média** | `(SUM(VALORTOTALSERVICO) − SUM(MCCVIAGEM)) / SUM(QUANTIDADE)` |
| Nº de viagens | `SUM(CASE WHEN TIPODESERVICO='CONCRETO' THEN 1 ELSE 0 END)` |
| Média por viagem | `SUM(QUANTIDADE) / nº de viagens` |
| Volume/dia | `SUM(QUANTIDADE) / total de dias do período` (pesados por `AD_CONTAGEMDIAS`) |
| Volume e faturamento **projetados** | valor até hoje ÷ dias corridos × dias do mês (pesos de `AD_CONTAGEMDIAS`) |
| Preço médio de bomba / adicional | `SUM(VALOR_BOMBAS) / (nº de linhas com valor > 0)` |
| PLV/m³, MLV/m³, MCLV/m³, ISS/m³, prêmio/m³ | `SUM(<coluna>) / SUM(QUANTIDADE)` |

> **Nenhuma taxa é média de coluna.** Toda taxa é **soma dividida por soma**. É a lição que
> evita o erro de somar `VALORVENDA` (ver `sankhya-vendas.md`).
>
> Divisão segura: o banco tem `SANKHYA.SNK_DIVIDIR(a,b)` e `SANKHYA.AD_DIVIDE(a,b)`.

## Dash ou tela? (a pessoa fala como se você soubesse)

- **DASH (painel):** tem **lápis** no canto e **filtros numa lateral que abre/fecha** (às vezes vem
  recolhida — encoste no canto esquerdo que ela aparece). É consulta/indicador.
- **TELA:** abre com "Novo registro / Mostrar grade / Filtrar". É cadastro/operação.

## Quando ela pedir "um painel igual ao do Sankhya"

Você **não** cria dashboard dentro do Sankhya (isso é feito no Construtor de Componentes de BI,
lá dentro do ERP, e você não escreve no banco). O que você faz: **monta a página você mesmo** e
entrega o link (ver o caderno `painel.md`). Mas **use a mesma consulta e as mesmas fórmulas da
tela** — assim o número bate e a pessoa confia.

E o essencial: **antes de mostrar, confira contra uma referência** (a linha do fechamento, o
total da tela). Painel bonito com número errado é pior que nenhum painel.

---

## O que eu aprendi (meu caderno)

*A tela que esta pessoa olha todo dia, o gadget dela, o número que ela espera. Uma linha por coisa.*
