Pular para o conteúdo principal

CD_INDICEMARKUP - Perfil de Índice de Markup Contábil (Padrão da Empresa)

Tela: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Ambos → Operação 2 → campo editável ao lado de "Movimentos e Operações Padrão" Tabela: PARMFATUR.CD_INDICEMARKUP Tipo: Inteiro (DOM_INTEGER) Valor padrão: NULL (vazio — sem perfil padrão) Componente na UI: edtNR_PERFIL (TDBEdit, DataField = CD_INDICEMARKUP), com hint "Lista de Perfil dos Índices <F9>"

:::note Não confundir com PC_INDICE1 PC_INDICEMARKUP é o perfil de markup contábil (composição de índices de venda, compra, despesa e impostos). PC_INDICE1 (PARMFATUR.PC_INDICE1, configurado em MFA001 — Parâmetros de Faturamento, aba Pedidos / O.S. → Opção 1) é um benchmark de lucratividade no pedido. São sistemas independentes. :::

O que o parâmetro faz​

Define o número do perfil de índices de Markup Contábil usado como padrão pela empresa. Esse perfil, cadastrado na tabela INDICEMARCKUP (tela TFA042 / TFI001), contém uma composição de percentuais que o sistema aplica sobre o preço/custo para calcular:

  • % Markup de Venda — desconto/comissão sobre o preço de venda
  • % Markup de Compra — frete/ICMS sobre compras
  • % Markup de Despesa — despesas operacionais
  • % Imposto de Venda — impostos incidentes sobre venda
  • % Imposto de Compra — impostos incidentes sobre compra

O sistema usa o perfil em relatórios de análise de markup (CNF008), cálculos de margem em NF de saída (MNF001/MNF002), pedidos de venda (MPD002), orçamentos (MPD018) e cadastro de itens (CFA003).

Hierarquia de resolução​

Quando o sistema precisa do perfil de markup, segue esta ordem de precedência:

PrioridadeOrigemDescrição
1ªCONDFISCAL.CD_INDICEMARKUPPerfil vinculado à Condição Fiscal do item (tela TFI001 — Condições Fiscais)
2ªEMPRESA.NR_PERFILPerfil vinculado à Empresa (quando preenchido na tela de consulta)
3ªPARMFATUR.CD_INDICEMARKUPEste parâmetro — padrão global da empresa

Ou seja: se o item tem condição fiscal com perfil próprio, esse é usado; caso contrário, cai para o padrão de PARMFATUR.

Telas impactadas​

TelaProgramaUso
CFA003Cadastro de ItensCálculo de margem/markup ao abrir análise do item (btnMargemClick, btnIndicesClick)
CNF008Análise de VendasRelatório de Análise de Markup por quebra (cliente, grupo, item etc.)
MNF001NF de SaídaCálculo de markup ao exibir dados do item na aba Produtos
MNF002NF de EntradaMesma lógica do MNF001 para entrada
MPD002Pedido de VendaCálculo de markup ao exibir análise do item no pedido
MPD018OrçamentoCálculo de markup na aba de análise do item no orçamento
MCO006Ordem de CompraLeitura do parâmetro em BuscaParametros_MCO006
MNF008Relatório NFLeitura do parâmetro em BuscaParametros_MNF008
TFI001Condições FiscaisPermite informar CD_INDICEMARKUP por condição fiscal (sobrepõe o padrão)
RNF006RelatórioFiltro: AND C.CD_INDICEMARKUP IS NULL (busca itens sem perfil)

Campos envolvidos​

TabelaCampoPapel
PARMFATURCD_INDICEMARKUPPerfil padrão da empresa (este parâmetro)
PARMFATURTP_ANALISEDefine qual custo é usado na análise de markup (configurado em MFA001 — Parâmetros de Faturamento, mesma aba Operação 2)
CONDFISCALCD_INDICEMARKUPPerfil específico por condição fiscal (sobrepõe o padrão)
INDICEMARCKUPNR_PERFILCódigo do perfil (chave de agrupamento dos índices)
INDICEMARCKUPDS_PERFILDescrição do perfil
INDICEMARCKUPTP_INDICETipo do índice (C=Compra, V=Venda, D=Despesa, I=Imposto)
INDICEMARCKUPPC_INDICEPercentual do índice
INDICEMARCKUPST_INDICEAtivo (S) ou Inativo (N)

