Pular para o conteúdo principal

ST_CONTABILIZAJUROVENC - Parâmetro de Contabilização de Juros por Parcelas

Tela de configuração: FNC001 — Parâmetros Financeiros
Localização: Aba Financeiro 2 → Checkbox Contabilizar juros conforme Parcelas [MFC019]
Tabela: PARMFINANC.ST_CONTABILIZAJUROVENC
Componente: DBCheckBox1 (checkbox ligado ao dmFNC001.dsoPARMFINANC)
Valor padrão: N (Desmarcado)

Telas impactadas​

TelaDescrição
FNC001Parâmetros Financeiros — onde o parâmetro é configurado
MFC019Reparcelamento de Títulos — onde as parcelas são geradas e validadas

Campos envolvidos​

CampoTabelaTipoPadrãoEditável
ST_CONTABILIZAJUROVENCPARMFINANCCHAR(1) (DOM_CHAR1)'N'Sim (checkbox na aba Financeiro 2)

Campos relacionados usados na contabilização:

  • CD_HISTCAPJURO — Histórico de Juro Capitalizado (validado como TP_HISTORICO='C', TP_NATUREZA='P')
  • CD_CONTAJUROAMORTIZADO — Conta Contábil de Juros Amortizados
  • CD_HISTJUROMORA — Histórico de Juro de Mora (validado como TP_HISTORICO='J', TP_NATUREZA='P')
  • CD_HISTREPARCELAMENTO — Histórico de Reparcelamento

Opções disponíveis​

N — Desmarcado (Padrão)​

O que fazDetalhe
Data de LançamentoUsa a mesma Data de Emissão para todas as parcelas
Validação de dataBloqueia Data de Lançamento menor que Data de Emissão
ContabilizaçãoGera 1 lançamento contábil por tipo de juro (capitalizado, amortizado, mora)

Simulação passo a passo​

  1. Acesse FNC001 — Parâmetros Financeiros.
  2. Abra a aba Financeiro 2.
  3. Desmarque a opção Contabilizar juros conforme Parcelas [MFC019].
  4. Salve o parâmetro.
  5. Abra a tela MFC019 — Reparcelamento de Títulos.
  6. Selecione os títulos a serem reparcelados, defina Data de Emissão = 15/01/2025, valor total R$ 1.000,00 com juro capitalizado de R$ 50,00.
  7. Gere 5 parcelas com vencimentos em meses diferentes (fev, mar, abr, mai, jun).
  8. Observe que a Data de Lançamento de todas as parcelas é 15/01/2025 (mesma data de emissão).
  9. Valide que, se tentar alterar a Data de Lançamento para 10/01/2025, o sistema exibe: "Data de Lançamento não pode ser Menor que a Data de Emissão!".
  10. Execute a contabilização do reparcelamento (procedure CONTABILIZA_REPARCELAMENTO).

Resultado esperado: A contabilização gera 1 único lançamento contábil para o juro capitalizado (R$ 50,00), 1 para juro amortizado e 1 para juro de mora — todos na data de emissão (15/01/2025).

S — Marcado​

O que fazDetalhe
Data de LançamentoCalcula por parcela: usa mês/ano do VENCIMENTO + dia da EMISSÃO
Validação de dataLibera validação de Data de Lançamento >= Data de Emissão
ContabilizaçãoGera N lançamentos contábeis (1 por parcela) com valores proporcionais

Simulação passo a passo​

  1. Acesse FNC001 — Parâmetros Financeiros.
  2. Abra a aba Financeiro 2.
  3. Marque a opção Contabilizar juros conforme Parcelas [MFC019].
  4. Salve o parâmetro.
  5. Abra a tela MFC019 — Reparcelamento de Títulos.
  6. Selecione os títulos a serem reparcelados, defina Data de Emissão = 15/01/2025, valor total R$ 1.000,00 com juro capitalizado de R$ 50,00.
  7. Gere 5 parcelas com vencimentos em meses diferentes (fev, mar, abr, mai, jun).
  8. Observe que a Data de Lançamento de cada parcela é calculada pelo mês/ano do vencimento mantendo o dia da emissão (ex: Parcela 1 venc. 15/02 → DT_LANCAMENTO = 15/02/2025, Parcela 2 venc. 15/03 → DT_LANCAMENTO = 15/03/2025).
  9. Execute a contabilização do reparcelamento (procedure CONTABILIZA_REPARCELAMENTO).

