Pular para o conteúdo principal

ST_PERMISSAOOFICINA — Permissao de Acesso a Oficina

Tela de configuracao: ADM012 — Parametros do Usuario
Aba: Oficina
Componente: chklstST_PERMISSAOOFICIONA (CheckList)
Tabela: PARMUSUARIO.ST_PERMISSAOOFICINA
Tipo: VARCHAR(240)
Valor padrao no schema: 'ND'
Valor padrao na insercao: 'N' (Sem acesso a oficina)

Este parametro armazena uma cadeia de caracteres onde cada letra representa uma permissao especifica do modulo de Oficina. O usuario final marca/desmarca opcoes em um checklist na aba "Oficina" da tela ADM012.

Telas impactadas​

TelaModuloImpacto
MOF001OficinaVerifica 'N', 'B', 'A', 'C' para habilitar/bloquear operacoes na oficina
MPD002Pedidos de VendaVerifica 'D' para permitir cancelamento de pedido
MPD020Pedidos (DataModule)Funcao PermiteCancelar verifica 'D'
MPD097Pedidos (DataModule)Verifica 'R' para ativar ST_PERMITEREMOCAO
ADM013Duplicacao de UsuarioCopia o valor ao duplicar usuario

Campos envolvidos​

CampoTabelaTipoPadrao SchemaPadrao Insert
ST_PERMISSAOOFICINAPARMUSUARIOVARCHAR(240)'ND''N'

Opcoes disponiveis​

Visao geral das permissoes​

LetraO que fazComportamento
NSem acesso a oficinaBloqueia todo acesso ao modulo de oficina. Mutuamente exclusivo com as demais opcoes.
BManter ServicosPermite inclusao/alteracao de ordens de servico.
AManter PecasPermite inclusao/alteracao de pecas na oficina.
CReabrir OSPermite reabertura de ordens de servico.
DCancelar PedidosPermite cancelar pedidos de venda (incluindo quando e o ultimo item do pedido).
RPermitir RemocaoPermite remocao de itens do pedido.

N — Sem acesso a oficina (bloqueio total)​

O que fazDetalhe
ComportamentoBloqueia completamente o acesso do usuario ao modulo de oficina (MOF001).
Editavel / BloqueadoMutuamente exclusivo: se marcado, nenhuma outra opcao pode estar ativa.
ExigeNenhuma outra permissao de oficina marcada (B, A, C, D, R).
RestricaoValidacao no BeforePost rejeita a gravacao se 'N' estiver marcado junto com qualquer outra opcao.

Simulacao passo a passo​

  1. Acesse ADM012 — Parametros do Usuario.
  2. Selecione a aba "Oficina".
  3. Marque a opcao "Sem acesso a oficina" no checklist.
  4. Desmarque todas as demais opcoes (B, A, C, D, R).
  5. Salve o registro.

Resultado esperado: O usuario correspondente nao tera acesso ao modulo de oficina. Ao tentar abrir MOF001, o acesso e negado.

Excecao / Importante: Se 'N' estiver marcada e qualquer outra opcao (B, A, C, D, R) tambem estiver marcada, o sistema exibe o erro: "Caso o Parametro 'Sem acesso a oficina' esteja Marcado e necessario que os seguintes Parametros Estejam Desmarcados." e nao permite salvar.


B — Manter Servicos​

O que fazDetalhe
ComportamentoPermite ao usuario manter (incluir/alterar) ordens de servico na oficina.
Editavel / BloqueadoEditavel. Nao pode coexistir com 'N'.
Exige'N' desmarcado. Pelo menos uma permissao (B, A, C, D ou R) deve estar ativa.
RestricaoSe 'N' estiver desmarcado, ao menos uma das demais opcoes deve estar marcada.

Simulacao passo a passo​

  1. Acesse ADM012 — Parametros do Usuario.
  2. Selecione a aba "Oficina".
  3. Desmarque a opcao "Sem acesso a oficina" ('N').
  4. Marque a opcao "Manter Servicos" ('B').
  5. Salve o registro (<Ctrl+S> ou botao Salvar).