Opções disponíveis​

O que fazDetalhe
Campo editável numéricoDigite o número do perfil (NR_PERFIL) cadastrado em INDICEMARCKUP. Tecla <F9> abre lista de perfis.
Validação ao sair do campoVerifica se o perfil existe na tabela INDICEMARCKUP; se não existir, exibe erro "O Perfil não está Cadastrado [TFA042]!"
Pode ficar vazioSim. Se vazio, o sistema usa o perfil da condição fiscal do item ou, em alguns relatórios, bloqueia a execução.

Preenchido com um perfil válido​

Simulação passo a passo​

  1. Acesse MFA001 — Parâmetros de Faturamento.
  2. Selecione a empresa desejada.
  3. Na aba Operação 2, localize o campo de perfil de índices (edit numérico com hint "Lista de Perfil dos Índices <F9>").
  4. Digite o número do perfil, por exemplo 1 (correspondente a "PERFIL 1" em INDICEMARCKUP).
  5. Pressione <Tab> para sair do campo. O sistema valida o perfil e preenche automaticamente a descrição ao lado.
  6. Salve os parâmetros (<Ctrl+S> ou botão Salvar).
  7. Ao abrir um pedido (MPD002) ou NF de saída (MNF001) e visualizar a análise de markup do item, o sistema usará esse perfil para calcular os percentuais de venda, compra, despesa e impostos.

Resultado esperado: Todos os cálculos de markup contábil da empresa usam os percentuais do perfil informado como padrão, quando o item não possuir condição fiscal com perfil próprio.

Vazio (NULL)​

Simulação passo a passo​

  1. Acesse MFA001 — Parâmetros de Faturamento.
  2. Selecione a empresa desejada.
  3. Na aba Operação 2, deixe o campo de perfil de índices vazio.
  4. Salve os parâmetros.

Resultado esperado: O sistema buscará o perfil exclusivamente na condição fiscal do item (CONDFISCAL.CD_INDICEMARKUP). Em telas de análise de markup (CFA003), se nem a condição fiscal tiver perfil, será exibido erro: "O Número do Índice é obrigatório para calcular os índices de Markup. Verifique! [CFA003][TFI001][MFA001]". No relatório CNF008, itens sem perfil serão sinalizados e a consulta será abortada.

Exceção / Importante: No relatório CNF008 (Análise de Vendas), o sistema percorre todos os registros retornados e, se encontrar qualquer item com CD_INDICEMARKUP vazio, bloqueia a execução com a mensagem: "Existem Itens sem Perfil de Índices Markup Parametrizados [TFA042]. Verifique [TPO001/TFI001] ou Informe um Perfil Padrão [CNF008/MFA001]!". É obrigatório que todos os itens tenham perfil (via condição fiscal ou padrão da empresa).

Regra de validação​

Ao preencher o campo, a rotina tabPARMFATURCD_INDICEMARKUPValidate (UdmMFA001.pas:1900-1916) executa:

SELECT FIRST 1 DS_PERFIL FROM INDICEMARCKUP WHERE NR_PERFIL = <valor digitado>
  • Se retorna registro → preenche a descrição (DS_PERFIL) no campo ao lado.
  • Se não retorna → erro "O Perfil não está Cadastrado [TFA042]!".
  • Se o campo é limpo → a descrição também é limpa.

Interação com TP_ANALISE​

