DW FórmulaCerta Fagron Tech · FórmulaCerta
FórmulaCerta
Documentação para parceiros · FórmulaCerta

DW FórmulaCerta

A extração de dados do FórmulaCerta entrega as informações da farmácia em um data warehouse (DW) organizado para análise: orçamentos, pedidos, receitas, fórmulas, caixa, fiscal, estoque, entregas e cadastros, prontos para alimentar BI, relatórios e integrações.

Esta documentação descreve o modelo de dados: as 65 tabelas e seus 843 campos, as chaves e os relacionamentos, o uso de cada tabela no Power BI e consultas SQL reais de exemplo.

Introdução

Sobre a extração do FórmulaCerta

A extração de dados do FórmulaCerta disponibiliza as informações da farmácia em um data warehouse (DW) relacional. Os dados saem da base operacional do sistema, passam por rotinas de carga e de transformação e ficam organizados em três schemas — dados, dw e config.

É um modelo de leitura: as tabelas são mantidas pelas rotinas de carga, e o consumo é feito por consultas SQL e por ferramentas de BI. Esta documentação é a referência desse modelo.

FórmulaCerta e phusion são produtos distintos, com modelos de extração diferentes. Para a extração do phusion, consulte a API de Extração de Dados · phusion.

Para quem é esta documentação

Para a equipe técnica do parceiro responsável por construir e manter análises e integrações sobre os dados do FórmulaCerta: analistas de BI, engenheiros de dados e desenvolvedores. Os exemplos usam SQL e podem ser adaptados a qualquer ferramenta que consulte o DW.

O que você encontra aqui

Dicionário de dados

Cada tabela com a descrição do conteúdo, os campos, os tipos e a indicação de preenchimento obrigatório.

Chaves e relacionamentos

Chaves primárias, índices e as ligações entre tabelas — as usadas pelo Power BI e as inferidas do SQL.

Consultas de exemplo

19 consultas SQL reais, que mostram como cruzar orçamentos, pedidos, clientes, prescritores e metas.

Como usar esta documentação

  1. 1 · Entenda as camadasVeja em Visão geral o papel dos schemas dados, dw e config.
  2. 2 · Localize a tabelaUse o Catálogo de tabelas ou a busca do menu para chegar à tabela que contém o dado de que você precisa.
  3. 3 · Confira os camposNa seção da tabela, verifique tipos, obrigatoriedade e descrição de cada campo (Como ler as tabelas).
  4. 4 · Monte as junçõesUse as chaves e os relacionamentos da própria tabela e os Relacionamentos do Power BI.
  5. 5 · Parta de um exemploAdapte uma das consultas de exemplo ao seu cenário.

Esta documentação cobre o modelo de dados. As informações de conexão e as credenciais de acesso são tratadas diretamente com a equipe da Fagron Tech (ver Suporte).

Introdução

Visão geral

O fluxo principal carrega as bases operacionais no schema dados, transforma as estruturas analíticas no schema dw e mantém os parâmetros e o controle de execução no schema config. O Power BI consome principalmente o dw, algumas dimensões de dados e as tabelas de configuração.

65

Tabelas documentadas

843

Campos documentados

92

Tabelas no modelo do Power BI

67

Relacionamentos no Power BI

36

Páginas do relatório

Três schemas

SchemaPapelTabelas
dadosBase operacional carregada do FórmulaCerta: fatos (movimentos), dimensões (cadastros) e bases intermediárias.46
dwCamada analítica: fatos consolidados, vínculos entre orçamento e pedido, calendário e classificações.16
configParâmetros e controle das rotinas de carga e transformação.3

Grupos de tabelas

GrupoConteúdoTabelas
Fatos operacionaisTabelas de movimento carregadas da base operacional do FórmulaCerta para o schema dados: orçamentos, pedidos, receitas, fórmulas, caixa, fiscal, estoque, entregas, visitas e comissões.21
Dimensões operacionaisCadastros de apoio do schema dados, usados para descrever e filtrar os fatos: clientes, prescritores, filiais, funcionários, produtos, formas farmacêuticas e convênios.18
Bases intermediáriasTabelas de passagem do schema dados, usadas como etapa de preparação antes da transformação final (atendimento Mobi e bases de varejo).7
Camada analítica (DW)Tabelas do schema dw, já transformadas para análise: fatos consolidados, vínculos entre orçamento e pedido, calendário e classificações (ABC e RFV). É a camada mais consumida pelo Power BI.16
Configuração e controleTabelas do schema config, com os parâmetros e o controle de execução das rotinas de carga e transformação.3

O script de carga quase não declara chaves estrangeiras. Por isso, esta documentação separa os relacionamentos reais do Power BI das relações inferidas pelo SQL e pelos nomes dos campos. Os relacionamentos do Power BI são os mais confiáveis para entender como o relatório navega pelos dados.

Introdução

Conceitos

TermoSignificado
FatoTabela de movimento (prefixo fat_): cada linha é um evento, como um orçamento, um pedido, um lançamento de caixa ou uma visita.
DimensãoTabela de cadastro (prefixo dim_) que descreve e filtra os fatos: cliente, prescritor, filial, produto, funcionário.
VínculoTabela do dw (prefixo link_) que unifica orçamentos e pedidos em uma mesma chave, para análises de aprovação e conversão.
OrçamentoProposta registrada no FórmulaCerta. Pode ser aprovado e gerar um pedido, ou ser reprovado.
Pedido / requisiçãoVenda efetivada de manipulação. No FórmulaCerta, o pedido é identificado pelo número da requisição.
ReceitaCada fórmula dentro de um orçamento ou pedido, identificada por uma série.
Fórmula (componentes)Os insumos que compõem uma receita, com quantidade, concentração e lote.
Identificador compostoChave formada pela junção de mais de um valor de origem (por exemplo, número e filial), como id_pedido, id_orcamento e crm.
VarejoVenda de produtos acabados (revenda), separada da manipulação.
RomaneioDocumento de entrega, com destino, itens e valores.
VisitadorFuncionário responsável pelas visitas de relacionamento a prescritores.
MobiCanal de atendimento e pedidos web integrado ao FórmulaCerta.
RFVClassificação de clientes por recência, frequência e valor de compra.
Curva ABCClassificação de prescritores pela participação acumulada no valor dos orçamentos.

Introdução

Como ler as tabelas

Cada tabela tem a sua própria seção, com um quadro de propriedades, a lista de campos e, quando existem, as chaves e os relacionamentos.

Quadro de propriedades

PropriedadeSignificado
SchemaCamada em que a tabela está: dados, dw ou config.
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE) ou gerada por consulta e recriada a cada transformação (CREATE TABLE AS SELECT).
Rotina de cargaRotina do DW que carrega ou transforma a tabela.
Uso no Power BINome com que a tabela é importada no modelo do Power BI, quando é importada.

Colunas da lista de campos

ColunaSignificado
CampoNome da coluna, exatamente como está no DW.
TipoTipo SQL declarado (varchar, numeric, int4, date…). Quando a estrutura não é declarada no script de carga, o tipo exibido é o do modelo do Power BI (texto, decimal, inteiro, data/hora).
Obrig.Sim para colunas NOT NULL; Não para colunas que aceitam nulo; — quando a informação não está declarada.
DescriçãoSignificado do campo.
Power BIIndica se o campo é usado no modelo do Power BI. · soma sinaliza agregação padrão por soma; Coluna calculada indica um campo criado no próprio modelo, que não existe no DW.

Convenções de nomes

  • Prefixos de tabela: fat_ (fato), dim_ (dimensão), link_ (vínculo) e base_ (base intermediária).
  • Campos id_* são identificadores usados nas junções; vários são compostos e do tipo texto.
  • Muitos campos mantêm a sigla original do FórmulaCerta: cd* (código), nr* (número), qt* (quantidade), vr* (valor), pr* (preço), pt* (percentual), dt* (data), hr* (hora), tp* (tipo), ind* e flag* (indicadores).
  • Campos sn_* são indicadores do tipo sim/não.

Quando a sigla de origem não permite afirmar o significado, a descrição informa que o campo é mantido como na base de origem e cita a sigla. Em caso de dúvida sobre um desses campos, acione o Suporte.

Modelo Power BI

Origens e páginas do relatório

O relatório do Power BI é construído sobre o DW. Esta seção mostra quais tabelas o modelo importa e com que nome, e quais páginas o relatório contém.

Origens importadas pelo modelo

Uma mesma tabela do DW pode ser importada mais de uma vez, com nomes diferentes, para desempenhar papéis distintos no modelo.

Tabela no DWNome no modelo
config.filiaisfiliais_config
config.parametrostab_parametros
config.processamentotab_processamento
dados.dim_captacaodim_captacao
dados.dim_clientesdim_clientes
dados.dim_clientes_enderecosdim_clientes_enderecos
dados.dim_filiaisdim_filiais, dim_filiais_cadastro, dim_filiais_requisicao
dados.dim_forma_farmaceuticadim_forma_farmaceutica
dados.dim_funcionariosdim_funcionarios
dados.dim_labdim_lab
dados.dim_medicosdim_medicos
dados.dim_produtosdim_produtos
dados.fat_caixafat_caixa
dados.fat_pagamentosfat_pagamentos
dados.fat_varejofat_varejo
dw.abc_medicos_o_valorabc_medicos_o_valor
dw.cliente_rfvcliente_rfv, cliente_rfv_historico
dw.dim_calendariodim_calendario, dim_calendario_periodo1, dim_calendario_periodo2
dw.dim_medicos_especialidadesdim_medicos_especialidades
dw.dim_visitadoresdim_visitadores
dw.fat_clientes_resumofat_clientes_resumo
dw.fat_inclusao_visitadorfat_inclusao_visitador
dw.fat_orcamentosfat_orcamentos
dw.fat_orcamentos_receitasfat_orcamentos_receitas
dw.fat_pedidosfat_pedidos
dw.fat_pedidos_receitasfat_pedidos_receitas
dw.link_orc_pedlink_orc_ped
dw.link_orc_ped_formulaslink_orc_ped_formulas
dw.link_orc_ped_receitaslink_orc_ped_receitas

Páginas identificadas

Páginas encontradas no relatório, com os nomes originais:

  • Home
  • Indicadores
  • Orçamentos
  • Orçamentos Reprovados
  • Orçamentos Hora
  • Requisições
  • Requisições Clientes
  • Revenda
  • Caixa
  • Detalhes de Caixa
  • Recebimento
  • Detalhes de Recebimento
  • Clientes
  • Clientes RFV
  • Compras de Clientes
  • Relatórios de Clientes
  • Prescritores
  • remove Pagamentos
  • remove Principal v1
  • Prescritor
  • Cliente
  • Fórmulas
  • Matriz
  • Simulador
  • Fórmulas Rejeitados
  • Comparativo
  • Visitadores - Inclusão
  • Visitadores - Visitas
  • Colaborador
  • Romaneios
  • Página 1
  • Relatório de Pedidos
  • Relatórios de Clientes
  • Indicadores SR
  • Home SR
  • Página 2

Modelo Power BI

Relacionamentos do modelo

Os 67 relacionamentos definidos no modelo do Power BI. São a referência mais confiável para montar junções entre as tabelas.

  • Direção única: o filtro se propaga apenas da tabela de destino para a de origem do relacionamento.
  • Ambas as direções: o filtro se propaga nos dois sentidos.
  • Inativo: o relacionamento existe, mas só é aplicado quando uma medida o ativa explicitamente.
  • Tabela calculada: tabela criada dentro do modelo (por exemplo, os calendários automáticos LocalDateTable_*), sem correspondente no DW.
DeParaFiltroSituação
dim_calendario.data_entrada
dw.dim_calendario
LocalDateTable_b9df084e-30dd-4cd3-b27e-e687954eb58e.Date
tabela calculada
Direção únicaAtivo
fat_clientes_resumo.dt_pri_orc
dw.fat_clientes_resumo
LocalDateTable_cf60e6eb-c631-4620-a05f-3ad8a161f435.Date
tabela calculada
Direção únicaAtivo
fat_clientes_resumo.dt_ult_orc
dw.fat_clientes_resumo
LocalDateTable_a526b133-86ff-4472-9b2a-1da2aac94b21.Date
tabela calculada
Direção únicaAtivo
fat_clientes_resumo.dt_pri_ped
dw.fat_clientes_resumo
LocalDateTable_eee5048b-2d51-483c-b0dd-3c38defa0718.Date
tabela calculada
Direção únicaAtivo
fat_clientes_resumo.dt_ult_ped
dw.fat_clientes_resumo
LocalDateTable_eac858ac-c4ca-491a-af3b-92cc0d2726da.Date
tabela calculada
Direção únicaAtivo
link_orc_ped_receitas.id_orc_ped
dw.link_orc_ped_receitas
link_orc_ped.id_orc_ped
dw.link_orc_ped
Ambas as direçõesAtivo
link_orc_ped.data_entrada
dw.link_orc_ped
dim_calendario.data_entrada
dw.dim_calendario
Direção únicaAtivo
link_orc_ped_receitas.id_forma_farmaceutica
dw.link_orc_ped_receitas
dim_forma_farmaceutica.id_forma_farmaceutica
dados.dim_forma_farmaceutica
Ambas as direçõesAtivo
dim_forma_farmaceutica.id_lab
dados.dim_forma_farmaceutica
dim_lab.id_lab
dados.dim_lab
Direção únicaAtivo
link_orc_ped.id_captacao
dw.link_orc_ped
dim_captacao.id_captacao
dados.dim_captacao
Ambas as direçõesAtivo
link_orc_ped.id_filial
dw.link_orc_ped
dim_filiais.id_filial
dados.dim_filiais
Direção únicaAtivo
fat_pedidos.id_orc_ped
dw.fat_pedidos
link_orc_ped.id_orc_ped
dw.link_orc_ped
Ambas as direçõesAtivo
fat_orcamentos.id_orc_ped
dw.fat_orcamentos
link_orc_ped.id_orc_ped
dw.link_orc_ped
Ambas as direçõesAtivo
fat_orcamentos_receitas.id_orc_ped_receitas
dw.fat_orcamentos_receitas
link_orc_ped_receitas.id_orc_ped_receitas
dw.link_orc_ped_receitas
Ambas as direçõesAtivo
dim_medicos.dtnascimento
dados.dim_medicos
LocalDateTable_07aff4ca-ed3f-44eb-9129-26b155339283.Date
tabela calculada
Direção únicaAtivo
link_orc_ped_receitas.crm
dw.link_orc_ped_receitas
dim_medicos.crm
dados.dim_medicos
Direção únicaAtivo
dim_clientes.dt_cadadastro
dados.dim_clientes
LocalDateTable_411b620f-8888-42fe-8a12-b30ad1029eff.Date
tabela calculada
Direção únicaAtivo
dim_clientes.dt_nascimento
dados.dim_clientes
LocalDateTable_5522c79a-b433-473d-b878-f914fd0ae8df.Date
tabela calculada
Direção únicaAtivo
dim_clientes.dt_alteracao
dados.dim_clientes
LocalDateTable_605936ce-526a-46a6-a243-5680829d8d22.Date
tabela calculada
Direção únicaAtivo
link_orc_ped.id_cliente
dw.link_orc_ped
dim_clientes.id_cliente
dados.dim_clientes
Direção únicaAtivo
link_orc_ped_formulas.id_orc_ped_receitas
dw.link_orc_ped_formulas
link_orc_ped_receitas.id_orc_ped_receitas
dw.link_orc_ped_receitas
Ambas as direçõesAtivo
OrcPedFormulaAux.id_orc_ped_receitas
tabela calculada
link_orc_ped_formulas.id_orc_ped_receitas
dw.link_orc_ped_formulas
Ambas as direçõesInativo
fat_pedidos_receitas.id_orc_ped_receitas
dw.fat_pedidos_receitas
link_orc_ped_receitas.id_orc_ped_receitas
dw.link_orc_ped_receitas
Ambas as direçõesAtivo
dim_medicos.crm
dados.dim_medicos
abc_medicos_o_valor.crm
dw.abc_medicos_o_valor
Ambas as direçõesAtivo
fat_inclusao_visitador.crm
dw.fat_inclusao_visitador
dim_medicos.crm
dados.dim_medicos
Ambas as direçõesAtivo
tab_processamento.data_proc
config.processamento
LocalDateTable_439056c4-099c-4ee5-ac25-fb7293924134.Date
tabela calculada
Direção únicaAtivo
tab_processamento.data_atualizacao
config.processamento
LocalDateTable_b62a0ac4-c05d-4bcb-a22a-f60dda63d6bd.Date
tabela calculada
Direção únicaAtivo
tab_processamento.periodo_de
config.processamento
LocalDateTable_893c2ee4-321a-4254-a419-db184f4b23eb.Date
tabela calculada
Direção únicaAtivo
tab_processamento.periodo_ate
config.processamento
LocalDateTable_8e3c6251-7bc7-4db6-bd7f-eecc31b3a478.Date
tabela calculada
Direção únicaAtivo
tab_processamento.data_orcamentos
config.processamento
LocalDateTable_219bc5d0-800f-42d9-a44b-a0698fea8fb0.Date
tabela calculada
Direção únicaAtivo
tab_processamento.data_pediddos
config.processamento
LocalDateTable_77c38851-7271-4260-b33b-81a51aa92949.Date
tabela calculada
Direção únicaAtivo
cliente_rfv.id_cliente
dw.cliente_rfv
dim_clientes.id_cliente
dados.dim_clientes
Ambas as direçõesAtivo
dim_calendario_periodo1.data_entrada
dw.dim_calendario
dim_calendario.data_entrada
dw.dim_calendario
Ambas as direçõesInativo
dim_calendario_periodo2.data_entrada
dw.dim_calendario
dim_calendario.data_entrada
dw.dim_calendario
Ambas as direçõesInativo
dim_clientes.id_cliente
dados.dim_clientes
fat_clientes_resumo.id_cliente
dw.fat_clientes_resumo
Ambas as direçõesAtivo
dim_clientes.dt_hora_alteracao
dados.dim_clientes
LocalDateTable_990a66de-cbe9-4234-bcb0-ce508687e159.Date
tabela calculada
Direção únicaAtivo
fat_varejo.data_venc
dados.fat_varejo
LocalDateTable_0723b659-d1a8-4b92-ae21-d5cfb5f64db5.Date
tabela calculada
Direção únicaAtivo
fat_varejo.id_filial
dados.fat_varejo
dim_filiais.id_filial
dados.dim_filiais
Direção únicaAtivo
fat_varejo.id_produto
dados.fat_varejo
dim_produtos.id_produto
dados.dim_produtos
Direção únicaAtivo
fat_varejo.data_saida
dados.fat_varejo
dim_calendario.data_entrada
dw.dim_calendario
Direção únicaAtivo
fat_varejo.data_pag
dados.fat_varejo
LocalDateTable_ec0c3a4e-761c-4d1e-89a4-3a780857045c.Date
tabela calculada
Direção únicaAtivo
fat_varejo.id_cliente
dados.fat_varejo
dim_clientes.id_cliente
dados.dim_clientes
Direção únicaAtivo
fat_varejo.crm
dados.fat_varejo
dim_medicos.crm
dados.dim_medicos
Direção únicaAtivo
fat_varejo.id_funcionario_recep
dados.fat_varejo
dim_funcionarios.id_funcionario
dados.dim_funcionarios
Direção únicaAtivo
filiais_config.id_filial
config.filiais
dim_filiais.id_filial
dados.dim_filiais
Ambas as direçõesAtivo
fat_pedidos.data_caixa
dw.fat_pedidos
LocalDateTable_6c2b2536-e85d-462d-a99f-4466943cc91a.Date
tabela calculada
Direção únicaAtivo
fat_varejo.ultima_caixa
dados.fat_varejo
LocalDateTable_1ae7df0a-5a78-4ceb-83c9-05b191905c78.Date
tabela calculada
Direção únicaAtivo
fat_caixa.data_operacao
dados.fat_caixa
dim_calendario.data_entrada
dw.dim_calendario
Direção únicaAtivo
dim_medicos_especialidades.crm
dw.dim_medicos_especialidades
dim_medicos.crm
dados.dim_medicos
Ambas as direçõesAtivo
fat_pagamentos.id_filial
dados.fat_pagamentos
dim_filiais.id_filial
dados.dim_filiais
Direção únicaAtivo
fat_pagamentos.data_operacao
dados.fat_pagamentos
dim_calendario.data_entrada
dw.dim_calendario
Direção únicaAtivo
fat_inclusao_visitador.data_inclusao
dw.fat_inclusao_visitador
LocalDateTable_e53182a8-c68c-4ed8-b38c-984e9315f512.Date
tabela calculada
Direção únicaAtivo
fat_visitas.data_visita
tabela calculada
LocalDateTable_a6a5e645-ce57-44da-b596-acc0a3c2725c.Date
tabela calculada
Direção únicaAtivo
fat_visitas.crm
tabela calculada
dim_medicos.crm
dados.dim_medicos
Ambas as direçõesAtivo
fat_romaneios.data_entrega
tabela calculada
LocalDateTable_ff299031-27eb-4cb7-b329-eb2dd77a7e6e.Date
tabela calculada
Direção únicaAtivo
fat_romaneios.data_prevista
tabela calculada
dim_calendario.data_entrada
dw.dim_calendario
Direção únicaAtivo
fat_romaneios.id_filial_entrega
tabela calculada
dim_filiais.id_filial
dados.dim_filiais
Direção únicaAtivo
fat_romaneios.id_cliente
tabela calculada
dim_clientes.id_cliente
dados.dim_clientes
Direção únicaAtivo
dim_clientes.id_filial
dados.dim_clientes
dim_filiais_cadastro.id_filial
dados.dim_filiais
Direção únicaAtivo
link_orc_ped_formulas.chave_produto
dw.link_orc_ped_formulas
config_produtos.chave
tabela calculada
Direção únicaAtivo
fat_pagamentos.id_caixa_pagamento
dados.fat_pagamentos
fat_caixa.id_caixa_pagamento
dados.fat_caixa
Ambas as direçõesAtivo
fat_caixa.id_filial_r
dados.fat_caixa
dim_filiais_requisicao.id_filial
dados.dim_filiais
Direção únicaAtivo
fat_caixa.id_filial
dados.fat_caixa
dim_filiais.id_filial
dados.dim_filiais
Direção únicaAtivo
cliente_rfv_historico.id_cliente
dw.cliente_rfv
dim_clientes.id_cliente
dados.dim_clientes
Direção únicaAtivo
link_orc_ped_formulas.cdprin
dw.link_orc_ped_formulas
dim_produtos.id_produto
dados.dim_produtos
Direção únicaAtivo
dim_clientes_enderecos.id_cliente
dados.dim_clientes_enderecos
dim_clientes.id_cliente
dados.dim_clientes
Ambas as direçõesAtivo
link_orc_ped_receitas.id_funcionario
dw.link_orc_ped_receitas
dim_funcionarios.id_funcionario
dados.dim_funcionarios
Direção únicaAtivo

Modelo Power BI

Tabelas auxiliares do Power BI

Estas tabelas aparecem no modelo do Power BI, mas não são geradas diretamente pelo script de carga do DW. Em geral são tabelas de medidas, parâmetros, calendários locais, tabelas desconectadas ou consultas auxiliares.

