ST_IMPORDEMSERVICO — Impressão Automática de OS
Tela de configuração: OFI001 — Parâmetros da Oficina
Localização: Aba Layouts → grupo Ordem de Serviço → campo Imprime
Tabela / Campo: PARMOFICINA.ST_IMPORDEMSERVICO — CHAR(1)
Valor padrão: S (Sim)
Componente: cmbST_IMPORDEMSERVICO (TwwDBComboBox, csDropDownList)
Telas impactadas
| Tela | Descrição | Como usa o parâmetro |
|---|
| OFI001 | Parâmetros da Oficina | Edição e persistência do valor na tabela PARMOFICINA |
| MOF001 | Manutenção de Ordem de Serviço | Ao salvar/fechar a OS, consulta o parâmetro para decidir se imprime automaticamente a OS |
| MOF002 | Oficina Rápida | Consulta o parâmetro via ParmOficina para decidir impressão da OS gerada |
Campos envolvidos
| Campo | Tabela | Tipo | Relação com ST_IMPORDEMSERVICO |
|---|
ST_IMPORDEMSERVICO | PARMOFICINA | CHAR(1) | Este parâmetro — controla se imprime a OS |
CD_LAYOUTORDEMSERVICO | PARMOFICINA | VARCHAR(6) | Layout de impressão utilizado quando a OS é impressa |
TP_IMPORDEMSERVICO | PARMOFICINA | CHAR(1) | Tipo de impressão (parâmetro do CarregaLayout) |
Opções disponíveis
S — Sim (Imprime Automaticamente)
| O que faz | Detalhe |
|---|
| Comportamento | Ao salvar a OS, o sistema imprime automaticamente sem perguntar |
| Exige | CD_LAYOUTORDEMSERVICO deve estar preenchido |
| Restrição | Se o layout estiver vazio, o sistema lança exceção W-1819 ao tentar salvar os parâmetros |
Simulação passo a passo
- Acesse OFI001 → aba Layouts → grupo Ordem de Serviço.
- No campo Imprime, selecione Sim.
- No campo Layout, informe um layout válido (ex.:
LOF000).
- Salve os parâmetros.
- Abra MOF001, cadastre e salve uma nova Ordem de Serviço.
- Ao concluir o salvamento da OS, o sistema gera a impressão automaticamente.
Resultado esperado: A OS é impressa assim que o registro é salvo, sem nenhuma pergunta ao operador.
N — Não (Não Imprime)
| O que faz | Detalhe |
|---|
| Comportamento | Ao salvar a OS, o sistema não gera impressão |
| Exige | Nenhum layout obrigatório |
| Restrição | Sem impacto direto identificado no código |
Simulação passo a passo
- Acesse OFI001 → aba Layouts → grupo Ordem de Serviço.
- No campo Imprime, selecione Não.
- Salve os parâmetros.
- Abra MOF001, cadastre e salve uma nova Ordem de Serviço.
Resultado esperado: A OS é salva normalmente e nenhum relatório é emitido automaticamente.
P — Perguntar
| O que faz | Detalhe |
|---|
| Comportamento | Ao salvar a OS, o sistema exibe uma mensagem perguntando se o operador deseja imprimir |
| Exige | CD_LAYOUTORDEMSERVICO deve estar preenchido (para o caso de o operador confirmar) |
| Restrição | Se o layout estiver vazio e o parâmetro não for N, lança exceção W-1819 ao salvar parâmetros |
Simulação passo a passo
- Acesse OFI001 → aba Layouts → grupo Ordem de Serviço.
- No campo Imprime, selecione Perguntar.
- No campo Layout, informe um layout válido (ex.:
LOF000).
- Salve os parâmetros.
- Abra MOF001, cadastre e salve uma nova Ordem de Serviço.
- O sistema exibe a mensagem C-1698 perguntando se deseja imprimir.
- Se o operador confirmar Sim → a OS é impressa com o layout configurado.
- Se o operador confirmar Não → a OS é salva sem impressão.
Resultado esperado: O operador decide, no momento do salvamento, se deseja ou não imprimir a OS.
Regra Geral de Validação
Ao salvar os parâmetros na tela OFI001, o sistema aplica a seguinte validação (ASalvarExecute):
- Se
ST_IMPORDEMSERVICO <> N e CD_LAYOUTORDEMSERVICO estiver vazio → lança exceção W-1819 com a mensagem referente a Ordem de Serviço.
- Ou seja: qualquer opção diferente de Não (
S ou P) exige que o layout de impressão esteja configurado.
Tabela Comparativa Resumida
| Valor | Descrição | Imprime ao salvar OS? | Exige Layout? | Pergunta ao operador? |
|---|
S | Sim | Sim | Sim | Não |
N | Não | Não | Não | Não |
P | Perguntar | Depende da resposta | Sim | Sim (mensagem C-1698) |
Procedures impactadas
| Rotina | Arquivo | Linha | Evidência |
|---|
imprime | source/MOF001/UMOF001.pas | 884 | if (dmMOF001.iST_IMPORDEMSERVICO = 'S') then |
imprime | source/MOF001/UMOF001.pas | 887 | if (dmMOF001.iST_IMPORDEMSERVICO = 'P') then |
Busca_Parametros | source/MOF001/UdmMOF001.pas | 668 | Seleciona ST_IMPORDEMSERVICO na query de parâmetros |
Busca_Parametros (atribuição) | source/MOF001/UdmMOF001.pas | 682 | dmMOF001.iST_IMPORDEMSERVICO := Resultado[5] |
Busca_Parametros | source/MOF006/UdmMOF006.pas | 269 | Seleciona ST_IMPORDEMSERVICO na query de parâmetros |
Busca_Parametros (atribuição) | source/MOF006/UdmMOF006.pas | 283 | dmMOF006.iST_IMPORDEMSERVICO := Resultado[5] |
TfrmOFI001.ASalvarExecute | source/OFI001/UOFI001.pas | 384 | Valida se layout é obrigatório quando <> 'N' |
tabPARMOFICINAAfterInsert | source/OFI001/UdmOFI001.pas | 355 | Define valor padrão 'S' ao inserir novo registro |
Referências SQL diretas ao campo em Scripts/
Não foi encontrada referência direta ao campo ST_IMPORDEMSERVICO em procedures ou views SQL dentro de Scripts/. As procedures candidatas abaixo utilizam a tabela PARMOFICINA apenas para joins em CD_EMPRESA, sem consultar este campo:
| Procedure/View | Arquivo | Observação |
|---|
PARCELA_FINANC_MNF017 | Scripts/PARCELA_FINANC_MNF017.sql | Join em CD_EMPRESA apenas |
PARCELA_FINANCIAMENTO | Scripts/PARCELA_FINANCIAMENTO.sql | Join em CD_EMPRESA apenas |
REABRE_OS | Scripts/REABRE_OS.sql | Join em CD_EMPRESA apenas |
RETORNA_MOTIVOBLOQUEIO | Scripts/RETORNA_MOTIVOBLOQUEIO.sql | Join em CD_EMPRESA apenas |
RETORNA_PRECOITEM | Scripts/RETORNA_PRECOITEM.sql | Join em CD_EMPRESA apenas |
VERIFICA_BLOQUEIO | Scripts/VERIFICA_BLOQUEIO.sql | Join em CD_EMPRESA apenas |