MFC024 — Movimentação MFC024
Fonte
- Form:
source/MFC024/UMFC024.pas
- DataModule:
source/MFC024/UdmMFC024.pas
- Package:
source/MFC024/MFC024.dpk
Objetivo
Lancar manualmente duplicatas (a pagar/receber) e adiantamentos (de cliente/fornecedor) vinculados a uma Ordem de Serviço (ORCAMENTO). Gera o registro em CONTAS via GRAVA_CONTAS, cria processo de adiantamento via GRAVA_PROCESSO quando aplicavel, executa rateios de Centro de Resultado e de Despesa por Bem do Imobilizado, integra com a contabilidade e associa a parcela gerada ao numero da Ordem de Serviço informada.
Funcionalidades
- Selecao obrigatoria da Ordem de Serviço (ORCAMENTO) que sera vinculada ao lancamento.
- Selecao do Tipo de Conta (filtrado para nao aceitar historicos de cheque
HR/HP nem cartao CT).
- Lookup de Historico com validacao de natureza (R/P) e tipo (Duplicata
U / Adiantamento A) conforme o Tipo de Conta.
- Sugestao automatica de banco/agencia quando a forma de pagamento tem parametrizacao de boleto (tabela
BOLETO).
- Calculo automatico de
VL_TOTAL = VL_DOCUMENTO * NR_PARCELAS na digitacao.
- Para adiantamentos ou quando vencimento == lancamento, gera processo (
GRAVA_PROCESSO), movimento do processo (GRAVA_MOVTOPROCESSO), executa o processo (EXECUTA_PROCESSO) e abre a baixa no caixa via AbreCaixa (jCaixa).
- Rateio de Centro de Resultado via
RateioCR (jCentroResultado) apos gravar CONTAS.
- Rateio de Despesa por Bens do Imobilizado (
DESPESABEM) quando as contas debito/credito estao em PARMDESPESABEM.
- Integracao contábil automatica via
GERA_INTEGRACAO quando PARMCONTABIL.ST_INTEGRACAO = 'A'.
- Associacao do lancamento a Ordem de Serviço em
ORCAMENTOCONTAS (uma linha por parcela).
- Impressao automatica de promissoria pelo layout definido em
PARMFINANC.CD_LAYPROMISSORIA quando for entrada (tpContas = 'E').
Estrutura da Tela
| Secao | Caption / Rotulo | Controle | Observacoes |
|---|
| GroupBox | Dados do Lancamento | grpAdiantamento | Agrupa todos os campos do lancamento |
| Campo | Data Lancamento | edtDT_LANCAMENTO | Inicializa com Date em btnNovo |
| Campo | Nº Ordem Serviço | edtNR_ORCAMENTO | Obrigatorio; F9 lista ORCAMENTO ativas da empresa |
| Campo | (readonly) descricao Ordem Serviço | edtDS_ORCAMENTO | Preenchido via Validate (NM_PESSOA do contrato) |
| Campo | Tipo de Conta | edtCD_TIPOCONTA | F9 lista TIPOCONTA exceto HR/HP/CT; bloqueia CT e cheques |
| Campo | Historico | edtCD_HISTORICO | F9 filtra por LISTA_HISTORICOS (depende do Tipo de Conta) |
| Campo | Documento | edtNR_DOCUMENTO | Numero do documento (opcional) |
| Campo | Pessoa | edtCD_PESSOA | Obrigatorio; F9 via Busca('PESSOA') |
| Campo | Forma Pagamento | edtCD_FORMAPAGTO | Pode sugerir Banco/Agencia via tabela BOLETO |
| Campo | Banco | edtCD_BANCO | F12 abre pesquisa de BANCO |
| Campo | Agencia | edtCD_AGENCIA | F12 abre pesquisa de AGENCIA filtrando por banco |
| Campo | Juro | edtCD_JURO | F9 lista JURO |
| Campo | Data Vencimento | edtDT_VENCIMENTO | Nao pode ser menor que Data Lancamento |
| Campo | Nº Parcelas | edtNR_PARCELAS | Default 1; deve ser > 0 |
| Campo | Valor Parcela | edtVL_DOCUMENTO | Obrigatorio; recalcula VL_TOTAL |
| Campo | Valor Total | DBEdit1 | Readonly, calculado |
| Campo | Complemento | edtDS_OBSERVACAO | TDBMemo, maxlength 240 |
| Botao | Lancar <F6> | BitBtn1 | Replica btnSalvar |
| Toolbar | Novo Registro <F5> | btnNovo | Insert novo CONTAS |
| Toolbar | Salvar Alteracoes <F6> | btnSalvar | Executa fluxo completo de gravacao |
| Toolbar | Excluir Registro <F7> | btnExcluir | Oculto no iniciar (apenas navegacao) |
| Toolbar | Cancelar Registro <F4> | btnLimpar | Rollback + StartTransaction + Append |
| Toolbar | Consultar <F3> | btnProcurar | Oculto no iniciar |
| Toolbar | Atualizar Registros <F2> | btnAtualizar | Oculto no iniciar |
| Toolbar | Imprimir <F8> | btnImprimir | Oculto no iniciar |
| Toolbar | Sair <F12> | btnSair | Close |
Parametros que Influenciam
| Tabela | Campo | Efeito |
|---|
| PARMCONTABIL | ST_INTEGRACAO | Quando = 'A' e o tpDocumento for ES/CS/DP/AP/RS/OC, dispara GERA_INTEGRACAO apos gravar CONTAS. |
| PARMDESPESABEM | CD_CONTA | Se a conta debito ou credito do historico estiver cadastrada, exige rateio de DESPESABEM e insere linhas em DESPESABEM. |
| PARMFINANC | CD_LAYPROMISSORIA | Quando tpContas = 'E' (entrada), carrega o layout e imprime a promissoria via CarregaLayout. |
| BOLETO | CD_BANCO / CD_AGENCIA | Quando a forma de pagamento tem 1 registro, preenche banco/agencia automaticamente; quando tem mais, abre pesquisa para selecao. |
Regras de Negocio
- Ordem de Serviço (
NR_ORCAMENTO) e campo obrigatorio — valida existencia em ORCAMENTO com ST_ORCAMENTO <> 'C' para a empresa corrente.
- Tipo de Conta nao pode ser iniciado por
H (cheque) — redireciona o usuario para MFC003; cartao de credito (CT) tambem e bloqueado.
- Historico deve respeitar a natureza conforme o Tipo de Conta: CP (Contas a Pagar) exige tipo
U + natureza R; CR exige U+P; AC (Adiantamento Cliente) exige A+R; AF (Adiantamento Fornecedor) exige A+P. Historico de Adiantamento obriga contra partida (CD_HISTCONT).
- Data de Vencimento nao pode ser menor que Data de Lancamento.
- Nº Parcelas deve ser
> 0; Valor Parcela deve ser preenchido e <> 0.
tpContas e derivado do tipo: AC/CP/PP -> 'E' (entrada), demais -> 'S' (saida). Controla impressão da promissoria.
tpLancamento/tpDocumento definidos pelo primeiro caractere do TP_TIPOCONTA: C* -> D/DP (duplicata), P* -> D/PR, demais -> A/AD (adiantamento).
- Se tipo e Adiantamento ou Data Vencimento <= Data Lancamento, gera processo, move o caixa e alterna a natureza (
P <-> R) para a contrapartida.
- Quando existe Historico de Juro, gera movimento de processo adicional na parcela 1 com valor
VL_JURO.
- Observacao e atualizada via
UPDATE CONTAS separado apos GRAVA_CONTAS (o SP nao recebe DS_OBSERVACAO).
- Rateio de Centro de Resultado (
RateioCR) e obrigatorio apos gravar — cancelamento desfaz a transacao.
- Rateio de Despesa por Bem so ocorre quando CD_CONTADEBITO ou CD_CONTACREDITO existem em
PARMDESPESABEM; usa GERA_SEQUENCIA('SEQ_DESPESABEM').
- Para cada parcela gerada em CONTAS, insere uma linha em ORCAMENTOCONTAS ligando Ordem de Serviço <-> Lancamento.
tpAcesso = 2 oculta botoes Novo/Salvar/Excluir (somente leitura). Botoes Excluir, Procurar, Imprimir, Atualizar ja sao ocultos por padrao na iniciar.
- FormClose sempre faz
Rollback da transacao principal — so registros commitados sao persistidos.
Datasets e SQL
| Dataset | Tipo | Descricao | Principais tabelas |
|---|
| tabCONTAS | TFDQuery (CachedUpdates) | Edicao do lancamento. SQL com WHERE 1=0 (tela e so de Insert) unindo CONTAS + PESSOA + TIPOCONTA + FORMAPAGTO + BANCO + AGENCIA + CONTACORPESSOA + JURO e LEFT JOIN HISTORICO. updCONTAS define INSERT/UPDATE/DELETE para CONTAS. | CONTAS (escrita), PESSOA/TIPOCONTA/FORMAPAGTO/BANCO/AGENCIA/JURO/HISTORICO (leitura) |
| SQL | TFDQuery | Query auxiliar reutilizavel usada por ExecutaConsulta/ExecUpdate. | varias |
| Lookups F9 | Dinamico (Pesquisa/Busca) | F9 em Tipo Conta, Forma Pagamento, Juro, Historico, Pessoa, Ordem de Serviço; F12 em Banco/Agencia. | TIPOCONTA, FORMAPAGTO, JURO, HISTORICO (via LISTA_HISTORICOS), PESSOA, ORCAMENTO, BANCO, AGENCIA |
| Pipeline btnSalvar | ExecutaConsulta (transactionBanco) | Sequencia: GRAVA_CONTAS -> [se adiant/mesmo dia] GRAVA_PROCESSO + GRAVA_MOVTOPROCESSO (principal e juro) + EXECUTA_PROCESSO + AbreCaixa -> UPDATE CONTAS DS_OBSERVACAO -> RateioCR -> RateioBens + INSERT DESPESABEM (conta debito e credito) -> [se PARMCONTABIL='A'] GERA_INTEGRACAO -> INSERT ORCAMENTOCONTAS por parcela -> CarregaLayout (promissoria). | CONTAS, PROCESSO, MOVTOPROCESSO, CAIXA, DESPESABEM, CONTASCTB (via GERA_INTEGRACAO), ORCAMENTOCONTAS |
Validates no DataModule: CD_PESSOA, CD_FORMAPAGTO, CD_BANCO, CD_AGENCIA, CD_JURO, CD_TIPOCONTA, CD_HISTORICO, CD_HISTJURO, VL_DOCUMENTO, NR_PARCELAS, DT_VENCIMENTO, NR_ORCAMENTO — cada um faz lookup/validacao e preenche descricao/flags auxiliares (tpContas, tpTipocontas, tpNatureza, cdHistcont).
Tabelas de Escrita (INSERT/UPDATE/DELETE)
Tabelas de Leitura (SELECT)
Procedures Chamadas
| Procedure | Tabelas Acessadas |
|---|
| EXECUTA_PROCESSO | AGENCIA (SELECT), AJUSTEFISCALITEMNOTA (DELETE/INSERT/SELECT), ALIQUOTA (SELECT), AVISOSCPC (INSERT), BANCO (SELECT), CHEQUE (SELECT) +63 |
| GERA_INTEGRACAO | AJUSTEFISCALITEMNOTA (DELETE/INSERT/SELECT), ALIQUOTA (SELECT), CODRECEITA (SELECT), CONDPAGTO (SELECT), CONTAS (SELECT), CONTASCTB (DELETE/INSERT/SELECT) +53 |
| GERA_SEQUENCIA | SEQUENCIA (SELECT/UPDATE) |
| GRAVA_CONTAS | AJUSTEFISCALITEMNOTA (DELETE/INSERT/SELECT), ALIQUOTA (SELECT), BOLETO (SELECT), CODRECEITA (SELECT), CONDPAGTO (SELECT), CONDPARCELA (SELECT) +64 |
| GRAVA_MOVTOPROCESSO | CONTAS (SELECT), CONTASHISTORICO (SELECT), HISTORICO (SELECT), MOVTOPROCESSO (INSERT/SELECT), PARMFINANC (SELECT), PROCESSO (SELECT/UPDATE) |
| GRAVA_PROCESSO | PROCESSO (INSERT), SEQUENCIA (SELECT/UPDATE), SESSAO (SELECT) |
| LISTA_HISTORICOS | HISTORICO (SELECT), TIPOCONTA (SELECT) |
| VIEW_PLANOCONTAS | CENTROCUSTO (SELECT), CONTASPESSOA (SELECT), PARMCONTABIL (SELECT), PARMSISTEMA (SELECT), PLANOCONTAS (SELECT), PLANOEMPRESA (SELECT) |
Tabelas via Procedures (acesso indireto)
| Tabela | Operacoes |
|---|
| AGENCIA | SELECT |
| AJUSTEFISCALITEMNOTA | DELETE, INSERT, SELECT |
| ALIQUOTA | SELECT |
| AVISOSCPC | INSERT |
| BANCO | SELECT |
| BOLETO | SELECT |
| CENTROCUSTO | SELECT |
| CHEQUE | SELECT |
| CODRECEITA | SELECT |
| COMISSAOCONTAS | INSERT |
| CONDPAGTO | SELECT |
| CONDPARCELA | SELECT |
| CONTAS | INSERT, SELECT, UPDATE |
| CONTASBLOQFINANC | SELECT |
| CONTASCTB | DELETE, INSERT, SELECT |
| CONTASHISTORICO | INSERT, SELECT |
| CONTASHISTORICOCC | SELECT |
| CONTASHISTORICOCTB | DELETE, INSERT, SELECT |
| CONTASJUNCAO | SELECT |
| CONTASPESSOA | INSERT, SELECT |
| ... | +61 tabelas |
Dependencias Aferentes (quem alimenta esta tela)
Telas que escrevem em tabelas lidas por esta tela.
| Tela | Título | Tabelas em Comum |
|---|
jCaixa | | CONTAS |
| MFC028 | | CONTAS |
| CFC006 | Consulta Fatura (Agrupamento de Notas) | CONTAS |
| MFC033 | Gerenciamento Boleto Rápido Junsoft | CONTAS |
| TRC037 | | CONTAS |
JunsoftAPIBoletos | | CONTAS |
| MPD094 | | CONTAS |
| MNF019 | Gerenciamento de Notas Geral/Mestra | CONTAS |
| MFC021 | | CONTAS |
| MFC003 | Lançamento de Caixa Avulso / Cheque | CONTAS |
JunsoftServiceFatApp | | CONTAS |
| MNF032 | Importação de XML Transmitido | CONTAS |
| CFC008 | Controle de Cobrança | CONTAS |
| MFC019 | Reparcelamento de Contas | CONTAS |
| MNF027 | Cancelamento de Notas Fiscais | CONTAS |
| MRC030 | | CONTAS |
| MCA007 | Condenação de Leite | CONTAS |
| MFC016 | Fatura ( Agrupamento de Notas Fiscais ) | CONTAS |
| MRC021 | Cancelamento de Ordem de carregamento Recapadora | CONTAS |
| CFC009 | Consulta/Cancelamento de Reparcelamento | CONTAS |
| MNF029 | | CONTAS |
| TFA067 | Contratos e Licenças de Software | CONTAS |
| MFC009 | Alteração de Duplicatas | CONTAS |
| MFC036 | Liberação de Contas a Pagar | CONTAS |
| CPD008 | | CONTAS |
| MNF005 | Cancelamento de Notas Fiscais | CONTAS |
| MFC023 | Duplicata / Adiantamento por Obra | CONTAS |
| CFC012 | | CONTAS |
| MFC030 | | CONTAS |
| MFC012 | Agrupamento de Contas | CONTAS |
| ... | | +74 telas |
Dependencias Eferentes (quem consome dados desta tela)
Telas que leem tabelas escritas por esta tela.
| Tela | Título | Tabelas em Comum |
|---|
| RNF021 | Resumo Diário | CONTAS |
| MPD094 | | CONTAS |
| RFC021 | Movimentação por Histórico | CONTAS |
| RTR008 | Relatório de Viagens | CONTAS |
| MFC020 | Transferência de Caixa / Banco | CONTAS |
| MFC021 | | CONTAS |
| LNF500 | | CONTAS |
| LCX032 | | CONTAS |
| MNF027 | Cancelamento de Notas Fiscais | CONTAS |
| LCX026 | | CONTAS |
MCA007 | Condenação de Leite | CONTAS |
LDP006 | | CONTAS |
| MRC021 | Cancelamento de Ordem de carregamento Recapadora | CONTAS |
| TFA067 | Contratos e Licenças de Software | CONTAS |
TRD016 | | CONTAS |
LDP015 | | CONTAS |
| MFC009 | Alteração de Duplicatas | CONTAS |
| LCX021 | | CONTAS |
| MFC036 | Liberação de Contas a Pagar | CONTAS |
| MNF005 | Cancelamento de Notas Fiscais | CONTAS |
| RFC046 | | CONTAS |
| MFC030 | | CONTAS |
| LNF015 | | CONTAS |
LDP011 | | CONTAS |
| MFC027 | Gerenciamento Conciliação Bancária | CONTAS |
| LCX022 | | CONTAS |
| CNF008 | Demonstrativo de Margens sobre Vendas | CONTAS |
| LNF168 | | CONTAS |
jCaptacao | | CONTAS |
| MCB017 | Reprocessamento de Centro de Custo | CONTAS |
| ... | | +323 telas |