ST_AUTORIZADOR — Marca Usuário como Autorizador
Tela de configuração: ADM012 — Parâmetros do Usuário Localização: Parâmetros do Usuário → campo "Autorizador" Tabela:
PARMUSUARIO.ST_AUTORIZADORTipo:CHAR(1), Valor padrão:N(Não) Visibilidade: campo exibido somente quandoTP_USUARIOfor diferente deN(Normal). SeTP_USUARIO = 'N', o combo fica oculto e o valor permaneceN.
Telas impactadas
| Tela | Tipo de uso | Descrição |
|---|---|---|
| MFC004 — Contas a Receber | Leitura direta | Define se o usuário pode conceder desconto/juros sem validação de outro autorizador; se tiver limites configurados e os exceder, pede validação de um segundo autorizador |
| MOF001 — Ordem de Serviço (Produção) | Indireto | A variável iST_AUTORIZADOR é carregada da tabela AUTORIZADOR (tela TFA008), não de PARMUSUARIO. O perfil em PARMUSUARIO complementa o cadastro |
| MOF002 — Ordem de Serviço (Manutenção) | Indireto | Mesma lógica de MOF001: variável carregada da tabela AUTORIZADOR |
Nota: nas telas de Ordem de Serviço (MOF001/MOF002), o código consulta diretamente a tabela
AUTORIZADOR(SELECT ST_ATIVO FROM AUTORIZADOR WHERE CD_AUTORIZADOR = ...). O campoPARMUSUARIO.ST_AUTORIZADORconfigurado em ADM012 funciona como complemento. Ambos os cadastros contribuem para o perfil de autorizador.
Campos envolvidos
| Campo | Tabela | Relação |
|---|---|---|
ST_AUTORIZADOR | PARMUSUARIO | Parâmetro principal (S/N) |
PC_DESCONTOMAX | PARMUSUARIO | Percentual máximo de desconto do autorizador (configurado no mesmo registro ADM012) |
PC_JUROSMIN | PARMUSUARIO | Percentual mínimo de juros do autorizador (configurado no mesmo registro ADM012) |
ST_ATIVO, ST_ALTERAPRECO | AUTORIZADOR | Cadastro do autorizador na tabela AUTORIZADOR (configurado em TFA008 — Autorizador) |
Opções disponíveis
N — Não (padrão)
| O que faz | Detalhe |
|---|---|
| Usuário não é autorizador | Fica sujeito às regras normais de desconto e bloqueio |
| Desconto máximo | Limitado por PC_DESCONTOMAX de outro autorizador, se configurado |
| Ordem de Serviço | Não pode liberar, bloquear, reabrir ou cancelar ordens bloqueadas (MOF001/MOF002) |
Simulação passo a passo
- Acesse ADM012 — Parâmetros do Usuário e selecione o usuário desejado.
- Confirme que o campo Autorizador esteja em "Não".
- Salve o registro.
- Em MFC004, ao receber uma conta com desconto acima do limite, o sistema exigirá login de um autorizador para aprovar.
- Em MOF001, ao tentar clicar em Liberar uma ordem bloqueada, o sistema exibirá: "Somente Usuário do tipo Autorizador pode Liberar esta Ordem."
Resultado esperado: Usuário sem privilégios de autorizador — não consegue liberar ordens bloqueadas e precisa de aprovação para descontos/juros fora da faixa permitida.
S — Sim
| O que faz | Detalhe |
|---|---|
| Usuário é autorizador | Pode aprovar descontos, juros, liberar/bloquear/reabrir ordens |
| Sem limites configurados | Desconto e juros livres, sem pedir validação de outro autorizador |
Com PC_DESCONTOMAX e/ou PC_JUROSMIN | Pode conceder até o limite próprio; se exceder, o sistema pede login de outro autorizador |
| Ordem de Serviço | Pode liberar, bloquear, reabrir e cancelar ordens — campos editáveis mesmo com bloqueio ativo |
| Exigência adicional | Em MOF001/MOF002, precisa também ter cadastro ativo na tabela AUTORIZADOR (tela TFA008) |
Simulação passo a passo
Cenário 1 — Autorizador sem limites de desconto/juros:
- Acesse ADM012 e abra os parâmetros do usuário "MARIA".
- Altere o campo Autorizador para "Sim".
- Deixe
PC_DESCONTOMAXePC_JUROSMINem branco. - Salve o registro.
- Em MFC004, ao receber uma conta e aplicar R$ 100,00 de desconto em uma conta de R$ 200,00 (50%), o sistema permite sem pedir validação.
Resultado esperado: Desconto concedido livremente, sem tela de login de autorizador.
Cenário 2 — Autorizador com limites configurados, dentro do limite:
- Acesse ADM012 e abra os parâmetros do usuário "JOSE".
- Altere o campo Autorizador para "Sim".
- Defina
PC_DESCONTOMAX= 10,00 ePC_JUROSMIN= 2,00. - Salve o registro.
- Em MFC004, ao receber uma conta e aplicar 8% de desconto (dentro do limite de 10%), o sistema permite sem pedir validação.
Resultado esperado: Desconto concedido sem validação adicional — está dentro do limite do próprio autorizador.
Cenário 3 — Autorizador com limites, excedendo o limite:
- Usuário "JOSE" do cenário anterior (
PC_DESCONTOMAX= 10%). - Em MFC004, ao receber uma conta e tentar aplicar 15% de desconto (acima do limite de 10%).
- O sistema exibe a tela de login pedindo outro autorizador para aprovar.
- Se o segundo autorizador informado não tiver alçada suficiente, o sistema exibe: "Usuário não tem Alçada para Liberação Mínima de Juros. Verifique! [ADM012]" ou "Usuário não tem Alçada para Liberação de Desconto. Verifique! [ADM012]".
- Se o segundo autorizador tiver alçada, o desconto é aprovado.
Resultado esperado: Desconto acima do limite exige aprovação de outro autorizador com alçada superior.
Cenário 4 — Liberar Ordem de Serviço (MOF001):
- Certifique-se de que o usuário tem
ST_AUTORIZADOR = 'S'em ADM012 e cadastro ativo na tabelaAUTORIZADOR(tela TFA008). - Abra MOF001 e localize uma ordem de serviço com status Bloqueada.
- Clique no botão Liberar.
- Informe o motivo de liberação (se
ST_EXIGEMOTIVOLIBERACAO = 'S', configurado em OFI001 — Parâmetros de Oficina). - Confirme a liberação.
Resultado esperado: Ordem de serviço liberada com sucesso.
Exceção / Importante:
- Em MOF001/MOF002, a verificação consulta a tabela
AUTORIZADOR(nãoPARMUSUARIO). Se o usuário não tiver registro ativo emAUTORIZADOR, mesmo comST_AUTORIZADOR = 'S'no ADM012, a variáveliST_AUTORIZADORserá'N'e as operações de autorizador serão bloqueadas.- Usuário autorizador ignora bloqueios de edição em itens de OS com
TP_BLOQUEIO = 'G'(geral) ouTP_BLOQUEIO = 'V'(valor): quantidades, pesos e valores unitários permanecem editáveis.- O campo só fica visível em ADM012 quando
TP_USUARIOé diferente deN(Normal). SeTP_USUARIO = 'N', o combo é ocultado e o valor é forçado paraN.
Regra Geral de Autorização
| Situação | ST_AUTORIZADOR = 'N' | ST_AUTORIZADOR = 'S' (sem limites) | ST_AUTORIZADOR = 'S' (com limites) |
|---|---|---|---|
| Conceder desconto em MFC004 | Sujeito a validação de autorizador | Livre, sem validação | Livre até o limite; acima pede outro autorizador |
| Aplicar juros mínimo em MFC004 | Sujeito a validação de autorizador | Livre, sem validação | Livre até o limite; abaixo pede outro autorizador |
| Liberar OS bloqueada (MOF001) | Bloqueado | Permitido (se cadastrado em AUTORIZADOR) | Permitido (se cadastrado em AUTORIZADOR) |
| Bloquear OS aberta (MOF001) | Bloqueado | Permitido (se cadastrado em AUTORIZADOR) | Permitido (se cadastrado em AUTORIZADOR) |
| Reabrir OS (MOF001) | Bloqueado | Permitido (se cadastrado em AUTORIZADOR) | Permitido (se cadastrado em AUTORIZADOR) |
| Cancelar OS (MOF001/MOF002) | Bloqueado | Permitido (se cadastrado em AUTORIZADOR) | Permitido (se cadastrado em AUTORIZADOR) |
| Editar itens bloqueados na OS | Bloqueado | Campos editáveis | Campos editáveis |
Tabela Comparativa Resumida
| Valor | Desconto/Juros (MFC004) | OS — Liberar/Bloquear/Reabrir/Cancelar | Editar itens bloqueados na OS |
|---|---|---|---|
| N | Exige autorizador | Bloqueado | Bloqueado |
| S | Livre ou com limite próprio | Permitido* | Permitido* |
* Requer também cadastro ativo na tabela AUTORIZADOR (configurado em TFA008 — Autorizador).
Procedures impactadas
Rotinas Delphi com referência direta ao campo PARMUSUARIO.ST_AUTORIZADOR
| Rotina | Arquivo | Descrição |
|---|---|---|
TfrmADM012.btnNovoClick | UADM012.pas:431 | Define valor padrão N ao incluir novo registro |
TfrmADM012.cmbTP_USUARIOChange | UADM012.pas:601 | Oculta/exibe o combo conforme tipo de usuário |
Busca_Parametros | UdmMFC004.pas:297 | Lê ST_AUTORIZADOR do PARMUSUARIO para MFC004 |
validaAutorizacao (MFC004) | UMFC004.pas:1787 | Verifica limites de desconto/juros do autorizador |
TfrmADM013.btnDuplicaUsuarioClick | UADM013.pas:476 | Copia o campo ao duplicar parâmetros de usuário |
Rotinas Delphi que leem a tabela AUTORIZADOR (indireto — MOF001/MOF002)
| Rotina | Arquivo | Descrição |
|---|---|---|
Busca_Parametros | UdmMOF001.pas:752 | Carrega iST_AUTORIZADOR da tabela AUTORIZADOR |
Busca_Parametros | UdmMOF002.pas:359 | Carrega iST_AUTORIZADOR da tabela AUTORIZADOR |
TfrmMOF001.btnLiberarClick | UMOF001.pas:6347 | Verifica se usuário é autorizador para liberar OS |
TfrmMOF001.btnBloquearClick | UMOF001.pas:6411 | Verifica se usuário é autorizador para bloquear OS |
TfrmMOF001.btnReabrirClick | UMOF001.pas:5284 | Verifica se usuário é autorizador para reabrir OS |
TfrmMOF001.btnExcluirClick | UMOF001.pas:3701 | Verifica se usuário é autorizador para cancelar OS |
TfrmMOF001.btnSalvarClick | UMOF001.pas:2474 | Verifica autorizador ao alterar pedido com bloqueio geral |
TdmMOF001.tabORDEMSERVITEMAfterScroll | UdmMOF001.pas:2293 | Libera edição de campos se autorizador |
TdmMOF001.tabSERVICOITEMAfterScroll | UdmMOF001.pas:3549 | Libera edição de campos se autorizador |
TdmMOF001.tabITEMCONSUMOAfterScroll | UdmMOF001.pas:5035 | Libera edição de campos se autorizador |
TdmMOF001.tabORDEMSERVITEMQT_SERVICOValidate | UdmMOF001.pas:3898 | Permite alterar quantidade se autorizador |
TdmMOF001.tabORDEMSERVITEMVL_UNITARIOValidate | UdmMOF001.pas:3977 | Permite alterar valor se autorizador |
TdmMOF001.tabSERVICOITEMQT_SERVICOITEMValidate | UdmMOF001.pas:3690 | Permite alterar quantidade se autorizador |
TdmMOF001.tabSERVICOITEMVL_UNITARIOValidate | UdmMOF001.pas:3826 | Permite alterar valor se autorizador |
TdmMOF001.tabITEMCONSUMOVL_UNITARIOValidate | UdmMOF001.pas:5188 | Permite alterar valor consumo se autorizador |
TfrmMOF001.edtCD_CODIGOBARRAExit | UMOF001.pas:6512 | Autorizador ignora bloqueio de código de barra |
TfrmMOF002.btnExcluirClick | UMOF002.pas:909 | Verifica se usuário é autorizador para cancelar |
Referências SQL
Não foi encontrada referência direta ao campo ST_AUTORIZADOR em scripts SQL de Scripts/. As procedures listadas como candidatas (como VERIFICA_BLOQUEIO, VALIDA_LIBERACAOUSUARIO, VIEW_DOCUMENTOSBLOQUEADOS) utilizam a tabela PARMUSUARIO mas não fazem referência ao campo ST_AUTORIZADOR diretamente.