Tabela no modeloOrigemColunasMedidas
Análise Estatística PedidosCalculada/auxiliar30
CaptacaoFormaFarmaceuticaCalculada/auxiliar30
Data AutomáticaCalculada/auxiliar30
Data DinâmicaCalculada/auxiliar30
Data Dinâmica 2Calculada/auxiliar30
Data Dinâmica 3Calculada/auxiliar30
DateTableTemplate_17800c8b-9e74-494f-a4b0-a0552ad290a8Calculada/auxiliar70
Desempenho CaixaCalculada/auxiliar30
Desempenho RecebimentoCalculada/auxiliar30
Desempenho Vendas VarejoCalculada/auxiliar30
DesempenhoOrçamentosCalculada/auxiliar30
DesempenhoVendasCalculada/auxiliar30
Dimensão DinâmicaCalculada/auxiliar30
Dimensão Dinâmica 2Calculada/auxiliar30
Dimensão Dinâmica CaixaCalculada/auxiliar30
Dimensão Dinâmica FórmulasCalculada/auxiliar30
Dimensão Dinâmica HomeCalculada/auxiliar30
Dimensão Dinâmica PagamentosCalculada/auxiliar30
Dimensão Dinâmica RomaneioCalculada/auxiliar30
Dimensão Dinâmica VarejoCalculada/auxiliar30
Dimensão Dinâmica eCalculada/auxiliar30
Dimensão PrescritorCalculada/auxiliar30
Filtro ParticipaçãoCalculada/auxiliar11
LocalDateTable_0723b659-d1a8-4b92-ae21-d5cfb5f64db5Calculada/auxiliar70
LocalDateTable_07aff4ca-ed3f-44eb-9129-26b155339283Calculada/auxiliar70
LocalDateTable_1ae7df0a-5a78-4ceb-83c9-05b191905c78Calculada/auxiliar70
LocalDateTable_219bc5d0-800f-42d9-a44b-a0698fea8fb0Calculada/auxiliar70
LocalDateTable_411b620f-8888-42fe-8a12-b30ad1029effCalculada/auxiliar70
LocalDateTable_439056c4-099c-4ee5-ac25-fb7293924134Calculada/auxiliar70
LocalDateTable_5522c79a-b433-473d-b878-f914fd0ae8dfCalculada/auxiliar70
LocalDateTable_605936ce-526a-46a6-a243-5680829d8d22Calculada/auxiliar70
LocalDateTable_6c2b2536-e85d-462d-a99f-4466943cc91aCalculada/auxiliar70
LocalDateTable_77c38851-7271-4260-b33b-81a51aa92949Calculada/auxiliar70
LocalDateTable_893c2ee4-321a-4254-a419-db184f4b23ebCalculada/auxiliar70
LocalDateTable_8e3c6251-7bc7-4db6-bd7f-eecc31b3a478Calculada/auxiliar70
LocalDateTable_990a66de-cbe9-4234-bcb0-ce508687e159Calculada/auxiliar70
LocalDateTable_a526b133-86ff-4472-9b2a-1da2aac94b21Calculada/auxiliar70
LocalDateTable_a6a5e645-ce57-44da-b596-acc0a3c2725cCalculada/auxiliar70
LocalDateTable_b62a0ac4-c05d-4bcb-a22a-f60dda63d6bdCalculada/auxiliar70
LocalDateTable_b9df084e-30dd-4cd3-b27e-e687954eb58eCalculada/auxiliar70
LocalDateTable_cf60e6eb-c631-4620-a05f-3ad8a161f435Calculada/auxiliar70
LocalDateTable_e53182a8-c68c-4ed8-b38c-984e9315f512Calculada/auxiliar70
LocalDateTable_eac858ac-c4ca-491a-af3b-92cc0d2726daCalculada/auxiliar70
LocalDateTable_ec0c3a4e-761c-4d1e-89a4-3a780857045cCalculada/auxiliar70
LocalDateTable_eee5048b-2d51-483c-b0dd-3c38defa0718Calculada/auxiliar70
LocalDateTable_ff299031-27eb-4cb7-b329-eb2dd77a7e6eCalculada/auxiliar70
Medida CompletaCalculada/auxiliar30
Medida Dinâmica VisitadoresCalculada/auxiliar30
Medida Orçamento DinâmicaCalculada/auxiliar30
MedidasCalculada/auxiliar0418
OrcPedFormulaAuxCalculada/auxiliar90
SimIndReprovCalculada/auxiliar11
config_produtosCalculada/auxiliar60
fat_romaneiosCalculada/auxiliar340
fat_visitasCalculada/auxiliar30
filiais_configconfig.filiais20
tab_auxCalculada/auxiliar10
tab_dimensaoCalculada/auxiliar10
tab_parametrosconfig.parametros30
tab_periodoCalculada/auxiliar20

Modelo de dados

Fatos operacionais

Tabelas de movimento carregadas da base operacional do FórmulaCerta para o schema dados: orçamentos, pedidos, receitas, fórmulas, caixa, fiscal, estoque, entregas, visitas e comissões.

TabelaCamposConteúdo
dados.fat_fiscal25Movimentos fiscais por requisição, com datas de entrada, efetivação e pagamento, valores, descontos, taxas, caixa, convênio e saldo.
dados.fat_fiscal_itens17Itens fiscais vinculados à requisição fiscal. Guarda item, tipo de recebimento, data de operação, valores, impostos e preço líquido.
dados.fat_fiscal_itens_pagto22Detalhamento das formas de pagamento dos itens fiscais, incluindo cartão, cheque, banco, parcelas, troco e valor pago.
dados.fat_fiscal_itens_caixa17Tabela ponte entre fiscal, item fiscal, forma de pagamento e caixa. Classifica o tipo de pagamento e a forma de recebimento.
dados.fat_estoque10Posição de estoque por filial e produto, com estoque mínimo, máximo, atual e preços de compra contábil/transferência.
dados.fat_caixa28Lançamentos de caixa por data/operação. Liga pedidos e vendas de varejo a filial, terminal, documento, cliente, valores líquidos, descontos e taxas.
dados.fat_inclusao_visitador4Histórico de inclusão de visitadores por CRM e funcionário.
dados.fat_orcamentos14Cabeçalho dos orçamentos por filial, cliente, captação, funcionário, convênio e valores.
dados.fat_orcamentos_receitas34Receitas/fórmulas do orçamento, com médico, funcionário digitador/recepção, paciente, valores e dados de manipulação.
dados.fat_orcamentos_formulas18Componentes/insumos das receitas de orçamento, com produto, descrição, concentração, quantidade e chave normalizada de produto.
dados.fat_pagamentos13Pagamentos de caixa por operação, terminal, filial, forma de pagamento, parcela e troco.
dados.fat_pedidos14Cabeçalho dos pedidos/requisições aprovados por filial, cliente, captação, funcionário, convênio e valores.
dados.fat_pedidos_receitas80Receitas/fórmulas dos pedidos, com vínculo opcional ao orçamento original e dados completos de paciente/produção.
dados.fat_pedidos_formulas67Componentes/insumos das receitas de pedido, incluindo lote, teor, perdas, indicadores e chave normalizada do produto.
dados.fat_visitas15Agenda e execução de visitas a médicos por visitador, datas, horas, indicadores e observações.
dados.fat_romaneios29Romaneios/entregas, destino, cliente/endereço, telefone, quantidades e valores de entrega.
dados.fat_romaneios_itens3Itens dos romaneios vinculando entrega a pedidos.
dados.fat_comissao_pedidos18Base de comissão de pedidos por funcionário, filial, pedido, recebimento e valores.
dados.fat_comissao_varejo13Base de comissão de varejo por funcionário, filial, venda e recebimento.
dados.cliente_rfv9Classificação RFV de clientes no schema operacional.
dados.fat_varejo30Fato final de varejo transformado a partir das bases de varejo e itens.

Fatos operacionais

dados.fat_fiscal

DADOS dados.fat_fiscal

Movimentos fiscais por requisição, com datas de entrada, efetivação e pagamento, valores, descontos, taxas, caixa, convênio e saldo.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_fiscal
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_fiscalvarcharSimIdentificador composto do registro fiscal, normalmente requisição e filial.—
numero_requisicaoint4SimNúmero da requisição/pedido no FórmulaCerta.—
id_filialint4SimCódigo da filial principal do registro.—
id_filial_pint4NãoCódigo da filial relacionada ao pedido/requisição, quando informado.—
tipo_requisicaovarcharNãoTipo da requisição.—
id_clienteint4NãoCódigo do cliente.—
data_entradadateNãoData de entrada do orçamento, pedido ou receita.—
valor_requisicaonumericNãoValor bruto/original da requisição.—
tipo_descontovarcharNãoTipo (código) do desconto aplicado.—
valor_descontonumericNãoValor de desconto aplicado.—
valor_recebidonumericNãoValor recebido.—
valor_saldonumericNãoSaldo em aberto.—
data_efetivacaodateNãoData de efetivação da requisição fiscal.—
data_vencimentodateNãoData de vencimento.—
data_pagamentodateNãoData de pagamento registrada.—
id_taxavarcharNãoIdentificador da taxa.—
valor_taxanumericNãoValor de taxa aplicada.—
numero_caixaint4NãoNúmero do caixa.—
numero_caixa_fiscalint4NãoNúmero do caixa no registro fiscal.—
valor_liquidonumericNãoValor líquido após descontos/taxas conforme origem.—
valor_troconumericNãoValor de troco.—
id_convenioint4NãoCódigo do convênio.—
data_pagamento_efetivodateNãoData efetiva do pagamento.—
valor_desconto_recebidonumericNãoValor de desconto já recebido.—
valor_taxa_recebidonumericNãoValor de taxa já recebido.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_cliente → dados.dim_clientes.id_cliente
  • id_filial → dados.dim_filiais.id_filial
  • id_convenio → dados.dim_convenio.id_convenio

Índices

  • fat_fiscal_idx01 (data_efetivacao, id_filial)
  • fat_fiscal_idx02 (id_filial, data_efetivacao)
  • fat_fiscal_idx03 (id_fiscal)

Fatos operacionais

dados.fat_fiscal_itens

DADOS dados.fat_fiscal_itens

Itens fiscais vinculados à requisição fiscal. Guarda item, tipo de recebimento, data de operação, valores, impostos e preço líquido.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_fiscal_itens
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_fiscalvarcharSimIdentificador composto do registro fiscal, normalmente requisição e filial.—
id_fiscal_itemvarcharSimIdentificador composto do registro fiscal e do item.—
id_filialint4SimCódigo da filial principal do registro.—
numero_requisicaoint4SimNúmero da requisição/pedido no FórmulaCerta.—
itemidint4SimIdentificador sequencial do item dentro do documento.—
tipo_recebimentovarcharNãoTipo (código) de recebimento.—
data_pagamentodateNãoData de pagamento registrada.—
data_operacaodateNãoData da operação de caixa, pagamento ou movimento.—
valor_recebidonumericNãoValor recebido.—
valor_taxanumericNãoValor de taxa aplicada.—
valor_descontonumericNãoValor de desconto aplicado.—
valor_troconumericNãoValor de troco.—
preco_unitario_liquidonumericNãoPreço unitário líquido.—
valor_ipinumericNãoValor de IPI.—
valor_icmsnumericNãoValor de ICMS.—
valor_pisnumericNãoValor de PIS.—
valor_cofinsnumericNãoValor de COFINS.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_filial → dados.dim_filiais.id_filial
  • id_fiscal → dados.fat_fiscal.id_fiscal

Índices

  • fat_fiscal_itens_idx01 (data_operacao, id_filial)
  • fat_fiscal_itens_idx02 (id_filial, data_operacao)
  • fat_fiscal_itens_idx03 (id_fiscal)
  • fat_fiscal_itens_idx04 (id_fiscal_item)

Fatos operacionais

dados.fat_fiscal_itens_pagto

DADOS dados.fat_fiscal_itens_pagto

Detalhamento das formas de pagamento dos itens fiscais, incluindo cartão, cheque, banco, parcelas, troco e valor pago.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_fiscal_itens_pagto
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_fiscalvarcharSimIdentificador composto do registro fiscal, normalmente requisição e filial.—
id_fiscal_frmidvarcharSimIdentificador composto do registro fiscal e da forma de pagamento.—
id_filialint4SimCódigo da filial principal do registro.—
numero_requisicaoint4SimNúmero da requisição/pedido no FórmulaCerta.—
frmidint4NãoIdentificador da forma de pagamento no item fiscal.—
data_operacaodateNãoData da operação de caixa, pagamento ou movimento.—
fmpagvarcharNãoCódigo da forma de pagamento.—
pagamentovarcharNãoDescrição da forma de pagamento.—
tpclivarcharNãoTipo de cliente.—
nrcpfpjvarcharNãoCPF ou CNPJ do pagador.—
cdbanvarcharNãoCódigo do banco.—
cdagevarcharNãoCódigo da agência bancária.—
cdagedcvarcharNãoDígito verificador da agência bancária.—
nrchqvarcharNãoNúmero do cheque.—
nrchqdcvarcharNãoDígito verificador do cheque.—
adcarvarcharNãoCampo mantido como na base de origem do FórmulaCerta (sigla original: adcar).—
nrcarvarcharNãoNúmero do cartão.—
vrpagnumericNãoValor pago.—
dtdepdateNãoData de depósito.—
cdadmvarcharNãoCódigo da administradora do cartão.—
nparcelaint4NãoNúmero da parcela.—
vrtrcnumericNãoValor de troco.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_filial → dados.dim_filiais.id_filial
  • id_fiscal → dados.fat_fiscal.id_fiscal

Índices

  • fat_fiscal_itens_pagto_idx01 (data_operacao, id_filial)
  • fat_fiscal_itens_pagto_idx02 (id_filial, data_operacao)
  • fat_fiscal_itens_pagto_idx03 (id_fiscal)

Fatos operacionais

dados.fat_fiscal_itens_caixa

DADOS dados.fat_fiscal_itens_caixa

Tabela ponte entre fiscal, item fiscal, forma de pagamento e caixa. Classifica o tipo de pagamento e a forma de recebimento.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_fiscal_itens_caixa
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_fiscalvarcharSimIdentificador composto do registro fiscal, normalmente requisição e filial.—
id_fiscal_itemvarcharNãoIdentificador composto do registro fiscal e do item.—
id_fiscal_frmidvarcharNãoIdentificador composto do registro fiscal e da forma de pagamento.—
id_fiscal_caixavarcharNãoIdentificador que liga o registro fiscal ao caixa.—
id_filialint4NãoCódigo da filial principal do registro.—
numero_requisicaoint4NãoNúmero da requisição/pedido no FórmulaCerta.—
frmidint4NãoIdentificador da forma de pagamento no item fiscal.—
itemidint4NãoIdentificador sequencial do item dentro do documento.—
tpitmvarcharNãoTipo do item.—
tppagvarcharNãoTipo de pagamento.—
tipo_pagamentovarcharNãoDescrição do tipo de pagamento.—
vrpagnumericNãoValor pago.—
fmpagvarcharNãoCódigo da forma de pagamento.—
pagamentovarcharNãoDescrição da forma de pagamento.—
id_filial_rint4NãoCódigo da filial da requisição ou filial de referência/recebimento.—
numero_requisicao_fpint4NãoNúmero da requisição associado à forma de pagamento.—
nrcpmidint4NãoIdentificador do cupom no caixa.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_filial → dados.dim_filiais.id_filial
  • id_filial_r → dados.dim_filiais.id_filial
  • id_fiscal → dados.fat_fiscal.id_fiscal
  • id_fiscal_item → dados.fat_fiscal_itens.id_fiscal_item
  • id_fiscal_frmid → dados.fat_fiscal_itens_pagto.id_fiscal_frmid

Índices

  • fat_fiscal_itens_caixa_idx01 (id_fiscal)
  • fat_fiscal_itens_caixa_idx02 (id_fiscal_item)
  • fat_fiscal_itens_caixa_idx03 (id_fiscal_frmid)
  • fat_fiscal_itens_caixa_idx04 (id_filial, numero_requisicao)

Fatos operacionais

dados.fat_estoque

DADOS dados.fat_estoque

Posição de estoque por filial e produto, com estoque mínimo, máximo, atual e preços de compra contábil/transferência.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_estoque
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_filialintSimCódigo da filial principal do registro.—
id_produtointSimCódigo do produto/insumo.—
data_movimentodateNãoData do movimento de estoque.—
flagestminchar(1)NãoIndicador de estoque mínimo.—
indestminchar(1)NãoIndicador relacionado ao estoque mínimo.—
estq_minnumeric(18,8)NãoEstoque mínimo.—
estq_maxnumeric(18,8)NãoEstoque máximo.—
estq_atualnumeric(18,8)NãoEstoque atual.—
pr_com_ctbnumeric(15,5)NãoPreço de compra contábil.—
pr_com_trfnumeric(15,5)NãoPreço de compra/transferência.—

Chaves e relacionamentos

Chave primária

  • id_produto
  • id_filial

Relações inferidas (SQL e nomes de campos)

  • id_filial → dados.dim_filiais.id_filial
  • id_produto → dados.dim_produtos.id_produto

Fatos operacionais

dados.fat_caixa

DADOS dados.fat_caixa

Lançamentos de caixa por data/operação. Liga pedidos e vendas de varejo a filial, terminal, documento, cliente, valores líquidos, descontos e taxas.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_caixa
Uso no Power BIImportada no modelo como fat_caixa (grupo Fatos).

Campos

CampoTipoObrig.DescriçãoPower BI
data_operacaodateNãoData da operação de caixa, pagamento ou movimento.Sim
id_pedidovarcharNãoIdentificador composto do pedido/requisição.Sim
id_varejovarcharNãoIdentificador composto da venda de varejo.Sim
id_filialint4NãoCódigo da filial principal do registro.Sim
id_filial_rint4NãoCódigo da filial da requisição ou filial de referência/recebimento.Sim
id_filial_finalint4NãoFilial final usada para consolidação do movimento.Sim · soma
nrcpmint4NãoNúmero do cupom/documento de caixa.Sim · soma
id_operacaoint4NãoCódigo da operação de caixa.Sim · soma
id_terminalvarcharNãoTerminal/caixa onde a operação foi registrada.Sim
tpitmvarcharNãoTipo do item.Sim
quantnumericNãoQuantidade do item.Sim · soma
pruninumericNãoPreço unitário.Sim · soma
vrdscnumericNãoValor de desconto.Sim · soma
vrliqnumericNãoValor líquido.Sim · soma
vrcxanumericNãoValor lançado no caixa.Sim · soma
cdtxagvarcharNãoCódigo mantido como na base de origem do FórmulaCerta (sigla original: cdtxag).Sim
vrtxagnumericNãoValor mantido como na base de origem do FórmulaCerta (sigla original: vrtxag).Sim · soma
tppagvarcharNãoTipo de pagamento.Sim
vrtotnumericNãoValor total.Sim · soma
vrtxanumericNãoValor de taxa.Sim · soma
vrdscvnumericNãoValor de desconto da venda.Sim · soma
vrtxavnumericNãoValor de taxa da venda.Sim · soma
cfopvarcharNãoCFOP da operação fiscal.Sim
tipo_pagamentovarcharNãoDescrição do tipo de pagamento.Sim
documentoint4NãoNúmero do documento associado ao caixa.Sim · soma
id_clienteint4NãoCódigo do cliente.—
id_caixa_pagamentotexto—Identificador que liga o lançamento de caixa ao pagamento.Sim
numero_pedidotexto—Número do pedido/requisição no FórmulaCerta.Sim

Chaves e relacionamentos

Relacionamentos no Power BI

  • fat_caixa.data_operacao → dim_calendario.data_entrada
  • fat_pagamentos.id_caixa_pagamento → fat_caixa.id_caixa_pagamento
  • fat_caixa.id_filial_r → dim_filiais_requisicao.id_filial
  • fat_caixa.id_filial → dim_filiais.id_filial

Relações inferidas (SQL e nomes de campos)

  • id_cliente → dados.dim_clientes.id_cliente
  • id_filial → dados.dim_filiais.id_filial
  • id_filial_r → dados.dim_filiais.id_filial
  • id_filial_final → dados.dim_filiais.id_filial
  • id_pedido → dados.fat_pedidos.id_pedido
  • id_varejo → dados.fat_varejo.id_varejo

Índices

  • fat_caixa_idx01 (data_operacao)
  • fat_caixa_idx02 (id_pedido, data_operacao, id_filial)
  • fat_caixa_idx03 (id_varejo, data_operacao, id_filial)
  • fat_caixa_idx04 (id_filial, nrcpm)
  • fat_caixa_idx05 (id_operacao, data_operacao)

Fatos operacionais

dados.fat_inclusao_visitador

DADOS dados.fat_inclusao_visitador

Histórico de inclusão de visitadores por CRM e funcionário.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_inclusao_visitador
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
crmvarcharSimCRM composto do médico/prescritor, usado como chave de prescrição.—
id_funcionariovarcharSimIdentificador composto do funcionário/colaborador.—
data_inclusaodateNãoData de inclusão do visitador.—
ultima_inclusaodateNãoData da inclusão mais recente do visitador para o prescritor.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_funcionario → dados.dim_funcionarios.id_funcionario
  • crm → dados.dim_medicos.crm

Índices

  • fat_inclusao_visitador_idx01 (crm, data_inclusao)
  • fat_inclusao_visitador_idx02 (id_funcionario, data_inclusao)
  • fat_inclusao_visitador_idx03 (data_inclusao)

Fatos operacionais

dados.fat_orcamentos

DADOS dados.fat_orcamentos

Cabeçalho dos orçamentos por filial, cliente, captação, funcionário, convênio e valores.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_orcamentos
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_orcamentovarcharSimIdentificador composto do orçamento.—
numero_orcamentointSimNúmero do orçamento no FórmulaCerta.—
id_filialintSimCódigo da filial principal do registro.—
id_filial_destinointNãoFilial destino indicada no orçamento ou pedido.—
id_clienteintNãoCódigo do cliente.—
data_entradadateSimData de entrada do orçamento, pedido ou receita.—
id_conveniointNãoCódigo do convênio.—
id_funcionariointNãoIdentificador composto do funcionário/colaborador.—
id_captacaovarcharNãoCódigo do canal de captação.—
valor_finalnumericSimValor final da receita, orçamento ou pedido.—
valor_descontonumericSimValor de desconto aplicado.—
valor_taxanumericSimValor de taxa aplicada.—
nrcpmnint4NãoNúmero mantido como na base de origem do FórmulaCerta (sigla original: nrcpmn).—
flagenvvarcharNãoIndicador de envio do registro.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_cliente → dados.dim_clientes.id_cliente
  • id_filial → dados.dim_filiais.id_filial
  • id_filial_destino → dados.dim_filiais.id_filial
  • id_convenio → dados.dim_convenio.id_convenio
  • id_captacao → dados.dim_captacao.id_captacao
  • id_funcionario → dados.dim_funcionarios.id_funcionario

Índices

  • fat_orcamentos_idx01 (id_orcamento)
  • fat_orcamentos_idx02 (data_entrada,id_filial)
  • fat_orcamentos_idx03 (id_filial)
  • fat_orcamentos_idx04 (id_cliente, data_entrada)

Fatos operacionais

dados.fat_orcamentos_receitas

DADOS dados.fat_orcamentos_receitas

Receitas/fórmulas do orçamento, com médico, funcionário digitador/recepção, paciente, valores e dados de manipulação.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_orcamentos_receitas
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_orcamentovarcharSimIdentificador composto do orçamento.—
id_orcamento_receitavarcharSimIdentificador da receita/fórmula dentro do orçamento.—
serievarcharSimSérie que identifica a receita/fórmula dentro do orçamento ou da requisição.—
data_entradadateSimData de entrada do orçamento, pedido ou receita.—
data_cadastrodateSimData de cadastro do registro/receita.—
data_retiradadateNãoData prevista ou efetiva de retirada.—
crmvarcharSimCRM composto do médico/prescritor, usado como chave de prescrição.—
id_funcionario_digitvarcharNãoFuncionário responsável pela digitação.—
id_funcionario_recepvarcharNãoFuncionário responsável pela recepção/atendimento.—
valor_finalnumericSimValor final da receita, orçamento ou pedido.—
id_produtdo_embintNãoIdentificador do produto de embalagem.—
endepavarcharNãoEndereço do paciente.—
hrcadtimeNãoHora do cadastro do registro.—
hrrettimeNãoHora de retirada.—
idpedidoomnichannelint4NãoIdentificador do pedido no canal omnichannel.—
indrepetvarcharNãoIndica se a receita é uma repetição.—
nomepavarcharNãoNome do paciente.—
prcobrnumericNãoPreço cobrado.—
prcompranumericNãoPreço de compra.—
prcustonumericNãoPreço de custo.—
prrealnumericNãoPreço real/base da receita.—
ptdscnumericNãoPercentual de desconto.—
pttxanumericNãoPercentual de taxa.—
qtaprovint4NãoQuantidade aprovada.—
qtforint4NãoQuantidade de fórmulas.—
qtprescrnumericNãoQuantidade prescrita.—
rotuloidvarcharNãoIdentificador do rótulo.—
tpcapvarcharNãoTipo de cápsula.—
tpformafarmaint4NãoCódigo da forma farmacêutica.—
univolvarcharNãoUnidade de medida do volume.—
volumenumericNãoVolume da fórmula/receita.—
vrdscnumericNãoValor de desconto.—
vrtxanumericNãoValor de taxa.—
qtcontnumericNãoQuantidade mantido como na base de origem do FórmulaCerta (sigla original: qtcont).—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_orcamento → dados.fat_orcamentos.id_orcamento
  • id_funcionario_recep → dados.dim_funcionarios.id_funcionario
  • id_funcionario_digit → dados.dim_funcionarios.id_funcionario
  • crm → dados.dim_medicos.crm

