Pular para o conteúdo principal

OFI001 — Parâmetros de Oficina

Fonte​

  • Source: source/OFI001/
  • Form: source/OFI001/UOFI001.pas
  • DataModule: source/OFI001/UdmOFI001.pas
  • Package: source/OFI001/OFI001.dpk

Objetivo​

Tela de configuração por empresa dos parâmetros do módulo Oficina (ordens de serviço, orçamentos, autorizações). Mantém PARMOFICINA (um registro por empresa) com flags de comportamento (comissão, desconto, obrigatoriedade de placa/mecânico/vendedor, bloqueios, layouts de impressão, tabela de custo de terceiros, quilometragem, garantia) e PARMUSUARIO (liberações de abas MOF001 e preferências por usuário/empresa). Alimenta o comportamento de todos os módulos da família OF*/MOF*/LOF*/ROF*.

Perguntas Frequentes​


Perguntas Gerais​

P: Qual é a finalidade da tela OFI001? R: A tela OFI001 é a Configuração de Parâmetros por Usuário/Empresa do sistema. Ela permite configurar parâmetros específicos para cada usuário dentro de uma determinada empresa. Através dessa tela, o administrador pode personalizar o comportamento do sistema de acordo com as necessidades de cada usuário, definindo permissões e configurações individualizadas por empresa.

P: Como configurar os parâmetros para um usuário específico? R: Para configurar os parâmetros de um usuário, acesse a tela OFI001 e selecione primeiramente a Empresa desejada. Em seguida, informe o código do Usuário para o qual deseja definir os parâmetros. Após localizar ou cadastrar o usuário na empresa, preencha os parâmetros disponíveis conforme a necessidade. Ao finalizar, salve as alterações para que as configurações entrem em vigor.

P: Como adicionar um usuário a uma empresa na tela OFI001? R: Para adicionar um usuário a uma empresa, acesse a tela OFI001, selecione a Empresa desejada e clique no botão de inclusão (Novo). Informe o código do Usuário que deseja vincular à empresa. O sistema validará se o usuário está cadastrado e ativo antes de permitir a inclusão. Após a validação, configure os parâmetros desejados e salve o registro.


Mensagens de Validação​

P: O sistema apresenta a mensagem "Informe primeiro a Empresa!" (W-1728). Como resolver? R: Esta mensagem indica que o campo Empresa não foi preenchido antes de realizar a operação. Na tela OFI001, é obrigatório selecionar a Empresa antes de informar o Usuário ou realizar qualquer configuração de parâmetros. Selecione a empresa desejada e tente novamente.

P: O sistema apresenta a mensagem "Usuário não Cadastrado. Verifique [ADM001]!" (W-0007). O que devo fazer? R: Esta mensagem indica que o código de usuário informado não existe no cadastro do sistema. Verifique se o código digitado está correto. Caso o usuário ainda não tenha sido cadastrado, acesse a tela Cadastro de Usuários (ADM001) para realizar o cadastro antes de configurar os parâmetros na OFI001.

P: O sistema apresenta a mensagem "Usuário não está Ativo. Verifique [ADM001]!" (W-0008). Como proceder? R: Esta mensagem indica que o usuário informado encontra-se com a situação Inativa no cadastro do sistema. Somente usuários com status Ativo podem ter parâmetros configurados por empresa. Para resolver, acesse a tela Cadastro de Usuários (ADM001) e reative o cadastro do usuário antes de prosseguir com a configuração na OFI001.

P: O sistema apresenta a mensagem "Usuário já está Cadastrado para a Empresa!" (W-1729). O que significa? R: Esta mensagem indica que o usuário informado já possui um registro de parâmetros configurado para a empresa selecionada. Não é permitido duplicar a vinculação de um mesmo usuário em uma mesma empresa. Para alterar os parâmetros existentes, localize o registro do usuário na empresa e edite as configurações diretamente, sem necessidade de criar um novo cadastro.


Validações do Sistema​

P: Quais validações são realizadas ao cadastrar um usuário na OFI001? R: Ao cadastrar ou vincular um usuário a uma empresa na tela OFI001, o sistema realiza as seguintes validações: verifica se a Empresa foi informada previamente; confirma se o código do Usuário existe no cadastro de usuários; verifica se o Usuário está com o status Ativo; e confere se o Usuário já não está cadastrado para a Empresa selecionada. Todas essas validações devem ser atendidas para que a operação seja concluída com sucesso.