Resultado esperado: O usuario podera incluir e alterar ordens de servico na oficina (MOF001). Internamente, stManterServicos sera definido como True.


A — Manter Pecas​

O que fazDetalhe
ComportamentoPermite ao usuario manter (incluir/alterar) pecas na oficina.
Editavel / BloqueadoEditavel. Nao pode coexistir com 'N'.
Exige'N' desmarcado.
RestricaoPode ser combinado com B, C, D, R.

Simulacao passo a passo​

  1. Acesse ADM012 — Parametros do Usuario.
  2. Selecione a aba "Oficina".
  3. Desmarque a opcao "Sem acesso a oficina" ('N').
  4. Marque a opcao "Manter Pecas" ('A').
  5. Salve o registro (<Ctrl+S> ou botao Salvar).

Resultado esperado: O usuario podera incluir e alterar pecas na oficina. Internamente, stManterPecas sera definido como True.


C — Reabrir Ordens de Servico​

O que fazDetalhe
ComportamentoPermite ao usuario reabrir ordens de servico na oficina.
Editavel / BloqueadoEditavel. Nao pode coexistir com 'N'.
Exige'N' desmarcado.
RestricaoPode ser combinado com B, A, D, R.

Simulacao passo a passo​

  1. Acesse ADM012 — Parametros do Usuario.
  2. Selecione a aba "Oficina".
  3. Desmarque a opcao "Sem acesso a oficina" ('N').
  4. Marque a opcao "Reabrir OS" ('C').
  5. Salve o registro (<Ctrl+S> ou botao Salvar).

Resultado esperado: O usuario podera reabrir ordens de servico. Internamente, stReabrir sera definido como True.


D — Cancelar Pedidos​

O que fazDetalhe
ComportamentoPermite ao usuario cancelar pedidos de venda. Sem 'D', a acao de cancelar o ultimo item do pedido e rejeitada com erro.
Editavel / BloqueadoEditavel. Nao pode coexistir com 'N'.
Exige'N' desmarcado.
RestricaoSe ausente e o usuario tenta cancelar o ultimo item de um pedido, o sistema exibe: "O usuario nao possui permissao para cancelar pedidos. Verifique! [ADM012]".

Simulacao passo a passo​

  1. Acesse ADM012 — Parametros do Usuario.
  2. Selecione a aba "Oficina".
  3. Desmarque a opcao "Sem acesso a oficina" ('N').
  4. Marque a opcao "Cancelar Pedidos" ('D').
  5. Salve o registro (<Ctrl+S> ou botao Salvar).
  6. Teste: Na tela de pedidos (MPD002), tente excluir o ultimo item — o sistema deve solicitar confirmacao e permitir o cancelamento.

Resultado esperado: O usuario podera cancelar pedidos quando for o ultimo item (o que cancela o pedido inteiro). A funcao PermiteCancelar() em MPD020 retorna True.

Excecao / Importante: Sem 'D', ao tentar cancelar o ultimo item do pedido, o sistema dispara a excecao: "O usuario nao possui permissao para cancelar pedidos. Verifique! [ADM012]" (fonte: MPD002 btnExcluirClick).


R — Permitir Remocao de Itens​

O que fazDetalhe
ComportamentoHabilita a remocao de itens do pedido. Ativa ParmUsuario.ST_PERMITEREMOCAO = True.
Editavel / BloqueadoEditavel. Nao pode coexistir com 'N'.
Exige'N' desmarcado.
RestricaoDetectado via AnsiContainsText(Resultado, 'R') no MPD097.

Simulacao passo a passo​

  1. Acesse ADM012 — Parametros do Usuario.
  2. Selecione a aba "Oficina".
  3. Desmarque a opcao "Sem acesso a oficina" ('N').
  4. Marque a opcao "Permitir Remocao" ('R').
  5. Salve o registro (<Ctrl+S> ou botao Salvar).

Resultado esperado: O usuario podera remover itens de pedidos. O parametro interno ParmUsuario.ST_PERMITEREMOCAO sera definido como True.


Regras de Validacao​

Exclusividade de 'N'​