Índices

  • fat_orcamentos_receitas_idx01 (id_orcamento)
  • fat_orcamentos_receitas_idx02 (id_orcamento_receita)
  • fat_orcamentos_receitas_idx03 (crm, data_entrada)
  • fat_orcamentos_receitas_idx04 (data_entrada)

Fatos operacionais

dados.fat_orcamentos_formulas

DADOS dados.fat_orcamentos_formulas

Componentes/insumos das receitas de orçamento, com produto, descrição, concentração, quantidade e chave normalizada de produto.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_orcamentos_formulas
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_orcamento_receitavarcharSimIdentificador da receita/fórmula dentro do orçamento.—
data_entradadateSimData de entrada do orçamento, pedido ou receita.—
id_produtointNãoCódigo do produto/insumo.—
cdprinint4NãoCódigo do produto (princípio ativo/insumo) do componente.—
densinumericNãoDensidade do insumo.—
descrvarcharNãoDescrição do produto, componente ou item.—
diluinumericNãoDiluição do insumo.—
inddomaxvarcharNãoIndicador de dose máxima.—
indqspvarcharNãoIndica componente em q.s.p. (quantidade suficiente para).—
itemidint4NãoIdentificador sequencial do item dentro do documento.—
qtrealnumericNãoQuantidade real.—
quantnumericNãoQuantidade do item.—
tpcmpvarcharNãoTipo do componente.—
tpformafarmaint4NãoCódigo da forma farmacêutica.—
unidavarcharNãoUnidade de medida.—
volapanumericNãoVolume mantido como na base de origem do FórmulaCerta (sigla original: volapa).—
vrcmpnumericNãoValor do componente.—
chave_produtovarcharSimChave normalizada do produto/componente, criada com código, tipo e descrição tratada.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_produto → dados.dim_produtos.id_produto
  • id_orcamento_receita → dados.fat_orcamentos_receitas.id_orcamento_receita

Índices

  • fat_orcamentos_formulas_idx01 (id_orcamento_receita)
  • fat_orcamentos_formulas_idx02 (data_entrada)

Fatos operacionais

dados.fat_pagamentos

DADOS dados.fat_pagamentos

Pagamentos de caixa por operação, terminal, filial, forma de pagamento, parcela e troco.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_pagamentos
Uso no Power BIImportada no modelo como fat_pagamentos (grupo Fatos).

Campos

CampoTipoObrig.DescriçãoPower BI
id_filialint4SimCódigo da filial principal do registro.Sim
id_terminalvarcharSimTerminal/caixa onde a operação foi registrada.Sim
data_operacaodateSimData da operação de caixa, pagamento ou movimento.Sim
id_operacaoint4SimCódigo da operação de caixa.Sim · soma
nrcpmint4SimNúmero do cupom/documento de caixa.Sim · soma
frmidint4SimIdentificador da forma de pagamento no item fiscal.Sim · soma
fmpagvarcharNãoCódigo da forma de pagamento.Sim
pagamentovarcharNãoDescrição da forma de pagamento.Sim
vrpagnumericNãoValor pago.Sim · soma
vrtrcnumericNãoValor de troco.Sim · soma
adcarvarcharNãoCampo mantido como na base de origem do FórmulaCerta (sigla original: adcar).Sim
parcelaint4NãoNúmero da parcela.Sim · soma
id_caixa_pagamentotexto—Identificador que liga o lançamento de caixa ao pagamento.Sim

Chaves e relacionamentos

Relacionamentos no Power BI

  • fat_pagamentos.id_filial → dim_filiais.id_filial
  • fat_pagamentos.data_operacao → dim_calendario.data_entrada
  • fat_pagamentos.id_caixa_pagamento → fat_caixa.id_caixa_pagamento

Relações inferidas (SQL e nomes de campos)

  • id_filial → dados.dim_filiais.id_filial

Índices

  • fat_pagamentos_idx01 (data_operacao, id_filial)
  • fat_pagamentos_idx02 (id_operacao, data_operacao, id_filial)

Fatos operacionais

dados.fat_pedidos

DADOS dados.fat_pedidos

Cabeçalho dos pedidos/requisições aprovados por filial, cliente, captação, funcionário, convênio e valores.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_pedidos
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_pedidovarcharSimIdentificador composto do pedido/requisição.—
numero_pedidointSimNúmero do pedido/requisição no FórmulaCerta.—
id_filialintSimCódigo da filial principal do registro.—
id_filial_destinointNãoFilial destino indicada no orçamento ou pedido.—
id_clienteintNãoCódigo do cliente.—
data_entradadateSimData de entrada do orçamento, pedido ou receita.—
id_conveniointNãoCódigo do convênio.—
id_funcionariointNãoIdentificador composto do funcionário/colaborador.—
id_captacaovarcharNãoCódigo do canal de captação.—
valor_finalnumericSimValor final da receita, orçamento ou pedido.—
valor_descontonumericSimValor de desconto aplicado.—
valor_taxanumericSimValor de taxa aplicada.—
nrcpmnint4NãoNúmero mantido como na base de origem do FórmulaCerta (sigla original: nrcpmn).—
flagenvvarcharNãoIndicador de envio do registro.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_cliente → dados.dim_clientes.id_cliente
  • id_filial → dados.dim_filiais.id_filial
  • id_filial_destino → dados.dim_filiais.id_filial
  • id_convenio → dados.dim_convenio.id_convenio
  • id_captacao → dados.dim_captacao.id_captacao
  • id_funcionario → dados.dim_funcionarios.id_funcionario

Índices

  • fat_pedidos_idx01 (id_pedido, id_filial)
  • fat_pedidos_idx02 (data_entrada, id_filial)
  • fat_pedidos_idx03 (id_filial)
  • fat_pedidos_idx04 (id_cliente, data_entrada)

Fatos operacionais

dados.fat_pedidos_receitas

DADOS dados.fat_pedidos_receitas

Receitas/fórmulas dos pedidos, com vínculo opcional ao orçamento original e dados completos de paciente/produção.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_pedidos_receitas
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_pedidovarcharSimIdentificador composto do pedido/requisição.—
id_pedido_receitavarcharSimIdentificador da receita/fórmula dentro do pedido.—
serievarcharSimSérie que identifica a receita/fórmula dentro do orçamento ou da requisição.—
data_entradadateSimData de entrada do orçamento, pedido ou receita.—
id_orcamento_receitavarcharNãoIdentificador da receita/fórmula dentro do orçamento.—
crmvarcharSimCRM composto do médico/prescritor, usado como chave de prescrição.—
id_funcionario_digitvarcharNãoFuncionário responsável pela digitação.—
id_funcionario_recepvarcharNãoFuncionário responsável pela recepção/atendimento.—
valor_finalnumericSimValor final da receita, orçamento ou pedido.—
data_cadastrodateSimData de cadastro do registro/receita.—
hrcadtimeNãoHora do cadastro do registro.—
id_produtdo_embintNãoIdentificador do produto de embalagem.—
id_clienteint4NãoCódigo do cliente.—
cdfiloint4NãoCódigo da filial do orçamento vinculado.—
cdfileint4NãoCódigo mantido como na base de origem do FórmulaCerta (sigla original: cdfile).—
volumenumericNãoVolume da fórmula/receita.—
univolvarcharNãoUnidade de medida do volume.—
tpcapvarcharNãoTipo de cápsula.—
cdembint4NãoCódigo da embalagem.—
dtvaldateNãoData de validade.—
tpusovarcharNãoTipo de uso.—
qtforint4NãoQuantidade de fórmulas.—
qtcontnumericNãoQuantidade mantido como na base de origem do FórmulaCerta (sigla original: qtcont).—
qtcapdiaint4NãoQuantidade de cápsulas por dia.—
qtdiastratint4NãoQuantidade de dias de tratamento.—
nrregint4NãoNúmero de registro.—
indusocontvarcharNãoIndica uso contínuo.—
rotuloidvarcharNãoIdentificador do rótulo.—
prcobrnumericNãoPreço cobrado.—
pttxanumericNãoPercentual de taxa.—
vrtxanumericNãoValor de taxa.—
ptdscnumericNãoPercentual de desconto.—
vrdscnumericNãoValor de desconto.—
prrealnumericNãoPreço real/base da receita.—
prcustonumericNãoPreço de custo.—
indrepetvarcharNãoIndica se a receita é uma repetição.—
cdconocint4NãoCódigo mantido como na base de origem do FórmulaCerta (sigla original: cdconoc).—
cdfunocint4NãoCódigo mantido como na base de origem do FórmulaCerta (sigla original: cdfunoc).—
numrgrvarcharNãoNúmero mantido como na base de origem do FórmulaCerta (sigla original: numrgr).—
ufrgvarcharNãoUF de emissão do RG do paciente.—
nomepavarcharNãoNome do paciente.—
dtretdateNãoData de retirada.—
hrrettimeNãoHora de retirada.—
flagficvarcharNãoIndicador mantido como na base de origem do FórmulaCerta (sigla original: flagfic).—
flagrotvarcharNãoIndicador mantido como na base de origem do FórmulaCerta (sigla original: flagrot).—
flaglstvarcharNãoIndicador mantido como na base de origem do FórmulaCerta (sigla original: flaglst).—
flagromvarcharNãoIndicador mantido como na base de origem do FórmulaCerta (sigla original: flagrom).—
flagrquvarcharNãoIndicador mantido como na base de origem do FórmulaCerta (sigla original: flagrqu).—
flagatuvarcharNãoIndicador mantido como na base de origem do FórmulaCerta (sigla original: flagatu).—
flagmonvarcharNãoIndicador mantido como na base de origem do FórmulaCerta (sigla original: flagmon).—
flagacuvarcharNãoIndicador mantido como na base de origem do FórmulaCerta (sigla original: flagacu).—
cdfildint4NãoCódigo mantido como na base de origem do FórmulaCerta (sigla original: cdfild).—
dtentrdateNãoData de entrada.—
indqspvarcharNãoIndica componente em q.s.p. (quantidade suficiente para).—
cdfilrfonint4NãoCódigo da filial da requisição de origem.—
nrrqufonint4NãoNúmero da requisição de origem.—
serierfonvarcharNãoSérie da requisição de origem.—
qtmesesmonnumericNãoQuantidade mantido como na base de origem do FórmulaCerta (sigla original: qtmesesmon).—
qtdiasmonint4NãoQuantidade mantido como na base de origem do FórmulaCerta (sigla original: qtdiasmon).—
dtprescrdateNãoData da prescrição.—
ftenchcapnumericNãoFator de enchimento da cápsula.—
ftenchfornumericNãoFator de enchimento da fórmula.—
ftsobrecarganumericNãoFator de sobrecarga.—
ftcompressaonumericNãoFator de compressão.—
ftcomprexcipnumericNãoFator de compressão do excipiente.—
nrceppavarcharNãoCEP do endereço do paciente.—
qtprescrnumericNãoQuantidade prescrita.—
oergvarcharNãoÓrgão emissor do RG do paciente.—
indfidelvarcharNãoIndica participação no programa de fidelidade.—
indcredfidelvarcharNãoIndica uso de crédito do programa de fidelidade.—
grupoterapint4NãoGrupo terapêutico.—
prcompranumericNãoPreço de compra.—
nrccfint4NãoNúmero do CCF (contador de cupom fiscal).—
cpfclientedavvarcharNãoCPF do cliente informado no DAV (documento auxiliar de venda).—
nomeclidavvarcharNãoNome do cliente informado no DAV (documento auxiliar de venda).—
tpformafarmaint4NãoCódigo da forma farmacêutica.—
qtimpficint4NãoQuantidade de impressões da ficha.—
dtvencprescrdateNãoData de vencimento da prescrição.—
tpsexpavarcharNãoSexo do paciente.—
dtnaspadateNãoData de nascimento do paciente.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_cliente → dados.dim_clientes.id_cliente
  • id_pedido → dados.fat_pedidos.id_pedido
  • id_orcamento_receita → dados.fat_orcamentos_receitas.id_orcamento_receita
  • id_funcionario_recep → dados.dim_funcionarios.id_funcionario
  • id_funcionario_digit → dados.dim_funcionarios.id_funcionario
  • crm → dados.dim_medicos.crm

Índices

  • fat_pedidos_receitas_idx01 (id_pedido)
  • fat_pedidos_receitas_idx02 (id_pedido_receita)
  • fat_pedidos_receitas_idx03 (id_orcamento_receita)
  • fat_pedidos_receitas_idx04 (data_entrada)

Fatos operacionais

dados.fat_pedidos_formulas

DADOS dados.fat_pedidos_formulas

Componentes/insumos das receitas de pedido, incluindo lote, teor, perdas, indicadores e chave normalizada do produto.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_pedidos_formulas
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_pedido_receitavarcharSimIdentificador da receita/fórmula dentro do pedido.—
data_entradadateSimData de entrada do orçamento, pedido ou receita.—
id_produtointNãoCódigo do produto/insumo.—
cdprinint4NãoCódigo do produto (princípio ativo/insumo) do componente.—
itemidint4NãoIdentificador sequencial do item dentro do documento.—
tpcmpvarcharNãoTipo do componente.—
descrvarcharNãoDescrição do produto, componente ou item.—
quantnumericNãoQuantidade do item.—
unidavarcharNãoUnidade de medida.—
unihpvarcharNãoUnidade mantido como na base de origem do FórmulaCerta (sigla original: unihp).—
vrcmpnumericNãoValor do componente.—
qtrealnumericNãoQuantidade real.—
indqspvarcharNãoIndica componente em q.s.p. (quantidade suficiente para).—
inddomaxvarcharNãoIndicador de dose máxima.—
indelicmpvarcharNãoIndicador mantido como na base de origem do FórmulaCerta (sigla original: indelicmp).—
indassocvarcharNãoIndica componente associado.—
indqsvarcharNãoIndica componente em q.s. (quantidade suficiente).—
volapanumericNãoVolume mantido como na base de origem do FórmulaCerta (sigla original: volapa).—
portavarcharNãoCampo mantido como na base de origem do FórmulaCerta (sigla original: porta).—
qtpesanumericNãoQuantidade pesada.—
nrlotvarcharNãoNúmero do lote.—
cdfileint4NãoCódigo mantido como na base de origem do FórmulaCerta (sigla original: cdfile).—
densinumericNãoDensidade do insumo.—
diluinumericNãoDiluição do insumo.—
flagpesvarcharNãoIndicador mantido como na base de origem do FórmulaCerta (sigla original: flagpes).—
ctlotint4NãoControle de lote.—
flagatuvarcharNãoIndicador mantido como na base de origem do FórmulaCerta (sigla original: flagatu).—
prcustonumericNãoPreço de custo.—
cdsacint4NãoCódigo mantido como na base de origem do FórmulaCerta (sigla original: cdsac).—
vrcmporinumericNãoValor original do componente.—
qtrealorinumericNãoQuantidade real original.—
volapaorinumericNãoVolume mantido como na base de origem do FórmulaCerta (sigla original: volapaori).—
quanthpnumericNãoQuantidade mantido como na base de origem do FórmulaCerta (sigla original: quanthp).—
unidaprdvarcharNãoUnidade de medida do produto.—
indveiculovarcharNãoIndica se o componente é o veículo da fórmula.—
inddiluivarcharNãoIndica se o componente usa diluição.—
qtrealuninumericNãoQuantidade mantido como na base de origem do FórmulaCerta (sigla original: qtrealuni).—
cdprinassint4NãoCódigo do produto associado ao componente.—
flagenvvarcharNãoIndicador de envio do registro.—
inddominvarcharNãoIndicador de dose mínima.—
tpassvarcharNãoTipo mantido como na base de origem do FórmulaCerta (sigla original: tpass).—
teornumericNãoTeor do insumo.—
corgridint4NãoCor de exibição do item na grade da tela.—
equivnumericNãoFator de equivalência do insumo.—
qtrealpsiconumericNãoQuantidade mantido como na base de origem do FórmulaCerta (sigla original: qtrealpsico).—
qtutrnumericNãoQuantidade em UTR (unidades de turbidez redutora).—
qtuinumericNãoQuantidade em UI (unidades internacionais).—
qtblhnumericNãoQuantidade mantido como na base de origem do FórmulaCerta (sigla original: qtblh).—
qtmlhnumericNãoQuantidade mantido como na base de origem do FórmulaCerta (sigla original: qtmlh).—
qtmeqnumericNãoQuantidade em mEq (miliequivalentes).—
qtufcnumericNãoQuantidade em UFC (unidades formadoras de colônia).—
cdfilprodpuroint4NãoCódigo da filial do lote do produto puro.—
cdproprodpuroint4NãoCódigo do produto puro.—
ctlotprodpuroint4NãoControle de lote do produto puro.—
nrlotprodpurovarcharNãoNúmero do lote do produto puro.—
diluiprodpuronumericNãoDiluição do produto puro.—
teorprodpuronumericNãoTeor do produto puro.—
inddiluidovarcharNãoIndica se o componente está diluído.—
nrnotifvarcharNãoNúmero da notificação de receita.—
prcompranumericNãoPreço de compra.—
qtperdanumericNãoQuantidade de perda.—
tpformafarmaint4NãoCódigo da forma farmacêutica.—
qtfccnumericNãoQuantidade mantido como na base de origem do FórmulaCerta (sigla original: qtfcc).—
qtmufnumericNãoQuantidade mantido como na base de origem do FórmulaCerta (sigla original: qtmuf).—
qtbufnumericNãoQuantidade mantido como na base de origem do FórmulaCerta (sigla original: qtbuf).—
indespfarmvarcharNãoIndicador mantido como na base de origem do FórmulaCerta (sigla original: indespfarm).—
chave_produtovarcharSimChave normalizada do produto/componente, criada com código, tipo e descrição tratada.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_produto → dados.dim_produtos.id_produto
  • id_pedido_receita → dados.fat_pedidos_receitas.id_pedido_receita

Índices

  • fat_pedidos_formulas_idx01 (id_pedido_receita)
  • fat_pedidos_formulas_idx02 (data_entrada)

Fatos operacionais

dados.fat_visitas

DADOS dados.fat_visitas

Agenda e execução de visitas a médicos por visitador, datas, horas, indicadores e observações.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_visitas
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
crmvarcharSimCRM composto do médico/prescritor, usado como chave de prescrição.—
id_funcionariovarcharSimIdentificador composto do funcionário/colaborador.—
data_agendamentodateNãoData agendada da visita.—
hora_agendamentovarchar(8)NãoHora agendada da visita.—
data_visita_inidateNãoData de início da visita.—
hora_visita_inivarchar(8)NãoHora de início da visita.—
data_visita_fimdateNãoData de fim da visita.—
hora_visita_fimvarchar(8)NãoHora de fim da visita.—
data_baixadateNãoData da baixa da visita.—
hora_baixavarchar(8)NãoHora da baixa da visita.—
flag_envvarchar(1)NãoIndicador de envio do registro.—
flag_rcbvarchar(1)NãoIndicador de recebimento do registro.—
flag_baixavarchar(1)NãoIndica se a visita foi baixada.—
situacaovarcharNãoSituação da visita.—
observacaovarcharNãoObservações registradas na visita.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_funcionario → dados.dim_funcionarios.id_funcionario
  • crm → dados.dim_medicos.crm

Índices

  • fat_visitas_idx01 (crm, data_agendamento)
  • fat_visitas_idx02 (id_funcionario, data_agendamento)
  • fat_visitas_idx03 (data_agendamento)

Fatos operacionais

dados.fat_romaneios

DADOS dados.fat_romaneios

Romaneios/entregas, destino, cliente/endereço, telefone, quantidades e valores de entrega.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_romaneios
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_filial_entregaint4NãoFilial responsável pela entrega/romaneio.—
id_entregaint4NãoNúmero/identificador do romaneio de entrega.—
data_previstadateNãoData prevista de entrega.—
hora_previstatimeNãoHora prevista de entrega.—
data_entregadateNãoData efetiva da entrega.—
hora_entregatimeNãoHora efetiva da entrega.—
tipo_entregatextNãoTipo de entrega.—
prioridadetextNãoPrioridade da entrega.—
destinotextNãoDestino da entrega.—
id_clienteint4NãoCódigo do cliente.—
endervarcharNãoLogradouro do endereço.—
endnrvarcharNãoNúmero do endereço.—
endcpvarcharNãoComplemento do endereço.—
bairrvarcharNãoBairro do endereço.—
nrcepvarcharNãoCEP do endereço.—
endrfvarcharNãoPonto de referência do endereço.—
municvarcharNãoMunicípio do endereço.—
unfedvarcharNãoUnidade federativa (UF) do endereço.—
nrdddvarcharNãoDDD do telefone.—
nrtelvarcharNãoNúmero do telefone.—
flagentgvarcharNãoIndica se a entrega foi realizada.—
indavistavarcharNãoIndica pagamento à vista.—
qtreceitaint4NãoQuantidade de receitas no romaneio.—
qtnotifint4NãoQuantidade de notificações no romaneio.—
qtformint4NãoQuantidade de fórmulas no romaneio.—
qtvarejint4NãoQuantidade de itens de varejo no romaneio.—
vrtxanumericNãoValor de taxa.—
vrsdonumericNãoSaldo.—
vrrcbnumericNãoValor recebido.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_cliente → dados.dim_clientes.id_cliente
  • id_filial_entrega → dados.dim_filiais.id_filial

Índices

  • fat_romaneios_idx01 (id_entrega, id_filial_entrega)
  • fat_romaneios_idx02 (id_filial_entrega, id_entrega)
  • fat_romaneios_idx03 (data_entrega, hora_entrega)

Fatos operacionais

dados.fat_romaneios_itens

DADOS dados.fat_romaneios_itens

Itens dos romaneios vinculando entrega a pedidos.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_romaneios_itens
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_entregaint4NãoNúmero/identificador do romaneio de entrega.—
itemidint4NãoIdentificador sequencial do item dentro do documento.—
id_pedidovarchar—Identificador composto do pedido/requisição.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_pedido → dados.fat_pedidos.id_pedido
  • id_entrega → dados.fat_romaneios.id_entrega

Índices

  • fat_romaneios_itens_idx01 (id_entrega, id_pedido, itemid)
  • fat_romaneios_itens_idx02 (id_pedido, id_entrega)

Fatos operacionais

dados.fat_comissao_pedidos

DADOS dados.fat_comissao_pedidos

Base de comissão de pedidos por funcionário, filial, pedido, recebimento e valores.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_comissao_pedidos
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_funcionariovarcharNãoIdentificador composto do funcionário/colaborador.—
id_filialintNãoCódigo da filial principal do registro.—
id_pedidovarcharNãoIdentificador composto do pedido/requisição.—
tprquvarcharNãoTipo de requisição.—
vrrqunumericNãoValor da requisição.—
data_fedateNãoData mantido como na base de origem do FórmulaCerta (sigla original: data_fe).—
vrsdonumericNãoSaldo.—
vrliqnumericNãoValor líquido.—
cdtxavarcharNãoCódigo da taxa.—
data_pagamentodateNãoData de pagamento registrada.—
data_operacaodateNãoData da operação de caixa, pagamento ou movimento.—
vrtxanumericNãoValor de taxa.—
vrdscnumericNãoValor de desconto.—
itemidint4NãoIdentificador sequencial do item dentro do documento.—
tprcbvarcharNãoTipo de recebimento.—
vrrcbnumericNãoValor recebido.—
quantint8NãoQuantidade do item.—
vrdsc_vendanumericNãoValor de desconto da venda.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_filial → dados.dim_filiais.id_filial
  • id_pedido → dados.fat_pedidos.id_pedido
  • id_funcionario → dados.dim_funcionarios.id_funcionario

