ADM010 — Configurações do Sistema (enriquecimento)
Menu: Sistema > Administração > Configurações do Sistema
Objetivo
A tela ADM010 (Configurações do Sistema) é o cadastro único e global de parâmetros do ERP: plano de contas, código de barras, impressão de relatórios, bloqueio/cadastro de pessoas, horário de verão, roteirização, acesso padrão de empresa/usuário e timeout de sessão. Diferente de um cadastro comum, ela mantém um único registro (PARMSISTEMA) que é sempre editado, nunca incluído pelo usuário; as únicas listas que aceitam inclusão/exclusão são as exceções de Timeout por Programa e por Usuário. A troca do tipo de Plano de Contas pode disparar uma migração de contas entre os planos Global e por Empresa, tratada em uma tela auxiliar (Plano de Contas).
Fluxo principal
- Abrir a tela pelo menu Sistema > Administração > Configurações do Sistema. O sistema carrega o registro único de PARMSISTEMA, a lista de Estados, o idioma e as listas de exceção de Timeout (por programa e por usuário), publicando as telas do menu atual para o F9 do grid de exceção. (Abertura da tela (todas as abas)) —
source/ADM010/UADM010.pas:242-300 (iniciar) - Navegar pelas abas (Sistema/Configurações, Bloqueio/Cadastro Pessoa, Horário de Verão, Roteirização, Acesso Padrão, Impressão, Internacionalização) e alterar os parâmetros desejados; a edição do registro inicia automaticamente ao digitar em qualquer campo vinculado. (Todas as abas de parâmetros) —
source/ADM010/UADM010.pas:614-626 (TfrmADM010.rbtPaisagemClick) - Para incluir/editar exceções de Timeout, posicionar o cursor no grid (Programas ou Usuários) na aba Acesso Padrão, usar F9 para buscar ou digitar o código diretamente; usar F5 (Novo) para nova linha e F7 (Excluir) para remover. (Acesso Padrão > grids de Exceção) —
source/ADM010/UADM010.pas:519-543 (TfrmADM010.gridEXECPROGRAMAKeyDown) - Clicar em Salvar (F6). O sistema grava PARMSISTEMA, ESTADOS e as listas de exceção pendentes em uma única transação, descarta linhas em branco dos grids, comita e reabre os dados. (Toolbar) —
source/ADM010/UADM010.pas:378-429 (TfrmADM010.btnSalvarClick) - Sistema exibe a mensagem de sucesso e retorna o foco à aba Sistema/Configurações. (Toolbar / aba Sistema) —
source/ADM010/UADM010.pas:423-427 (TfrmADM010.btnSalvarClick)
Campos obrigatórios
| Campo | Condição | Mensagem | Fonte |
|---|---|---|---|
| NR_TIMEOUTSESSAO (Timeout da sessão, em minutos) — aba Acesso Padrão | Opcional (em branco desabilita o timeout); se preenchido, deve ser >= 5 | O Timeout de Sessão deve ser de no mínimo 5 minutos. Deixe em branco para desabilitar! | source/ADM010/UdmADM010.pas:290-300 (TdmADM010.tabPARMSISTEMABeforePost) |
| VL_MUDANCAEPP (Valor de Receita Bruta para Transição para EPP) — aba Configurações | Obrigatório sempre ao salvar | Informe o Valor de Receita Bruta para Transição para EPP ! | source/ADM010/UdmADM010.pas:302-306 (TdmADM010.tabPARMSISTEMABeforePost) |
| NR_DIASBLOQLIB (Dias de tolerância para emitir a nota fiscal após a liberação) — aba Bloqueio/Cadastro Pessoa | Obrigatório sempre ao salvar | Informe o numero de dias que é possível esperar para fazer a nota fiscal desde a liberação ! | source/ADM010/UdmADM010.pas:307-312 (TdmADM010.tabPARMSISTEMABeforePost) |
| VL_TOPO, VL_BASE, VL_ESQUERDA, VL_DIREITA (margens de impressão) — aba Impressão | Todas obrigatórias sempre ao salvar | É Obrigatorio informar um valor para margem Topo/Base/Esquerda/Direita. Verifique! | source/ADM010/UdmADM010.pas:314-340 (TdmADM010.tabPARMSISTEMABeforePost) |
| DT_INICIOHRVERAO e DT_FIMHRVERAO (datas do Horário de Verão) — aba Sistema > Horário de Verão | Se um dos dois for preenchido, o outro também é obrigatório; início deve ser menor que término | Informe a data de início/término do Horário de Verão! / Data de Término deve ser posterior a data de Início! | source/ADM010/UdmADM010.pas:343-369 (TdmADM010.tabPARMSISTEMABeforePost) |
| CD_MODULO (grid de Exceção de Timeout por Programa) — aba Acesso Padrão | Obrigatório ao gravar a linha do grid | É Obrigatório informar o Código do Programa na lista de Exceções do Timeout! | source/ADM010/UdmADM010.pas:623-631 (TdmADM010.tabEXCPROGRAMABeforePost) |
| CD_USUARIO (grid de Exceção de Timeout por Usuário) — aba Acesso Padrão | Obrigatório ao gravar a linha do grid | É Obrigatório informar o Código do Usuário na lista de Exceções do Timeout! | source/ADM010/UdmADM010.pas:633-641 (TdmADM010.tabEXCUSUARIOBeforePost) |
Mensagens: causa e ação
C-0045
Causa: Usuário clicou no botão Excluir (F7) com uma linha já gravada em foco em um dos grids de exceção de timeout (Programa ou Usuário).
Ação: Confirmar para excluir definitivamente a exceção selecionada; cancelar para manter o registro.
Fonte: source/ADM010/UADM010.pas:496-517 (TfrmADM010.btnExcluirClick)
C-0048
Causa: Usuário tentou fechar a tela (X ou Sair) com alterações pendentes em algum dos datasets (PARMSISTEMA, ESTADOS ou os grids de exceção).
Ação: Confirmar para salvar as alterações automaticamente antes de fechar (aciona o botão Salvar); cancelar mantém a tela aberta com as alterações perdidas ao fechar de novo sem salvar.
Fonte: source/ADM010/UADM010.pas:304-325 (TfrmADM010.FormClose)
I-0047
Causa: Salvamento concluído com sucesso: PARMSISTEMA, ESTADOS e as listas de exceção de timeout foram gravados e a transação foi comitada.
Ação: Nenhuma ação necessária; a tela reabre os dados atualizados na aba Configurações.
Fonte: source/ADM010/UADM010.pas:406-427 (TfrmADM010.btnSalvarClick)
O Timeout de Sessão deve ser de no mínimo 5 minutos. Deixe em branco para desabilitar!
Causa: Usuário informou um valor entre 1 e 4 no campo Timeout da sessão.
Ação: Apagar o campo (desabilita o timeout) ou informar 5 ou mais minutos, na aba Acesso Padrão.
Fonte: source/ADM010/UdmADM010.pas:290-300 (TdmADM010.tabPARMSISTEMABeforePost)
A Empresa não está Cadastrada [ADM002]!
Causa: O código digitado no campo Empresa (acesso padrão) não existe na tabela EMPRESA.
Ação: Informar um código de empresa válido ou usar a lupa de consulta para selecioná-la.
Fonte: source/ADM010/UdmADM010.pas:372-392 (TdmADM010.tabPARMSISTEMACD_EMPRACESSOValidate)
É Obrigatório informar a Empresa para a Validação do Usuário!
Causa: Usuário tentou preencher o campo Usuário (acesso padrão) sem antes informar a Empresa.
Ação: Preencher o campo Empresa antes do campo Usuário, na aba Acesso Padrão.
Fonte: source/ADM010/UdmADM010.pas:399-402 (TdmADM010.tabPARMSISTEMACD_USUACESSOValidate)
O Usuário não está Cadastrado [ADM001]!
Causa: O código de usuário informado no acesso padrão não existe na tabela USUARIO.
Ação: Informar um código de usuário válido ou usar F9 para selecioná-lo na lista.
Fonte: source/ADM010/UdmADM010.pas:410-416 (TdmADM010.tabPARMSISTEMACD_USUACESSOValidate)
Esta Empresa não está Liberada para este Usuário [ADM001]!
Causa: O usuário informado existe, mas não está vinculado (USUARIOEMPRESA) à empresa informada no acesso padrão.
Ação: Liberar a empresa para o usuário no cadastro de Usuário, ou trocar a empresa/usuário informados.
Fonte: source/ADM010/UdmADM010.pas:410-418 (TdmADM010.tabPARMSISTEMACD_USUACESSOValidate)
ATENÇÂO Para alteração do parâmetro, será necessário Migrar o Plano de Contas. Deseja continuar com o Processo?
Causa: Usuário alterou o tipo de Plano de Contas (Global/Empresa) e já existem contas cadastradas no plano correspondente à modalidade anterior.
Ação: Confirmar para abrir a tela de Migração de Plano de Contas e concluir a transferência das contas; cancelar desfaz a alteração do parâmetro.
Fonte: source/ADM010/UdmADM010.pas:452-498 (TdmADM010.tabPARMSISTEMATP_PLANOCONTABILValidate)
%s Registros importados com Sucesso!
Causa: A migração de contas do Plano de Contas (Global→Empresa ou Empresa→Global) concluiu sem nenhum conflito pendente.
Ação: Nenhuma ação necessária; a tela de migração fecha automaticamente.
Fonte: source/ADM010/UfrmPlanoContas.pas:282-288 (TfrmPlanoContas.GlobalToEmpresa)
O Programa não está Cadastrado! Verifique.
Causa: O código informado no grid de Exceção de Timeout por Programa não existe na tabela MODULO nem corresponde a uma tela ativa no menu da sessão atual.
Ação: Usar F9 para escolher entre os programas disponíveis, ou conferir a grafia do código digitado.
Fonte: source/ADM010/UdmADM010.pas:655-666 (TdmADM010.tabEXCPROGRAMACD_MODULOValidate)
O Programa já está na lista de Exceções do Timeout!
Causa: O código de programa informado já consta em outra linha do grid de Exceção de Timeout por Programa.
Ação: Não é necessário cadastrar novamente; verificar a linha já existente no grid.
Fonte: source/ADM010/UdmADM010.pas:655-669 (TdmADM010.tabEXCPROGRAMACD_MODULOValidate)
O Usuário não está Cadastrado! Verifique.
Causa: O código informado no grid de Exceção de Timeout por Usuário não existe na tabela USUARIO.
Ação: Usar F9 para escolher entre os usuários disponíveis, ou conferir a grafia do código digitado.
Fonte: source/ADM010/UdmADM010.pas:684-691 (TdmADM010.tabEXCUSUARIOCD_USUARIOValidate)
O Usuário já está na lista de Exceções do Timeout!
Causa: O código de usuário informado já consta em outra linha do grid de Exceção de Timeout por Usuário.
Ação: Não é necessário cadastrar novamente; verificar a linha já existente no grid.
Fonte: source/ADM010/UdmADM010.pas:684-694 (TdmADM010.tabEXCUSUARIOCD_USUARIOValidate)
É Obrigatório informar a Empresa para utilizar a Lista de Usuários!
Causa: Usuário pressionou F9 no campo Usuário (acesso padrão) sem antes informar o campo Empresa.
Ação: Preencher o campo Empresa e então acionar F9 novamente para buscar o usuário.
Fonte: source/ADM010/UADM010.pas:679-682 (TfrmADM010.edtCD_USUARIOKeyDown)
Regras de negócio
ADM010.R001(verregras/ADM010/ADM010.R001.md)ADM010.R002(verregras/ADM010/ADM010.R002.md)ADM010.R003(verregras/ADM010/ADM010.R003.md)ADM010.R004(verregras/ADM010/ADM010.R004.md)ADM010.R005(verregras/ADM010/ADM010.R005.md)ADM010.R006(verregras/ADM010/ADM010.R006.md)ADM010.R007(verregras/ADM010/ADM010.R007.md)ADM010.R008(verregras/ADM010/ADM010.R008.md)ADM010.R009(verregras/ADM010/ADM010.R009.md)ADM010.R010(verregras/ADM010/ADM010.R010.md)ADM010.R011(verregras/ADM010/ADM010.R011.md)ADM010.R012(verregras/ADM010/ADM010.R012.md)ADM010.R013(verregras/ADM010/ADM010.R013.md)ADM010.R014(verregras/ADM010/ADM010.R014.md)ADM010.R015(verregras/ADM010/ADM010.R015.md)ADM010.R016(verregras/ADM010/ADM010.R016.md)ADM010.R017(verregras/ADM010/ADM010.R017.md)
Perguntas frequentes
P: Por que não consigo salvar e aparece a mensagem sobre a Receita Bruta para Transição para EPP?
R: O campo Valor de Receita Bruta para Transição para EPP (aba Configurações) é obrigatório em toda gravação da tela; preencha-o com o valor vigente antes de salvar.
Fonte: source/ADM010/UdmADM010.pas:302-306 (TdmADM010.tabPARMSISTEMABeforePost)
P: Deu a mensagem 'Informe o numero de dias que é possível esperar para fazer a nota fiscal desde a liberação'. O que fazer?
R: É preciso preencher o campo de dias de tolerância na aba Bloqueio/Cadastro Pessoa (NR_DIASBLOQLIB); ele é obrigatório sempre que a tela é salva.
Fonte: source/ADM010/UdmADM010.pas:307-312 (TdmADM010.tabPARMSISTEMABeforePost)
P: O sistema não deixa colocar 2 ou 3 minutos no Timeout de Sessão. É bug?
R: Não é bug: o timeout só aceita vazio (desabilitado) ou 5 minutos ou mais, para evitar desconectar o usuário durante o uso normal.
Fonte: source/ADM010/UdmADM010.pas:290-300 (TdmADM010.tabPARMSISTEMABeforePost)
P: Configurei o Timeout de Sessão mas as sessões do aplicativo web (WebOS) nunca são encerradas. Por quê?
R: Verifique se o código 'WEBAPP' está cadastrado na lista de Telas/Programas (Exceção), na aba Acesso Padrão — enquanto estiver lá, nenhuma sessão web é encerrada pelo timeout, independente do valor configurado.
Fonte: Scripts/ENCERRA_SESSOESWEB.sql:18-23 (ENCERRA_SESSOESWEB)
P: Um usuário reclama que foi desconectado do sistema web mesmo estando com a aba aberta o tempo todo. Isso é esperado?
R: Sim: o timeout é medido pela última interação real do usuário (clique, navegação), não pela simples renovação automática de token que ocorre a cada 10 minutos com a aba aberta sem uso.
Fonte: Scripts/ENCERRA_SESSOESWEB.sql:25-41 (ENCERRA_SESSOESWEB)
P: Troquei o Plano de Contas de Empresa para Global (ou vice-versa) e apareceu uma tela pedindo para migrar contas. É normal?
R: Sim, é o comportamento esperado quando já existem contas cadastradas no plano de destino: o sistema pede confirmação e abre a tela de Migração de Plano de Contas para transferir/conciliar as contas antes de efetivar a troca do parâmetro.
Fonte: source/ADM010/UdmADM010.pas:439-500 (TdmADM010.tabPARMSISTEMATP_PLANOCONTABILValidate)
P: Na migração de Plano de Contas apareceram contas na lista de conflito e não foram importadas. Por quê?
R: A migração não sobrescreve contas: se o código de conta já existe no plano de destino, ou se já existe outra conta com a mesma Classificação e Grau, a conta fica registrada como conflito para revisão manual e não é gravada.
Fonte: source/ADM010/UfrmPlanoContas.pas:144-246 (TfrmPlanoContas.GlobalToEmpresa)
P: Deu a mensagem 'O Programa já está na lista de Exceções do Timeout' ao cadastrar uma tela na lista. O que fazer?
R: O código do programa informado já está cadastrado em outra linha do grid; não é necessário incluí-lo de novo — verifique a linha já existente na lista de Telas/Programas (Exceção).
Fonte: source/ADM010/UdmADM010.pas:655-669 (TdmADM010.tabEXCPROGRAMACD_MODULOValidate)
P: Cadastrei o código de um programa na lista de exceção e apareceu 'O Programa não está Cadastrado'. Por quê?
R: O código não corresponde a nenhum registro da tabela MODULO nem a uma tela ativa no menu da sessão atual; use F9 no grid para escolher entre os programas disponíveis, em vez de digitar o código manualmente.
Fonte: source/ADM010/UdmADM010.pas:655-666 (TdmADM010.tabEXCPROGRAMACD_MODULOValidate)
P: Fechei a tela e apareceu uma pergunta se quero salvar. É normal?
R: Sim: se há alteração pendente em qualquer aba (parâmetros, estados ou listas de exceção de timeout) ao fechar a tela, o sistema pergunta (C-0048) se deseja salvar antes de sair.
Fonte: source/ADM010/UADM010.pas:304-325 (TfrmADM010.FormClose)
P: Cliquei em Novo (F5) na tela de Configurações e nada acontece. É bug?
R: Não: PARMSISTEMA é um registro único de configuração, então o botão Novo só funciona quando o cursor está posicionado em um dos grids de exceção de Timeout (Programa ou Usuário).
Fonte: source/ADM010/UADM010.pas:477-494 (TfrmADM010.btnNovoClick)
Dúvidas em aberto (o código não responde)
- Quais são todos os valores possíveis do parâmetro TP_PLANOCONTABIL além de 'G' (Global) e 'E' (Empresa) tratados no Validate, e o que cada valor representa para o restante do ERP? — O código só distingue explicitamente 'G' e 'E' em TdmADM010.tabPARMSISTEMATP_PLANOCONTABILValidate (UdmADM010.pas:439-500); não foi lido código de outros módulos que consome esse parâmetro para confirmar se há outros valores válidos.
- Onde exatamente (fora da procedure ENCERRA_SESSOESWEB, aqui lida) o valor de NR_TIMEOUTSESSAO e as listas TIMEOUTEXCPROGRAMA/TIMEOUTEXCUSUARIO são consumidos pelo aplicativo desktop, se houver equivalente para sessões não-web? — Só foi encontrada e lida a procedure de encerramento de sessões web (ENCERRA_SESSOESWEB); não há evidência nos arquivos lidos de uma rotina equivalente para sessões desktop dentro do escopo do módulo ADM010.
- O campo 'Utiliza fuso horário definido no Servidor (Firebird)' (caption na aba Configurações, UADM010.dfm linha 457) corresponde a qual campo de PARMSISTEMA e qual rotina trata seu efeito? — A caption aparece no .dfm mas não foi identificado nos .pas lidos (UdmADM010.pas, UADM010.pas) o handler ou campo correspondente a essa opção.
- A regra de horário de verão desativado (RETORNA_HORARIOVERAO só calcula a partir de 2020) é definitiva por mudança legal, ou existe algum cenário em que a tela precisa voltar a calcular anos <= 2019? — O comentário na procedure (Scripts/RETORNA_HORARIOVERAO.sql:26-28) indica desativação em 2019, mas não há confirmação no código se isso é regra de negócio fixa ou parametrizável por algum outro cadastro.