Regra aplicada no BeforePost de PARMUSUARIO (UdmADM012.pas:284-316):

  • Se 'N' (Sem acesso) estiver marcado: Todas as demais opcoes (B, A, C, D, R) devem estar desmarcadas. O sistema rejeita a gravacao caso contrario.
  • Se 'N' estiver desmarcado: Pelo menos uma das demais opcoes (B, A, C, D, R) deve estar marcada. O sistema rejeita a gravacao se nenhuma estiver ativa.

Exemplos de combinacoes​

CombinacaoDescricaoSituacao
NSem acesso a oficinaValida — default na insercao
DApenas cancelamento de pedidosValida
BADManter servicos + Manter pecas + Cancelar pedidosValida
BACDRTodas as permissoes ativasValida
CRReabrir OS + Permitir remocaoValida
ND'N' (sem acesso) + 'D' (cancelar)Invalida — mutuamente exclusivos
NBA'N' com outras permissoes ativasInvalida — 'N' exige exclusividade
`` (vazio, sem 'N')Nenhuma permissao ativaInvalida — sem 'N', ao menos uma e obrigatoria

Procedures impactadas​

Rotinas Delphi com referencia direta ao campo​

RotinaArquivoUso
TdmADM012.tabPARMUSUARIOAfterInsertsource/ADM012/UdmADM012.pas:253Define valor padrao 'N' na insercao
TdmADM012.tabPARMUSUARIOBeforePostsource/ADM012/UdmADM012.pas:284-316Valida exclusividade de 'N' vs demais opcoes no checklist
Verifica_Permissoessource/ADM012/UdmADM012.pas:604Le o valor do campo para sincronizar o checklist na tela
TfrmADM013.btnDuplicaUsuarioClicksource/ADM013/UADM013.pas:474Copia o valor ao duplicar usuario
retornaPermissaoUsuariosource/MOF001/UdmMOF001.pas:6099Consulta 'N', 'B', 'A', 'C' para definir permissoes da oficina (stOfi, stManterServicos, stManterPecas, stReabrir)
TfrmMPD002.btnExcluirClicksource/MPD002/UMPD002.pas:1747Verifica 'D' antes de cancelar pedido; lanca excecao se ausente
retornaPermissaoUsuariosource/MPD002/UdmMPD002.pas:5109Consulta 'D' para definir stPermissaoCancelamento
TdmMPD020.PermiteCancelarsource/MPD020/UdmMPD020.pas:2994Usa POSITION('D' IN ST_PERMISSAOOFICINA) > 0 para validar cancelamento
Busca_Parametrossource/MPD097/UdmMPD097.pas:522Consulta 'R' para ativar ST_PERMITEREMOCAO
RParmUsuario (record)source/MEQ072/UdmMEQ072.pas:40Declara campo no record de parametro do usuario
RParmUsuario (record)source/MPD097/UdmMPD097.pas:43Declara campo no record de parametro do usuario

Referencias SQL diretas ao campo em Scripts/​

Nao foram encontradas referencias diretas ao campo ST_PERMISSAOOFICINA nos scripts SQL do diretorio Scripts/.

Candidatas por uso da tabela PARMUSUARIO​

As rotinas abaixo usam a tabela PARMUSUARIO mas nao referenciam ST_PERMISSAOOFICINA literalmente. Validar antes de afirmar impacto direto:

CANCELA_NOTAFISCAL.sql, CONTROLE_CAIXA.sql, GERA_ETIQUETABALANCA.sql, PERMISSAO_CAIXA.sql, RETORNA_IMPRESSORAUSUARIO.sql, TRGPARMFATUR_BU.sql, VALIDA_BLOQDESCMAXSUBGRUPO.sql, VALIDA_CODIGOBARRA.sql, VALIDA_LIBERACAOUSUARIO.sql, VALIDA_MODELOBLOQUEIODIASATRASO.sql, VALIDA_MODELOBLOQUEIOPCDESCMAX.sql, VALIDA_MODELOBLOQUEIOVLLIMITE.sql, VERIFICA_BLOQUEIO.sql, VIEW_DOCUMENTOSBLOQUEADOS.sql.