P: Por que é necessário selecionar a empresa antes de informar o usuário? R: A seleção prévia da Empresa é obrigatória porque os parâmetros configurados na tela OFI001 são específicos para cada combinação de Usuário e Empresa. O sistema precisa saber a qual empresa os parâmetros se referem antes de validar e vincular o usuário. Sem essa informação, não é possível verificar duplicidades nem aplicar as configurações corretamente.

Parâmetros Documentados​

Parâmetros desta tela documentados pelo agente. Cada execução adiciona ou atualiza o item correspondente.

ParâmetroResumo
CD_EMPRESAParâmetro de Empresa (OFI001) - aba Aba "Parâmetros" - PARMOFICINA
CD_LAYOUTAUTORIZACAOLayout Autorizacao - aba Aba Layouts → Campo Layout (edicao livre) - PARMOFICINA
CD_LAYOUTORCAMENTOTipo Impressão (Layout Orçamento) - aba Aba Layouts → campo Layout Orçamento (Layout [MOF005]) - PARMOFICINA
'CD_LAYOUTORDEMSERVICO''CD_LAYOUTORDEMSERVICO - Layout de Impressão da Ordem de Serviço' - aba Aba "Layouts" - 'PARMOFICINA'
'CD_TABCUSTOFORNEC''CD_TABCUSTOFORNEC — Tabela de Custo de Fornecedor (Comportamento)' - aba Aba Parâmetros → quadro Dados do Parâmetro - 'PARMOFICINA'
DS_AUTORIZADORParâmetro de Nome do Autorizador (OFI001) - PARMOFICINA
DS_OBRIGATORIEDADEPARMOFICINA
DT_REGISTROColuna de Auditoria (OFI001) - PARMOFICINA
NR_DIASGARANTIADias de Garantia (MOF001/OFI001) - PARMOFICINA
NR_QUILOMETRAGEMKM para cálculo Data Retorno Tele Vendas/Pós Vendas - aba Aba Garantia - PARMOFICINA
QT_KMRETORNOKM para Cálculo de Data de Retorno - PARMOFICINA
ST_BLOQDTEMISSAOBloquear Data de Emissão - aba Aba Ordem 1 - PARMOFICINA
ST_BLOQUEIADESCBloquear Alteração da Descrição (Serviços/Peças) - aba Aba Ordem 1 - PARMOFICINA
ST_BLOQUEIAITEMORCAMENTOBloqueia alteração de itens oriundos de Orçamento - aba Aba Ordem 1 - PARMOFICINA
ST_BLOQUEIAORCAMENTOMOF005Bloquear O.S. Originada de Orçamento - PARMOFICINA
ST_CALCULOCOMISSAODescontar Comissão do Mecânico no Cálculo do Vendedor - PARMOFICINA
ST_COMISSAOTERCEIROSCalcular Comissão Sobre Serviços de Terceiros - aba Aba Ordem 1 - PARMOFICINA
ST_DATACONSUMOData da Movimentação de Estoque do Produto Consumo - aba Aba Parâmetros → campo Data Mov. Estoque Prod. Consumo - PARMOFICINA
ST_DESCONTOPRODUCAOPermitir Desconto Para Produto em Promoção - aba Aba "Ordem 1" - PARMOFICINA
ST_DESCONTOTERCEIROSPermitir Desconto em Serviços de Terceiros - aba Aba Ordem 1 - PARMOFICINA
ST_EXIGEMOTIVOLIBERACAOExigir Motivo de Liberação da OS - aba Aba Ordem 1 → Checkbox "Exigir motivo Liberação OS" - PARMOFICINA
ST_IMPAUTORIZACAOImpressão de Autorização - aba Aba Layouts → Grupo Autorização → campo Imprime - PARMOFICINA
ST_IMPORDEMSERVICOImpressão Automática de OS - aba Aba Layouts → grupo Ordem de Serviço → campo Imprime - PARMOFICINA
ST_IMPORTAOBSITEMPEDImportar Observação da OS no Item do Pedido - aba Aba Ordem 1 → campo "Ordem 1" - PARMOFICINA
ST_IMPORTAOBSPEDImportação de Observações da OS para Pedido - aba Aba Ordem 1, campo "Importar Obs. Pedido" (cmb_STIMPOBSPEDIDO) - PARMOFICINA
ST_IMPRORCAMENTOImpressão Automática do Orçamento - PARMOFICINA
ST_JUROVENDAOFICálculo de Juro na Venda de Oficina - aba Aba "Ordem 2" → campo "Cálculo de Juro" - PARMOFICINA
ST_LIMITAPRECOCOMPRABloqueia Preço Compra > Preço Venda na Requisição - PARMOFICINA
ST_LISTAVANCADATipo de Lista <F9> - aba Aba Parâmetros → Campo "Tipo de Lista <F9>" - PARMOFICINA
ST_MODULOVARIOSVENDEDORESMódulo de Vários Vendedores - aba Aba Parâmetros → Combobox "Acionar Manualmente a tela de Vários Vendedores" - PARMOFICINA
ST_MOTIVOCANCELAMENTOORCParâmetro ST_MOTIVOCANCELAMENTOORC - aba Aba "Ordem 3" - PARMOFICINA
ST_OBRIGAKMObriga Informar KM - aba Parâmetros → Ordem 1 → Checkbox "Obriga Informar KM" - PARMOFICINA
ST_OBRIGAMARCATIPOMODELOObrigatoriedade de Marca/Tipo/Modelo no Veículo - PARMOFICINA
ST_OBRIGAMECANICOObrigar Equipe/Mecânico - PARMOFICINA
ST_OBRIGAORCAMENTOOSObriga Orçamento para Abrir OS - PARMOFICINA
ST_OBRIGAORIGEMCLIENTEObriga Informar Origem Cliente - aba Aba Ordem 3 - PARMOFICINA
ST_OBRIGAPLACAObriga Placa na Abertura da Ordem - aba Aba "Ordem 2" - PARMOFICINA
ST_OBRIGAPLACAORCAMENTOObriga Informar Placa no Orçamento - PARMOFICINA
ST_OBRIGAVENDEDORObrigatoriedade de Vendedor - aba Parâmetros → Aba Parâmetros - PARMOFICINA
ST_RATEIAVENDEDORRateio de Comissão por Vendedor - aba Aba Ordem 2 - PARMOFICINA
ST_REPETESERVICOPermite Repetir Serviços - aba Aba Ordem 1, campo chkST_REPETESERVICO - PARMOFICINA
ST_REPLICAOBSMOF005Replicar Descrição Produto no Campo Observação [MOF005] - aba Aba Ordem 1 → Checkbox chkST_REPLICAOBSMOF005 - PARMOFICINA
ST_REPROCESSATABPRECOReprocessar Tabela de Preços ao Alterar Condição de Pagamento - aba Aba Ordem 2 - PARMOFICINA
ST_REPROCTABPRECOCFEReprocessar Tabela de Preços CFE MFA006 - aba Aba Ordem 2 - PARMOFICINA
ST_SEPARABLOQUEIOLiberação de Bloqueio por Setor - aba Aba Ordem 2 → campo "Liberação de Bloqueio por Setor" - PARMOFICINA
ST_SERVTERCEIROSParâmetro de Exibição de Serviços de Terceiros - aba Aba Ordem 1 - PARMOFICINA
ST_SULCOPNEUInformar Sulco dos Pneus - aba Aba Ordem 2 - PARMOFICINA
ST_VALIDABOXPLACAVEICULOST_VALIDABOXPLACAVEICULO – Validar Box e Placa do Veículo - aba Parâmetros → aba Parâmetros → combo "Validar Box e Placa do Veículo" - PARMOFICINA
ST_VALIDAPLACAJUNCAOValidar Placa do Veículo [Junção] - aba Aba Ordem 1 - PARMOFICINA
ST_VALIDAVEICULOSJUNCAOValidar Veículos nas Diferentes Junções - aba Parâmetros → Parâmetros → Validar Veículos nas Diferentes Junções [TTR006] - PARMOFICINA
TP_BLOQUEIOLiberação para Vendedores - aba Aba Parâmetros → campo "Liberação para Vendedores" - PARMOFICINA
TP_BLOQUEIOOSPARMOFICINA
TP_COMISSAOMECaba Aba "Ordem 2" → Campo "Comissões" - PARMOFICINA
TP_IMPAUTORIZACAOParâmetro de Tipo de Impressão da Autorização - aba Aba Layouts → Grupo Autorização - PARMOFICINA
TP_IMPORDEMSERVICOTipo de Impressão da Ordem de Serviço - PARMOFICINA
TP_IMPRORCAMENTOTipo de Impressão do Orçamento - aba Aba Layouts → campo "Orçamentos" - PARMOFICINA
TP_ORDEMSERVICOTipo da Ordem de Serviço - aba Aba Parâmetros - PARMOFICINA
TP_PRECOSERVICOParâmetro de Preço de Serviço - aba Parâmetros → Aba Parâmetros - PARMOFICINA
TP_REQESTOQUERequisição de Estoque (Ordem de Serviço) - aba Aba Layouts - PARMOFICINA

