ST_BLOQUEIAALTERACAO — Bloqueio de Alteração de Data de Vencimento das Parcelas de Venda
Tela de configuração: FNC001 — Parâmetros Financeiros
Localização: Parâmetros → Financeiro → Aba Financeiro 2
Componente: chkSTBloqueiaAlteracao (checkbox DB)
Tabela: PARMFINANC.ST_BLOQUEIAALTERACAO
Valor padrão: 'N' (desmarcado — alteração permitida)
Schema: DOM_CHAR1 DEFAULT 'N' NOT NULL — ver docs/schema/tables/PARMFINANC.sql, linha 91
Telas impactadas
| Tela | Descrição | Onde o parâmetro atua |
|---|
| FNC001 | Parâmetros Financeiros | Define o valor 'S' / 'N' |
frmParcelaNota (jParcelamento) | Grade de parcelas da Nota | Quando 'S' + Venda → coluna DT_VENCIMENTO fica ReadOnly |
Campos envolvidos
| Campo | Tabela | O que faz |
|---|
ST_BLOQUEIAALTERACAO | PARMFINANC | Liga ('S') ou desliga ('N') o bloqueio de alteração da data de vencimento das parcelas de Venda |
Opções disponíveis
'S' — Marcado (Bloqueado)
| O que faz | Detalhe |
|---|
| Bloqueia edição da data de vencimento | As parcelas de Venda ficam com DT_VENCIMENTO ReadOnly no grid de parcelas |
| Exige | Operação de Venda; não afeta parcelas de outros tipos (ex: Devolução) |
Simulação passo a passo
- Acesse FNC001 → Aba Financeiro 2.
- Marque "Bloqueia alteração de data de vencimento das parcelas de Venda".
- Salve o registro (
Ctrl+S ou botão Gravar).
- Abra uma Nota de Venda existente e acesse a tela de parcelamento.
- Clique na coluna DT_VENCIMENTO de qualquer parcela de Venda e tente digitar uma nova data.
Resultado esperado: a coluna de data de vencimento permanece bloqueada — o campo não aceita edição pelo grid. O usuário precisa desmarcar o parâmetro e salvar novamente para conseguir alterar.
Exceção / Importante: o bloqueio só se aplica quando ambas as condições são verdadeiras:
ST_BLOQUEIAALTERACAO = 'S'
Parametros[3] = 'S' (ou seja, o parcelamento refere-se a uma Venda).
Parcelas de outros tipos (Devolução, Nota de Compra etc.) permanecem editáveis mesmo com este parâmetro marcado.
'N' — Desmarcado (Permitido) — Padrão
| O que faz | Detalhe |
|---|
| Permite edição da data de vencimento | A coluna DT_VENCIMENTO no grid de parcelas de Venda fica editável |
| Exige | Nada — comportamento padrão, sem restrições adicionais |
Simulação passo a passo
- Acesse FNC001 → Aba Financeiro 2.
- Desmarque "Bloqueia alteração de data de vencimento das parcelas de Venda" (ou leave como está — padrão
'N').
- Salve o registro (
Ctrl+S ou botão Gravar).
- Abra uma Nota de Venda existente e acesse a tela de parcelamento.
- Clique na coluna DT_VENCIMENTO de qualquer parcela e digite uma nova data (ex: de
15/01/2025 para 20/01/2025).
Resultado esperado: a nova data é aceita e gravada normalmente, sem bloqueio.
Tabelas de Banco de Dados impactadas
| Tabela | Coluna | Impacto |
|---|
PARMFINANC | ST_BLOQUEIAALTERACAO | Armazena o valor do parâmetro |
Regras de Negócio
- Somente parcelas de Venda — o parâmetro só bloqueia parcelas cujo tipo é Venda; parcelas de devolução, compra ou outros documentos não são afetadas por este parâmetro.
- Configuração por empresa — a tabela
PARMFINANC possui a coluna CD_EMPRESA, o que significa que o valor de ST_BLOQUEIAALTERACAO é mantido por empresa. Cada empresa pode ter comportamento diferente.
- Bloqueio via grid, não via código — o controle é feito no evento
gridParcelaColEnter da tela de parcelamento, que define a coluna como ReadOnly. Isso impede a alteração pela interface do usuário, mas não aplica trigger ou restrição em nível de banco de dados.
Procedures impactadas
| Rotina | Arquivo | Linha | Evidência |
|---|
TdmFNC001.tabPARMFINANCAfterInsert | source/FNC001/UdmFNC001.pas | 425 | tabPARMFINANCST_BLOQUEIAALTERACAO.AsString := 'N'; (default on insert) |
TfrmParcelaNota.gridParcelaColEnter | source/jParcelamento/UParcelaNota.pas | 1178 | Consulta := 'SELECT ST_BLOQUEIAALTERACAO ' + #10 + 'FROM PARMFINANC ...' — se 'S', ReadOnly na coluna de data |
Candidatas por uso da tabela PARMFINANC (sem referência direta ao campo)
Nenhuma referência direta ao campo ST_BLOQUEIAALTERACAO foi encontrada nos arquivos SQL sob Scripts/. As procedures abaixo consultam a tabela PARMFINANC para outros parâmetros e não utilizam ST_BLOQUEIAALTERACAO.
| Procedure | 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 |
GRAVA_CONTAS | Scripts/GRAVA_CONTAS.sql | 216 | from PARMFINANC P |
PROCESSA_FATURA | Scripts/PROCESSA_FATURA.sql | 208 | FROM PARMFINANC PF |
| Demais (14 total) | — | — | Sem uso direto de ST_BLOQUEIAALTERACAO |
Nenhuma das 14 procedures SQL listadas referencia o campo ST_BLOQUEIAALTERACAO literalmente — impacto zero para estas rotinas.