Resultado esperado: A contabilização gera 5 lançamentos contábeis para o juro capitalizado (cada um com valor proporcional R$ 50,00 ÷ 5 = R$ 10,00 por parcela), 5 para juro amortizado e 5 para juro de mora — cada lançamento na data de lançamento correspondente à sua parcela.

Exceção / Importante: Se as parcelas do reparcelamento tiverem datas de lançamento distintas (mais de 1 data única na tabela CONTAS), a procedure CONTABILIZA_REPARCELAMENTO força o comportamento como se o parâmetro estivesse marcado (V_ST_CONTABILIZAJUROVENC = 'S'), independentemente do valor configurado. Isso assegura que a contabilização respeite as datas diferenciadas das parcelas (linhas 49-61 do script).

Telas Impactadas​

FNC001 — Parâmetros Financeiros​

  • Onde o parâmetro é habilitado/desabilitado.
  • O checkbox está na aba Financeiro 2.
  • Valor padrão N ao inserir novo registro (evento tabPARMFINANCAfterInsert).

MFC019 — Reparcelamento de Títulos​

  • Ao gravar parcelas (gravaReparcelamento): quando ST_CONTABILIZAJUROVENC = 'S', calcula a Data de Lançamento de cada parcela usando mês/ano do vencimento + dia da emissão. Quando 'N', usa a Data de Emissão original para todas as parcelas.
  • Na validação de DT_EMISSAO (cdsFiltroDT_EMISSAOValidate): quando <> 'S', valida que a Data de Lançamento não pode ser menor que a Data de Emissão.
  • Na validação de DT_VENCIMENTO (cdsDESTINODT_VENCIMENTOValidate): quando <> 'S', aplica a mesma validação de data.

Procedures impactadas​

CONTABILIZA_REPARCELAMENTO​

  • Tipo: Procedure SQL (Firebird)
  • Script: Scripts/CONTABILIZA_REPARCELAMENTO.sql
  • Impacto direto: Gera lançamentos contábeis na tabela MOVTOCONTABIL.

Comportamento com ST_CONTABILIZAJUROVENC = 'N'​

Gera 1 único lançamento contábil por tipo de juro:

  • 1 lançamento para juro capitalizado (valor total)
  • 1 lançamento para juro amortizado (valor total)
  • 1 lançamento para juro de mora (valor total)

Comportamento com ST_CONTABILIZAJUROVENC = 'S'​

Gera N lançamentos contábeis (1 por parcela) com rateio proporcional:

  • 1 lançamento por parcela no valor proporcional do juro capitalizado
  • 1 lançamento por parcela no valor proporcional do juro amortizado
  • 1 lançamento por parcela no valor proporcional do juro de mora

Rotinas Delphi com referência direta​

RotinaArquivoLinhaEvidência
TdmFNC001.tabPARMFINANCAfterInsertsource/FNC001/UdmFNC001.pas427tabPARMFINANCST_CONTABILIZAJUROVENC.AsString := 'N';
TdmMFC019.gravaReparcelamentosource/MFC019/UdmMFC019.pas878if (Trim(parmFinanc.Values['ST_CONTABILIZAJUROVENC']) = 'S') then
TdmMFC019.cdsFiltroDT_EMISSAOValidatesource/MFC019/UdmMFC019.pas1518if (Trim(parmFinanc.Values['ST_CONTABILIZAJUROVENC']) <> 'S') then
TdmMFC019.cdsDESTINODT_VENCIMENTOValidatesource/MFC019/UdmMFC019.pas1668if (Trim(parmFinanc.Values['ST_CONTABILIZAJUROVENC']) <> 'S') then

Referência SQL direta ao campo​

ProcedureArquivoLinhaEvidência
CONTABILIZA_REPARCELAMENTOScripts/CONTABILIZA_REPARCELAMENTO.sql22, 34declare variable V_ST_CONTABILIZAJUROVENC / SELECT PF.ST_CONTABILIZAJUROVENC

Candidatas por uso da tabela PARMFINANC​