Índices

  • fat_comissao_pedidos_idx01 (data_operacao, id_filial)
  • fat_comissao_pedidos_idx02 (id_filial, data_operacao)
  • fat_comissao_pedidos_idx03 (id_pedido)

Fatos operacionais

dados.fat_comissao_varejo

DADOS dados.fat_comissao_varejo

Base de comissão de varejo por funcionário, filial, venda e recebimento.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_comissao_varejo
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_funcionariovarcharNãoIdentificador composto do funcionário/colaborador.—
id_filialintNãoCódigo da filial principal do registro.—
id_varejovarcharNãoIdentificador composto da venda de varejo.—
cdconint4NãoCódigo do contrato do funcionário.—
vrtotnumericNãoValor total.—
vrliqnumericNãoValor líquido.—
data_operacaodateNãoData da operação de caixa, pagamento ou movimento.—
data_pagamentodateNãoData de pagamento registrada.—
tprcbvarcharNãoTipo de recebimento.—
vrtxanumericNãoValor de taxa.—
vrdscnumericNãoValor de desconto.—
vrrcbnumericNãoValor recebido.—
vrdsc_vendafloat8NãoValor de desconto da venda.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_filial → dados.dim_filiais.id_filial
  • id_varejo → dados.fat_varejo.id_varejo
  • id_funcionario → dados.dim_funcionarios.id_funcionario

Índices

  • fat_comissao_varejo_idx01 (data_operacao, id_filial)
  • fat_comissao_varejo_idx02 (id_filial, data_operacao)
  • fat_comissao_varejo_idx03 (id_varejo)

Fatos operacionais

dados.cliente_rfv

DADOS dados.cliente_rfv

Classificação RFV de clientes no schema operacional.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.cliente_rfv
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
tipovarcharSimTipo da classificação RFV.—
id_clienteint4SimCódigo do cliente.—
recenciaint4NãoNota de recência do cliente na classificação RFV.—
recencia_valorint4NãoValor apurado de recência (base da nota de recência).—
frequenciaint4NãoNota de frequência do cliente na classificação RFV.—
frequencia_valorint4NãoValor apurado de frequência (base da nota de frequência).—
valorint4NãoNota de valor do cliente na classificação RFV.—
valor_valornumericNãoValor apurado de compras (base da nota de valor).—
scoreint4NãoPontuação consolidada da classificação RFV.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_cliente → dados.dim_clientes.id_cliente

Índices

  • cliente_rfv_idx01 (tipo, id_cliente)

Fatos operacionais

dados.fat_varejo

DADOS dados.fat_varejo

Fato final de varejo transformado a partir das bases de varejo e itens.

PropriedadeValor
Schemadados
Forma de criaçãoTabela gerada por consulta (CREATE TABLE AS SELECT), recriada a cada transformação.
Rotina de cargadados.transf_varejo
Uso no Power BIImportada no modelo como fat_varejo (grupo Fatos).

Campos

CampoTipoObrig.DescriçãoPower BI
id_varejotexto—Identificador composto da venda de varejo.Sim
numero_varejointeiro—Número da venda/cupom de varejo.Sim · soma
id_filialinteiro—Código da filial principal do registro.Sim
data_saidadata/hora—Data de saída/venda.Sim
data_vencdata/hora—Data de vencimento.Sim
data_pagdata/hora—Data de pagamento.Sim
crmtexto—CRM composto do médico/prescritor, usado como chave de prescrição.Sim
id_clienteinteiro—Código do cliente.Sim
id_funcionariotexto—Identificador composto do funcionário/colaborador.Sim
id_funcionario_receptexto—Funcionário responsável pela recepção/atendimento.Sim
id_funcionario_entexto—Funcionário relacionado à entrega/envio.Sim
venda_totaldecimal—Valor total da venda.Sim · soma
venda_tp_desctexto—Tipo de desconto aplicado à venda.Sim
venda_descdecimal—Desconto informado na venda.Sim · soma
venda_valor_descdecimal—Valor de desconto da venda.Sim · soma
venda_cd_taxatexto—Código da taxa aplicada à venda.Sim
venda_taxadecimal—Taxa informada na venda.Sim · soma
venda_valor_taxadecimal—Valor de taxa da venda.Sim · soma
venda_valor_liqdecimal—Valor líquido da venda.Sim · soma
iteminteiro—Número do item no documento.Sim · soma
id_produtointeiro—Código do produto/insumo.Sim
quantdecimal—Quantidade do item.Sim · soma
item_descdecimal—Desconto informado no item.Sim · soma
item_valor_descdecimal—Valor de desconto do item.Sim · soma
item_totaldecimal—Valor total do item.Sim · soma
item_custodecimal—Custo do item.Sim · soma
item_preco_unitdecimal—Preço unitário do item.Sim · soma
valor_caixadecimal—Valor recebido/identificado no caixa.Sim · soma
ultima_caixadata/hora—Data do último lançamento de caixa da venda.Sim
varejo_tem_caixatexto—Indica se a venda de varejo tem lançamento de caixa.Sim

Chaves e relacionamentos

Relacionamentos no Power BI

  • fat_varejo.data_venc → LocalDateTable_0723b659-d1a8-4b92-ae21-d5cfb5f64db5.Date
  • fat_varejo.id_filial → dim_filiais.id_filial
  • fat_varejo.id_produto → dim_produtos.id_produto
  • fat_varejo.data_saida → dim_calendario.data_entrada
  • fat_varejo.data_pag → LocalDateTable_ec0c3a4e-761c-4d1e-89a4-3a780857045c.Date
  • fat_varejo.id_cliente → dim_clientes.id_cliente
  • fat_varejo.crm → dim_medicos.crm
  • fat_varejo.id_funcionario_recep → dim_funcionarios.id_funcionario
  • fat_varejo.ultima_caixa → LocalDateTable_1ae7df0a-5a78-4ceb-83c9-05b191905c78.Date

Modelo de dados

Dimensões operacionais

Cadastros de apoio do schema dados, usados para descrever e filtrar os fatos: clientes, prescritores, filiais, funcionários, produtos, formas farmacêuticas e convênios.

TabelaCamposConteúdo
dados.dim_captacao2Dimensão de canais de captação usados nos orçamentos e pedidos.
dados.dim_clientes25Cadastro principal de clientes, documentos, dados pessoais e colunas de busca por nome/documento.
dados.dim_clientes_emails2E-mails normalizados dos clientes, derivados dos campos de e-mail do cadastro.
dados.dim_clientes_enderecos9Endereços válidos dos clientes para contato e entrega.
dados.dim_clientes_telefones4Telefones dos clientes classificados como fixo, fixo 2 ou celular, com coluna de busca numérica.
dados.dim_convenio3Cadastro de convênios, razão social e fantasia.
dados.dim_especialidades2Catálogo de especialidades médicas.
dados.dim_filiais9Cadastro de filiais, bairro, município/UF e CEP.
dados.dim_forma_farmaceutica3Formas farmacêuticas e laboratório associado.
dados.dim_lab2Laboratórios/tipos de laboratório derivados das formas farmacêuticas.
dados.dim_funcionarios4Cadastro de colaboradores/funcionários identificado por contrato e código do funcionário.
dados.dim_medicos10Cadastro de médicos/prescritores, identificado por CRM composto.
dados.dim_medicos_emails2E-mails dos médicos/prescritores extraídos dos endereços médicos.
dados.dim_medicos_enderecos9Endereços dos médicos/prescritores.
dados.dim_medicos_especialidades3Relação entre médicos e especialidades.
dados.dim_medicos_telefones3Telefones dos médicos/prescritores.
dados.dim_produtos10Cadastro de produtos/insumos com descrição, unidade, grupo, setor e descrição do setor.
dados.dim_setor3Cadastro de grupos e setores de produtos.

Dimensões operacionais

dados.dim_captacao

DADOS dados.dim_captacao

Dimensão de canais de captação usados nos orçamentos e pedidos.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_captacao
Uso no Power BIImportada no modelo como dim_captacao.

Campos

CampoTipoObrig.DescriçãoPower BI
id_captacaovarcharSimCódigo do canal de captação.Sim
captacaovarcharSimNome do canal de captação.Sim

Chaves e relacionamentos

Chave primária

  • id_captacao

Relacionamentos no Power BI

  • link_orc_ped.id_captacao → dim_captacao.id_captacao

Dimensões operacionais

dados.dim_clientes

DADOS dados.dim_clientes

Cadastro principal de clientes, documentos, dados pessoais e colunas de busca por nome/documento.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_clientes
Uso no Power BIImportada no modelo como dim_clientes.

Campos

CampoTipoObrig.DescriçãoPower BI
id_clienteintSimCódigo do cliente.Sim
id_filialintSimCódigo da filial principal do registro.Sim
tipovarcharNãoTipo do cliente no cadastro.Sim
cnpjvarcharNãoCNPJ ou CPF do cliente (documento principal), conforme a origem.Sim
inscricaovarcharNãoInscrição estadual, RG ou outro documento secundário do cliente.Sim
orgao_exp_rgvarcharNãoÓrgão expedidor do RG.Sim
generovarcharNãoGênero informado no cadastro.Sim
nomevarcharNãoNome do cliente.Sim
uf_nasvarcharNãoUF de nascimento (naturalidade).Sim
profissaovarcharNãoProfissão informada no cadastro.Sim
dt_cadadastrodateNãoData de cadastro do cliente.Sim
flagenvvarcharNãoIndicador de envio do registro.Sim
uf_rgvarcharNãoUF de emissão do RG.Sim
tpdocvarcharNãoTipo do documento informado.Sim
ocenderentregavarcharNãoCampo mantido como na base de origem do FórmulaCerta (sigla original: ocenderentrega).Sim
registrovarcharNãoCampo mantido como na base de origem do FórmulaCerta (sigla original: registro).Sim
dt_nascimentodateNãoData de nascimento.Sim
dt_alteracaodateNãoData da última alteração cadastral.Sim
dt_hora_alteracaotimestampNãoData e hora da última alteração cadastral.Sim
tipoPessoatexto—Tipo de pessoa por extenso (física ou jurídica), calculado no modelo do Power BI.Sim
generoExtensotexto—Gênero por extenso, calculado no modelo do Power BI.Sim
nome_codigotexto—Nome acompanhado do código do cadastro, usado em filtros e buscas.Sim
Idadecalculada—Idade calculada a partir da data de nascimento (coluna calculada do Power BI).Coluna calculada · soma
FaixaEtariacalculada—Faixa etária calculada a partir da idade (coluna calculada do Power BI).Coluna calculada
MesAniversariotexto—Mês de aniversário do cliente.Sim

Chaves e relacionamentos

Chave primária

  • id_cliente

Relacionamentos no Power BI

  • dim_clientes.dt_cadadastro → LocalDateTable_411b620f-8888-42fe-8a12-b30ad1029eff.Date
  • dim_clientes.dt_nascimento → LocalDateTable_5522c79a-b433-473d-b878-f914fd0ae8df.Date
  • dim_clientes.dt_alteracao → LocalDateTable_605936ce-526a-46a6-a243-5680829d8d22.Date
  • link_orc_ped.id_cliente → dim_clientes.id_cliente
  • cliente_rfv.id_cliente → dim_clientes.id_cliente
  • dim_clientes.id_cliente → fat_clientes_resumo.id_cliente
  • dim_clientes.dt_hora_alteracao → LocalDateTable_990a66de-cbe9-4234-bcb0-ce508687e159.Date
  • fat_varejo.id_cliente → dim_clientes.id_cliente
  • fat_romaneios.id_cliente → dim_clientes.id_cliente
  • dim_clientes.id_filial → dim_filiais_cadastro.id_filial
  • cliente_rfv_historico.id_cliente → dim_clientes.id_cliente
  • dim_clientes_enderecos.id_cliente → dim_clientes.id_cliente

Relações inferidas (SQL e nomes de campos)

  • id_filial → dados.dim_filiais.id_filial

Índices

  • idx_dim_clientes_nome_trgm (nome_busca gin_trgm_ops)
  • idx_dim_clientes_documento_trgm (documento_busca gin_trgm_ops)

Dimensões operacionais

dados.dim_clientes_emails

DADOS dados.dim_clientes_emails

E-mails normalizados dos clientes, derivados dos campos de e-mail do cadastro.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_clientes_emails
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_clienteintSimCódigo do cliente.—
emailvarcharSimEndereço de e-mail.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_cliente → dados.dim_clientes.id_cliente

Índices

  • dim_clientes_emails_idx01 (id_cliente)
  • idx_dim_clientes_emails_trgm (email_busca gin_trgm_ops)

Dimensões operacionais

dados.dim_clientes_enderecos

DADOS dados.dim_clientes_enderecos

Endereços válidos dos clientes para contato e entrega.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_clientes_enderecos
Uso no Power BIImportada no modelo como dim_clientes_enderecos.

Campos

CampoTipoObrig.DescriçãoPower BI
id_clienteintSimCódigo do cliente.Sim
tipo_enderecovarcharNãoTipo do endereço.Sim
enderecovarcharNãoLogradouro do endereço.Sim
numerovarcharNãoNúmero do endereço.Sim
complementovarcharNãoComplemento do endereço.Sim
bairrovarcharNãoBairro do endereço.Sim
cepvarcharNãoCEP do endereço.Sim
municipiovarcharNãoMunicípio do endereço.Sim
ufvarcharNãoUnidade federativa (UF).Sim

Chaves e relacionamentos

Relacionamentos no Power BI

  • dim_clientes_enderecos.id_cliente → dim_clientes.id_cliente

Relações inferidas (SQL e nomes de campos)

  • id_cliente → dados.dim_clientes.id_cliente

Índices

  • dim_clientes_enderecos_idx01 (id_cliente)

Dimensões operacionais

dados.dim_clientes_telefones

DADOS dados.dim_clientes_telefones

Telefones dos clientes classificados como fixo, fixo 2 ou celular, com coluna de busca numérica.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_clientes_telefones
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_clienteintSimCódigo do cliente.—
dddvarcharSimCódigo DDD do telefone.—
telefonevarcharSimNúmero do telefone.—
tipovarcharSimTipo do telefone: fixo, fixo 2 ou celular.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_cliente → dados.dim_clientes.id_cliente

Índices

  • dim_clientes_telefones_idx01 (id_cliente)
  • idx_dim_clientes_telefones_trgm (telefone_busca gin_trgm_ops)

Dimensões operacionais

dados.dim_convenio

DADOS dados.dim_convenio

Cadastro de convênios, razão social e fantasia.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_convenio
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_conveniointSimCódigo do convênio.—
convenio_razaovarcharNãoRazão social do convênio.—
convenio_fantasiavarcharNãoNome fantasia do convênio.—

Chaves e relacionamentos

Chave primária

  • id_convenio

Dimensões operacionais

dados.dim_especialidades

DADOS dados.dim_especialidades

Catálogo de especialidades médicas.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_especialidades
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
codigo_especialidadevarcharSimCódigo da especialidade médica.—
especialidadevarcharSimDescrição da especialidade médica.—

Chaves e relacionamentos

Índices

  • dim_especialidades_idx01 (codigo_especialidade)

Dimensões operacionais

dados.dim_filiais

DADOS dados.dim_filiais

Cadastro de filiais, bairro, município/UF e CEP.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_filiais
Uso no Power BIImportada no modelo como dim_filiais, dim_filiais_cadastro, dim_filiais_requisicao.

Campos

CampoTipoObrig.DescriçãoPower BI
id_filialintSimCódigo da filial principal do registro.Sim
filialvarcharSimNome da filial.Sim
bairrovarcharNãoBairro do endereço.Sim
numerovarcharNãoNúmero do endereço da filial.Sim
unfedvarcharNãoUnidade federativa (UF) do endereço.Sim
nrcepvarcharNãoCEP do endereço.Sim
filialCodigotexto—Nome da filial acompanhado do código, usado em filtros.Sim
filialCodigoCadastrotexto—Nome da filial de cadastro acompanhado do código, usado em filtros.Sim
filialCodigoPagamentotexto—Nome da filial de pagamento acompanhado do código, usado em filtros.Sim

Chaves e relacionamentos

Chave primária

  • id_filial

Relacionamentos no Power BI

  • link_orc_ped.id_filial → dim_filiais.id_filial
  • fat_varejo.id_filial → dim_filiais.id_filial
  • filiais_config.id_filial → dim_filiais.id_filial
  • fat_pagamentos.id_filial → dim_filiais.id_filial
  • fat_romaneios.id_filial_entrega → dim_filiais.id_filial
  • dim_clientes.id_filial → dim_filiais_cadastro.id_filial
  • fat_caixa.id_filial_r → dim_filiais_requisicao.id_filial
  • fat_caixa.id_filial → dim_filiais.id_filial

Dimensões operacionais

dados.dim_forma_farmaceutica

DADOS dados.dim_forma_farmaceutica

Formas farmacêuticas e laboratório associado.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_forma_farmaceutica
Uso no Power BIImportada no modelo como dim_forma_farmaceutica.

Campos

CampoTipoObrig.DescriçãoPower BI
id_forma_farmaceuticaintSimCódigo da forma farmacêutica.Sim
forma_farmaceuticavarcharSimDescrição da forma farmacêutica.Sim
id_labintNãoCódigo do laboratório/tipo de laboratório.Sim

Chaves e relacionamentos

Chave primária

  • id_forma_farmaceutica

Relacionamentos no Power BI

  • link_orc_ped_receitas.id_forma_farmaceutica → dim_forma_farmaceutica.id_forma_farmaceutica
  • dim_forma_farmaceutica.id_lab → dim_lab.id_lab

Dimensões operacionais

dados.dim_lab

DADOS dados.dim_lab

Laboratórios/tipos de laboratório derivados das formas farmacêuticas.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_forma_farmaceutica
Uso no Power BIImportada no modelo como dim_lab.

Campos

CampoTipoObrig.DescriçãoPower BI
id_labintNãoCódigo do laboratório/tipo de laboratório.Sim
labvarcharNãoNome do laboratório ou tipo de laboratório.Sim

Chaves e relacionamentos

Chave primária

  • id_lab

Relacionamentos no Power BI

  • dim_forma_farmaceutica.id_lab → dim_lab.id_lab

Dimensões operacionais

dados.dim_funcionarios

DADOS dados.dim_funcionarios

Cadastro de colaboradores/funcionários identificado por contrato e código do funcionário.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_funcionarios
Uso no Power BIImportada no modelo como dim_funcionarios.

Campos

CampoTipoObrig.DescriçãoPower BI
id_funcionariovarcharSimIdentificador composto do funcionário/colaborador.Sim
id_conintSimCódigo do contrato do funcionário (compõe a identificação do funcionário).Sim · soma
id_funintSimCódigo do funcionário (compõe, com o contrato, a identificação do funcionário).Sim · soma
nomevarcharNãoNome do funcionário/colaborador.Sim

Chaves e relacionamentos

Chave primária

  • id_funcionario

Relacionamentos no Power BI

  • fat_varejo.id_funcionario_recep → dim_funcionarios.id_funcionario
  • link_orc_ped_receitas.id_funcionario → dim_funcionarios.id_funcionario

Dimensões operacionais

dados.dim_medicos

DADOS dados.dim_medicos

Cadastro de médicos/prescritores, identificado por CRM composto.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_medicos
Uso no Power BIImportada no modelo como dim_medicos.

Campos

CampoTipoObrig.DescriçãoPower BI
crmvarcharSimCRM composto do médico/prescritor, usado como chave de prescrição.Sim
nomevarcharNãoNome do médico/prescritor.Sim
dtnascimentodateNãoData de nascimento.Sim
generovarcharNãoGênero informado no cadastro.Sim
codigoregiaovarcharNãoCódigo da região.Sim
regiaovarcharNãoRegião do prescritor.Sim
generoExtensotexto—Gênero por extenso, calculado no modelo do Power BI.Sim
crmUFtexto—UF do conselho profissional (CRM) do prescritor.Sim
Ultimo Visitadorcalculada—Último visitador vinculado ao prescritor (coluna calculada do Power BI).Coluna calculada
medico crmtexto—Nome do prescritor acompanhado do CRM, usado em filtros e buscas.Sim

Chaves e relacionamentos

Chave primária

  • crm

Relacionamentos no Power BI

  • dim_medicos.dtnascimento → LocalDateTable_07aff4ca-ed3f-44eb-9129-26b155339283.Date
  • link_orc_ped_receitas.crm → dim_medicos.crm
  • dim_medicos.crm → abc_medicos_o_valor.crm
  • fat_inclusao_visitador.crm → dim_medicos.crm
  • fat_varejo.crm → dim_medicos.crm
  • dim_medicos_especialidades.crm → dim_medicos.crm
  • fat_visitas.crm → dim_medicos.crm

Dimensões operacionais

dados.dim_medicos_emails

DADOS dados.dim_medicos_emails

E-mails dos médicos/prescritores extraídos dos endereços médicos.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_medicos_emails
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
crmvarcharSimCRM composto do médico/prescritor, usado como chave de prescrição.—
emailvarcharSimEndereço de e-mail.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • crm → dados.dim_medicos.crm

Índices

  • dim_medicos_emails_idx01 (crm)

Dimensões operacionais

dados.dim_medicos_enderecos

DADOS dados.dim_medicos_enderecos

Endereços dos médicos/prescritores.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_medicos_enderecos
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
crmvarcharSimCRM composto do médico/prescritor, usado como chave de prescrição.—
tipo_enderecovarcharNãoTipo do endereço.—
enderecovarcharNãoLogradouro do endereço.—
numerovarcharNãoNúmero do endereço.—
complementovarcharNãoComplemento do endereço.—
bairrovarcharNãoBairro do endereço.—
cepvarcharNãoCEP do endereço.—
municipiovarcharNãoMunicípio do endereço.—
ufvarcharNãoUnidade federativa (UF).—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • crm → dados.dim_medicos.crm

Índices

  • dim_medicos_enderecos_idx01 (crm)

Dimensões operacionais

dados.dim_medicos_especialidades

DADOS dados.dim_medicos_especialidades

Relação entre médicos e especialidades.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_medicos_especialidades
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
crmvarcharSimCRM composto do médico/prescritor, usado como chave de prescrição.—
codigo_especialidadevarcharSimCódigo da especialidade médica.—
itemintNãoNúmero do item no documento.—

Chaves e relacionamentos

Chave primária

  • crm
  • codigo_especialidade

Relações inferidas (SQL e nomes de campos)

  • crm → dados.dim_medicos.crm
  • codigo_especialidade → dados.dim_especialidades.codigo_especialidade

Dimensões operacionais

dados.dim_medicos_telefones

DADOS dados.dim_medicos_telefones

Telefones dos médicos/prescritores.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_medicos_telefones
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
crmvarcharSimCRM composto do médico/prescritor, usado como chave de prescrição.—
dddvarcharSimCódigo DDD do telefone.—
telefonevarcharSimNúmero do telefone.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • crm → dados.dim_medicos.crm

Índices

  • dim_medicos_telefones_idx01 (crm)

Dimensões operacionais

dados.dim_produtos

DADOS dados.dim_produtos

Cadastro de produtos/insumos com descrição, unidade, grupo, setor e descrição do setor.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_produtos
Uso no Power BIImportada no modelo como dim_produtos.

Campos

