Controles de Saldo por Usuário (ST_PARMSALDO)
Tela de configuração: FNC001 — Parâmetros Financeiros
Localização: Parâmetros → &Caixa → "Contas de Saldo por Usuário" (comboST_PARMSALDO)
Tabela:PARMFINANC.ST_PARMSALDO
Campo no DFM:comboST_PARMSALDO(TwwDBComboBox) vinculado admFNC001.dsoPARMFINANC
Valor padrão:N(Não)
Descrição
Controla se o saldo de contas bancárias/caixas é apurado e liberado por usuário em vez de ser visto por todos os usuários do sistema. Quando ativado (S), o sistema restringe:
- A visualização/apresentação do saldo na abertura de caixa (MFC001).
- A validação de débito/crédito em lançamentos de caixa (MFC003, MFC028).
- A exibição da aba de vínculo usuário × conta na tela FNC002.
- O recálculo de saldo diário (
RECALCULA_SALDOCAIXACONTA), filtrando apenas contas liberadas ao usuário corrente.
O vínculo usuário × conta é armazenado na tabela USUARIOCONTASALDO (configurado em FNC002 — Cadastro de Caixas e Contas Bancárias, aba "Usuário").
Telas impactadas
| Tela | Impacto |
|---|---|
| FNC001 | Configuração — define o valor do parâmetro. |
| FNC002 | Quando ST_PARMSALDO = 'S', exibe a aba "Usuário" (pagUSUARIO) para vínculo de usuários às contas de saldo. Quando 'N', a aba fica invisível. |
| MFC001 | Na sugestão de saldo de abertura de caixa, filtra por USUARIOCONTASALDO quando o parâmetro está ativo. |
| MFC003 | Validação de conta débito/crédito em lançamentos: exige que a conta de saldo esteja liberada para o usuário logado. |
| MFC007 | Estorno de pagamento/recebimento: lê o parâmetro para verificar restrições de contas no processo. |
| MFC028 | Validação da conta saldo na baixa/estorno: exige liberação por usuário quando ST_PARMSALDO = 'S'. |
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
ST_PARMSALDO | PARMFINANC | Flag principal ('S' ou 'N'). |
CD_CONTA | PARMSALDO | Conta bancária/caixa cadastrada. |
CD_USUARIO | USUARIOCONTASALDO | Usuário vinculado à conta de saldo (quando ST_PARMSALDO = 'S'). |
TP_SALDO | PARMSALDO | Tipo da conta (X = caixa, B = banco, etc.). |
Opções disponíveis
S — Sim (Contas de Saldo por Usuário)
| O que faz | Detalhe |
|---|---|
| Exige liberação | Apenas usuários cadastrados em USUARIOCONTASALDO podem operar/vizualizar a conta. |
| Abre aba FNC002 | Torna visível a aba "Usuário" em FNC002 para manutenção do vínculo. |
| Filtra saldo MFC001 | Na abertura de caixa, soma saldo apenas das contas liberadas ao usuário. |
| Valida lançamentos | Em MFC003 e MFC028, bloqueia uso de conta de saldo não liberada. |
Simulação passo a passo
- Acesse FNC001 — Parâmetros Financeiros.
- Na aba &Caixa, localize o campo "Contas de Saldo por Usuário".
- Selecione Sim (
S). - Salve a configuração (
F2ou botão Salvar). - Acesse FNC002 — Cadastro de Caixas e Contas Bancárias.
- Observe que a aba "Usuário" (
pagUSUARIO) está visível. - Cadastre/trave as contas desejadas e, na aba Usuário, vincule os usuários que terão acesso.
- Acesse MFC001 — Abertura/Fechamento de Caixa.
- Abra o caixa; o saldo sugerido será calculado apenas sobre as contas liberadas ao seu usuário.
- Acesse MFC003 — Lançamento de Caixa Avulso / Cheque.
- Tente lançar um movimento usando uma conta de saldo não liberada ao usuário.
- O sistema exibe a mensagem: "Esta Conta de Saldo não está Liberada para este Usuário."
Resultado esperado: O saldo e uso das contas de caixa/banco ficam restritos por usuário, exigindo prévio cadastro do vínculo em FNC002.
Exceção / Importante:
- Sem registros em
USUARIOCONTASALDO, o usuário não conseguirá ver saldo nem operar nenhuma conta de saldo.- A procedure
RECALCULA_SALDOCAIXACONTA, quandoST_PARMSALDO = 'S', filtra as contas a recalcular exclusivamente através deUSUARIOCONTASALDOpara o usuário informado.- A view
VIEW_PARMSALDOtambém internamente aplica o filtro porUSUARIOCONTASALDOquando o parâmetro está ativo.
N — Não (Saldo liberado para todos os usuários)
| O que faz | Detalhe |
|---|---|
| Sem restrição por usuário | Qualquer usuário do sistema visualiza e opera todas as contas de saldo. |
| Aba FNC002 oculta | A aba "Usuário" em FNC002 fica invisível. |
| Saldo total em MFC001 | Na abertura de caixa, soma o saldo de todas as contas da empresa (ou grupo). |
| Sem validação extra | MFC003 e MFC028 não bloqueiam conta por falta de vínculo. |
Simulação passo a passo
- Acesse FNC001 — Parâmetros Financeiros.
- Na aba &Caixa, localize o campo "Contas de Saldo por Usuário".
- Selecione Não (
N). - Salve a configuração (
F2ou botão Salvar). - Acesse FNC002 — Cadastro de Caixas e Contas Bancárias.
- Verifique que a aba "Usuário" (
pagUSUARIO) não aparece. - Acesse MFC001 — Abertura/Fechamento de Caixa.
- Abra o caixa; o saldo sugerido será o total de todas as contas do caixo/empresa.
- Acesse MFC003 — Lançamento de Caixa Avulso / Cheque.
- Lançe movimentos em qualquer conta de saldo cadastrada, sem restrição de vínculo.
Resultado esperado: Todos os usuários visualizam o saldo completo e operam livremente sobre todas as contas de caixa/banco, sem necessidade de USUARIOCONTASALDO.
Exceção / Importante:
- Mesmo com
ST_PARMSALDO = 'N', outras validações de conta (existência, tipo diferente de "Título", ativa/inativa) continuam sendo aplicadas normalmente em MFC003 e MFC028.
Regra Geral de Autorização
Não há autorizador específico para este parâmetro. A liberação é feita diretamente pelo cadastro em USUARIOCONTASALDO (via aba "Usuário" da tela FNC002), que relaciona CD_USUARIO às contas (CD_CONTA) de cada empresa.
Nota: O usuário administrador que configura o vínculo em FNC002 deve possuir acesso à tela, normalmente controlado pelas permissões de acesso (
ADM004/ACESSO) do módulo Financeiro.
Tabela Comparativa Resumida
| Opção | Nome | Restrição por usuário | Aba Usuário FNC002 | Saldo MFC001 |
|---|---|---|---|---|
S | Sim | Sim — exige USUARIOCONTASALDO | Visível | Apenas contas liberadas |
N | Não | Não — todas as contas liberadas | Oculta | Todas as contas |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Descrição do impacto |
|---|---|---|
TdmFNC001.tabPARMFINANCAfterInsert | source/FNC001/UdmFNC001.pas | Define o valor padrão 'N' ao inserir novo registro em PARMFINANC. |
iniciar | source/FNC002/UFNC002.pas | Verifica ST_PARMSALDO; se <> 'S', oculta a aba pagUSUARIO em FNC002. |
SugereSaldo | source/MFC001/UMFC001.pas | Na sugestão de saldo de abertura: quando 'S', soma saldo filtrando por USUARIOCONTASALDO; quando 'N', soma todas as contas. |
tabMOVTOCAIXACD_CONTADEBITOValidate | source/MFC003/UdmMFC003.pas | Valida conta débito: se ST_PARMSALDO = 'S', exige que a conta esteja em USUARIOCONTASALDO para o usuário corrente. |
tabMOVTOCAIXACD_CONTACREDITOValidate | source/MFC003/UdmMFC003.pas | Valida conta crédito com a mesma regra da conta débito (por usuário). |
btnExcluirClick | source/MFC007/UMFC007.pas | Estorno de pagamento/recebimento: lê o parâmetro (iSTParmSaldo) para verificar vínculos de conta antes de processar. |
cdsEMPRESACD_CONTASALDOBAIXAValidate | source/MFC028/UdmMFC028.pas | Validação da conta saldo na baixa: se ST_PARMSALDO = 'S', exige liberação em USUARIOCONTASALDO. |
Scripts SQL com referência direta ao campo
| Procedure/View | Arquivo | Descrição do impacto |
|---|---|---|
RECALCULA_SALDOCAIXACONTA | Scripts/RECALCULA_SALDOCAIXACONTA.sql | Lê ST_PARMSALDO; se 'N', recalcula todas as contas da empresa; se 'S', limita o recálculo às contas vinculadas ao usuário informado via USUARIOCONTASALDO. |
VIEW_PARMSALDO | Scripts/VIEW_PARMSALDO.sql | Lê ST_PARMSALDO para cada empresa; se 'S', junta PARMSALDO com USUARIOCONTASALDO filtrando pelo usuário; caso contrário, retorna todas as contas. |
Candidatas por uso da tabela (sem referência direta ao campo)
As procedures abaixo acessam PARMFINANC para diversos parâmetros financeiros, mas não consultam ST_PARMSALDO explicitamente:
CALCULA_CAPITAL, CALCULA_JURO, CALCULA_JUROMORA, CALCULA_JUROMORA_RFC019, CANCELA_CONTAS, CONTABILIZA_REPARCELAMENTO, CONTROLE_CAIXA, ESTORNA_MOVTOCAIXA, EXECUTA_PROCESSO, GERA_DUPLICATAS, GERA_INTEGRACAO, GERA_INTEGRACAOFISCAL, GERA_MOVTOCONTABIL, GRAVA_CHEQUECARTAO, GRAVA_CONTAS, GRAVA_MOVTOCAIXA, GRAVA_MOVTOCAIXAINDIVIDUAL, GRAVA_MOVTOPROCESSO, GRAVA_PROCESSOSMART, PROCESSA_FATURA.
Notas técnicas
- O parâmetro é obrigatório (
NOT NULL) na tabelaPARMFINANC. - Não possui regra de autorizador (não consulta
St_AlteraPrecoou tabelas de aprovação). - O controle por usuário depende da tabela auxiliar
USUARIOCONTASALDO, que armazenaCD_USUARIO,CD_EMPRCONTAeCD_CONTA. - Quando
ST_PARMSALDO = 'N', o sistema ignora a existência (ou ausência) de registros emUSUARIOCONTASALDO.