Pular para o conteúdo principal

MFC004 — Pagamento / Recebimento de Contas

Fonte​

  • Form: source/MFC004/UMFC004.pas
  • DataModule: source/MFC004/UdmMFC004.pas
  • Autorização: source/MFC004/UMFC004AUTORIZACAO.pas

Objetivo​

Tela de baixa financeira unificada para pagamento e recebimento de contas a pagar/receber. Permite filtrar parcelas (por empresa, data de lançamento/vencimento, tipo de conta, forma de pagamento, pessoa, etc.), calcular automaticamente juros de mora e desconto antecipado, marcar/desmarcar parcelas para baixa em lote, e executar o processo de liquidação registrando movimentos de caixa, contabilidade e centro de resultado. Suporta baixa com cheque (inclusive via leitora), TEF, rateio por centro de custo e autorização de desconto por supervisor.

Funcionalidades​

  • Filtro de Documentos para Baixa
  • Seleção de Documentos para Processamento
  • Cálculo de Juros e Descontos
  • Processamento de Baixa em Lote
  • Liquidação de Cheques
  • Autorização de Descontos/Juros

Mensagens exibidas​

Levantadas de source/MFC004/ pela camada 0 (commit 96fc51e236).

CódigoTipoMensagem
W-1412AvisoO Usuário não possui Acesso a Consulta de Notas Fiscais! CNF001]
W-1590AvisoO usuário não possui acesso a tela Consulta Contas / Cheques / Adiantamentos! [CFC001]
W-1673AvisoO Usuário não possui acesso a tela Consulta de Faturas! [CFC006]
W-1674AvisoO Usuário não possui acesso a tela Controle de Cobrança! [CFC008]

Mais 67 mensagens com texto literal no código: MFC004.

Parâmetros lidos​

Campos PARM* lidos via values[] em source/MFC004/ (commit 96fc51e236).

ParâmetroTabela
ST_ALTERA_DT_MFC004PARMFINANC
ST_JUROCHEQUEPARMFINANC
ST_LANCAMENTOPARMFINANC

Tabelas de Escrita (INSERT/UPDATE/DELETE)​

TabelaOperacoes
CONTASDELETE, INSERT, SELECT, UPDATE
MOVTOCAIXASELECT, UPDATE
MOVTOCAIXACCINSERT, SELECT
PERFILDELETE, INSERT, SELECT, UPDATE
PESSOADELETE, INSERT, SELECT, UPDATE
TIPOCONTADELETE, INSERT, SELECT, UPDATE
VIAGEMMOVTOCAIXAINSERT

Tabelas de Leitura (SELECT)​

TabelaOperacoes
AGENCIASELECT
AUTORIZADORSELECT
BANCOSELECT
CENTROCUSTOSELECT
CHEQUESELECT
CONDPAGTOSELECT
CONTACORPESSOASELECT
CONTASBLOQFINANCSELECT
CONTASHISTORICOSELECT
CONTASJUNCAOSELECT
EMPRESASELECT
ENDERECOPESSOASELECT
FERIADOSELECT
FORMAPAGTOSELECT
GRUPOCENTROCUSTOSELECT
HISTORICOSELECT
ITEMSERIALSELECT
JUROSELECT
MOVTOPROCESSOSELECT
NOTASELECT
PARMCONTABILSELECT
PARMFATURSELECT
PARMFINANCSELECT
PARMRESTAURANTESELECT
PARMUSUARIOSELECT
PESSOAPERFILSELECT
PROCESSOSELECT
ROMANEIOSELECT
ROMANEIOCONTASSELECT
TEFSELECT
TIPOPESSOASELECT
USUARIOSELECT
USUARIOEMPRESASELECT
VENDEDORSELECT

Procedures Chamadas​

