Pular para o conteúdo principal

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_CONTASTipoQuem paga
'S'Contas a ReceberCliente paga à empresa
'E'Contas a PagarEmpresa 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óduloPapel
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:

CampoSemântica em Pagar
VL_DOCUMENTOValor da obrigação com fornecedor
VL_SALDOSaldo ainda não pago
DT_VENCIMENTOPrazo para pagar sem multa/juros do fornecedor
DT_LIQUIDACAOData em que a empresa quitou
CD_PESSOAFornecedor (FK → PESSOA)
CD_VENDEDORComprador responsável (se aplicável)
TP_DOCUMENTO'DP'=Duplicata, 'NT'=NF de fornecedor, 'CH'=Cheque

Lançamento de Contas a Pagar​

Origens automáticas​

OrigemComo é 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 pagamentoIntegraçã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