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_TABCOMPRAFK:TABCOMPRA.CD_TABCOMPRAValor 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 / Rotina | Contexto de uso |
|---|---|
| MFA001 | Configuração do parâmetro (este campo) |
| TFA010 | Cadastro de tabelas de compra e itens (ITEMTABCOMPRA) |
| TPO001 | Cadastro de produtos, aba tabelas de compra |
| REQ001 | Relatórios de estoque usam PF.CD_TABCOMPRA para buscar custo em ITEMTABCOMPRA |
| CNF017 | Nota fiscal de entrada — usa CD_TABCOMPRA dos parâmetros para atualizar ITEMTABCOMPRA |
| CPD004 | Pedidos de compra — lê CD_TABCOMPRA do fornecedor |
| MCO003 | Cotaçã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
| Campo | Tabela | Papel |
|---|---|---|
CD_TABCOMPRA | PARMFATUR | Tabela de compra padrão da empresa (este parâmetro) |
CD_TABCOMPRA | TABCOMPRA | Chave primária da tabela de compra (FK referenciada) |
VL_PRECO | ITEMTABCOMPRA | Preço de compra do item na tabela |
PC_MARGEMSEGURANCA | PARMFATUR | Margem de segurança aplicada sobre o custo de compra (configurado em MFA001 — Parâmetros de Faturamento) |
PC_MARGEMSEGURANCA | ITEMTABCOMPRA | Margem de segurança específica do par CD_ITEM + CD_TABCOMPRA |
ST_CUSTOREPOSICAO | PARMFATUR | Ativa/desativa atualização de custo de reposição (configurado em MFA001 — Parâmetros de Faturamento) |
Regras de preenchimento e validação
| O que faz | Detalhe |
|---|---|
| Preenchimento | Livre — digite o código ou pressione <F9> para buscar |
| Validação ao sair do campo | Verifica 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:
- Calcula o valor unitário líquido do item na nota.
- Aplica a margem de segurança:
VL_PRECO = VL_UNITARIO + (VL_UNITARIO * PC_MARGEMSEGURANCA / 100). - Atualiza (
UPDATE) o registro emITEMTABCOMPRApara oCD_TABCOMPRAinformado. - Se o item não existir na tabela, faz
INSERTautomá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) quandoTP_NOTA <> 'E'(saída)CD_TABPRECOquandoTP_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
- Acesse MFA001 — Parâmetros de Faturamento.
- Posicione o cursor no campo Tabela de Compra (aba Operação 1).
- Digite o código da tabela (ex.:
1) ou pressione<F9>para abrir a janela de pesquisa. - Na janela de pesquisa, selecione a tabela desejada (ex.: "Tabela Custo Padrão") e confirme.
- O campo descrição ao lado é preenchido automaticamente com o nome da tabela.
- 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_TABCOMPRAestiver em branco, o parâmetroST_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 emITEMTABCOMPRA.PC_MARGEMSEGURANCA.- O módulo de estoque (
MEQ001) usaCD_TABPRODUCAOdePARMESTOQUE(configurado em MEQ001 — Parâmetros de Estoque) como tabela de compra independente deste parâmetro.
Procedures impactadas
Rotinas Delphi com referência direta
| Rotina | Arquivo | Uso |
|---|---|---|
TfrmMFA001.btnSalvarClick | UMFA001.pas | Valida preenchimento obrigatório ao salvar |
TfrmMFA001.edtCD_TABCOMPRAKeyDown | UMFA001.pas | Busca <F9> na tabela TABCOMPRA |
TfrmMFA001.cmbST_CUSTOREPOSICAOClick | UMFA001.pas | Bloqueia ativação de custo reposição sem tabela |
TdmMFA001.tabPARMFATURCD_TABCOMPRAValidate | UdmMFA001.pas | Valida existência em TABCOMPRA |
TfrmCNF017.btnSalvarClick | UCNF017.pas | Usa parmFatur.Values['CD_TABCOMPRA'] |
TdmCNF017.tabSALDOAfterScroll | UdmCNF017.pas | Passa CD_TABCOMPRA como parâmetro |
TfrmCPD004.btnSalvarClick | UCPD004.pas | Lê CD_TABCOMPRA do fornecedor/pedido |
TfrmMCO003.btnSalvarClick | UMCO003.pas | Usa iCD_TABCOMPRA na cotação |
Busca_Parametros (MCO003) | UdmMCO003.pas | Carrega CD_TABCOMPRA dos parâmetros |
| Integração PrestaShop | PersistenciaDao.pas | JOIN com ITEMTABCOMPRA via PF.CD_TABCOMPRA |
Scripts SQL com referência direta ao campo
| Procedure/View | Script | Uso |
|---|---|---|
GERA_NOTAFISCAL | GERA_NOTAFISCAL.sql | Lê P.CD_TABCOMPRA; atualiza/insere em ITEMTABCOMPRA |
CANCELA_NOTAFISCAL | CANCELA_NOTAFISCAL.sql | Lê PF.CD_TABCOMPRA; reverte preço em ITEMTABCOMPRA |
RETORNA_TABPRECOORIGEM | RETORNA_TABPRECOORIGEM.sql | Usa P.CD_TABCOMPRA como tabela de origem quando TP_NOTA <> 'E' |
RETORNA_PRECOCOMPRA | RETORNA_PRECOCOMPRA.sql | Recebe I_CD_TABCOMPRA como parâmetro obrigatório |
RETORNA_MEDIATABCOMPRA | RETORNA_MEDIATABCOMPRA.sql | JOIN ITEMTABCOMPRA via PF.CD_TABCOMPRA |
RECALCULA_PRECOCOMPRA | RECALCULA_PRECOCOMPRA.sql | Usa 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.