ProcedureTabelas Acessadas
CALCULA_CAPITALJURO (SELECT), PARMFINANC (SELECT)
CALCULA_JUROJURO (SELECT), PARMFINANC (SELECT)
CALCULA_JUROMORACONTAS (SELECT), CONTASHISTORICO (SELECT), CREDITO (SELECT), HISTORICO (SELECT), JURO (SELECT), MOVTOPROCESSO (SELECT) +3
CONTROLE_CAIXACAIXA (SELECT), PARMFINANC (SELECT), PARMUSUARIO (SELECT)
EXECUTA_PROCESSOAGENCIA (SELECT), AJUSTEFISCALITEMNOTA (DELETE/INSERT/SELECT), ALIQUOTA (SELECT), AVISOSCPC (INSERT), BANCO (SELECT), CHEQUE (SELECT) +63
GERA_INTEGRACAOAJUSTEFISCALITEMNOTA (DELETE/INSERT/SELECT), ALIQUOTA (SELECT), CODRECEITA (SELECT), CONDPAGTO (SELECT), CONTAS (SELECT), CONTASCTB (DELETE/INSERT/SELECT) +53
GERA_SEQUENCIASEQUENCIA (SELECT/UPDATE)
GRAVA_MOVTOCAIXAAJUSTEFISCALITEMNOTA (DELETE/INSERT/SELECT), ALIQUOTA (SELECT), CODRECEITA (SELECT), CONDPAGTO (SELECT), CONTAS (SELECT), CONTASCTB (DELETE/INSERT/SELECT) +56
GRAVA_MOVTOPROCESSOCONTAS (SELECT), CONTASHISTORICO (SELECT), HISTORICO (SELECT), MOVTOPROCESSO (INSERT/SELECT), PARMFINANC (SELECT), PROCESSO (SELECT/UPDATE)
GRAVA_PROCESSOPROCESSO (INSERT), SEQUENCIA (SELECT/UPDATE), SESSAO (SELECT)
INTEGRA_MOVTOCAIXACCHISTORICO (SELECT), MOVTOCAIXA (SELECT)
RETORNA_COMPLEMENTOCONTAS (SELECT), CONTASHISTORICO (SELECT), HISTORICO (SELECT), MOVTOCAIXA (SELECT), PARMCOMPLCAIXA (SELECT), PARMFINANC (SELECT) +3
RETORNA_CONTASOBRACONTAS (SELECT), PEDIDONOTA (SELECT), ROMANEIO (SELECT), ROMANEIOCONTAS (SELECT), ROMANEIONOTA (SELECT), ROMANEIOPEDIDO (SELECT)
VALIDA_CENTRORESULTCENTROCUSTO (SELECT), CONDFISCALHISTORICO (SELECT)
VIEW_PLANOCONTASCENTROCUSTO (SELECT), CONTASPESSOA (SELECT), PARMCONTABIL (SELECT), PARMSISTEMA (SELECT), PLANOCONTAS (SELECT), PLANOEMPRESA (SELECT)
VIEW_TIPOCONTASUSUARIOPARMFINANC (SELECT), TIPOCONTARESTRITA (SELECT)

Tabelas via Procedures (acesso indireto)​

TabelaOperacoes
AGENCIASELECT
AJUSTEFISCALITEMNOTADELETE, INSERT, SELECT
ALIQUOTASELECT
AVISOSCPCINSERT
BANCOSELECT
CAIXASELECT
CENTROCUSTOSELECT
CHEQUESELECT
CODRECEITASELECT
COMISSAOCONTASINSERT
CONDFISCALHISTORICOSELECT
CONDPAGTOSELECT
CONTASSELECT, UPDATE
CONTASCTBDELETE, INSERT, SELECT
CONTASHISTORICOSELECT
CONTASHISTORICOCCSELECT
CONTASHISTORICOCTBDELETE, INSERT, SELECT
CONTASPESSOAINSERT, SELECT
CONTAS_MOVTOCONTABILSELECT
CREDITOSELECT
...+63 tabelas

