Rotina: Contas a Pagar
Lançamento de obrigações, pagamento, compensação e conciliação bancária.
Diferença em relação a Contas a Receber
A rotina de Contas a Pagar usa a mesma tabela CONTAS e o mesmo conjunto de procedures que Contas a Receber. A distinção é feita pelo campo TP_CONTAS:
| TP_CONTAS | Tipo | Quem paga |
|---|---|---|
| 'S' | Contas a Receber | Cliente paga à empresa |
| 'E' | Contas a Pagar | Empresa paga ao fornecedor |
Todos os módulos, stored procedures, parâmetros e estados descritos em Contas a Receber aplicam-se aqui, com as diferenças abaixo.
Módulos Delphi Específicos
| Módulo | Papel |
|---|---|
source/MFC002/ | Consulta e listagem de contas a pagar |
source/MFC004/ | Baixa de contas a pagar (pagamento) |
source/MFC015/ | Retorno bancário (pagamentos confirmados — DDA) |
source/MFC019/ | Reparcelamento com fornecedor |
Tabela CONTAS — Campos Relevantes para Pagar
TP_CONTAS = 'E' — os campos são os mesmos de Contas a Receber, com semântica invertida:
| Campo | Semântica em Pagar |
|---|---|
VL_DOCUMENTO | Valor da obrigação com fornecedor |
VL_SALDO | Saldo ainda não pago |
DT_VENCIMENTO | Prazo para pagar sem multa/juros do fornecedor |
DT_LIQUIDACAO | Data em que a empresa quitou |
CD_PESSOA | Fornecedor (FK → PESSOA) |
CD_VENDEDOR | Comprador responsável (se aplicável) |
TP_DOCUMENTO | 'DP'=Duplicata, 'NT'=NF de fornecedor, 'CH'=Cheque |
Lançamento de Contas a Pagar
Origens automáticas
| Origem | Como é gerado |
|---|---|
| NF de entrada (compra) | GERA_NOTAPEDIDO com TP_PEDIDO='E' → GRAVA_CONTAS(TP_CONTAS='E') |
| OS encerrada (terceiros) | Fechamento de OS com serviço terceirizado |
| Folha de pagamento | Integração contábil |
Lançamento manual
MFC002 → botão Novo
→ tabCONTAS.Insert
→ TP_CONTAS := 'E'
→ CD_PESSOA = fornecedor
→ VL_DOCUMENTO, DT_VENCIMENTO, CD_CONDPAGTO
→ GRAVA_CONTAS (se múltiplas parcelas)
Pagamento (Baixa de Contas a Pagar)
MFC004 → Seleciona títulos vencidos
→ Se PARMFINANC.ST_MOVTOCAIXA='S':
INSERT MOVTOCAIXA (TP_MOVTOCAIXA='P')
→ CONTAS.VL_SALDO -= VL_PAGO
→ Se VL_SALDO = 0: ST_CONTAS='L', DT_LIQUIDACAO=hoje
→ INSERT MOVTOPROCESSO (principal + juros do fornecedor + desconto obtido)
Formas de pagamento típicas:
- Transferência bancária (TED/PIX) — gera MOVTOCAIXA com dados de banco/agência
- Cheque — gera MOVTOCAIXA com NR_DOCUMENTO (número do cheque)
- Débito automático — retorno bancário via DDA
DDA (Débito Direto Autorizado)
O retorno bancário via MFC015 processa arquivos DDA:
- Banco identifica boletos do fornecedor registrados em nome da empresa
- Parse via JunCob*.pas localiza CONTAS pelo nosso número / código de barras
- Baixa automática se
BOLETO.ST_BAIXARETORNO = 'S'
Compensação CR × CP (jFinanceiro — UCompensacao.pas)
Permite compensar créditos de CR com débitos de CP do mesmo cliente/fornecedor:
Exemplo:
Fornecedor X deve R$ 500 (CR — devolução de mercadoria)
Empresa deve ao Fornecedor X R$ 1.200 (CP — compra)
Compensação:
CR R$ 500 → ST_CONTAS='L'
CP R$ 1.200 → VL_SALDO = R$ 700
Habilitado por: PARMFINANC.ST_COMPENSACAOFINANC = 'S'
Fluxo Completo — Contas a Pagar
┌─────────────────────────────────────────────────────────┐
│ 1. LANÇAMENTO │
│ Via NF de entrada: GERA_NOTAPEDIDO(TP='E') │
│ Via lançamento manual: GRAVA_CONTAS(TP_CONTAS='E') │
│ → ST_CONTAS='T', VL_SALDO=VL_DOCUMENTO │
└──────────────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 2. AGENDAMENTO │
│ Calendário de pagamentos (fluxo de caixa) │
│ Baseado em: DT_VENCIMENTO de CONTAS (TP='E') │
│ Ferramenta MCP: consultar_contas_a_pagar │
│ Relatório: VIEW_FLUXOCAIXA │
└──────────────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 3. PAGAMENTO (MFC004) │
│ → Seleciona título + data de pagamento │
│ → Se pago com juro do fornecedor: │
│ INSERT MOVTOPROCESSO.VL_JURO (custo do atraso) │
│ → Se obteve desconto: │
│ INSERT MOVTOPROCESSO.VL_DESCONTO │
│ → INSERT MOVTOCAIXA (TP='P') │
│ → Atualiza CONTAS.VL_SALDO e ST_CONTAS │
└──────────────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 4. CONCILIAÇÃO BANCÁRIA │
│ → Extrato bancário via EXTRATO_CAIXA │
│ → Confronta MOVTOCAIXA vs. lançamentos do banco │
│ → Identifica diferenças │
│ → Lançamentos manuais para ajuste │
└─────────────────────────────────────────────────────────┘
Influências em Outros Módulos
→ Contas a Receber
- Mesmas tabelas, procedures e parâmetros
- Compensação CR × CP via
UCompensacao.pas
→ Recebimento de Mercadoria
- NF de entrada (recebimento) gera automaticamente CP via
GRAVA_CONTAS - CONTASPEDIDO vincula CP ao pedido de compra
→ Caixa e PDV
- Pagamentos geram MOVTOCAIXA vinculado ao turno de caixa ou conta bancária
→ APIs Java
- MCP:
consultar_contas_a_pagar - MCP:
consultar_extrato_conta - MCP:
consultar_resumo_caixa