CampoTipoObrig.DescriçãoPower BI
id_produtointSimCódigo do produto/insumo.Sim
descrvarcharNãoDescrição do produto, componente ou item.Sim
descrdetvarcharNãoDescrição detalhada do produto.Sim
descrprdvarcharNãoDescrição comercial do produto.Sim
situacaovarcharNãoSituação do cadastro do produto.Sim
unidadevarcharNãoUnidade do produto/insumo.—
grupovarcharNãoGrupo do produto.Sim
setorvarcharNãoCódigo do setor do produto.Sim
setor_descvarcharNãoDescrição do setor do produto.Sim
descr_codigotexto—Descrição do produto acompanhada do código, usada em filtros e buscas.Sim

Chaves e relacionamentos

Chave primária

  • id_produto

Relacionamentos no Power BI

  • fat_varejo.id_produto → dim_produtos.id_produto
  • link_orc_ped_formulas.cdprin → dim_produtos.id_produto

Índices

  • dim_produtos_idx01 (descr)

Dimensões operacionais

dados.dim_setor

DADOS dados.dim_setor

Cadastro de grupos e setores de produtos.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_setor
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
grupovarcharNãoGrupo ao qual o setor pertence.—
codigovarcharNãoCódigo do setor.—
descricaovarcharNãoDescrição do setor.—

Chaves e relacionamentos

Chave primária

  • grupo
  • codigo