Regras de Negocio​

  1. Verificação de caixa na abertura: ao iniciar, chama CONTROLE_CAIXA(cd_empresa, cd_usuario); se mensagem de erro presente, bloqueia botões Novo/Salvar/Procurar e lança exceção. Aviso não-bloqueante exibido via W-0000.
  2. Data de pagamento fixada pelo caixa: se PARMFINANC.ST_ALTERA_DT_MFC004 = 'N' ou caixa aberto, o campo data de pagamento fica somente leitura e é preenchido com a data do caixa.
  3. Parâmetros de juro e desconto de PARMFINANC: PC_JUROMORA e PC_DESCONTOANTECIPADO são carregados automaticamente nos filtros. Se não configurados, os campos ficam vazios.
  4. Cálculo automático de juro de mora: ao selecionar parcela (tabCONTASSTATUSValidate), se TP_CALCULAJURO = 'S', chama CALCULA_JUROMORA; se 'P', chama CALCULA_JURO. Modo 'V' (valor fixo) pula o cálculo automático.
  5. Desconto antecipado proporcional: calculado como VL_PAGO × (1 + PC_DESCONTOMES/100)^(dias/30) para pagamentos antes do vencimento.
  6. Parcela bloqueada: ST_BLOQUEADA = 'S' impede liquidação com mensagem A parcela está Bloqueada e não pode ser liquidada. Verifique [MFC036].
  7. Restrição por data de lançamento: quando iST_LANCAMENTO = 'N', data de lançamento da conta não pode ser maior que a data de liquidação.
  8. Situação da parcela calculada (tabCONTASCalcFields): T = Pendente Total, P = Pago Parcial, L = Liquidado, C = Cancelado.
  9. Valor pago não pode exceder saldo (tabCONTASVL_PAGOValidate): lança E-0000 se VL_PAGO > VL_SALDO.
  10. Controle de desconto máximo: percentual máximo por usuário em PARMUSUARIO.PC_DESCONTOMAX; se PARMUSUARIO.ST_AUTORIZADOR = 'S', desconto direto desabilitado e requer autorização via UMFC004AUTORIZACAO.
  11. Totalizadores separados por tipo: somatórios de saldo, juro, pago e desconto mantidos separados para contas a receber (TP_CONTAS = 'S') e a pagar (TP_CONTAS != 'S'). Valor do processo é o módulo da diferença entre os dois lados (verde = recebimento maior, vermelho = pagamento maior).
  12. Filtros persistidos: Recupera_FiltroPrograma / Grava_FiltroPrograma (via PARMUSUARIO) mantém os filtros por usuário/empresa entre sessões.
  13. Suporte a cheque com leitora: PARMUSUARIO.ST_CHEQUE habilita leitora de cheque; tabCHEQUE é um TClientDataSet in-memory com campos CD_BANCO, CD_AGENCIA, NR_DOCUMENTO, VL_DOCUMENTO.
  14. Chamada de procedimentos de baixa: GRAVA_MOVTOCAIXA executa a baixa efetiva; GRAVA_MOVTOPROCESSO e GRAVA_PROCESSO registram o processo; GERA_INTEGRACAO e INTEGRA_MOVTOCAIXACC fazem integração contábil e por centro de resultado.
  15. Validação de empresa do usuário: tabFILTROCD_EMPRESAValidate verifica se empresa está em USUARIOEMPRESA para o usuário logado; caso contrário, lança A Empresa não está Cadastrada ou não Liberada para o Usuário! [ADM002].
  16. Acesso por módulo externo: suporta parâmetro NR_CONTRATO via programa.params, que filtra automaticamente contas do contrato ao abrir.

Datasets e SQL​

DatasetTabela PrincipalTipoDescricao
tabTIPOCONTATIPOCONTATFDQuery + TFDUpdateSQLTipos de conta (a pagar / a receber); editável na grade de filtro
tabCONTASCONTASTFDQuery + TFDUpdateSQLParcelas filtradas; campos editáveis: STATUS (seleção), VL_PAGO, VL_JURO, VL_DESCONTO, VL_TOTALDOC, DS_OBSERVACAO
tabPESSOAPESSOATFDQuery + TFDUpdateSQLCadastro de pessoas para associar à parcela
tabDOCUMENTOS(auxiliar)TFDQuery + TFDUpdateSQLDocumentos vinculados (NR_DOCUMENTO / NR_LANCAMENTO / NR_PARCELA)
tabHISTORICOHISTORICOTFDQuery + TFDUpdateSQLHistóricos financeiros disponíveis para seleção
tabFILTRO(in-memory)TFDQueryFiltros de pesquisa: empresa, datas, forma pagamento, banco, agência, tipo pessoa, condição de pagamento, obra, vendedor, etc.
tabTOTAL(in-memory)TFDQuery + TFDUpdateSQLTotalizadores: VL_SALDOREC/PAG, VL_JUROREC/PAG, VL_PAGOREC/PAG, VL_DESCREC/PAG, VL_PROCESSO, VL_TOTALSELECIONADO
tabCHEQUE(in-memory)TClientDataSetCheques adicionados à baixa: banco, agência, número, valor, leitura de cheque
tabORDEM(via NR_EMBARQUE)TFDQuery + TFDUpdateSQLOrdens de embarque vinculadas
tabPERFILPESSOAPERFILTFDQuery + TFDUpdateSQLPerfis de pessoa para filtro
cdsRATEIOCC(in-memory)TClientDataSetRateio por centro de resultado: CD_CENTRORESULT, DS_CENTRORESULT, PC_CENTRORESULT, VL_CENTRORESULT
cdsCENTRORESULT(in-memory)TClientDataSetPlano de contas para rateio: CD_CONTA, DS_CONTA, VL_CONTA, TP_NATUREZA
cdsVALORPROCESSO(in-memory)TClientDataSetAcumulo de valores por parcela selecionada para cálculo do processo