Mensagens exibidas​

Levantadas de source/OFI001/ pela camada 0 (commit 96fc51e236).

CódigoTipoMensagem
C-0045ConfirmaçãoDeseja Excluir o Registro?
C-0048ConfirmaçãoDeseja Salvar as Alterações Antes de Sair?
I-0047InformaçãoAlterações Efetuadas com Sucesso.
W-0007AvisoUsuário não Cadastrado. Verifique [ADM001]!
W-0008AvisoUsuário não está Ativo. Verifique [ADM001]!
W-0010AvisoEmpresa não cadastrada ou não liberada para o usuário. [ADM001]
W-1727AvisoO Código da Empresa já está Cadastrado nos Parâmetros. Verifique!
W-1728AvisoInforme primeiro a Empresa!
W-1729AvisoUsuário já está Cadastrado para a Empresa!
W-1819AvisoObrigatório Informar o Layout de %s. Verifique!

Tabelas de Escrita (INSERT/UPDATE/DELETE)​

TabelaOperacoes
PARMOFICINADELETE, INSERT, SELECT, UPDATE
PARMUSUARIODELETE, INSERT, SELECT, UPDATE

Tabelas de Leitura (SELECT)​

TabelaOperacoes
EMPRESASELECT
TABCOMPRASELECT
USUARIOSELECT
USUARIOEMPRESASELECT

