Pular para o conteúdo principal

CD_TABCOMPRA - Tabela de Compra Padrão

Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Ambos → Operação 1 Tabela: PARMFATUR.CD_TABCOMPRA FK: TABCOMPRA.CD_TABCOMPRA Valor padrão: NULL (não obrigatório, porém exigido em cenários específicos)

Descrição​

Define a tabela de compra padrão da empresa. Essa tabela (TABCOMPRA / ITEMTABCOMPRA) armazena o custo de reposição de cada produto e é usada pelo sistema em processos de geração de nota fiscal de entrada, cálculo de custo, verificação de bloqueio de venda abaixo do custo e cancelamento de notas.

O campo pode ser preenchido manualmente com o código da tabela ou selecionado via busca (<F9>), que lista todas as tabelas cadastradas em TABCOMPRA.

Telas impactadas​

Tela / RotinaContexto de uso
MFA001Configuração do parâmetro (este campo)
TFA010Cadastro de tabelas de compra e itens (ITEMTABCOMPRA)
TPO001Cadastro de produtos, aba tabelas de compra
REQ001Relatórios de estoque usam PF.CD_TABCOMPRA para buscar custo em ITEMTABCOMPRA
CNF017Nota fiscal de entrada — usa CD_TABCOMPRA dos parâmetros para atualizar ITEMTABCOMPRA
CPD004Pedidos de compra — lê CD_TABCOMPRA do fornecedor
MCO003Cotação/negociação de compras — usa CD_TABCOMPRA para cálculos
JunsoftPrestaShop (Integração)Busca preço de custo via PF.CD_TABCOMPRA para exportação de preços

Campos envolvidos​

CampoTabelaPapel
CD_TABCOMPRAPARMFATURTabela de compra padrão da empresa (este parâmetro)
CD_TABCOMPRATABCOMPRAChave primária da tabela de compra (FK referenciada)
VL_PRECOITEMTABCOMPRAPreço de compra do item na tabela
PC_MARGEMSEGURANCAPARMFATURMargem de segurança aplicada sobre o custo de compra (configurado em MFA001 — Parâmetros de Faturamento)
PC_MARGEMSEGURANCAITEMTABCOMPRAMargem de segurança específica do par CD_ITEM + CD_TABCOMPRA
ST_CUSTOREPOSICAOPARMFATURAtiva/desativa atualização de custo de reposição (configurado em MFA001 — Parâmetros de Faturamento)

Regras de preenchimento e validação​

O que fazDetalhe
PreenchimentoLivre — digite o código ou pressione <F9> para buscar
Validação ao sair do campoVerifica se o código existe em TABCOMPRA; se não existir, exibe erro "A Tabela de Compra não está Cadastrada [TFA010]!"
Pode ficar em branco?Sim, mas bloqueia a ativação de ST_CUSTOREPOSICAO

Exigência para Custo de Reposição​

Se o usuário tentar ativar o parâmetro ST_CUSTOREPOSICAO (configurado em MFA001 — Parâmetros de Faturamento) sem informar CD_TABCOMPRA, o sistema exibe o erro:

"Informe alguma tabela de compra padrão para parametrizar o Custo de Reposição"

Na gravação dos parâmetros (btnSalvarClick), se CD_TABCOMPRA estiver em branco e ST_CUSTOREPOSICAO estiver preenchido, o sistema limpa ST_CUSTOREPOSICAO e emite o mesmo erro.

Como o parâmetro é usado​

1. Atualização de custo de reposição ao gerar NF de entrada (GERA_NOTAFISCAL)​

Ao gerar uma nota fiscal de entrada (TP_NOTA = 'E'), o sistema lê PF.CD_TABCOMPRA e PF.ST_CUSTOREPOSICAO. Quando ST_CUSTOREPOSICAO não é 'M' nem 'T', o sistema:

  1. Calcula o valor unitário líquido do item na nota.
  2. Aplica a margem de segurança: VL_PRECO = VL_UNITARIO + (VL_UNITARIO * PC_MARGEMSEGURANCA / 100).
  3. Atualiza (UPDATE) o registro em ITEMTABCOMPRA para o CD_TABCOMPRA informado.
  4. Se o item não existir na tabela, faz INSERT automático.

2. Reversão ao cancelar NF de entrada (CANCELA_NOTAFISCAL)​

Ao cancelar uma NF de entrada, o sistema reverte o preço em ITEMTABCOMPRA para o valor da última nota de entrada válida anterior, buscando o custo anterior e aplicando a margem de segurança sobre ele.

3. Determinação de tabela de preço de origem (RETORNA_TABPRECOORIGEM)​

Na devolução de notas, o sistema usa:

  • CD_TABCOMPRA (este parâmetro) quando TP_NOTA <> 'E' (saída)
  • CD_TABPRECO quando TP_NOTA = 'E' (entrada)

4. Média de custo de compra entre empresas (RETORNA_MEDIATABCOMPRA)​

Calcula a média de VL_PRECO em ITEMTABCOMPRA usando PF.CD_TABCOMPRA de cada empresa, dividindo pela quantidade total de empresas.