Dependencias Aferentes (quem alimenta esta tela)​

Telas que escrevem em tabelas lidas por esta tela.

TelaTítuloTabelas em Comum
MFC029CONTAS
CFC009Consulta/Cancelamento de ReparcelamentoCONTAS
MNF029CONTAS
MFC003Lançamento de Caixa Avulso / ChequeCONTAS
MRC021Cancelamento de Ordem de carregamento RecapadoraCONTAS
CFC010Aviso de Liquidação de Duplicatas no SCPCCONTAS
MPD011Confirmação Ordem CarregamentoCONTAS
MFC019Reparcelamento de ContasCONTAS
MFC033Gerenciamento Boleto Rápido JunsoftCONTAS
MFC032Gerenciamento de Títulos a PagarCONTAS
MNF027Cancelamento de Notas FiscaisCONTAS
MFC006Estorno de Lançamento de Caixa Avulso / ChequeCONTAS
MPD019Gerenciamento de Contrato/Romaneio ObrasCONTAS
JunsoftServiceFatAppCONTAS
MRC018Emissão de Remessa de Entrada/Saída por Pedido RecapagemCONTAS
MNF002Emissão de Nota Fiscal de VendaCONTAS
CPD004CONTAS
MNF026Troca de Produtos com Emissão de Nota FiscalCONTAS
CNF002Troca de MercadoriasCONTAS
MNF033Faturamento AgrupadoCONTAS
MNF005Cancelamento de Notas FiscaisCONTAS
MPD012Cancelamento Ordem CarregamentoCONTAS
MNF023Gerenciamento de Contas de ContratosCONTAS
TRC037CONTAS
MNF032Importação de XML TransmitidoCONTAS
MPD008Ordem de Produção AvulsaCONTAS
MFC021CONTAS
MFC007Estorno de Pagamento / Recebimento de ContasCONTAS
CFC013Exportação de Arquivo PEFINCONTAS
MNF010Gerar MensalidadesCONTAS
...+74 telas

Dependencias Eferentes (quem consome dados desta tela)​

Telas que leem tabelas escritas por esta tela.

TelaTítuloTabelas em Comum
LCX041CONTAS
CFC009Consulta/Cancelamento de ReparcelamentoCONTAS
MRC026Agenda de PneusCONTAS
LCX040CONTAS
MFC003Lançamento de Caixa Avulso / ChequeCONTAS
MRC021Cancelamento de Ordem de carregamento RecapadoraCONTAS
RCA004Curva ABC de FornecedoresCONTAS
TRD012CONTAS
RFC013Posição Financeira por PeríodoCONTAS
RFC036Relação de Receitas x Despesas sobre Duplicatas com GráficoCONTAS
LNF501CONTAS
MNF027Cancelamento de Notas FiscaisCONTAS
MCB003Integração ContábilCONTAS
RPD006Custos sobre Ordem de ServiçoCONTAS
RFC017Conciliação de Caixa / BancoCONTAS
MRC018Emissão de Remessa de Entrada/Saída por Pedido RecapagemCONTAS
MNF002Emissão de Nota Fiscal de VendaCONTAS
MNF026Troca de Produtos com Emissão de Nota FiscalCONTAS
LNF141CONTAS
LDP006CONTAS
RPD033CONTAS
LNF165CONTAS
LNF015CONTAS
MOF008Desbloqueio de Ordens de Serviço - FinanceiroCONTAS
LDP013CONTAS
LDP014CONTAS
LDP022CONTAS
CFC013Exportação de Arquivo PEFINCONTAS
LDP028CONTAS
MCA003Transferências entre ContratosCONTAS
...+323 telas