Índices

  • dim_setor_idx01 (trim(grupo)

Modelo de dados

Bases intermediárias

Tabelas de passagem do schema dados, usadas como etapa de preparação antes da transformação final (atendimento Mobi e bases de varejo).

TabelaCamposConteúdo
dados.mobi14Estrutura histórica/comentada para dados brutos do Mobi.
dados.mobi_aux1Tabela auxiliar de pedidos Mobi que precisam de reprocessamento.
dados.mobi_mensagens11Mensagens de atendimento Mobi por pedido web, data/hora, operador, canal e texto.
dados.mobi_orcamentos9Itens/orçamentos vinculados aos pedidos Mobi.
dados.mobi_pedidos22Pedidos Mobi, cliente web, endereço, canal e operador.
dados.base_fat_varejo19Base/cabeçalho de vendas de varejo antes da transformação final.
dados.base_fat_varejo_itens17Itens das vendas de varejo, produto, quantidade, valores, descontos, taxas e CRM.

Bases intermediárias

dados.mobi

DADOS dados.mobi

Estrutura histórica/comentada para dados brutos do Mobi.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_mobi
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
nrpedidoint4NãoNúmero do pedido Mobi.—
idpedidowebint4NãoIdentificador do pedido web.—
idpedidoint4NãoIdentificador do pedido no Mobi.—
titulowebvarchar(50)NãoTítulo do pedido web.—
cdcliwebint4NãoCódigo do cliente web.—
dtcriacaowebdateNãoData de criação do pedido web.—
dtmsgdateNãoData da mensagem.—
hrmsgtimeNãoHora da mensagem.—
mensagemdescrwebtextNãoTexto da mensagem do atendimento web.—
descricaowebvarchar(500)NãoDescrição do item/pedido web.—
cdfiloint4NãoCódigo da filial do orçamento vinculado.—
nrorcint4NãoNúmero do orçamento vinculado.—
serieovarchar(1)NãoSérie do orçamento vinculado.—
vrtotnumericNãoValor total do pedido.—

Chaves e relacionamentos

Índices

  • mobi_idx01 (nrpedido, dtcriacaoweb)
  • mobi_idx02 (dtcriacaoweb, nrpedido)

Bases intermediárias

dados.mobi_aux

DADOS dados.mobi_aux

Tabela auxiliar de pedidos Mobi que precisam de reprocessamento.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_mobi
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
nrpedidoint4NãoNúmero do pedido Mobi.—

Chaves e relacionamentos

Índices

  • mobi_aux_idx01 (nrpedido)

Bases intermediárias

dados.mobi_mensagens

DADOS dados.mobi_mensagens

Mensagens de atendimento Mobi por pedido web, data/hora, operador, canal e texto.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_mobi_mensagens
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
idint4NãoIdentificador da mensagem.—
idpedidoint4NãoIdentificador do pedido no Mobi.—
idpedidowebint4NãoIdentificador do pedido web.—
dtcriacaowebdateNãoData de criação do pedido web.—
dtmsgdateNãoData da mensagem.—
hrmsgtimeNãoHora da mensagem.—
cdconopint4NãoCódigo do contrato do operador (compõe a identificação do funcionário).—
cdfunopint4NãoCódigo do funcionário operador.—
idcanalcriacaoint4NãoIdentificador do canal em que a mensagem foi criada.—
idanexoint4NãoIdentificador do anexo da mensagem.—
mensagemdescrwebvarcharNãoTexto da mensagem do atendimento web.—

Chaves e relacionamentos

Índices

  • mobi_mensagens_idx01 (id)
  • mobi_mensagens_idx02 (idpedido)
  • mobi_mensagens_idx03 (dtcriacaoweb)

Bases intermediárias

dados.mobi_orcamentos

DADOS dados.mobi_orcamentos

Itens/orçamentos vinculados aos pedidos Mobi.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_mobi_orcamentos
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
idint4NãoIdentificador do item/orçamento do pedido Mobi.—
idpedidoint4NãoIdentificador do pedido no Mobi.—
idpedidowebint4NãoIdentificador do pedido web.—
descricaowebvarcharNãoDescrição do item/pedido web.—
idstatusitempedidoint4NãoIdentificador do status do item do pedido.—
idtipoitempedidoint4NãoIdentificador do tipo do item do pedido.—
cdfiloint4NãoCódigo da filial do orçamento vinculado.—
nrorcint4NãoNúmero do orçamento vinculado.—
serieovarcharNãoSérie do orçamento vinculado.—

Chaves e relacionamentos

Índices

  • mobi_orcamentos_idx01 (id)
  • mobi_orcamentos_idx02 (idpedido)

Bases intermediárias

dados.mobi_pedidos

DADOS dados.mobi_pedidos

Pedidos Mobi, cliente web, endereço, canal e operador.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_mobi_pedidos
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
idint4NãoIdentificador do pedido Mobi.—
cdfilpedidoint4NãoCódigo da filial do pedido.—
nrpedidoint4NãoNúmero do pedido Mobi.—
idpedidowebint4NãoIdentificador do pedido web.—
idcanalcriacaowebint4NãoIdentificador do canal em que o pedido web foi criado.—
idcanalultatuwebint4NãoIdentificador do canal da última atualização do pedido web.—
dtcriacaowebdateNãoData de criação do pedido web.—
hrcriacaowebtimeNãoHora de criação do pedido web.—
dtaultatualizacaowebtimestampNãoData da última atualização do pedido web.—
idclientewebint4NãoIdentificador do cliente web.—
enderwebvarcharNãoLogradouro do endereço informado no pedido web (Mobi).—
endnrwebvarcharNãoNúmero do endereço informado no pedido web (Mobi).—
endcpwebvarcharNãoComplemento do endereço informado no pedido web (Mobi).—
bairrwebvarcharNãoBairro do endereço informado no pedido web (Mobi).—
nrcepwebvarcharNãoCEP do endereço informado no pedido web (Mobi).—
municwebvarcharNãoMunicípio do endereço informado no pedido web (Mobi).—
unfedwebvarcharNãoUnidade federativa (UF) do endereço informado no pedido web (Mobi).—
nrdddfaxwebvarcharNãoDDD do fax informado no cadastro web (Mobi).—
nrfaxwebvarcharNãoNúmero do fax informado no cadastro web (Mobi).—
cdcliwebint4NãoCódigo do cliente web.—
cdconopint4NãoCódigo do contrato do operador (compõe a identificação do funcionário).—
cdfunopint4NãoCódigo do funcionário operador.—

Chaves e relacionamentos

Índices

  • mobi_pedidos_idx01 (id)
  • mobi_pedidos_idx02 (nrpedido)
  • mobi_pedidos_idx03 (dtcriacaoweb)

Bases intermediárias

dados.base_fat_varejo

DADOS dados.base_fat_varejo

Base/cabeçalho de vendas de varejo antes da transformação final.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_varejo
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_varejovarcharNãoIdentificador composto da venda de varejo.—
numero_varejoint4NãoNúmero da venda/cupom de varejo.—
id_filialint4NãoCódigo da filial principal do registro.—
data_saidadateNãoData de saída/venda.—
data_vencdateNãoData de vencimento.—
data_pagdateNãoData de pagamento.—
crmvarcharNãoCRM composto do médico/prescritor, usado como chave de prescrição.—
id_clienteint4NãoCódigo do cliente.—
id_funcionariovarcharNãoIdentificador composto do funcionário/colaborador.—
id_funcionario_recepvarcharNãoFuncionário responsável pela recepção/atendimento.—
id_funcionario_envarcharNãoFuncionário relacionado à entrega/envio.—
venda_totalnumericNãoValor total da venda.—
venda_tp_descvarcharNãoTipo de desconto aplicado à venda.—
venda_descnumericNãoDesconto informado na venda.—
venda_valor_descnumericNãoValor de desconto da venda.—
venda_cd_taxavarcharNãoCódigo da taxa aplicada à venda.—
venda_taxanumericNãoTaxa informada na venda.—
venda_valor_taxanumericNãoValor de taxa da venda.—
venda_valor_liqnumericNãoValor líquido da venda.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_cliente → dados.dim_clientes.id_cliente
  • id_filial → dados.dim_filiais.id_filial
  • id_varejo → dados.fat_varejo.id_varejo
  • id_funcionario → dados.dim_funcionarios.id_funcionario
  • id_funcionario_recep → dados.dim_funcionarios.id_funcionario
  • id_funcionario_en → dados.dim_funcionarios.id_funcionario
  • crm → dados.dim_medicos.crm

Índices

  • base_fat_varejo_idx01 (id_varejo)
  • base_fat_varejo_idx02 (id_filial, numero_varejo)
  • base_fat_varejo_idx03 (data_saida, id_filial)

Bases intermediárias

dados.base_fat_varejo_itens

DADOS dados.base_fat_varejo_itens

Itens das vendas de varejo, produto, quantidade, valores, descontos, taxas e CRM.

PropriedadeValor
Schemadados
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_varejo_item
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_varejovarcharNãoIdentificador composto da venda de varejo.—
data_saidadateNãoData de saída/venda.—
itemint4NãoNúmero do item no documento.—
id_produtoint4NãoCódigo do produto/insumo.—
quantnumericNãoQuantidade do item.—
vrtotnumericNãoValor total.—
vrdscnumericNãoValor de desconto.—
vrdscvnumericNãoValor de desconto da venda.—
vrdscvrcbnumericNãoValor de desconto da venda já recebido.—
vrtxavnumericNãoValor de taxa da venda.—
vrtxavrcbnumericNãoValor de taxa da venda já recebido.—
prcustonumericNãoPreço de custo.—
prcompranumericNãoPreço de compra.—
pruninumericNãoPreço unitário.—
pruniliqnumericNãoPreço unitário líquido.—
crmvarcharNãoCRM composto do médico/prescritor, usado como chave de prescrição.—
indusocontvarcharNãoIndica uso contínuo.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • id_produto → dados.dim_produtos.id_produto
  • id_varejo → dados.fat_varejo.id_varejo
  • crm → dados.dim_medicos.crm
  • id_varejo → dados.base_fat_varejo.id_varejo

Índices

  • base_fat_varejo_itens_idx01 (id_varejo)
  • base_fat_varejo_itens_idx02 (data_saida)

Modelo de dados

Camada analítica (DW)

Tabelas do schema dw, já transformadas para análise: fatos consolidados, vínculos entre orçamento e pedido, calendário e classificações (ABC e RFV). É a camada mais consumida pelo Power BI.

TabelaCamposConteúdo
dw.fat_mobi5Fato consolidado do Mobi com tempos de contato/link, número de mensagens, links e orçamentos aprovados.
dw.fat_clientes_resumo25Resumo analítico por cliente com contagens, datas, valores médios/totais, e-mails e telefones.
dw.fat_orcamentos17Fato DW de orçamentos transformados, com métricas agregadas e vínculos para o modelo Power BI.
dw.link_orc_ped11Vínculo unificado entre orçamentos e pedidos para análises de aprovação, conversão, cliente, filial e captação.
dw.fat_pedidos18Fato DW de pedidos transformados, com indicadores de origem, caixa e valores consolidados.
dw.fat_orcamentos_receitas3Fato DW de receitas de orçamento transformadas.
dw.link_orc_ped_receitas16Vínculo unificado entre receitas de orçamento e pedido, incluindo status aprovado/reprovado, médico e forma farmacêutica.
dw.fat_pedidos_receitas8Fato DW de receitas de pedido transformadas.
dw.link_orc_ped_formulas9Vínculo unificado de fórmulas/componentes de orçamentos e pedidos.
dw.fat_inclusao_visitador6Fato DW de inclusão de visitadores com nome do visitador.
dw.dim_visitadores1Dimensão de visitadores.
dw.fat_visitas3Fato DW de visitas transformadas.
dw.dim_calendario15Calendário de dias úteis/fracionados usado no cálculo de metas e filtros de data.
dw.abc_medicos_o_valor5Classificação ABC de médicos/prescritores por valor de orçamento.
dw.cliente_rfv9Classificação RFV de clientes publicada no DW.
dw.dim_medicos_especialidades2Dimensão DW de especialidades dos médicos.

Camada analítica (DW)

dw.fat_mobi

DW dw.fat_mobi

Fato consolidado do Mobi com tempos de contato/link, número de mensagens, links e orçamentos aprovados.

PropriedadeValor
Schemadw
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.load_mobi
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
nrpedidoint4SimNúmero do pedido Mobi.—
contatotimestampNãoData e hora do primeiro contato do atendimento.—
primeiro_pedidotimestampNãoData e hora do primeiro pedido.—
ultimo_pedidotimestampNãoData e hora do último pedido.—
numero_pedidosint4—Quantidade de pedidos.—

Chaves e relacionamentos

Chave primária

  • nrpedido

Índices

  • fat_mobi_idx01 (nrpedido)

Camada analítica (DW)

dw.fat_clientes_resumo

DW dw.fat_clientes_resumo

Resumo analítico por cliente com contagens, datas, valores médios/totais, e-mails e telefones.

PropriedadeValor
Schemadw
Forma de criaçãoTabela gerada por consulta (CREATE TABLE AS SELECT), recriada a cada transformação.
Rotina de cargadados.transf_clientes_resumo
Uso no Power BIImportada no modelo como fat_clientes_resumo (grupo Fatos).

Campos

CampoTipoObrig.DescriçãoPower BI
id_clienteinteiro—Código do cliente.Sim
n_orcinteiro—Quantidade de orçamentos do cliente.Sim · soma
dt_pri_orcdata/hora—Data do primeiro orçamento do cliente.Sim
dt_ult_orcdata/hora—Data do último orçamento do cliente.Sim
vm_orc_recdecimal—Valor médio das receitas de orçamento do cliente.Sim · soma
vt_orc_recdecimal—Valor total das receitas de orçamento do cliente.Sim · soma
ult_orctexto—Identificador do último orçamento do cliente.Sim
pri_orctexto—Identificador do primeiro orçamento do cliente.Sim
n_pedinteiro—Quantidade de pedidos do cliente.Sim · soma
dt_pri_peddata/hora—Data do primeiro pedido do cliente.Sim
dt_ult_peddata/hora—Data do último pedido do cliente.Sim
vm_ped_recdecimal—Valor médio das receitas de pedido do cliente.Sim · soma
vt_ped_recdecimal—Valor total das receitas de pedido do cliente.Sim · soma
ult_pedtexto—Identificador do último pedido do cliente.Sim
pri_pedtexto—Identificador do primeiro pedido do cliente.Sim
ult_ped_ano_mesinteiro—Ano e mês do último pedido, com o ano à frente (formato próprio para ordenação).Sim · soma
ult_ped_mes_anotexto—Mês e ano do último pedido, no formato de exibição.Sim
valor_ult_peddecimal—Valor do último pedido do cliente.Sim · soma
emailstexto—Lista de e-mails do cliente, agregada em um único campo.Sim
telefonestexto—Lista de telefones do cliente, agregada em um único campo.Sim
pedidosinteiro—Quantidade de pedidos do cliente.Sim
faixa_pedidostexto—Faixa de quantidade de pedidos em que o cliente se enquadra.Sim
n_orc_uniqinteiro—Quantidade de orçamentos distintos do cliente.Sim · soma
n_ped_uniqinteiro—Quantidade de pedidos distintos do cliente.Sim · soma
contatosinteiro—Quantidade de contatos do cliente.Sim · soma

Chaves e relacionamentos

Relacionamentos no Power BI

  • fat_clientes_resumo.dt_pri_orc → LocalDateTable_cf60e6eb-c631-4620-a05f-3ad8a161f435.Date
  • fat_clientes_resumo.dt_ult_orc → LocalDateTable_a526b133-86ff-4472-9b2a-1da2aac94b21.Date
  • fat_clientes_resumo.dt_pri_ped → LocalDateTable_eee5048b-2d51-483c-b0dd-3c38defa0718.Date
  • fat_clientes_resumo.dt_ult_ped → LocalDateTable_eac858ac-c4ca-491a-af3b-92cc0d2726da.Date
  • dim_clientes.id_cliente → fat_clientes_resumo.id_cliente

Camada analítica (DW)

dw.fat_orcamentos

DW dw.fat_orcamentos

Fato DW de orçamentos transformados, com métricas agregadas e vínculos para o modelo Power BI.

PropriedadeValor
Schemadw
Forma de criaçãoTabela gerada por consulta (CREATE TABLE AS SELECT), recriada a cada transformação.
Rotina de cargadados.transf_orc_ped
Uso no Power BIImportada no modelo como fat_orcamentos (grupo Fatos).

Campos

CampoTipoObrig.DescriçãoPower BI
id_orc_pedtexto—Chave unificada usada no DW para ligar orçamento e pedido.Sim
id_orcamentotexto—Identificador composto do orçamento.Sim
sn_pri_orctexto—Indica (S/N) se é o primeiro orçamento do cliente.Sim
sn_ult_orctexto—Indica (S/N) se é o último orçamento do cliente.Sim
sn_tem_pedtexto—Indica (S/N) se o orçamento gerou pedido.Sim
sn_clientetexto—Campo mantido como na base de origem do FórmulaCerta (sigla original: sn_cliente).Sim
valor_totaldecimal—Valor total consolidado.Sim · soma
itensinteiro—Quantidade de itens (receitas).Sim · soma
itens_reprovinteiro—Quantidade de itens reprovados.Sim · soma
itens_aprovinteiro—Quantidade de itens aprovados.Sim · soma
valor_receitasdecimal—Soma dos valores das receitas/fórmulas.Sim · soma
valor_receitas_reprovdecimal—Soma dos valores das receitas reprovadas.Sim · soma
valor_receitas_aprovdecimal—Soma dos valores das receitas aprovadas.Sim · soma
valor_descontodecimal—Valor de desconto aplicado.Sim · soma
valor_desconto_reprovdecimal—Valor de desconto das receitas reprovadas.Sim · soma
valor_desconto_aprovdecimal—Valor de desconto das receitas aprovadas.Sim · soma
id_funcionariotexto—Identificador composto do funcionário/colaborador.Sim

Chaves e relacionamentos

Relacionamentos no Power BI

  • fat_orcamentos.id_orc_ped → link_orc_ped.id_orc_ped

Camada analítica (DW)

dw.fat_pedidos

DW dw.fat_pedidos

Fato DW de pedidos transformados, com indicadores de origem, caixa e valores consolidados.

PropriedadeValor
Schemadw
Forma de criaçãoTabela gerada por consulta (CREATE TABLE AS SELECT), recriada a cada transformação.
Rotina de cargadados.transf_orc_ped
Uso no Power BIImportada no modelo como fat_pedidos (grupo Fatos).

Campos

CampoTipoObrig.DescriçãoPower BI
id_orc_pedtexto—Chave unificada usada no DW para ligar orçamento e pedido.Sim
id_pedidotexto—Identificador composto do pedido/requisição.Sim
valor_totaldecimal—Valor total consolidado.Sim · soma
itensinteiro—Quantidade de itens (receitas).Sim · soma
itens_orcinteiro—Quantidade de itens originados de orçamento.Sim · soma
itens_diretointeiro—Quantidade de itens lançados diretamente no pedido, sem orçamento.Sim · soma
valor_receitasdecimal—Soma dos valores das receitas/fórmulas.Sim · soma
valor_receitas_orcdecimal—Soma dos valores das receitas originadas de orçamento.Sim · soma
valor_receitas_diretodecimal—Soma dos valores das receitas lançadas diretamente no pedido, sem orçamento.Sim · soma
valor_descontodecimal—Valor de desconto aplicado.Sim · soma
valor_desconto_orcdecimal—Valor de desconto das receitas originadas de orçamento.Sim · soma
valor_desconto_diretodecimal—Valor de desconto das receitas lançadas diretamente no pedido.Sim · soma
sn_pri_pedtexto—Indica (S/N) se é o primeiro pedido do cliente.Sim
sn_ult_pedtexto—Indica (S/N) se é o último pedido do cliente.Sim
valor_caixadecimal—Valor recebido/identificado no caixa.Sim · soma
data_caixadata/hora—Data de caixa.Sim
pedido_tem_caixatexto—Indica se o pedido tem lançamento de caixa.Sim
id_funcionariotexto—Identificador composto do funcionário/colaborador.Sim

Chaves e relacionamentos

Relacionamentos no Power BI

  • fat_pedidos.id_orc_ped → link_orc_ped.id_orc_ped
  • fat_pedidos.data_caixa → LocalDateTable_6c2b2536-e85d-462d-a99f-4466943cc91a.Date

Camada analítica (DW)

dw.fat_orcamentos_receitas

DW dw.fat_orcamentos_receitas

Fato DW de receitas de orçamento transformadas.

PropriedadeValor
Schemadw
Forma de criaçãoTabela gerada por consulta (CREATE TABLE AS SELECT), recriada a cada transformação.
Rotina de cargadados.transf_orc_ped_receita
Uso no Power BIImportada no modelo como fat_orcamentos_receitas (grupo Fatos).

Campos

CampoTipoObrig.DescriçãoPower BI
id_orc_ped_receitastexto—Chave unificada usada no DW para ligar receitas de orçamento e pedido.Sim
id_orcamento_receitatexto—Identificador da receita/fórmula dentro do orçamento.Sim
serietexto—Série que identifica a receita/fórmula dentro do orçamento ou da requisição.Sim

Chaves e relacionamentos

Relacionamentos no Power BI

  • fat_orcamentos_receitas.id_orc_ped_receitas → link_orc_ped_receitas.id_orc_ped_receitas

Camada analítica (DW)

dw.fat_pedidos_receitas

DW dw.fat_pedidos_receitas

Fato DW de receitas de pedido transformadas.

PropriedadeValor
Schemadw
Forma de criaçãoTabela gerada por consulta (CREATE TABLE AS SELECT), recriada a cada transformação.
Rotina de cargadados.transf_orc_ped_receita
Uso no Power BIImportada no modelo como fat_pedidos_receitas (grupo Fatos).

Campos

CampoTipoObrig.DescriçãoPower BI
Pedido Receita Idtexto—Identificador da receita do pedido usado no modelo do Power BI.Sim
id_orc_ped_receitastexto—Chave unificada usada no DW para ligar receitas de orçamento e pedido.Sim
id_pedido_receitatexto—Identificador da receita/fórmula dentro do pedido.Sim
serietexto—Série que identifica a receita/fórmula dentro do orçamento ou da requisição.Sim
formula_desctexto—Descrição resumida da fórmula.Sim
tem_orcamentotexto—Indica se a receita do pedido tem orçamento de origem.Sim
indrepettexto—Indica se a receita é uma repetição.Sim
repeticaoExtensotexto—Indicação de repetição por extenso, calculada no modelo do Power BI.Sim

Chaves e relacionamentos

Relacionamentos no Power BI

  • fat_pedidos_receitas.id_orc_ped_receitas → link_orc_ped_receitas.id_orc_ped_receitas

Camada analítica (DW)

dw.fat_inclusao_visitador

DW dw.fat_inclusao_visitador

Fato DW de inclusão de visitadores com nome do visitador.

PropriedadeValor
Schemadw
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.transf_inclusao_visitadores
Uso no Power BIImportada no modelo como fat_inclusao_visitador (grupo Fatos).

Campos

CampoTipoObrig.DescriçãoPower BI
visitadorvarchar(50)SimNome do visitador.Sim
data_inclusaodateSimData de inclusão do visitador.Sim
crmvarchar(15)SimCRM composto do médico/prescritor, usado como chave de prescrição.Sim
ultima_inclusaobooleanNãoIndica se é a inclusão mais recente do visitador para o prescritor.Sim
ano_mestexto—Ano e mês de referência, com o ano à frente (formato próprio para ordenação).Sim
mes_anotexto—Mês e ano de referência, no formato de exibição.Sim

Chaves e relacionamentos

Relacionamentos no Power BI

  • fat_inclusao_visitador.crm → dim_medicos.crm
  • fat_inclusao_visitador.data_inclusao → LocalDateTable_e53182a8-c68c-4ed8-b38c-984e9315f512.Date

Relações inferidas (SQL e nomes de campos)

  • crm → dados.dim_medicos.crm

Índices

  • fat_inclusao_visitador_idx01 (data_inclusao, crm, visitador)

Camada analítica (DW)

dw.dim_visitadores

DW dw.dim_visitadores

Dimensão de visitadores.

PropriedadeValor
Schemadw
Forma de criaçãoTabela gerada por consulta (CREATE TABLE AS SELECT), recriada a cada transformação.
Rotina de cargadados.transf_inclusao_visitadores
Uso no Power BIImportada no modelo como dim_visitadores.

Campos

CampoTipoObrig.DescriçãoPower BI
visitadortexto—Nome do visitador.Sim

Camada analítica (DW)

dw.fat_visitas

DW dw.fat_visitas

Fato DW de visitas transformadas.

PropriedadeValor
Schemadw
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.transf_visitas
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
visitadorvarchar(50)SimNome do visitador.—
data_visitadateSimData da visita consolidada.—
crmvarchar(15)SimCRM composto do médico/prescritor, usado como chave de prescrição.—

Chaves e relacionamentos

Relações inferidas (SQL e nomes de campos)

  • crm → dados.dim_medicos.crm

Índices

  • fat_visitas_idx01 (data_visita, crm)
  • fat_visitas_idx02 (visitador, data_visita)
  • fat_visitas_idx03 (crm, data_visita)

Camada analítica (DW)

dw.dim_calendario

DW dw.dim_calendario

Calendário de dias úteis/fracionados usado no cálculo de metas e filtros de data.

PropriedadeValor
Schemadw
Forma de criaçãoTabela gerada por consulta (CREATE TABLE AS SELECT), recriada a cada transformação.
Rotina de cargadados.cria_dim_calendario
Uso no Power BIImportada no modelo como dim_calendario, dim_calendario_periodo1, dim_calendario_periodo2.

Campos

CampoTipoObrig.DescriçãoPower BI
data_entradadata/hora—Data de entrada do orçamento, pedido ou receita.Sim
dia_mestexto—Dia do mês.Sim
mestexto—Número do mês da data.Sim
mes_nometexto—Nome do mês por extenso.Sim
mes_nome_abrevtexto—Nome abreviado do mês.Sim
mes_anotexto—Mês e ano de referência, no formato de exibição.Sim
anotexto—Ano da data.Sim
dia_semanadecimal—Número do dia da semana.Sim · soma
dia_semana_nometexto—Nome do dia da semana por extenso.Sim
final_semanatexto—Indica se a data cai em um fim de semana.Sim
dia_semana_nome_abrevtexto—Nome abreviado do dia da semana.Sim
quartiltexto—Quartil do período ao qual a data pertence.Sim
ano_mestexto—Ano e mês de referência, com o ano à frente (formato próprio para ordenação).Sim
dia_fracaodecimal—Peso do dia no calendário de dias úteis.Sim · soma
Mês_Anotexto—Mês e ano de referência, no formato de exibição.Sim

Chaves e relacionamentos

Relacionamentos no Power BI

  • dim_calendario.data_entrada → LocalDateTable_b9df084e-30dd-4cd3-b27e-e687954eb58e.Date
  • link_orc_ped.data_entrada → dim_calendario.data_entrada
  • dim_calendario_periodo1.data_entrada → dim_calendario.data_entrada (inativo)
  • dim_calendario_periodo1.data_entrada → dim_calendario.data_entrada (inativo)
  • dim_calendario_periodo2.data_entrada → dim_calendario.data_entrada (inativo)
  • dim_calendario_periodo2.data_entrada → dim_calendario.data_entrada (inativo)
  • fat_varejo.data_saida → dim_calendario.data_entrada
  • fat_caixa.data_operacao → dim_calendario.data_entrada
  • fat_pagamentos.data_operacao → dim_calendario.data_entrada
  • fat_romaneios.data_prevista → dim_calendario.data_entrada

Índices

  • dim_calendario_idx01 (data_entrada)

Camada analítica (DW)

dw.abc_medicos_o_valor

DW dw.abc_medicos_o_valor

Classificação ABC de médicos/prescritores por valor de orçamento.

PropriedadeValor
Schemadw
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.medico_acumulado
Uso no Power BIImportada no modelo como abc_medicos_o_valor (grupo Fatos).

Campos

CampoTipoObrig.DescriçãoPower BI
crmvarcharSimCRM composto do médico/prescritor, usado como chave de prescrição.Sim
valor_receitanumericSimValor da receita.Sim · soma
partnumericNãoParticipação do prescritor no valor total.Sim · soma
acumuladonumericNãoParticipação acumulada, usada para definir a classe da curva ABC.Sim · soma
abcvarchar(1)NãoClasse da curva ABC (A, B ou C).Sim

Chaves e relacionamentos

Chave primária

  • crm

Relacionamentos no Power BI

  • dim_medicos.crm → abc_medicos_o_valor.crm

Relações inferidas (SQL e nomes de campos)

  • crm → dados.dim_medicos.crm

Índices

  • abc_medicos_o_valor_idx01 (valor_receita)

Camada analítica (DW)

dw.cliente_rfv

DW dw.cliente_rfv

Classificação RFV de clientes publicada no DW.

PropriedadeValor
Schemadw
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.cliente_rfv
Uso no Power BIImportada no modelo como cliente_rfv, cliente_rfv_historico.

Campos

CampoTipoObrig.DescriçãoPower BI
tipovarcharSimTipo da classificação RFV.Sim
id_clienteint4SimCódigo do cliente.Sim
recenciavarchar(2)NãoNota de recência do cliente na classificação RFV.Sim
recencia_valorint4NãoValor apurado de recência (base da nota de recência).Sim · soma
frequenciavarchar(2)NãoNota de frequência do cliente na classificação RFV.Sim
frequencia_valorint4NãoValor apurado de frequência (base da nota de frequência).Sim · soma
valorvarchar(2)NãoNota de valor do cliente na classificação RFV.Sim
valor_valornumericNãoValor apurado de compras (base da nota de valor).Sim · soma
scoreint4NãoPontuação consolidada da classificação RFV.Sim · soma

Chaves e relacionamentos

Relacionamentos no Power BI

  • cliente_rfv.id_cliente → dim_clientes.id_cliente
  • cliente_rfv_historico.id_cliente → dim_clientes.id_cliente

Relações inferidas (SQL e nomes de campos)

  • id_cliente → dados.dim_clientes.id_cliente

Índices

  • cliente_rfv_idx01 (tipo, id_cliente)

Camada analítica (DW)

dw.dim_medicos_especialidades

DW dw.dim_medicos_especialidades

Dimensão DW de especialidades dos médicos.

PropriedadeValor
Schemadw
Forma de criaçãoTabela gerada por consulta (CREATE TABLE AS SELECT), recriada a cada transformação.
Rotina de cargadados.transf_medicos
Uso no Power BIImportada no modelo como dim_medicos_especialidades.

Campos

CampoTipoObrig.DescriçãoPower BI
crmtexto—CRM composto do médico/prescritor, usado como chave de prescrição.Sim
especialidadetexto—Descrição da especialidade médica.Sim

Chaves e relacionamentos

Relacionamentos no Power BI

  • dim_medicos_especialidades.crm → dim_medicos.crm

Modelo de dados

Configuração e controle

Tabelas do schema config, com os parâmetros e o controle de execução das rotinas de carga e transformação.

TabelaCamposConteúdo
config.processamento7Controle de data/hora e período processado no início da rotina de transformação.
config.produtos5Configuração de produtos/insumos normalizados e indicadores para ignorar/agrupar.
config.cria_dados_processamento_fim—Controle de data/hora e período processado no fim da rotina de transformação.

Configuração e controle

config.processamento

CONFIG config.processamento

Controle de data/hora e período processado no início da rotina de transformação.

PropriedadeValor
Schemaconfig
Forma de criaçãoTabela gerada por consulta (CREATE TABLE AS SELECT), recriada a cada transformação.
Rotina de cargadados.cria_dados_processamento
Uso no Power BIImportada no modelo como tab_processamento.

Campos

CampoTipoObrig.DescriçãoPower BI
data_procdata/hora—Data do processamento.Sim
data_atualizacaodata/hora—Data/hora de atualização.Sim
periodo_dedata/hora—Primeira data do período processado.Sim
periodo_atedata/hora—Última data do período processado.Sim
data_orcamentosdata/hora—Data de referência da carga de orçamentos.Sim
data_pediddosdata/hora—Data de referência da carga de pedidos.Sim
hora_atualizacaotexto—Hora de atualização.Sim

Chaves e relacionamentos

Relacionamentos no Power BI

  • tab_processamento.data_proc → LocalDateTable_439056c4-099c-4ee5-ac25-fb7293924134.Date
  • tab_processamento.data_atualizacao → LocalDateTable_b62a0ac4-c05d-4bcb-a22a-f60dda63d6bd.Date
  • tab_processamento.periodo_de → LocalDateTable_893c2ee4-321a-4254-a419-db184f4b23eb.Date
  • tab_processamento.periodo_ate → LocalDateTable_8e3c6251-7bc7-4db6-bd7f-eecc31b3a478.Date
  • tab_processamento.data_orcamentos → LocalDateTable_219bc5d0-800f-42d9-a44b-a0698fea8fb0.Date
  • tab_processamento.data_pediddos → LocalDateTable_77c38851-7271-4260-b33b-81a51aa92949.Date

Configuração e controle

config.produtos

CONFIG config.produtos

Configuração de produtos/insumos normalizados e indicadores para ignorar/agrupar.

PropriedadeValor
Schemaconfig
Forma de criaçãoTabela com estrutura declarada (CREATE TABLE).
Rotina de cargadados.transf_orc_ped_formula
Uso no Power BINão importada diretamente no modelo.

Campos

CampoTipoObrig.DescriçãoPower BI
id_produtoint4NãoCódigo do produto/insumo.—
descrvarcharNãoDescrição do produto, componente ou item.—
tpcmpvarcharNãoTipo do componente.—
ignorarboolNãoIndica que o produto/insumo deve ser ignorado nas análises.—
chavevarcharSimChave normalizada do produto/insumo.—

Chaves e relacionamentos

Chave primária

  • chave

Relações inferidas (SQL e nomes de campos)

  • id_produto → dados.dim_produtos.id_produto

Índices

  • produtos_idx01 (descr, tpcmp)
  • produtos_idx02 (tpcmp, descr)
  • produtos_idx03 (ignorar)

Configuração e controle

config.cria_dados_processamento_fim

CONFIG config.cria_dados_processamento_fim

Controle de data/hora e período processado no fim da rotina de transformação.

PropriedadeValor
Schemaconfig
Forma de criaçãoTabela gerada por consulta (CREATE TABLE AS SELECT), recriada a cada transformação.
Rotina de cargadados.cria_dados_processamento_fim
Uso no Power BINão importada diretamente no modelo.

Os campos desta tabela não estão detalhados: ela é criada por consulta (CREATE TABLE AS SELECT) e não é importada diretamente no modelo do Power BI.

Exemplos de consulta

Como o DW é consultado

As consultas a seguir vêm do módulo de monitoramento que consome o DW. Elas mostram, na prática, quais tabelas são cruzadas e como as junções são escritas — um bom ponto de partida para as suas próprias consultas.

Os marcadores ? são parâmetros posicionais: substitua cada um pelo valor correspondente (período, filial, cliente etc.), na ordem em que aparecem. Algumas consultas citam tabelas de configuração (config.dimensao, config.ignorar) que não fazem parte do dicionário desta documentação.

Consultas disponíveis

ConsultaTemaO que faz
MonitorDadosCliente.sqlClientesMonta um painel detalhado do cliente, trazendo cadastro, contatos, resumo RFV, orçamentos recentes e pedidos recentes.
MonitorDadosClienteFormulas.sqlClientesLista fórmulas de orçamento e de pedido de um cliente em uma visão única para histórico de compra/orçamento.
MonitorFormulasOrcamentos.sqlOrçamentosConsulta fórmulas vinculadas a orçamentos de um cliente, cruzando cabeçalho, receitas e cadastro do cliente.
MonitorMetasMesColaborador.sqlMetasCalcula metas e realizado diário do mês por colaborador, combinando calendário, metas e vendas/orçamentos por recepcionista.
MonitorMetasMesFilial.sqlMetasCalcula metas e realizado diário do mês por filial, combinando calendário, metas e vendas/orçamentos por filial.
MonitorMetasMesGeral.sqlMetasCalcula metas e realizado diário geral do mês, sem recorte por dimensão.
MonitorOrcamento.sqlOrçamentosRetorna um orçamento específico com cliente, filial, captação, resumo do cliente, receitas e fórmulas em JSON.
MonitorOrcamentoFormula.sqlOrçamentosRetorna os componentes/fórmulas de uma receita de orçamento.
MonitorOrcamentos.sqlOrçamentosLista orçamentos do período com status de aprovação, dados do cliente, prescritor, filial e colaboradores.
MonitorPedidoFormula.sqlPedidosRetorna os componentes/fórmulas de uma receita de pedido.
MonitorPedidos.sqlPedidosLista pedidos/requisições do período com cliente, prescritor, filial, colaboradores, caixa e pagamentos.
MonitorPesquisaCliente.sqlClientesPesquisa clientes por texto em nome, documento, e-mail e telefone, com resumo lateral de orçamentos e pedidos.
MonitorPrescritor.sqlPrescritoresMonta indicadores de um prescritor, incluindo orçamentos, pedidos, clientes recentes e evolução por período.
MonitorRealizadoOrcColaborador.sqlOrçamentosSérie horária do realizado de orçamentos por colaborador.
MonitorRealizadoOrcFilial.sqlOrçamentosSérie horária do realizado de orçamentos por filial.
MonitorRealizadoOrcGeral.sqlOrçamentosSérie horária geral do realizado de orçamentos.
MonitorRealizadoPedColaborador.sqlPedidosSérie horária do realizado de pedidos por colaborador.
MonitorRealizadoPedFilial.sqlPedidosSérie horária do realizado de pedidos por filial.
MonitorRealizadoPedGeral.sqlPedidosSérie horária geral do realizado de pedidos.

Tabelas mais usadas

Junções recorrentes

Trechos de junção que se repetem entre as consultas, com o número de ocorrências:

JunçãoOcorrências
CROSS JOIN soma s LEFT JOIN orcamentos o ON o.data_entrada = d.data_entrada3
LEFT JOIN orcamentos o ON o.data_entrada = d.data_entrada LEFT JOIN pedidos p ON p.data_entrada = d.data_entrada3
LEFT JOIN pedidos p ON p.data_entrada = d.data_entrada3
JOIN dados.fat_orcamentos_receitas for2 ON for2.id_orcamento = fo.id_orcamento3
LEFT JOIN dados.dim_medicos dm ON dm.crm = b.crm3
join dados.fat_orcamentos_receitas for2 on (for2.id_orcamento = fo.id_orcamento)3
join dados.fat_pedidos_receitas fpr on (fpr.id_pedido = fp.id_pedido)3
JOIN dados.fat_orcamentos_receitas b on (b.id_orcamento = a.id_orcamento)2
JOIN dados.fat_orcamentos_formulas c on (c.id_orcamento_receita = b.id_orcamento_receita)2
JOIN dados.fat_pedidos_receitas fpr ON fpr.id_pedido = fp.id_pedido2
JOIN dados.dim_filiais c ON c.id_filial = a.id_filial2
LEFT JOIN dados.dim_funcionarios f1 ON f1.id_funcionario = b.id_funcionario_digit2
LEFT JOIN dados.dim_funcionarios f2 ON f2.id_funcionario = b.id_funcionario_recep2
LEFT JOIN config.dimensao d ON d.tipo = 'COLABORADOR'2
LEFT JOIN dados.dim_clientes dc ON dc.id_cliente = a.id_cliente2
JOIN dados.fat_pedidos_receitas b ON b.id_pedido = a.id_pedido2
left join config.dimensao d on (d.tipo = 'COLABORADOR' and d.dimensao = df.nome)2
left join config.dimensao d on (d.tipo = 'FILIAL' and d.dimensao = df.filial)2
left join dados.fat_orcamentos_receitas for2 on (for2.id_orcamento = fo.id_orcamento)1
left join dados.dim_medicos dm on (dm.crm = for2.crm)1

Exemplos de consulta · Clientes

MonitorDadosCliente

Monta um painel detalhado do cliente, trazendo cadastro, contatos, resumo RFV, orçamentos recentes e pedidos recentes.

PropriedadeValor
ArquivoMonitorDadosCliente.sql
TemaClientes
Parâmetros posicionais1 (marcadores ? na consulta)
Tabelas referenciadas13

Tabelas usadas

Junções usadas

  • left join dados.fat_orcamentos_receitas for2 on (for2.id_orcamento = fo.id_orcamento)
  • left join dados.dim_medicos dm on (dm.crm = for2.crm)
  • left join dados.dim_filiais df on (df.id_filial = fo.id_filial)
  • left join dados.dim_funcionarios dfu on (dfu.id_funcionario = for2.id_funcionario_recep)
  • left join dados.dim_captacao dcap ON (dcap.id_captacao = fo.id_captacao)
  • left join dados.dim_forma_farmaceutica dff on (dff.id_forma_farmaceutica = for2.tpformafarma)
  • left join dados.fat_pedidos_receitas fpr on (fpr.id_pedido = fp.id_pedido)
  • left join dados.dim_medicos dm on (dm.crm = fpr.crm)
  • left join dados.dim_filiais df on (df.id_filial = fp.id_filial)
  • left join dados.dim_funcionarios dfu on (dfu.id_funcionario = fpr.id_funcionario_recep)
  • left join dados.dim_captacao dcap ON (dcap.id_captacao = fp.id_captacao)
  • left join dados.dim_forma_farmaceutica dff on (dff.id_forma_farmaceutica = fpr.tpformafarma)

Consulta

SQL
SELECT
    dc.*,
    string_agg(distinct dce.email, ',') as emails,
    string_agg(distinct dct.ddd || ' ' || dct.telefone , ',') as telefones,
    COALESCE(
        (
            SELECT
                JSON_AGG(ROW_TO_JSON(e))
            FROM
                dados.dim_clientes_enderecos e
            WHERE
                e.id_cliente = dc.id_cliente
        ), '[]'::JSON
    ) AS cliente_enderecos,
    COALESCE(
        (
            SELECT
                JSON_AGG(ROW_TO_JSON(o))
            FROM
                (
                    select
                        fo.id_orcamento,
                        fo.numero_orcamento,
                        for2.id_orcamento_receita,
                        for2.serie,
                        fo.data_entrada,
                        df.filial,
                        dcap.captacao,
                        dm.nome as prescritor,
                        for2.nomepa,
                        dfu.nome as colaborador,
                        dff.forma_farmaceutica,
                        for2.qtfor,
                        for2.qtaprov,
                        for2.valor_final,
                        for2.vrdsc,
                        (
                            CASE
                                WHEN for2.qtaprov > for2.qtfor THEN 0
                                ELSE for2.qtfor - for2.qtaprov
                            END
                        ) AS qtreprov,
                        CASE
                            WHEN for2.qtaprov > for2.qtfor THEN 0
                            ELSE (for2.valor_final / for2.qtfor) * (for2.qtfor - for2.qtaprov)
                        END AS valor_final_reprov
                    from
                        dados.fat_orcamentos fo
                    left join
                        dados.fat_orcamentos_receitas for2 on (for2.id_orcamento = fo.id_orcamento)
                    left join
                        dados.dim_medicos dm on (dm.crm = for2.crm)
                    left join
                        dados.dim_filiais df on (df.id_filial = fo.id_filial)
                    left join
                        dados.dim_funcionarios dfu on (dfu.id_funcionario = for2.id_funcionario_recep)
                    left join
                        dados.dim_captacao dcap ON (dcap.id_captacao = fo.id_captacao)
                    left join
                        dados.dim_forma_farmaceutica dff on (dff.id_forma_farmaceutica = for2.tpformafarma)
                    where
                        fo.id_cliente = dc.id_cliente
                        %filtro_componente_orc%
                    order by
                        fo.data_entrada desc,
                        fo.id_orcamento,
                        for2.serie
                ) o
        ), '[]'::JSON
    ) AS orcamentos,
COALESCE(
        (
            SELECT
                JSON_AGG(ROW_TO_JSON(p))
            FROM
                (
                    select
                        fp.id_pedido,
                        fp.numero_pedido,
                        fpr.id_pedido_receita,
                        fpr.serie,
                        fp.data_entrada,
                        df.filial,
                        dcap.captacao,
                        dm.nome as prescritor,
                        fpr.nomepa,
                        dfu.nome as colaborador,
                        dff.forma_farmaceutica,
                        fpr.qtfor,
                        fpr.valor_final,
                        fpr.vrdsc
                    from
                        dados.fat_pedidos fp
                    left join
                        dados.fat_pedidos_receitas fpr on (fpr.id_pedido = fp.id_pedido)
                    left join
                        dados.dim_medicos dm on (dm.crm = fpr.crm)
                    left join
                        dados.dim_filiais df on (df.id_filial = fp.id_filial)
                    left join
                        dados.dim_funcionarios dfu on (dfu.id_funcionario = fpr.id_funcionario_recep)
                    left join
                        dados.dim_captacao dcap ON (dcap.id_captacao = fp.id_captacao)
                    left join
                        dados.dim_forma_farmaceutica dff on (dff.id_forma_farmaceutica = fpr.tpformafarma)
                    where
                        fp.id_cliente = dc.id_cliente
                        %filtro_componente_ped%
                    order by
                        fp.data_entrada desc,
                        fp.id_pedido,
                        fpr.serie
                ) p
        ), '[]'::JSON
    ) AS pedidos
FROM
    dados.dim_clientes dc
LEFT JOIN
    dados.dim_clientes_emails dce on (DCE.id_cliente = dc.id_cliente)
LEFT JOIN
    dados.dim_clientes_telefones dct on (dct.id_cliente = dc.id_cliente)
WHERE
    dc.id_cliente = ?
GROUP BY
    1

Exemplos de consulta · Clientes

MonitorDadosClienteFormulas

Lista fórmulas de orçamento e de pedido de um cliente em uma visão única para histórico de compra/orçamento.

PropriedadeValor
ArquivoMonitorDadosClienteFormulas.sql
TemaClientes
Parâmetros posicionais2 (marcadores ? na consulta)
Tabelas referenciadas6

Tabelas usadas

Junções usadas

  • JOIN dados.fat_orcamentos_receitas b on (b.id_orcamento = a.id_orcamento)
  • JOIN dados.fat_orcamentos_formulas c on (c.id_orcamento_receita = b.id_orcamento_receita)
  • JOIN dados.fat_pedidos_receitas b on (b.id_pedido = a.id_pedido)
  • JOIN dados.fat_pedidos_formulas c on (c.id_pedido_receita = b.id_pedido_receita)

Consulta

SQL
SELECT
    DISTINCT
    --id_produto,
    descr
FROM (
    SELECT
        c.id_produto,
        c.descr
    FROM
        dados.fat_orcamentos a
    JOIN
        dados.fat_orcamentos_receitas b on (b.id_orcamento = a.id_orcamento)
    JOIN
        dados.fat_orcamentos_formulas c on (c.id_orcamento_receita = b.id_orcamento_receita)
    WHERE
        id_cliente = ?

    UNION ALL

    SELECT
        c.id_produto,
        c.descr
    FROM
        dados.fat_pedidos a
    JOIN
        dados.fat_pedidos_receitas b on (b.id_pedido = a.id_pedido)
    JOIN
        dados.fat_pedidos_formulas c on (c.id_pedido_receita = b.id_pedido_receita)
    WHERE
        a.id_cliente = ?
) a
ORDER BY
    descr

Exemplos de consulta · Orçamentos

MonitorFormulasOrcamentos

Consulta fórmulas vinculadas a orçamentos de um cliente, cruzando cabeçalho, receitas e cadastro do cliente.

PropriedadeValor
ArquivoMonitorFormulasOrcamentos.sql
TemaOrçamentos
Parâmetros posicionaisNenhum
Tabelas referenciadas3

Tabelas usadas

Junções usadas

  • JOIN dados.fat_orcamentos_receitas b on (b.id_orcamento = a.id_orcamento)
  • JOIN dados.fat_orcamentos_formulas c on (c.id_orcamento_receita = b.id_orcamento_receita)

Consulta

SQL
SELECT
    DISTINCT c.descr
FROM
    dados.fat_orcamentos a
JOIN
    dados.fat_orcamentos_receitas b on (b.id_orcamento = a.id_orcamento)
JOIN
    dados.fat_orcamentos_formulas c on (c.id_orcamento_receita = b.id_orcamento_receita)
WHERE
    id_cliente = 166532
order BY
    DESCR

Exemplos de consulta · Metas

MonitorMetasMesColaborador

Calcula metas e realizado diário do mês por colaborador, combinando calendário, metas e vendas/orçamentos por recepcionista.

PropriedadeValor
ArquivoMonitorMetasMesColaborador.sql
TemaMetas
Parâmetros posicionais11 (marcadores ? na consulta)
Tabelas referenciadas7

Tabelas usadas

Junções usadas

  • JOIN dados.fat_orcamentos_receitas for2 ON for2.id_orcamento = fo.id_orcamento JOIN dados.dim_funcionarios df ON df.id_funcionario = for2.id_funcionario_recep
  • JOIN dados.dim_funcionarios df ON df.id_funcionario = for2.id_funcionario_recep LEFT JOIN config.dimensao d ON d.tipo = ?
  • LEFT JOIN config.dimensao d ON d.tipo = ?
  • JOIN dados.fat_pedidos_receitas fpr ON fpr.id_pedido = fp.id_pedido JOIN dados.dim_funcionarios df ON df.id_funcionario = fpr.id_funcionario_recep
  • JOIN dados.dim_funcionarios df ON df.id_funcionario = fpr.id_funcionario_recep LEFT JOIN config.dimensao d ON d.tipo = ?
  • CROSS JOIN soma s LEFT JOIN orcamentos o ON o.data_entrada = d.data_entrada
  • LEFT JOIN orcamentos o ON o.data_entrada = d.data_entrada LEFT JOIN pedidos p ON p.data_entrada = d.data_entrada
  • LEFT JOIN pedidos p ON p.data_entrada = d.data_entrada

Consulta

SQL
WITH dias AS (
    SELECT
        data_entrada,
        dia_fracao,
        dia_mes,
        dia_semana_nome,
        dia_semana_nome_abrev
    FROM
        dw.dim_calendario
    WHERE
        data_entrada BETWEEN ? AND ?
),
soma AS (
    SELECT
        SUM(dia_fracao) AS total_fracao
    FROM
        dias
),
orcamentos AS (
    SELECT
        for2.data_entrada,
        SUM(for2.valor_final) AS valor_final
    FROM
        dados.fat_orcamentos fo
        JOIN dados.fat_orcamentos_receitas for2 ON for2.id_orcamento = fo.id_orcamento
        JOIN dados.dim_funcionarios df ON df.id_funcionario = for2.id_funcionario_recep
        LEFT JOIN config.dimensao d ON d.tipo = ?
        AND d.dimensao = df.nome
    WHERE
        for2.data_entrada BETWEEN ? AND ? AND d.grupo = ?
    GROUP BY
        for2.data_entrada
),
pedidos AS (
    SELECT
        fpr.data_entrada,
        SUM(fpr.valor_final) AS valor_final
    FROM
        dados.fat_pedidos fp
        JOIN dados.fat_pedidos_receitas fpr ON fpr.id_pedido = fp.id_pedido
        JOIN dados.dim_funcionarios df ON df.id_funcionario = fpr.id_funcionario_recep
        LEFT JOIN config.dimensao d ON d.tipo = ?
        AND d.dimensao = df.nome
    WHERE
        fpr.data_entrada BETWEEN ? AND ? AND d.grupo = ?
    GROUP BY
        fpr.data_entrada
)
SELECT
    d.data_entrada,
    d.dia_mes,
    d.dia_semana_nome,
    d.dia_semana_nome_abrev,
    d.dia_fracao,
    (d.dia_fracao / s.total_fracao) AS peso,
    (? * (d.dia_fracao / s.total_fracao)) AS valor_distribuido,
    o.valor_final as orcamentos,
    p.valor_final as pedidos
FROM
    dias d
    CROSS JOIN soma s
    LEFT JOIN orcamentos o ON o.data_entrada = d.data_entrada
    LEFT JOIN pedidos p ON p.data_entrada = d.data_entrada
ORDER BY
    d.data_entrada

Exemplos de consulta · Metas

MonitorMetasMesFilial

Calcula metas e realizado diário do mês por filial, combinando calendário, metas e vendas/orçamentos por filial.

PropriedadeValor
ArquivoMonitorMetasMesFilial.sql
TemaMetas
Parâmetros posicionais11 (marcadores ? na consulta)
Tabelas referenciadas7

Tabelas usadas

Junções usadas

  • JOIN dados.fat_orcamentos_receitas for2 ON for2.id_orcamento = fo.id_orcamento JOIN dados.dim_filiais df ON df.id_filial = fo.id_filial
  • JOIN dados.dim_filiais df ON df.id_filial = fo.id_filial LEFT JOIN config.dimensao d ON d.tipo = ? AND d.dimensao = df.filial
  • LEFT JOIN config.dimensao d ON d.tipo = ? AND d.dimensao = df.filial
  • JOIN dados.fat_pedidos_receitas fpr ON fpr.id_pedido = fp.id_pedido JOIN dados.dim_filiais df ON df.id_filial = fp.id_filial
  • JOIN dados.dim_filiais df ON df.id_filial = fp.id_filial LEFT JOIN config.dimensao d ON d.tipo = ? AND d.dimensao = df.filial
  • CROSS JOIN soma s LEFT JOIN orcamentos o ON o.data_entrada = d.data_entrada
  • LEFT JOIN orcamentos o ON o.data_entrada = d.data_entrada LEFT JOIN pedidos p ON p.data_entrada = d.data_entrada
  • LEFT JOIN pedidos p ON p.data_entrada = d.data_entrada

Consulta

SQL
WITH dias AS (
    SELECT
        data_entrada,
        dia_fracao,
        dia_mes,
        dia_semana_nome,
        dia_semana_nome_abrev
    FROM
        dw.dim_calendario
    WHERE
        data_entrada BETWEEN ? AND ?
),
soma AS (
    SELECT
        SUM(dia_fracao) AS total_fracao
    FROM
        dias
),
orcamentos AS (
    SELECT
        for2.data_entrada,
        SUM(for2.valor_final) AS valor_final
    FROM
        dados.fat_orcamentos fo
        JOIN dados.fat_orcamentos_receitas for2 ON for2.id_orcamento = fo.id_orcamento
        JOIN dados.dim_filiais df ON df.id_filial = fo.id_filial
        LEFT JOIN config.dimensao d ON d.tipo = ? AND d.dimensao = df.filial
    WHERE
        for2.data_entrada BETWEEN ? AND ? AND d.grupo = ?
    GROUP BY
        for2.data_entrada
),
pedidos AS (
    SELECT
        fpr.data_entrada,
        SUM(fpr.valor_final) AS valor_final
    FROM
        dados.fat_pedidos fp
        JOIN dados.fat_pedidos_receitas fpr ON fpr.id_pedido = fp.id_pedido
        JOIN dados.dim_filiais df ON df.id_filial = fp.id_filial
        LEFT JOIN config.dimensao d ON d.tipo = ? AND d.dimensao = df.filial
    WHERE
        fpr.data_entrada BETWEEN ? AND ? AND d.grupo = ?
    GROUP BY
        fpr.data_entrada
)
SELECT
    d.data_entrada,
    d.dia_mes,
    d.dia_semana_nome,
    d.dia_semana_nome_abrev,
    d.dia_fracao,
    (d.dia_fracao / s.total_fracao) AS peso,
    (? * (d.dia_fracao / s.total_fracao)) AS valor_distribuido,
    o.valor_final as orcamentos,
    p.valor_final as pedidos
FROM
    dias d
    CROSS JOIN soma s
    LEFT JOIN orcamentos o ON o.data_entrada = d.data_entrada
    LEFT JOIN pedidos p ON p.data_entrada = d.data_entrada
ORDER BY
    d.data_entrada

Exemplos de consulta · Metas

MonitorMetasMesGeral

Calcula metas e realizado diário geral do mês, sem recorte por dimensão.

PropriedadeValor
ArquivoMonitorMetasMesGeral.sql
TemaMetas
Parâmetros posicionais7 (marcadores ? na consulta)
Tabelas referenciadas5

Tabelas usadas

Junções usadas

  • JOIN dados.fat_orcamentos_receitas for2 ON for2.id_orcamento = fo.id_orcamento
  • JOIN dados.fat_pedidos_receitas fpr ON fpr.id_pedido = fp.id_pedido
  • CROSS JOIN soma s LEFT JOIN orcamentos o ON o.data_entrada = d.data_entrada
  • LEFT JOIN orcamentos o ON o.data_entrada = d.data_entrada LEFT JOIN pedidos p ON p.data_entrada = d.data_entrada
  • LEFT JOIN pedidos p ON p.data_entrada = d.data_entrada

Consulta

SQL
WITH dias AS (
    SELECT
        data_entrada,
        dia_fracao,
        dia_mes,
        dia_semana_nome,
        dia_semana_nome_abrev
    FROM
        dw.dim_calendario
    WHERE
        data_entrada BETWEEN ? AND ?
),
soma AS (
    SELECT
        SUM(dia_fracao) AS total_fracao
    FROM
        dias
),
orcamentos AS (
    SELECT
        for2.data_entrada,
        SUM(for2.valor_final) AS valor_final
    FROM
        dados.fat_orcamentos fo
        JOIN dados.fat_orcamentos_receitas for2 ON for2.id_orcamento = fo.id_orcamento
    WHERE
        for2.data_entrada BETWEEN ? AND ?
    GROUP BY
        for2.data_entrada
),
pedidos AS (
    SELECT
        fpr.data_entrada,
        SUM(fpr.valor_final) AS valor_final
    FROM
        dados.fat_pedidos fp
        JOIN dados.fat_pedidos_receitas fpr ON fpr.id_pedido = fp.id_pedido
    WHERE
        fpr.data_entrada BETWEEN ? AND ?
    GROUP BY
        fpr.data_entrada
)
SELECT
    d.data_entrada,
    d.dia_mes,
    d.dia_semana_nome,
    d.dia_semana_nome_abrev,
    d.dia_fracao,
    (d.dia_fracao / s.total_fracao) AS peso,
    (? * (d.dia_fracao / s.total_fracao)) AS valor_distribuido,
    o.valor_final as orcamentos,
    p.valor_final as pedidos
FROM
    dias d
    CROSS JOIN soma s
    LEFT JOIN orcamentos o ON o.data_entrada = d.data_entrada
    LEFT JOIN pedidos p ON p.data_entrada = d.data_entrada
ORDER BY
    d.data_entrada

Exemplos de consulta · Orçamentos

MonitorOrcamento

Retorna um orçamento específico com cliente, filial, captação, resumo do cliente, receitas e fórmulas em JSON.

PropriedadeValor
ArquivoMonitorOrcamento.sql
TemaOrçamentos
Parâmetros posicionais1 (marcadores ? na consulta)
Tabelas referenciadas12

Tabelas usadas

Junções usadas

  • LEFT JOIN ( SELECT DISTINCT ON (id_orcamento_receita) *
  • LEFT JOIN dados.dim_medicos dm ON dm.crm = a.crm
  • LEFT JOIN dados.dim_funcionarios df1 ON df1.id_funcionario = a.id_funcionario_digit
  • LEFT JOIN dados.dim_funcionarios df2 ON df2.id_funcionario = a.id_funcionario_recep
  • LEFT JOIN dados.dim_clientes dc ON dc.id_cliente = fo.id_cliente
  • LEFT JOIN dw.fat_clientes_resumo fcr ON fcr.id_cliente = dc.id_cliente
  • LEFT JOIN dados.dim_captacao dcap ON dcap.id_captacao = fo.id_captacao
  • LEFT JOIN dados.dim_filiais df ON df.id_filial = fo.id_filial
  • LEFT JOIN dados.dim_filiais dfd ON dfd.id_filial = fo.id_filial_destino

Consulta

SQL
SELECT
    fo.*,
    dc.nome,
    dc.tipo,
    dc.genero,
    dc.dt_cadadastro,
    dc.dt_nascimento,
    dcap.captacao,
    df.filial,
    dfd.filial AS filial_destino,
    fcr.emails,
    fcr.telefones,
    ROW_TO_JSON(dc) AS cliente,
    COALESCE(
        (
            SELECT
                JSON_AGG(ROW_TO_JSON(e))
            FROM
                dados.dim_clientes_enderecos e
            WHERE
                e.id_cliente = dc.id_cliente
        ),
        '[]'::JSON
    ) AS cliente_enderecos,
    COALESCE(
        (
            SELECT JSON_AGG(ROW_TO_JSON(r))
            FROM (
                SELECT
                    a.*,
                    dm.nome AS prescritor,
                    dm.regiao AS prescritor_regiao,
                    df1.nome AS funcionario_digit,
                    df2.nome AS funcionario_recep,
                    fpr.id_pedido,
                    fpr.data_entrada as data_entrada_ped,
                    COALESCE(
                        (
                            SELECT JSON_AGG(ROW_TO_JSON(b))
                            FROM dados.fat_orcamentos_formulas b
                            WHERE b.id_orcamento_receita = a.id_orcamento_receita
                        ),
                        '[]'::JSON
                    ) AS componentes
                FROM
                    dados.fat_orcamentos_receitas a
                LEFT JOIN (
                    SELECT
                        DISTINCT ON (id_orcamento_receita) *
                    FROM
                        dados.fat_pedidos_receitas
                    ORDER BY
                        id_orcamento_receita,
                        data_entrada DESC
                ) fpr ON fpr.id_orcamento_receita = a.id_orcamento_receita
                LEFT JOIN dados.dim_medicos dm
                    ON dm.crm = a.crm
                LEFT JOIN dados.dim_funcionarios df1
                    ON df1.id_funcionario = a.id_funcionario_digit
                LEFT JOIN dados.dim_funcionarios df2
                    ON df2.id_funcionario = a.id_funcionario_recep
                WHERE
                    a.id_orcamento = fo.id_orcamento
            ) r
        ),
        '[]'::JSON
    ) AS receitas
FROM
    dados.fat_orcamentos fo
LEFT JOIN dados.dim_clientes dc
    ON dc.id_cliente = fo.id_cliente
LEFT JOIN dw.fat_clientes_resumo fcr
    ON fcr.id_cliente = dc.id_cliente
LEFT JOIN dados.dim_captacao dcap
    ON dcap.id_captacao = fo.id_captacao
LEFT JOIN dados.dim_filiais df
    ON df.id_filial = fo.id_filial
LEFT JOIN dados.dim_filiais dfd
    ON dfd.id_filial = fo.id_filial_destino
WHERE
    1=1
    AND fo.id_orcamento = ?
    AND fo.id_filial not in (
        SELECT
            valor::int
        FROM
            config.ignorar i
        WHERE
            (i.tabela = '*' or i.tabela = 'orcamento') AND i.campo = 'id_filial'
    )

Exemplos de consulta · Orçamentos

MonitorOrcamentoFormula

Retorna os componentes/fórmulas de uma receita de orçamento.

PropriedadeValor
ArquivoMonitorOrcamentoFormula.sql
TemaOrçamentos
Parâmetros posicionais1 (marcadores ? na consulta)
Tabelas referenciadas1

Tabelas usadas

Consulta

SQL
SELECT
    *
FROM
    dados.fat_orcamentos_formulas
WHERE
    id_orcamento_receita = ?

Exemplos de consulta · Orçamentos

MonitorOrcamentos

Lista orçamentos do período com status de aprovação, dados do cliente, prescritor, filial e colaboradores.

PropriedadeValor
ArquivoMonitorOrcamentos.sql
TemaOrçamentos
Parâmetros posicionais2 (marcadores ? na consulta)
Tabelas referenciadas10

Tabelas usadas

Junções usadas

  • JOIN dados.fat_orcamentos_receitas for2 ON for2.id_orcamento = fo.id_orcamento
  • JOIN dados.fat_orcamentos_receitas b ON b.id_orcamento = a.id_orcamento
  • LEFT JOIN DADOS.fat_pedidos_receitas fpr ON fpr.id_orcamento_receita = b.id_orcamento_receita AND fpr.data_entrada = b.data_entrada
  • JOIN dados.dim_filiais c ON c.id_filial = a.id_filial
  • LEFT JOIN dados.dim_funcionarios f1 ON f1.id_funcionario = b.id_funcionario_digit
  • LEFT JOIN dados.dim_funcionarios f2 ON f2.id_funcionario = b.id_funcionario_recep
  • LEFT JOIN config.dimensao d ON d.tipo = 'COLABORADOR'
  • LEFT JOIN dados.dim_clientes dc ON dc.id_cliente = a.id_cliente
  • LEFT JOIN dw.fat_clientes_resumo fcr ON fcr.id_cliente = a.id_cliente
  • LEFT JOIN dados.dim_medicos dm ON dm.crm = b.crm

Consulta

SQL
SELECT
    id_orcamento,
    id_filial,
    filial,
    numero_orcamento,
    id_cliente,
    cliente,
    emails,
    telefones,
    data_entrada,
    EXTRACT(HOUR FROM data_ultimo_cadastro) AS hora,
    data_ultimo_cadastro,
    prescritores,
    pacientes,
    funcionario,
    grupos,
    itens,
    data_cadastro_max,
    valor_final,
    vrdsc,
    vrtxa,
    qtfor,
    qtaprov,
    qtreprov,
    valor_final_reprov,
    CASE
        WHEN qtaprov <= 0 THEN 'REPROV 100%'
        WHEN qtaprov = qtfor THEN 'APROV 100%'
        WHEN qtaprov > 0 THEN 'APROV'
        ELSE 'REPROV 100%'
    END AS status,
    itens_aprov_md,
    CAST(historico->>'orcamentos' AS INTEGER) AS hst_orcamentos,
    CAST(historico->>'qtfor' AS INTEGER) AS hst_qtfor,
    CAST(historico->>'qtreprov' AS INTEGER) AS hst_qtreprov,
    CAST(historico->>'ind_reprov' AS NUMERIC) AS hst_ind_reprov
FROM (
    SELECT
        a.id_orcamento,
        a.id_filial,
        c.filial,
        a.numero_orcamento,
        a.id_cliente,
        dc.nome AS cliente,
        fcr.emails,
        fcr.telefones,
        a.data_entrada AS data_entrada,
        COUNT(fpr.id_pedido_receita) AS itens_aprov_md,
        MAX(CAST(b.data_entrada || ' ' || b.hrcad AS TIMESTAMP)) AS data_ultimo_cadastro,
        STRING_AGG(DISTINCT dm.nome, ',') AS prescritores,
        STRING_AGG(DISTINCT b.nomepa, ',') AS pacientes,
        STRING_AGG(DISTINCT f2.nome, ',') AS funcionario,
        CASE
            WHEN STRING_AGG(DISTINCT d.grupo, ',') IS NOT NULL THEN STRING_AGG(DISTINCT d.grupo, ',')
            ELSE STRING_AGG(DISTINCT f2.nome, ',')
        END AS grupos,
        COUNT(DISTINCT b.id_orcamento_receita) AS itens,
        MAX(b.data_cadastro) AS data_cadastro_max,
        SUM(b.valor_final) AS valor_final,
        SUM(b.vrdsc) AS vrdsc,
        SUM(b.vrtxa) AS vrtxa,
        SUM(b.qtfor) AS qtfor,
        SUM(b.qtaprov) AS qtaprov,
        SUM(
            CASE
                WHEN b.qtaprov > b.qtfor THEN 0
                ELSE b.qtfor - b.qtaprov
            END
        ) AS qtreprov,
        SUM(
            ROUND(
                (b.valor_final / b.qtfor) * (b.qtfor - b.qtaprov),
                2
            )
        ) AS valor_final_reprov,
        (
            SELECT
                ROW_TO_JSON(x) AS historico
            FROM (
                SELECT
                    orcamentos,
                    qtfor,
                    qtreprov,
                    CASE
                        WHEN qtfor IS NULL THEN NULL
                        WHEN qtfor > 0 AND qtreprov > 0 THEN ROUND((qtreprov::NUMERIC / qtfor::NUMERIC) * 100, 2)
                        ELSE 0
                    END AS ind_reprov
                FROM (
                    SELECT
                        COUNT(DISTINCT fo.id_orcamento) AS orcamentos,
                        SUM(for2.qtfor) AS qtfor,
                        SUM(
                            CASE
                                WHEN for2.qtaprov > for2.qtfor THEN 0
                                ELSE for2.qtfor - for2.qtaprov
                            END
                        ) AS qtreprov
                    FROM
                        dados.fat_orcamentos fo
                    JOIN dados.fat_orcamentos_receitas for2
                        ON for2.id_orcamento = fo.id_orcamento
                    WHERE
                        1=1
                        AND fo.id_cliente = a.id_cliente
                        AND fo.data_entrada <= a.data_entrada
                        AND fo.id_orcamento != a.id_orcamento
                        AND fo.id_filial not in (
                            SELECT
                                valor::int
                            FROM
                                config.ignorar i
                            WHERE
                                (i.tabela = '*' or i.tabela = 'orcamento') AND i.campo = 'id_filial'
                        )
                ) y
            ) x
        ) AS historico
    FROM
        dados.fat_orcamentos a
    JOIN dados.fat_orcamentos_receitas b
        ON b.id_orcamento = a.id_orcamento
    LEFT JOIN DADOS.fat_pedidos_receitas fpr
        ON fpr.id_orcamento_receita = b.id_orcamento_receita AND fpr.data_entrada = b.data_entrada
    JOIN dados.dim_filiais c
        ON c.id_filial = a.id_filial
    LEFT JOIN dados.dim_funcionarios f1
        ON f1.id_funcionario = b.id_funcionario_digit
    LEFT JOIN dados.dim_funcionarios f2
        ON f2.id_funcionario = b.id_funcionario_recep
    LEFT JOIN config.dimensao d
        ON d.tipo = 'COLABORADOR'
        AND d.dimensao = f2.nome
    LEFT JOIN dados.dim_clientes dc
        ON dc.id_cliente = a.id_cliente
    LEFT JOIN dw.fat_clientes_resumo fcr
        ON fcr.id_cliente = a.id_cliente
    LEFT JOIN dados.dim_medicos dm
        ON dm.crm = b.crm
    WHERE
        1=1
        AND a.data_entrada >= ?
        AND a.data_entrada <= ?
        AND a.id_filial not in (
            SELECT
                valor::int
            FROM
                config.ignorar i
            WHERE
                (i.tabela = '*' or i.tabela = 'orcamento') AND i.campo = 'id_filial'
        )
        %filtro_colaborador%
    GROUP BY
        1, 2, 3, 4, 5, 6, 7, 8, 9
    ORDER BY
        8 DESC
) x

Exemplos de consulta · Pedidos

MonitorPedidoFormula

Retorna os componentes/fórmulas de uma receita de pedido.

PropriedadeValor
ArquivoMonitorPedidoFormula.sql
TemaPedidos
Parâmetros posicionais1 (marcadores ? na consulta)
Tabelas referenciadas1

Tabelas usadas

Consulta

SQL
SELECT
    *
FROM
    dados.fat_pedidos_formulas
WHERE
    id_pedido_receita = ?

Exemplos de consulta · Pedidos

MonitorPedidos

Lista pedidos/requisições do período com cliente, prescritor, filial, colaboradores, caixa e pagamentos.

PropriedadeValor
ArquivoMonitorPedidos.sql
TemaPedidos
Parâmetros posicionais2 (marcadores ? na consulta)
Tabelas referenciadas10

Tabelas usadas

Junções usadas

  • JOIN dados.fat_pedidos_receitas b ON b.id_pedido = a.id_pedido
  • JOIN dados.dim_filiais c ON c.id_filial = a.id_filial
  • LEFT JOIN dados.dim_funcionarios f1 ON f1.id_funcionario = b.id_funcionario_digit
  • LEFT JOIN dados.dim_funcionarios f2 ON f2.id_funcionario = b.id_funcionario_recep
  • LEFT JOIN config.dimensao d ON d.tipo = 'COLABORADOR'
  • LEFT JOIN dados.dim_clientes dc ON dc.id_cliente = a.id_cliente
  • LEFT JOIN dados.dim_medicos dm ON dm.crm = b.crm
  • LEFT JOIN (

Consulta

SQL
SELECT
    a.id_pedido,
    a.id_filial,
    c.filial,
    a.numero_pedido,
    a.id_cliente,
    dc.nome AS cliente,
    a.data_entrada,
    EXTRACT(HOUR FROM MAX(CAST(b.data_entrada || ' ' || b.hrcad AS TIMESTAMP))) AS hora,
    STRING_AGG(DISTINCT b.id_orcamento_receita, ',') AS orcamentos,
    fc.tipo_pagamento,
    fp.pagamento,
    fp.adcar,
    MAX(CAST(b.data_entrada || ' ' || b.hrcad AS TIMESTAMP)) AS data_ultimo_cadastro,
    STRING_AGG(DISTINCT dm.nome, ',') AS prescritores,
    STRING_AGG(DISTINCT b.nomepa, ',') AS pacientes,
    STRING_AGG(DISTINCT f2.nome, ',') AS funcionario,
    CASE
        WHEN STRING_AGG(DISTINCT d.grupo, ',') IS NOT NULL THEN STRING_AGG(DISTINCT d.grupo, ',')
        ELSE STRING_AGG(DISTINCT f2.nome, ',')
    END AS grupos,
    COUNT(DISTINCT b.id_orcamento_receita) AS itens,
    MAX(b.data_cadastro) AS data_cadastro_max,
    SUM(b.valor_final) AS valor_final,
    SUM(b.vrdsc) AS vrdsc,
    SUM(b.vrtxa) AS vrtxa,
    SUM(b.qtfor) AS qtfor
FROM
    dados.fat_pedidos a
JOIN dados.fat_pedidos_receitas b
    ON b.id_pedido = a.id_pedido
JOIN dados.dim_filiais c
    ON c.id_filial = a.id_filial
LEFT JOIN dados.dim_funcionarios f1
    ON f1.id_funcionario = b.id_funcionario_digit
LEFT JOIN dados.dim_funcionarios f2
    ON f2.id_funcionario = b.id_funcionario_recep
LEFT JOIN config.dimensao d
    ON d.tipo = 'COLABORADOR'
    AND d.dimensao = f2.nome
LEFT JOIN dados.dim_clientes dc
    ON dc.id_cliente = a.id_cliente
LEFT JOIN dados.dim_medicos dm
    ON dm.crm = b.crm
LEFT JOIN (
    SELECT
        id_pedido,
        STRING_AGG(DISTINCT tipo_pagamento, ',') AS tipo_pagamento,
        MAX(id_operacao) AS id_operacao_ref
    FROM dados.fat_caixa
    WHERE id_pedido IS NOT NULL
    GROUP BY id_pedido
) fc
    ON fc.id_pedido = a.id_pedido
LEFT JOIN (
    SELECT
        id_operacao,
        STRING_AGG(DISTINCT pagamento, ',') AS pagamento,
        STRING_AGG(DISTINCT adcar, ',') AS adcar
    FROM dados.fat_pagamentos
    GROUP BY id_operacao
) fp
    ON fp.id_operacao = fc.id_operacao_ref
WHERE
    1=1
    AND a.data_entrada >= ?
    AND a.data_entrada <= ?
    AND a.id_filial NOT IN (
        SELECT valor::int
        FROM config.ignorar i
        WHERE (i.tabela = '*' OR i.tabela = 'pedido') AND i.campo = 'id_filial'
    )
    %filtro_colaborador%
GROUP BY
    1, 2, 3, 4, 5, 6, 7, 10, 11, 12
ORDER BY
    8 DESC

Exemplos de consulta · Clientes

MonitorPesquisaCliente

Pesquisa clientes por texto em nome, documento, e-mail e telefone, com resumo lateral de orçamentos e pedidos.

PropriedadeValor
ArquivoMonitorPesquisaCliente.sql
TemaClientes
Parâmetros posicionaisNenhum
Tabelas referenciadas7

Tabelas usadas

Junções usadas

  • LEFT JOIN dados.dim_clientes_emails dce ON dce.id_cliente = dc.id_cliente LEFT JOIN dados.dim_clientes_telefones dct ON dct.id_cliente = dc.id_cliente
  • LEFT JOIN dados.dim_clientes_telefones dct ON dct.id_cliente = dc.id_cliente
  • LEFT JOIN LATERAL (
  • JOIN dados.fat_orcamentos_receitas for2 ON for2.id_orcamento = fo.id_orcamento
  • JOIN dados.fat_pedidos_receitas fpr ON fpr.id_pedido = fp.id_pedido

Consulta

SQL
WITH cli AS (
    SELECT
        dc.id_cliente,
        nome,
        cnpj,
        inscricao,
        orgao_exp_rg,
        dt_cadadastro,
        dt_alteracao,
        string_agg(DISTINCT dce.email, ',') AS emails,
        string_agg(DISTINCT dct.ddd || ' ' || dct.telefone, ',') AS telefones
    FROM
        dados.dim_clientes dc
        LEFT JOIN dados.dim_clientes_emails dce ON dce.id_cliente = dc.id_cliente
        LEFT JOIN dados.dim_clientes_telefones dct ON dct.id_cliente = dc.id_cliente
    WHERE
        %filtro_clientes%
    GROUP BY
        1,2,3,4,5,6,7
)
SELECT
    cli.*,
    orc.*,
    ped.*
FROM
    cli
    LEFT JOIN LATERAL (
        SELECT
            count(distinct fo.id_orcamento) as orcamentos,
            sum(for2.qtfor) as formulas_orcamentos,
            sum(for2.qtaprov) as formulas_aprov_orcamentos,
            min(fo.data_entrada) as primeiro_orcamento,
            max(fo.data_entrada) as ultimo_orcamento,
            sum(for2.valor_final) as valor_orcamentos,
            sum(for2.vrdsc) as desconto_orcamentos,
            sum(
                CASE
                    WHEN for2.qtaprov > for2.qtfor THEN 0
                    ELSE for2.qtfor - for2.qtaprov
                END
            ) as formulas_reprov_orcamentos
        FROM
            dados.fat_orcamentos fo
            JOIN dados.fat_orcamentos_receitas for2 ON for2.id_orcamento = fo.id_orcamento
        WHERE
            fo.id_cliente = cli.id_cliente
    ) orc ON true
    LEFT JOIN LATERAL (
        SELECT
            count(distinct fp.id_pedido) as pedidos,
            sum(fpr.qtfor) as formulas_pedidos,
            min(fp.data_entrada) as primeiro_pedido,
            max(fp.data_entrada) as ultimo_pedido,
            sum(fpr.valor_final) as valor_pedidos,
            sum(fpr.vrdsc) as desconto_pedidos
        FROM
            dados.fat_pedidos fp
            JOIN dados.fat_pedidos_receitas fpr ON fpr.id_pedido = fp.id_pedido
        WHERE
            fp.id_cliente = cli.id_cliente
    ) ped ON true

Exemplos de consulta · Prescritores

MonitorPrescritor

Monta indicadores de um prescritor, incluindo orçamentos, pedidos, clientes recentes e evolução por período.

PropriedadeValor
ArquivoMonitorPrescritor.sql
TemaPrescritores
Parâmetros posicionais8 (marcadores ? na consulta)
Tabelas referenciadas6

Tabelas usadas

Junções usadas

  • LEFT JOIN dados.fat_pedidos a on (a.id_pedido = b.id_pedido)
  • LEFT JOIN dados.fat_orcamentos a on (a.id_orcamento = b.id_orcamento)
  • LEFT JOIN (
  • JOIN dados.fat_orcamentos_receitas b ON b.id_orcamento = a.id_orcamento LEFT JOIN dados.dim_medicos dm ON dm.crm = b.crm
  • LEFT JOIN dados.dim_medicos dm ON dm.crm = b.crm
  • JOIN dados.fat_pedidos_receitas b ON b.id_pedido = a.id_pedido
  • LEFT JOIN dados.dim_medicos dm ON dm.crm = x.crm

Consulta

SQL
SELECT
    dm.crm,
    dm.nome,
    orc_numeros,
    orc_qtfor,
    orc_qtfor_reprov,
    CASE
        WHEN orc_qtfor IS NULL THEN NULL
        WHEN orc_qtfor > 0
        AND orc_qtfor_reprov > 0 THEN ROUND(
            (orc_qtfor_reprov :: NUMERIC / orc_qtfor :: NUMERIC) * 100,
            2
        )
        ELSE 0
    END AS orc_qtfor_reprov_perc,
    orc_valor_final,
    orc_vrdsc,
    CASE
        WHEN orc_valor_final + orc_vrdsc > 0 THEN ROUND(
            (
                (orc_vrdsc / (orc_valor_final + orc_vrdsc)) * 100
            ),
            2
        )
        ELSE 0
    END AS orc_vrdsc_perc,
    orc_valor_final_reprov,
    CASE
        WHEN orc_valor_final > 0 THEN ROUND(
            ((orc_valor_final_reprov / orc_valor_final) * 100),
            2
        )
        ELSE 0
    END AS orc_valor_final_reprov_perc,
    ped_numeros,
    ped_qtfor,
    ped_valor_final,
    ped_vrdsc,
    CASE
        WHEN ped_valor_final + ped_vrdsc > 0 THEN ROUND(
            (
                (ped_vrdsc / (ped_valor_final + ped_vrdsc)) * 100
            ),
            2
        )
        ELSE 0
    END AS ped_vrdsc_perc
FROM
    (
        SELECT
            a.crm,
            orc_numeros,
            orc_qtfor,
            orc_qtaprov,
            orc_valor_final,
            orc_vrdsc,
            orc_vrtxa,
            orc_qtfor_reprov,
            orc_valor_final_reprov,
            ped_numeros,
            ped_qtfor,
            ped_valor_final,
            ped_vrdsc,
            ped_vrtxa
        FROM
            (
                SELECT
                    DISTINCT crm
                FROM
                    (
                        SELECT
                            DISTINCT crm
                        FROM
                            dados.fat_pedidos_receitas b
                        LEFT JOIN
                            dados.fat_pedidos a on (a.id_pedido = b.id_pedido)
                        WHERE
                            1=1
                            AND b.data_entrada >= ?
                            AND b.data_entrada <= ?
                            AND a.id_filial not in (
                                SELECT
                                    valor::int
                                FROM
                                    config.ignorar i
                                WHERE
                                    (i.tabela = '*' or i.tabela = 'pedido') AND i.campo = 'id_filial'
                            )
                            %filtro_colaborador%
                        UNION
                        ALL
                        SELECT
                            DISTINCT crm
                        FROM
                            dados.fat_orcamentos_receitas b
                        LEFT JOIN
                            dados.fat_orcamentos a on (a.id_orcamento = b.id_orcamento)
                        WHERE
                            1=1
                            AND b.data_entrada >= ?
                            AND b.data_entrada <= ?
                            AND a.id_filial not in (
                                SELECT
                                    valor::int
                                FROM
                                    config.ignorar i
                                WHERE
                                    (i.tabela = '*' or i.tabela = 'orcamento') AND i.campo = 'id_filial'
                            )
                            %filtro_colaborador%
                    ) crmx
            ) a
            LEFT JOIN (
                SELECT
                    b.crm,
                    COUNT(DISTINCT a.id_cliente) AS orc_clientes,
                    COUNT(DISTINCT a.id_orcamento) AS orc_numeros,
                    SUM(b.qtfor) AS orc_qtfor,
                    SUM(b.qtaprov) AS orc_qtaprov,
                    SUM(b.valor_final) AS orc_valor_final,
                    SUM(b.vrdsc) AS orc_vrdsc,
                    SUM(b.vrtxa) AS orc_vrtxa,
                    SUM(
                        CASE
                            WHEN b.qtaprov > b.qtfor THEN 0
                            ELSE b.qtfor - b.qtaprov
                        END
                    ) AS orc_qtfor_reprov,
                    SUM(
                        ROUND(
                            (b.valor_final / b.qtfor) * CASE
                                WHEN b.qtaprov > b.qtfor THEN 0
                                ELSE b.qtfor - b.qtaprov
                            END,
                            2
                        )
                    ) AS orc_valor_final_reprov
                FROM
                    dados.fat_orcamentos a
                    JOIN dados.fat_orcamentos_receitas b ON b.id_orcamento = a.id_orcamento
                    LEFT JOIN dados.dim_medicos dm ON dm.crm = b.crm
                WHERE
                    1=1
                    AND a.data_entrada >= ?
                    AND a.data_entrada <= ?
                    AND a.id_filial not in (
                        SELECT
                            valor::int
                        FROM
                            config.ignorar i
                        WHERE
                            (i.tabela = '*' or i.tabela = 'orcamento') AND i.campo = 'id_filial'
                    )
                    %filtro_colaborador%
                GROUP BY
                    1
            ) orc ON orc.crm = a.crm
            LEFT JOIN (
                SELECT
                    b.crm,
                    COUNT(DISTINCT a.id_cliente) AS ped_clientes,
                    COUNT(DISTINCT a.id_pedido) AS ped_numeros,
                    SUM(b.qtfor) AS ped_qtfor,
                    SUM(b.valor_final) AS ped_valor_final,
                    SUM(b.vrdsc) AS ped_vrdsc,
                    SUM(b.vrtxa) AS ped_vrtxa
                FROM
                    dados.fat_pedidos a
                    JOIN dados.fat_pedidos_receitas b ON b.id_pedido = a.id_pedido
                WHERE
                    1=1
                    AND a.data_entrada >= ?
                    AND a.data_entrada <= ?
                    AND a.id_filial not in (
                        SELECT
                            valor::int
                        FROM
                            config.ignorar i
                        WHERE
                            (i.tabela = '*' or i.tabela = 'pedido') AND i.campo = 'id_filial'
                    )
                    %filtro_colaborador%
                GROUP BY
                    1
            ) ped ON ped.crm = a.crm
    ) x
    LEFT JOIN dados.dim_medicos dm ON dm.crm = x.crm

Exemplos de consulta · Orçamentos

MonitorRealizadoOrcColaborador

Série horária do realizado de orçamentos por colaborador.

PropriedadeValor
ArquivoMonitorRealizadoOrcColaborador.sql
TemaOrçamentos
Parâmetros posicionais1 (marcadores ? na consulta)
Tabelas referenciadas4

Tabelas usadas

Junções usadas

  • join dados.fat_orcamentos_receitas for2 on (for2.id_orcamento = fo.id_orcamento)
  • join dados.dim_funcionarios df on (df.id_funcionario = for2.id_funcionario_recep)
  • left join config.dimensao d on (d.tipo = 'COLABORADOR' and d.dimensao = df.nome)

Consulta

SQL
select
    d.grupo,
    fo.id_orcamento,
    extract(hour from cast(for2.data_entrada || ' ' || for2.hrcad as TIMESTAMP)) as hora,
    for2.valor_final
from
    dados.fat_orcamentos fo
join
    dados.fat_orcamentos_receitas for2 on (for2.id_orcamento = fo.id_orcamento)
join
    dados.dim_funcionarios df on (df.id_funcionario = for2.id_funcionario_recep)
left join
    config.dimensao d on (d.tipo = 'COLABORADOR' and d.dimensao = df.nome)
where
    1 = 1
    and for2.data_entrada = current_date
    and d.grupo = ?

Exemplos de consulta · Orçamentos

MonitorRealizadoOrcFilial

Série horária do realizado de orçamentos por filial.

PropriedadeValor
ArquivoMonitorRealizadoOrcFilial.sql
TemaOrçamentos
Parâmetros posicionais1 (marcadores ? na consulta)
Tabelas referenciadas4

Tabelas usadas

Junções usadas

  • join dados.fat_orcamentos_receitas for2 on (for2.id_orcamento = fo.id_orcamento)
  • join dados.dim_filiais df on (df.id_filial = fo.id_filial)
  • left join config.dimensao d on (d.tipo = 'FILIAL' and d.dimensao = df.filial)

Consulta

SQL
select
    d.grupo,
    fo.id_orcamento,
    extract(hour from cast(for2.data_entrada || ' ' || for2.hrcad as TIMESTAMP)) as hora,
    for2.valor_final
from
    dados.fat_orcamentos fo
join
    dados.fat_orcamentos_receitas for2 on (for2.id_orcamento = fo.id_orcamento)
join
    dados.dim_filiais df on (df.id_filial = fo.id_filial)
left join
    config.dimensao d on (d.tipo = 'FILIAL' and d.dimensao = df.filial)
where
    1 = 1
    and for2.data_entrada = current_date
    and d.grupo = ?

Exemplos de consulta · Orçamentos

MonitorRealizadoOrcGeral

Série horária geral do realizado de orçamentos.

PropriedadeValor
ArquivoMonitorRealizadoOrcGeral.sql
TemaOrçamentos
Parâmetros posicionais1 (marcadores ? na consulta)
Tabelas referenciadas3

Tabelas usadas

Junções usadas

  • join dados.fat_orcamentos_receitas for2 on (for2.id_orcamento = fo.id_orcamento)

Consulta

SQL
select
    (
        select
            grupo
        from
            config.dimensao d
        where
            d.grupo = ?
    ) as grupo,
    fo.id_orcamento,
    extract(hour from cast(for2.data_entrada || ' ' || for2.hrcad as TIMESTAMP)) as hora,
    for2.valor_final
from
    dados.fat_orcamentos fo
        join
    dados.fat_orcamentos_receitas for2 on (for2.id_orcamento = fo.id_orcamento)
where
    1 = 1
    and for2.data_entrada = current_date

Exemplos de consulta · Pedidos

MonitorRealizadoPedColaborador

Série horária do realizado de pedidos por colaborador.

PropriedadeValor
ArquivoMonitorRealizadoPedColaborador.sql
TemaPedidos
Parâmetros posicionais1 (marcadores ? na consulta)
Tabelas referenciadas4

Tabelas usadas

Junções usadas

  • join dados.fat_pedidos_receitas fpr on (fpr.id_pedido = fp.id_pedido)
  • join dados.dim_funcionarios df on (df.id_funcionario = fpr.id_funcionario_recep)
  • left join config.dimensao d on (d.tipo = 'COLABORADOR' and d.dimensao = df.nome)

Consulta

SQL
select
    d.grupo,
    fp.id_pedido,
    extract(hour from cast(fpr.data_entrada || ' ' || fpr.hrcad as TIMESTAMP)) as hora,
    fpr.valor_final
from
    dados.fat_pedidos fp
join
    dados.fat_pedidos_receitas fpr on (fpr.id_pedido = fp.id_pedido)
join
    dados.dim_funcionarios df on (df.id_funcionario = fpr.id_funcionario_recep)
left join
    config.dimensao d on (d.tipo = 'COLABORADOR' and d.dimensao = df.nome)
where
    1 = 1
    and fpr.data_entrada = current_date
    and d.grupo = ?

Exemplos de consulta · Pedidos

MonitorRealizadoPedFilial

Série horária do realizado de pedidos por filial.

PropriedadeValor
ArquivoMonitorRealizadoPedFilial.sql
TemaPedidos
Parâmetros posicionais1 (marcadores ? na consulta)
Tabelas referenciadas4

Tabelas usadas

Junções usadas

  • join dados.fat_pedidos_receitas fpr on (fpr.id_pedido = fp.id_pedido)
  • join dados.dim_filiais df on (df.id_filial = fp.id_filial)
  • left join config.dimensao d on (d.tipo = 'FILIAL' and d.dimensao = df.filial)

Consulta

SQL
select
    d.grupo,
    fp.id_pedido,
    extract(hour from cast(fpr.data_entrada || ' ' || fpr.hrcad as TIMESTAMP)) as hora,
    fpr.valor_final
from
    dados.fat_pedidos fp
join
    dados.fat_pedidos_receitas fpr on (fpr.id_pedido = fp.id_pedido)
join
    dados.dim_filiais df on (df.id_filial = fp.id_filial)
left join
    config.dimensao d on (d.tipo = 'FILIAL' and d.dimensao = df.filial)
where
    1 = 1
    and fpr.data_entrada = current_date
    and d.grupo = ?

Exemplos de consulta · Pedidos

MonitorRealizadoPedGeral

Série horária geral do realizado de pedidos.

PropriedadeValor
ArquivoMonitorRealizadoPedGeral.sql
TemaPedidos
Parâmetros posicionais1 (marcadores ? na consulta)
Tabelas referenciadas3

Tabelas usadas

Junções usadas

  • join dados.fat_pedidos_receitas fpr on (fpr.id_pedido = fp.id_pedido)

Consulta

SQL
select
    (
        select
            grupo
        from
            config.dimensao d
        where
            d.grupo = ?
    ) as grupo,
    fp.id_pedido,
    extract(hour from cast(fpr.data_entrada || ' ' || fpr.hrcad as TIMESTAMP)) as hora,
    fpr.valor_final
from
    dados.fat_pedidos fp
join
    dados.fat_pedidos_receitas fpr on (fpr.id_pedido = fp.id_pedido)
where
    1 = 1
    and fpr.data_entrada = current_date

Referência

Boas práticas de consumo

  • Prefira as tabelas do schema dw para análises: elas já estão consolidadas e são as mesmas que alimentam o Power BI.
  • Use os relacionamentos do Power BI como base das junções; trate as relações inferidas como indicação, e valide o resultado antes de usá-las.
  • Tabelas criadas por CREATE TABLE AS SELECT são recriadas a cada transformação: não dependa de objetos criados sobre elas (índices, visões, permissões específicas).
  • Consulte config.processamento para saber a data, a hora e o período da última carga antes de comparar números.
  • Identificadores compostos (id_pedido, id_orcamento, crm) são texto: compare-os sempre como texto, sem conversão numérica.
  • Campos calculados no modelo do Power BI (marcados como Coluna calculada) não existem no DW; recalcule-os na sua consulta quando precisar.

O DW contém dados pessoais de clientes, pacientes e prescritores (nome, documentos, endereço, telefone, e-mail). Trate-os conforme a LGPD: extraia apenas o necessário e restrinja o acesso a quem precisa.

Referência

Suporte

Dúvidas sobre acesso, significado de campos, regras de carga ou divergências de dados devem ser direcionadas ao canal de suporte acordado com a Fagron Tech, informando:

  • a tabela e o campo envolvidos;
  • a consulta SQL utilizada, quando houver;
  • a filial e o período analisados;
  • a data e a hora da última carga, conforme config.processamento.