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
| Tela | Descrição |
|---|
| FNC001 | Parâmetros Financeiros — onde o parâmetro é configurado |
| MFC019 | Reparcelamento de Títulos — onde as parcelas são geradas e validadas |
Campos envolvidos
| Campo | Tabela | Tipo | Padrão | Editável |
|---|
ST_CONTABILIZAJUROVENC | PARMFINANC | CHAR(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 faz | Detalhe |
|---|
| Data de Lançamento | Usa a mesma Data de Emissão para todas as parcelas |
| Validação de data | Bloqueia Data de Lançamento menor que Data de Emissão |
| Contabilização | Gera 1 lançamento contábil por tipo de juro (capitalizado, amortizado, mora) |
Simulação passo a passo
- Acesse FNC001 — Parâmetros Financeiros.
- Abra a aba Financeiro 2.
- Desmarque a opção
Contabilizar juros conforme Parcelas [MFC019].
- Salve o parâmetro.
- Abra a tela MFC019 — Reparcelamento de Títulos.
- 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.
- Gere 5 parcelas com vencimentos em meses diferentes (fev, mar, abr, mai, jun).
- Observe que a Data de Lançamento de todas as parcelas é
15/01/2025 (mesma data de emissão).
- 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!".
- 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 faz | Detalhe |
|---|
| Data de Lançamento | Calcula por parcela: usa mês/ano do VENCIMENTO + dia da EMISSÃO |
| Validação de data | Libera validação de Data de Lançamento >= Data de Emissão |
| Contabilização | Gera N lançamentos contábeis (1 por parcela) com valores proporcionais |
Simulação passo a passo
- Acesse FNC001 — Parâmetros Financeiros.
- Abra a aba Financeiro 2.
- Marque a opção
Contabilizar juros conforme Parcelas [MFC019].
- Salve o parâmetro.
- Abra a tela MFC019 — Reparcelamento de Títulos.
- 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.
- Gere 5 parcelas com vencimentos em meses diferentes (fev, mar, abr, mai, jun).
- 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).
- 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.
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)
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
| Rotina | Arquivo | Linha | Evidência |
|---|
TdmFNC001.tabPARMFINANCAfterInsert | source/FNC001/UdmFNC001.pas | 427 | tabPARMFINANCST_CONTABILIZAJUROVENC.AsString := 'N'; |
TdmMFC019.gravaReparcelamento | source/MFC019/UdmMFC019.pas | 878 | if (Trim(parmFinanc.Values['ST_CONTABILIZAJUROVENC']) = 'S') then |
TdmMFC019.cdsFiltroDT_EMISSAOValidate | source/MFC019/UdmMFC019.pas | 1518 | if (Trim(parmFinanc.Values['ST_CONTABILIZAJUROVENC']) <> 'S') then |
TdmMFC019.cdsDESTINODT_VENCIMENTOValidate | source/MFC019/UdmMFC019.pas | 1668 | if (Trim(parmFinanc.Values['ST_CONTABILIZAJUROVENC']) <> 'S') then |
Referência SQL direta ao campo
| Procedure | Arquivo | Linha | Evidência |
|---|
CONTABILIZA_REPARCELAMENTO | Scripts/CONTABILIZA_REPARCELAMENTO.sql | 22, 34 | declare 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/View | Arquivo | Linha | Evidência |
|---|
CALCULA_CAPITAL | Scripts/CALCULA_CAPITAL.sql | 25 | FROM PARMFINANC PF |
CALCULA_JURO | Scripts/CALCULA_JURO.sql | 23 | FROM PARMFINANC PF |
CALCULA_JUROMORA | Scripts/CALCULA_JUROMORA.sql | 40 | LEFT JOIN PARMFINANC PF ON (PF.CD_EMPRESA = C.CD_EMPRESA) |
CALCULA_JUROMORA_RFC019 | Scripts/CALCULA_JUROMORA_RFC019.sql | 33 | LEFT JOIN PARMFINANC PF ON (PF.CD_EMPRESA = C.CD_EMPRESA) |
CANCELA_CONTAS | Scripts/CANCELA_CONTAS.sql | 57 | PARMFINANC.ST_ESTORNO, ... |
CONTROLE_CAIXA | Scripts/CONTROLE_CAIXA.sql | 21 | from PARMFINANC |
ESTORNA_MOVTOCAIXA | Scripts/ESTORNA_MOVTOCAIXA.sql | 58 | from PARMFINANC P |
EXECUTA_PROCESSO | Scripts/EXECUTA_PROCESSO.sql | 80 | FROM PARMFINANC P |
GERA_DUPLICATAS | Scripts/GERA_DUPLICATAS.sql | 63 | FROM PARMFINANC PF |
GERA_INTEGRACAO | Scripts/GERA_INTEGRACAO.sql | 217 | FROM PARMFINANC P |
GERA_INTEGRACAOFISCAL | Scripts/GERA_INTEGRACAOFISCAL.sql | 162 | FROM PARMFINANC P |
GERA_MOVTOCONTABIL | Scripts/GERA_MOVTOCONTABIL.sql | 536 | FROM PARMFINANC P |
GRAVA_CHEQUECARTAO | Scripts/GRAVA_CHEQUECARTAO.sql | 137 | from PARMFINANC P |
GRAVA_CONTAS | Scripts/GRAVA_CONTAS.sql | 216 | from PARMFINANC P |
GRAVA_MOVTOCAIXA | Scripts/GRAVA_MOVTOCAIXA.sql | 222 | INNER JOIN PARMFINANC F ON (F.CD_EMPRESA = P.CD_EMPRESA) |
GRAVA_MOVTOCAIXAINDIVIDUAL | Scripts/GRAVA_MOVTOCAIXAINDIVIDUAL.sql | 62 | from parmfinanc p |
GRAVA_MOVTOPROCESSO | Scripts/GRAVA_MOVTOPROCESSO.sql | 276 | FROM PARMFINANC PF |
GRAVA_PROCESSOSMART | Scripts/GRAVA_PROCESSOSMART.sql | 182 | from parmfinanc pf |
PROCESSA_FATURA | Scripts/PROCESSA_FATURA.sql | 208 | FROM PARMFINANC PF |
PROCESSA_REPARCELAMENTO | Scripts/PROCESSA_REPARCELAMENTO.sql | 63 | LEFT JOIN PARMFINANC PF ON (PF.CD_EMPRESA = CH.CD_EMPRESA) |
Regras de Validação
| Regra | Condição | Resultado |
|---|
DT_LANCAMENTO < DT_EMISSAO | ST_CONTABILIZAJUROVENC = 'N' | Erro: "Data de Lançamento não pode ser Menor que a Data de Emissão!" |
DT_LANCAMENTO < DT_EMISSAO | ST_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 parcelas | Procedure CONTABILIZA_REPARCELAMENTO força V_ST_CONTABILIZAJUROVENC = 'S' |
Tabela Comparativa Resumida
| Aspecto | N (Desmarcado) | S (Marcado) |
|---|
| Data de Lançamento | Mesma para todas as parcelas (emissão) | Calculada por parcela (mês/ano do vencimento + dia da emissão) |
| Validação de data | Bloqueia DT_LANC < DT_EMISSAO | Libera validação |
| Lançamentos contábeis | 1 por tipo de juro | N por tipo de juro (1 por parcela) |
| Valor contabilizado | Valor total de cada juro | Valor proporcional rateado por parcela |
| Exemplo prático | Juro capitalizado R$ 50,00 → 1 lançamento | Juro capitalizado R$ 50,00 em 5 parcelas → 5 lançamentos de R$ 10,00 |
| Valor padrão | ✓ | |