TP_ANALISE (configurado em MFA001 — Parâmetros de Faturamento, aba Operação 2) define qual tipo de custo é usado como base para o cálculo do markup (Empresa, Último Custo, Tabela de Compra, Custo Nota ou Mediana). Enquanto CD_INDICEMARKUP define quais percentuais compõem o markup, TP_ANALISE define o valor base sobre o qual os percentuais incidem.

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaResumo
TdmMFA001.tabPARMFATURCD_INDICEMARKUPValidatesource/MFA001/UdmMFA001.pas1900Valida perfil ao editar o campo em MFA001
TfrmCFA003.btnMargemClicksource/CFA003/UCFA003.pas790Busca perfil para análise de margem do item
TfrmCFA003.btnIndicesClicksource/CFA003/UCFA003.pas1032Abre TFA042 com perfil para cálculo de índices
TfrmCNF008.btnProcurarClicksource/CNF008/UCNF008.pas864Monta query de análise com COALESCE(CF.CD_INDICEMARKUP, PF.CD_INDICEMARKUP)
TdmMNF001.Calcula_Markupsource/MNF001/UdmMNF001.pas8646Lê perfil para cálculo de markup em NF saída
TfrmMNF001.PagProdutosChangesource/MNF001/UMNF001.pas4377Exibe markup na aba de produtos
TdmMNF002.Calcula_Markupsource/MNF002/UdmMNF002.pas9279Lê perfil para cálculo de markup em NF entrada
TdmMNF002.BuscaParametros_MNF002source/MNF002/UdmMNF002.pas10503Carrega parâmetros incluindo CD_INDICEMARKUP
TdmMPD002.Calcula_Markupsource/MPD002/UdmMPD002.pas5129Calcula markup no pedido de venda
TdmMPD018.Calcula_Markupsource/MPD018/UdmMPD018.pas1608Calcula markup no orçamento
TfrmMPD018.pgc1Changesource/MPD018/UMPD018.pas1928Exibe markup na troca de aba do orçamento
TdmMCO006.BuscaParametros_MCO006source/MCO006/UdmMCO006.pas2112Carrega parâmetros de faturamento
TdmMNF008.BuscaParametros_MNF008source/MNF008/UdmMNF008.pas768Carrega parâmetros de faturamento
TdmTFI001.tabCONDFISCALCD_INDICEMARKUPValidatesource/TFI001/UdmTFI001.pas80Valida perfil na condição fiscal (TFI001)
TfrmTFI001.edtCD_INDICEMARKUPKeyDownsource/TFI001/UTFI001.pas246Abertura de lookup na tela TFI001
TfrmRNF006.btnImprimirClicksource/RNF006/URNF006.pas1197Filtra itens sem perfil: CD_INDICEMARKUP IS NULL

SQL — referências diretas ao campo​

ArquivoDescrição
source/CNF008/UCNF008.pas:876,938-945,952,984,1011,1018-1020Queries que usam COALESCE(CF.CD_INDICEMARKUP, PF.CD_INDICEMARKUP) e passam o perfil para RETORNA_INDICEMARCKUP e RETORNA_IMPOSTOMARCKUP
source/CNF008/UdmCNF008.dfm:77,88,139Queries estáticas no datamodule

SQL — procedures/views candidatas (usam a tabela PARMFATUR mas não referenciam o campo diretamente)​

As seguintes procedures em Scripts/ utilizam a tabela PARMFATUR mas não contêm referência direta ao campo CD_INDICEMARKUP: ATUALIZA_PESSOA, ATUALIZA_PRECOVENDA, BUSCAPRECORECAP, CALCULA_CENTRORESULT, CALCULA_CENTRORESULTITEM, CALCULA_COMISSAO, CALCULA_COMISSAO_V2, CALCULA_JUROVENDA, CALCULA_MAQUINA, CALCULA_MAQUINAFICHA, CANCELA_MESTRA, CANCELA_NOTAFISCAL, CONFIRMA_ORDEMSERVICO, CONFIRMA_ORDEMSERVICOMETAL, CONSOME_LOTEMATERIAPRIMA, CREDITOPERIODICO_AI0, CREDITOPERIODICOGRUPO_AI0, EXPORTACAO_ALLABOR, EXPORTACAO_DOMINIOCADASTROS, EXPORTACAO_DOMINIOCUPOM.