5. Recálculo de preço de compra (RECALCULA_PRECOCOMPRA)​

Recebe o código da tabela e recalcula os preços em ITEMTABCOMPRA para os itens filtrados, aplicando a margem de segurança de PARMFATUR.PC_MARGEMSEGURANCA.

6. Verificação de bloqueio de venda abaixo do custo (VERIFICA_BLOQUEIO)​

Usado na validação de pedidos/vendas para comparar o preço de venda contra o custo da tabela de compra.

Simulação passo a passo​

Configurar tabela de compra padrão​

  1. Acesse MFA001 — Parâmetros de Faturamento.
  2. Posicione o cursor no campo Tabela de Compra (aba Operação 1).
  3. Digite o código da tabela (ex.: 1) ou pressione <F9> para abrir a janela de pesquisa.
  4. Na janela de pesquisa, selecione a tabela desejada (ex.: "Tabela Custo Padrão") e confirme.
  5. O campo descrição ao lado é preenchido automaticamente com o nome da tabela.
  6. Salve os parâmetros.

Resultado esperado: A tabela de compra selecionada torna-se a tabela padrão da empresa para todos os processos de custo de reposição, geração de NF de entrada e verificação de bloqueio de preço.

Exceção / Importante:

  • Se CD_TABCOMPRA estiver em branco, o parâmetro ST_CUSTOREPOSICAO (configurado em MFA001 — Parâmetros de Faturamento) não poderá ser ativado.
  • A margem de segurança aplicada sobre o custo de compra é definida por PC_MARGEMSEGURANCA (configurado em MFA001 — Parâmetros de Faturamento), podendo ser sobrescrita item a item em ITEMTABCOMPRA.PC_MARGEMSEGURANCA.
  • O módulo de estoque (MEQ001) usa CD_TABPRODUCAO de PARMESTOQUE (configurado em MEQ001 — Parâmetros de Estoque) como tabela de compra independente deste parâmetro.

Procedures impactadas​

Rotinas Delphi com referência direta​

RotinaArquivoUso
TfrmMFA001.btnSalvarClickUMFA001.pasValida preenchimento obrigatório ao salvar
TfrmMFA001.edtCD_TABCOMPRAKeyDownUMFA001.pasBusca <F9> na tabela TABCOMPRA
TfrmMFA001.cmbST_CUSTOREPOSICAOClickUMFA001.pasBloqueia ativação de custo reposição sem tabela
TdmMFA001.tabPARMFATURCD_TABCOMPRAValidateUdmMFA001.pasValida existência em TABCOMPRA
TfrmCNF017.btnSalvarClickUCNF017.pasUsa parmFatur.Values['CD_TABCOMPRA']
TdmCNF017.tabSALDOAfterScrollUdmCNF017.pasPassa CD_TABCOMPRA como parâmetro
TfrmCPD004.btnSalvarClickUCPD004.pasLê CD_TABCOMPRA do fornecedor/pedido
TfrmMCO003.btnSalvarClickUMCO003.pasUsa iCD_TABCOMPRA na cotação
Busca_Parametros (MCO003)UdmMCO003.pasCarrega CD_TABCOMPRA dos parâmetros
Integração PrestaShopPersistenciaDao.pasJOIN com ITEMTABCOMPRA via PF.CD_TABCOMPRA

Scripts SQL com referência direta ao campo​

Procedure/ViewScriptUso
GERA_NOTAFISCALGERA_NOTAFISCAL.sqlLê P.CD_TABCOMPRA; atualiza/insere em ITEMTABCOMPRA
CANCELA_NOTAFISCALCANCELA_NOTAFISCAL.sqlLê PF.CD_TABCOMPRA; reverte preço em ITEMTABCOMPRA
RETORNA_TABPRECOORIGEMRETORNA_TABPRECOORIGEM.sqlUsa P.CD_TABCOMPRA como tabela de origem quando TP_NOTA <> 'E'
RETORNA_PRECOCOMPRARETORNA_PRECOCOMPRA.sqlRecebe I_CD_TABCOMPRA como parâmetro obrigatório
RETORNA_MEDIATABCOMPRARETORNA_MEDIATABCOMPRA.sqlJOIN ITEMTABCOMPRA via PF.CD_TABCOMPRA
RECALCULA_PRECOCOMPRARECALCULA_PRECOCOMPRA.sqlUsa I_CD_TABELA (CD_TABCOMPRA) para recálculo

Candidatas por uso da tabela​

As procedures abaixo referenciam PARMFATUR mas não citam CD_TABCOMPRA diretamente. Impacto funcional não confirmado:

GERA_ESTOQUE_NOTAFISCAL, VERIFICA_BLOQUEIO, VIEW_CFA001, VIEW_CNF006, VIEW_CUSTOVENDARNF006, VIEW_CONTROLEENTREGA, VIEW_CONTROLEENTREGA2, VIEW_REQ012, VIEW_RPD010, VIEW_RCO003.