Procedures Chamadas​

Nenhuma procedure é invocada diretamente (tela de parâmetros CRUD).

Dependencias Aferentes (quem alimenta esta tela)​

Telas que escrevem em tabelas lidas por esta tela. OFI001 lê EMPRESA, USUARIO, USUARIOEMPRESA, TABCOMPRA para lookup — resultando em 448 telas com linkage fraca (tipicamente EMPRESA/USUARIO). Destacamos abaixo as mais relevantes.

TelaTítuloTabelas em Comum
ADM001Cadastro de UsuáriosUSUARIO, USUARIOEMPRESA
ADM002Cadastro de EmpresasEMPRESA, USUARIOEMPRESA
ADM013DuplicaçãoUSUARIOEMPRESA, PARMUSUARIO
ADM012Parâmetros de UsuáriosPARMUSUARIO
ADM004Acessos de Usuários a MódulosEMPRESA
ADM008ImpressorasEMPRESA
TFA010Tabelas de CompraEMPRESA, TABCOMPRA
JunsoftShell principalUSUARIO, USUARIOEMPRESA

+440 telas com linkage em EMPRESA/USUARIO (omitidas por baixa relevância semântica).

Dependencias Eferentes (quem consome dados desta tela)​

Telas que leem PARMOFICINA e/ou PARMUSUARIO (59 telas no total).