As procedures abaixo usam a tabela PARMFINANC mas não referenciam ST_CONTABILIZAJUROVENC literalmente. Sem impacto direto identificado neste parâmetro.

Procedure/ViewArquivoLinhaEvidência
CALCULA_CAPITALScripts/CALCULA_CAPITAL.sql25FROM PARMFINANC PF
CALCULA_JUROScripts/CALCULA_JURO.sql23FROM PARMFINANC PF
CALCULA_JUROMORAScripts/CALCULA_JUROMORA.sql40LEFT JOIN PARMFINANC PF ON (PF.CD_EMPRESA = C.CD_EMPRESA)
CALCULA_JUROMORA_RFC019Scripts/CALCULA_JUROMORA_RFC019.sql33LEFT JOIN PARMFINANC PF ON (PF.CD_EMPRESA = C.CD_EMPRESA)
CANCELA_CONTASScripts/CANCELA_CONTAS.sql57PARMFINANC.ST_ESTORNO, ...
CONTROLE_CAIXAScripts/CONTROLE_CAIXA.sql21from PARMFINANC
ESTORNA_MOVTOCAIXAScripts/ESTORNA_MOVTOCAIXA.sql58from PARMFINANC P
EXECUTA_PROCESSOScripts/EXECUTA_PROCESSO.sql80FROM PARMFINANC P
GERA_DUPLICATASScripts/GERA_DUPLICATAS.sql63FROM PARMFINANC PF
GERA_INTEGRACAOScripts/GERA_INTEGRACAO.sql217FROM PARMFINANC P
GERA_INTEGRACAOFISCALScripts/GERA_INTEGRACAOFISCAL.sql162FROM PARMFINANC P
GERA_MOVTOCONTABILScripts/GERA_MOVTOCONTABIL.sql536FROM PARMFINANC P
GRAVA_CHEQUECARTAOScripts/GRAVA_CHEQUECARTAO.sql137from PARMFINANC P
GRAVA_CONTASScripts/GRAVA_CONTAS.sql216from PARMFINANC P
GRAVA_MOVTOCAIXAScripts/GRAVA_MOVTOCAIXA.sql222INNER JOIN PARMFINANC F ON (F.CD_EMPRESA = P.CD_EMPRESA)
GRAVA_MOVTOCAIXAINDIVIDUALScripts/GRAVA_MOVTOCAIXAINDIVIDUAL.sql62from parmfinanc p
GRAVA_MOVTOPROCESSOScripts/GRAVA_MOVTOPROCESSO.sql276FROM PARMFINANC PF
GRAVA_PROCESSOSMARTScripts/GRAVA_PROCESSOSMART.sql182from parmfinanc pf
PROCESSA_FATURAScripts/PROCESSA_FATURA.sql208FROM PARMFINANC PF
PROCESSA_REPARCELAMENTOScripts/PROCESSA_REPARCELAMENTO.sql63LEFT JOIN PARMFINANC PF ON (PF.CD_EMPRESA = CH.CD_EMPRESA)

Regras de Validação​

RegraCondiçãoResultado
DT_LANCAMENTO < DT_EMISSAOST_CONTABILIZAJUROVENC = 'N'Erro: "Data de Lançamento não pode ser Menor que a Data de Emissão!"
DT_LANCAMENTO < DT_EMISSAOST_CONTABILIZAJUROVENC = 'S'Liberado (a data pode ser do mês do vencimento, que pode ser posterior)
Forçamento de 'S'Mais de 1 data de lançamento distinta nas parcelasProcedure CONTABILIZA_REPARCELAMENTO força V_ST_CONTABILIZAJUROVENC = 'S'

Tabela Comparativa Resumida​

AspectoN (Desmarcado)S (Marcado)
Data de LançamentoMesma para todas as parcelas (emissão)Calculada por parcela (mês/ano do vencimento + dia da emissão)
Validação de dataBloqueia DT_LANC < DT_EMISSAOLibera validação
Lançamentos contábeis1 por tipo de juroN por tipo de juro (1 por parcela)
Valor contabilizadoValor total de cada juroValor proporcional rateado por parcela
Exemplo práticoJuro capitalizado R$ 50,00 → 1 lançamentoJuro capitalizado R$ 50,00 em 5 parcelas → 5 lançamentos de R$ 10,00
Valor padrão✓