TelaTítuloTabelas em Comum
MOF001Abertura / Fechamento de Ordem de ServiçoPARMOFICINA, PARMUSUARIO
MOF005Orçamento de Peças/ServiçosPARMOFICINA, PARMUSUARIO
MPD002Emissão de Pedidos de VendaPARMOFICINA, PARMUSUARIO
LRE000Layout de Requisição (oficina)PARMOFICINA, PARMUSUARIO
MOF006Fechamento Ordem de Serviço - OficinaPARMOFICINA
MOF007Desbloqueio de Ordens de ServiçoPARMOFICINA
MOF008Desbloqueio de Ordens de Serviço - FinanceiroPARMOFICINA
CPD003Consulta de Ordens de ServiçoPARMOFICINA
LOF000Layout Ordem de ServiçoPARMOFICINA
LNF107Layout NF-e (oficina)PARMOFICINA
ADM002Cadastro de EmpresasPARMUSUARIO
ADM012Parâmetros de UsuáriosPARMUSUARIO
ADM013DuplicaçãoPARMUSUARIO
ADM027Administração TEFPARMUSUARIO
CFC004Histórico do Cliente/FornecedorPARMUSUARIO
CNF011Consulta de NFS-ePARMUSUARIO
CNF015Consulta de Notas (variante)PARMUSUARIO
LPD111Layout PedidoPARMUSUARIO
LPP100Layout ProduçãoPARMUSUARIO
MCO001SolicitaçãoPARMUSUARIO
MEQ047Estoque (movimentação)PARMUSUARIO
MEQ069Estoque (movimentação)PARMUSUARIO
MFC001Abertura / Fechamento de CaixaPARMUSUARIO
MFC003Lançamento de Caixa Avulso / ChequePARMUSUARIO
MFC004Pagamento / Recebimento de ContasPARMUSUARIO
MFC013Impressão de ChequesPARMUSUARIO
MFC020Transferência de Caixa / BancoPARMUSUARIO
MFC025Gerenciamento de ChequesPARMUSUARIO
MNF017Venda BalcãoPARMUSUARIO
JunsoftShell principalPARMUSUARIO

+29 telas consomem PARMUSUARIO/PARMOFICINA.

Regras de Negocio​

  1. Um registro por empresa: PARMOFICINA.CD_EMPRESA é chave única; AfterInsert herda CD_EMPRESA da sessão.
  2. PARMUSUARIO é detail de USUARIOEMPRESA (par CD_EMPRESA + CD_USUARIO) — a aba "Liberação de Abas" controla TP_ABASMOF001 e preferências de impressoras/acessos por usuário.
  3. Validação de layouts (CD_LAYOUTORDEMSERVICO, CD_LAYOUTAUTORIZACAO, CD_LAYOUTORCAMENTO): OnValidate confirma existência do layout na base antes de gravar.
  4. Tabela de custo de fornecedor (CD_TABCUSTOFORNEC): valida contra TABCOMPRA; usada por MOF001 para calcular preço com margem sobre custo.
  5. Flags que alteram comportamento de MOF001 (exemplos): ST_OBRIGAPLACA, ST_OBRIGAMARCATIPOMODELO, ST_OBRIGAMECANICO, ST_OBRIGAVENDEDOR, ST_BLOQUEIADESC, ST_BLOQUEIAORCAMENTOMOF005, TP_BLOQUEIO, TP_BLOQUEIOOS, TP_COMISSAOMEC, TP_PRECOSERVICO, ST_CALCULOCOMISSAO, ST_RATEIAVENDEDOR, ST_MODULOVARIOSVENDEDORES, ST_REPROCESSATABPRECO, NR_DIASGARANTIA, QT_KMRETORNO.
  6. Controle de acesso: programa.tpAcesso = 2 oculta btnNovo/btnSalvar/btnExcluir — uso somente consulta.

Datasets e SQL​

DatasetTabelaDescrição
tabPARMOFICINAPARMOFICINA (JOIN EMPRESA)Registro master de parâmetros da oficina por empresa (~60 campos ST_/TP_/CD_LAYOUT*/NR_/QT_).
tabPARMUSUARIOPARMUSUARIO (JOIN USUARIOEMPRESA)Detail por usuário da empresa corrente; controla abas liberadas em MOF001 e preferências.

Eventos relevantes (UdmOFI001.pas)​

  • tabPARMOFICINABeforePost — valida campos obrigatórios.
  • tabPARMOFICINAAfterInsert — seta CD_EMPRESA da sessão e valores default dos flags.
  • tabPARMOFICINACD_TABCUSTOFORNECValidate — lookup em TABCOMPRA e preenche DS_TABCUSTOFORNEC.
  • tabPARMOFICINACD_LAYOUTORDEMSERVICOValidate — valida layout cadastrado.
  • tabPARMUSUARIOAfterScroll — recarrega lista de abas liberadas (chkTP_LIBERACAO).
  • verificaLibAbas(Tipo) — utilitário público que lê TP_ABASMOF001 e marca os checkboxes correspondentes.