Pular para o conteúdo principal

MPD005 — Ordem de Serviço (enriquecimento)

Menu: Ordem de Serviço > Movimentações > Ordem de Serviço

Objetivo​

A tela MPD005 (Ordem de Serviço) registra o atendimento de assistência técnica/oficina: dados do cliente e do equipamento atendido, os serviços prestados, os produtos/peças aplicados em cada serviço e as horas de mão de obra (ou km/horímetro) dos técnicos. A partir da Ordem de Serviço fechada, o usuário pode gerar automaticamente um Pedido de Venda e, a partir dele, uma Nota Fiscal de Saída (MNF002). A tela também controla o ciclo de vida da ordem (Aberta, Fechada, Gerado Pedido, Bloqueada, Cancelada), permitindo bloquear/liberar por regras de crédito e reabrir quando autorizado.

Fluxo principal​

  1. Informar o cliente (F9 lista pessoas); o sistema busca automaticamente o endereço se houver só um cadastrado, ou pede para escolher se houver mais de um; valida se a pessoa está ativa e sem bloqueio financeiro. (Dados da Ordem de Serviço (cabeçalho)) — source/MPD005/UdmMPD005.pas:665-761 (TdmMPD005.tabORDEMSERVICOCD_PESSOAValidate)
  2. Preencher Data de Emissão, Previsão de Entrega, Ocorrência/Reclamação e, opcionalmente, Máquina/Equipamento, Condição e Forma de Pagamento. (Dados da Ordem de Serviço (cabeçalho)) — source/MPD005/UdmMPD005.pas:901-938 (TdmMPD005.tabORDEMSERVICOBeforePost)
  3. Para cada serviço, lançar as peças/produtos aplicados (item, quantidade/peso, valores); se o produto controla número de série, o sistema abre a tela de seleção de seriais. (Produtos do Serviço) — source/MPD005/UdmMPD005.pas:584-661 (MostraSerial)
  4. Lançar as horas do técnico no quadro de horas (ou km/horímetro conforme parâmetro da empresa) e o laudo técnico. (Laudo Técnico) — source/MPD005/UdmMPD005.pas:1835-1890 (TdmMPD005.tabORDEMSERVHORABeforePost)
  5. Clicar em Fechar para encerrar os serviços em aberto (confirma C-1702); a OS passa para status Fechada e habilita Gerar Pedido/Nota. (Finalizar Ordem de Serviço) — source/MPD005/UMPD005.pas:1830-1917 (TfrmMPD005.btnFecharClick)
  6. Clicar em Gerar Nota para gerar o pedido (se ainda não gerado) e abrir a tela de Emissão de Nota Fiscal (MNF002) vinculada a ele. (Finalizar Ordem de Serviço) — source/MPD005/UMPD005.pas:1919-1952 (TfrmMPD005.btnGeraNotaClick)

Campos obrigatórios​

CampoCondiçãoMensagemFonte
CD_PESSOA (Cliente)Sempre, ao salvar a Ordem de ServiçoW-2032source/MPD005/UdmMPD005.pas:905-909 (TdmMPD005.tabORDEMSERVICOBeforePost)
CD_ENDERECO (Endereço do cliente)Sempre, ao salvar a Ordem de ServiçoW-2033source/MPD005/UdmMPD005.pas:910-914 (TdmMPD005.tabORDEMSERVICOBeforePost)
DT_EMISSAO (Data de emissão)Sempre, ao salvar a Ordem de ServiçoW-2034source/MPD005/UdmMPD005.pas:915-919 (TdmMPD005.tabORDEMSERVICOBeforePost)
DT_ENTREGA (Previsão de entrega)Sempre; além disso não pode ser anterior à Data de EmissãoW-2035 / W-2004source/MPD005/UdmMPD005.pas:920-924 (TdmMPD005.tabORDEMSERVICOBeforePost)
DS_OBSERVACAO (Ocorrência/Reclamação)Sempre, ao salvar a Ordem de ServiçoW-2036source/MPD005/UdmMPD005.pas:925-929 (TdmMPD005.tabORDEMSERVICOBeforePost)
CD_SERVICO, CD_MOVIMENTACAO, QT_SERVICO, VL_UNITARIO, VL_TOTAL (linha da aba Serviços Prestados)Ao gravar cada linha de serviço prestadoW-2037 / W-2038 / W-2039 / W-2040 / W-2041source/MPD005/UdmMPD005.pas:963-994 (TdmMPD005.tabORDEMSERVITEMBeforePost)
CD_ITEM, CD_MOVIMENTACAO, PS_SERVICOITEM ou QT_SERVICOITEM, VL_UNITARIO, VL_TOTAL (linha da aba Produtos do Serviço)Ao gravar cada linha de produto aplicado a um serviçoW-2050 / W-2052 / W-2053 / W-2054 / W-2055source/MPD005/UdmMPD005.pas:1426-1468 (TdmMPD005.tabSERVICOITEMBeforePost)
CD_VENDEDOR (linha de Produto do Serviço)Somente quando o parâmetro ST_BLOQUEIOVENDEDOR da empresa está ativo (S)W-2051source/MPD005/UdmMPD005.pas:1437-1444 (TdmMPD005.tabSERVICOITEMBeforePost)
DT_INICIO (Quadro de Horas)Sempre, ao gravar um lançamento de hora do técnicoW-2060source/MPD005/UdmMPD005.pas:1841-1845 (TdmMPD005.tabORDEMSERVHORABeforePost)
CD_PESSOA (Técnico) e QT_HORAS (Quadro de Horas)Somente quando o parâmetro ST_OBRIGATECNICO da empresa está ativo (S)W-2061 / W-2062source/MPD005/UdmMPD005.pas:1870-1885 (TdmMPD005.tabORDEMSERVHORABeforePost)

Mensagens: causa e ação​

C-0045​

Causa: Usuário pediu para excluir um registro genérico (linha do quadro de horas ou de produto do serviço) fora dos casos com confirmação específica.

Ação: Confirmar apenas se realmente deseja remover a linha selecionada; não é possível desfazer depois de confirmado.

Fonte: source/MPD005/UMPD005.pas:1540-1544 (TfrmMPD005.btnExcluirClick)

C-1698​

Causa: A Ordem de Serviço acabou de ser fechada com sucesso.

Ação: Responder Sim para imprimir a via da OS agora, ou Não para imprimir depois pelo botão Imprimir.

Fonte: source/MPD005/UMPD005.pas:1915-1916 (TfrmMPD005.btnFecharClick)

C-1702​

Causa: Usuário clicou no botão Fechar da Ordem de Serviço.

Ação: Confirmar para encerrar todos os serviços em aberto e mudar o status da OS para Fechada; se algum serviço exigir técnico e não tiver, a operação é interrompida antes desta pergunta.

Fonte: source/MPD005/UMPD005.pas:1887-1913 (TfrmMPD005.btnFecharClick)

C-1703​

Causa: Usuário clicou no botão Reabrir.

Ação: Confirmar para reabrir a OS; é necessário ser usuário Autorizador, e se já existir Nota Fiscal emitida a partir do pedido vinculado a reabertura será recusada.

Fonte: source/MPD005/UMPD005.pas:2001-2061 (TfrmMPD005.btnReabrirClick)

C-1706​

Causa: Usuário clicou no botão Liberar.

Ação: Confirmar para desbloquear a OS (só funciona se ela estiver com status Bloqueada e o usuário for Autorizador).

Fonte: source/MPD005/UMPD005.pas:2066-2091 (TfrmMPD005.btnLiberarClick)

C-1773​

Causa: Usuário clicou em Excluir com o cabeçalho da OS selecionado, o que na prática cancela a Ordem de Serviço.

Ação: Confirmar apenas se deseja realmente cancelar a OS (status vira Cancelada); requer usuário Autorizador.

Fonte: source/MPD005/UMPD005.pas:1467-1488 (TfrmMPD005.btnExcluirClick)

C-1775​

Causa: Usuário clicou em Excluir com uma linha da aba Serviços Prestados selecionada.

Ação: Confirmar para remover o serviço; se o serviço tiver composição de peças cadastrada, o sistema perguntará também sobre remover os produtos vinculados (C-1776).

Fonte: source/MPD005/UMPD005.pas:1490-1537 (TfrmMPD005.btnExcluirClick)

C-1776​

Causa: O serviço que está sendo excluído possui uma composição de peças cadastrada (tabela PRODUCAO) e existem produtos lançados na OS que fazem parte dessa composição.

Ação: Confirmar para excluir também os produtos do serviço que pertencem à composição; recusar mantém os produtos já lançados.

Fonte: source/MPD005/UMPD005.pas:1504-1535 (TfrmMPD005.btnExcluirClick)

E-0032​

Causa: A pessoa selecionada como cliente está com ST_ATIVA='N' no cadastro.

Ação: Reativar a pessoa em TFA001 ou selecionar outro cliente ativo.

Fonte: source/MPD005/UdmMPD005.pas:687-688 (TdmMPD005.tabORDEMSERVICOCD_PESSOAValidate)

E-0259​

Causa: O código informado como vendedor não corresponde a nenhum registro vinculado em VENDEDOR.

Ação: Cadastrar a pessoa como vendedor em TFA007 ou corrigir o código informado.

Fonte: source/MPD005/UdmMPD005.pas:2040-2047 (TdmMPD005.tabORDEMSERVICOCD_VENDEDORValidate)

E-0271​

Causa: A condição de pagamento existe, mas está com ST_ATIVO='N'.

Ação: Reativar a condição de pagamento em TFC002 ou usar outra condição ativa.

Fonte: source/MPD005/UdmMPD005.pas:827-828 (TdmMPD005.tabORDEMSERVICOCD_CONDPAGTOValidate)

E-0272​

Causa: O código de condição de pagamento informado não existe em CONDPAGTO.

Ação: Selecionar uma condição de pagamento válida em TFC002.

Fonte: source/MPD005/UdmMPD005.pas:823-826 (TdmMPD005.tabORDEMSERVICOCD_CONDPAGTOValidate)

E-0273​

Causa: O código de forma de pagamento informado não existe em FORMAPAGTO.

Ação: Selecionar uma forma de pagamento válida em TFC001.

Fonte: source/MPD005/UdmMPD005.pas:804-809 (TdmMPD005.tabORDEMSERVICOCD_FORMAPAGTOValidate)

E-0276​

Causa: A movimentação escolhida para o serviço/produto tem TP_OPERACAO='E' (entrada), incompatível com a Ordem de Serviço (que exige movimentação de saída).

Ação: Selecionar uma movimentação de saída cadastrada em MOVIMENTACAO.

Fonte: source/MPD005/UdmMPD005.pas:1763-1769 (TdmMPD005.tabORDEMSERVITEMCD_MOVIMENTACAOValidate)

E-0290​

Causa: O código de movimentação informado não existe cadastrado em MOVIMENTACAO.

Ação: Selecionar uma movimentação válida através do F9/pesquisa.

Fonte: source/MPD005/UdmMPD005.pas:1763-1767 (TdmMPD005.tabORDEMSERVITEMCD_MOVIMENTACAOValidate)

E-1885​

Causa: O código de pessoa informado como cliente não existe em PESSOA.

Ação: Cadastrar a pessoa em TFA001 ou corrigir o código informado.

Fonte: source/MPD005/UdmMPD005.pas:678-686 (TdmMPD005.tabORDEMSERVICOCD_PESSOAValidate)

E-1890​

Causa: O campo Forma de Pagamento do cabeçalho está vazio no momento de gerar o Pedido de Venda.

Ação: Preencher a Forma de Pagamento no cabeçalho da OS antes de clicar em Gerar Pedido/Nota.

Fonte: source/MPD005/UMPD005.pas:1599-1600 (TfrmMPD005.btnPedidoClick)

I-1715​

Causa: A Ordem de Serviço foi gravada (inclui o caso de cancelamento, que reaproveita esta mensagem).

Ação: Nenhuma ação necessária; apenas confirmação de que a operação foi concluída.

Fonte: source/MPD005/UMPD005.pas:1483-1486 (TfrmMPD005.btnExcluirClick)

I-1771​

Causa: A Ordem de Serviço foi reaberta com sucesso.

Ação: Nenhuma ação necessária; a OS volta ao status Aberta para novas alterações.

Fonte: source/MPD005/UMPD005.pas:2054-2056 (TfrmMPD005.btnReabrirClick)

I-1778​

Causa: A Ordem de Serviço foi liberada (desbloqueada) com sucesso.

Ação: Nenhuma ação necessária; a OS volta ao status Aberta.

Fonte: source/MPD005/UMPD005.pas:2085-2087 (TfrmMPD005.btnLiberarClick)

W-0092​

Causa: A quantidade do produto informado na aba Produtos do Serviço é zero ou negativa.

Ação: Informar uma quantidade maior que zero.

Fonte: source/MPD005/UdmMPD005.pas:1611-1615 (TdmMPD005.tabSERVICOITEMQT_SERVICOITEMValidate)

W-0176​

Causa: A placa informada no quadro de horas (km) não está cadastrada em VEICULO.

Ação: Cadastrar o veículo ou corrigir a placa informada.

Fonte: source/MPD005/UdmMPD005.pas:2172-2186 (TdmMPD005.tabORDEMSERVHORANR_PLACAValidate)

W-0182​

Causa: O valor de desconto informado no serviço prestado (aba ORDEMSERVITEM) é negativo.

Ação: Informar um valor de desconto maior ou igual a zero.

Fonte: source/MPD005/UdmMPD005.pas:2342-2347 (TdmMPD005.tabORDEMSERVITEMVL_DESCONTOValidate)

W-0202​

Causa: O usuário recusou a confirmação de gravar um item mesmo com o saldo de estoque ficando negativo (modo alerta).

Ação: Confirmar a operação se o estoque negativo for aceitável, ou reduzir a quantidade lançada / verificar o estoque do item.

Fonte: source/MPD005/UdmMPD005.pas:1538-1551 (TdmMPD005.ValidaEstoqueNegativo)

W-0457​

Causa: O usuário não tem permissão de acesso à tela de Cadastro de Pessoas (TFA001) no menu.

Ação: Solicitar ao administrador a liberação de acesso ao módulo TFA001.

Fonte: source/MPD005/UMPD005.pas:2586-2588 (TfrmMPD005.btnCadastrarPessoaClick)

W-0780​

Causa: O usuário não tem permissão de acesso à tela de Emissão de Nota Fiscal de Saída (MNF002).

Ação: Solicitar ao administrador a liberação de acesso ao módulo MNF002 antes de gerar a nota a partir da OS.

Fonte: source/MPD005/UMPD005.pas:1932-1934 (TfrmMPD005.btnGeraNotaClick)

W-0799​

Causa: O usuário clicou em Excluir sem ter uma Ordem de Serviço carregada (campo Número da OS vazio).

Ação: Buscar/abrir uma Ordem de Serviço antes de tentar excluir/cancelar.

Fonte: source/MPD005/UMPD005.pas:1471-1472 (TfrmMPD005.btnExcluirClick)

W-1540​

Causa: A quantidade de números de série marcados na tela de seleção é diferente da quantidade lançada no item do produto.

Ação: Marcar exatamente a mesma quantidade de seriais informada na quantidade/peso do item antes de confirmar.

Fonte: source/MPD005/UMPD005SERIAL.pas:121-123 (TfrmMPD005SERIAL.btnOKClick)

W-1608​

Causa: O usuário não tem permissão de acesso à tela de Pedido de Venda (MPD002).

Ação: Solicitar ao administrador a liberação de acesso ao módulo MPD002 para usar o botão 'Pedido de Venda'.

Fonte: source/MPD005/UMPD005.pas:2565-2567 (TfrmMPD005.btnPedidoVendaClick)

W-1691​

Causa: O usuário não tem permissão de acesso à tela de Cadastro de Máquinas/Equipamentos (TFA012).

Ação: Solicitar ao administrador a liberação de acesso ao módulo TFA012.

Fonte: source/MPD005/UMPD005.pas:2685-2687 (TfrmMPD005.btnCadastrarMaquinaClick)

W-1700​

Causa: A Ordem de Serviço que está sendo aberta na tela já está com status Bloqueada.

Ação: É apenas um aviso informativo ao abrir; para editar, um Autorizador precisa Liberar a OS na aba Reabrir/Liberar.

Fonte: source/MPD005/UMPD005.pas:1132-1135 (TfrmMPD005.edtNR_ORDEMSERVICOExit)

W-1772​

Causa: Nenhum número de série foi marcado na tela de seleção de seriais do produto.

Ação: Marcar ao menos um serial correspondente à quantidade do item, ou cancelar a seleção.

Fonte: source/MPD005/UMPD005SERIAL.pas:117-119 (TfrmMPD005SERIAL.btnOKClick)

W-1774​

Causa: A Ordem de Serviço está com status Bloqueada e o usuário tentou salvar, excluir ou gerar pedido.

Ação: Solicitar a um Autorizador que libere a OS (botão Liberar) antes de continuar a edição.

Fonte: source/MPD005/UMPD005.pas:641-642 (TfrmMPD005.btnSalvarClick)

W-1777​

Causa: O usuário que tentou cancelar a Ordem de Serviço não está cadastrado como Autorizador ativo.

Ação: Solicitar que um usuário Autorizador execute o cancelamento.

Fonte: source/MPD005/UMPD005.pas:1473-1474 (TfrmMPD005.btnExcluirClick)

W-1921​

Causa: A pessoa selecionada como cliente está com ST_SCPC='S' (situação financeira/crédito bloqueada).

Ação: Regularizar a situação financeira do cliente ou verificar a pendência no cadastro de pessoa antes de atendê-lo.

Fonte: source/MPD005/UdmMPD005.pas:689-690 (TdmMPD005.tabORDEMSERVICOCD_PESSOAValidate)

W-1934​

Causa: O código de produto/item informado não existe cadastrado em ITEM.

Ação: Cadastrar o item em TPO001 ou corrigir o código informado.

Fonte: source/MPD005/UdmMPD005.pas:1255-1260 (TdmMPD005.tabSERVICOITEMCD_ITEMValidate)

W-2003​

Causa: O usuário tentou salvar alterações numa OS cujo status não é Aberta (por exemplo, Fechada, Gerado Pedido, Bloqueada ou Cancelada), fora do próprio fluxo de fechamento.

Ação: Reabrir a OS (se aplicável e autorizado) antes de tentar alterar, ou entender que ordens fechadas/bloqueadas/canceladas não podem mais ser editadas diretamente.

Fonte: source/MPD005/UMPD005.pas:637-639 (TfrmMPD005.btnSalvarClick)

W-2004​

Causa: A Data de Entrega informada é anterior à Data de Emissão da OS.

Ação: Corrigir a Data de Entrega para uma data igual ou posterior à Data de Emissão.

Fonte: source/MPD005/UMPD005.pas:651-655 (TfrmMPD005.btnSalvarClick)

W-2005​

Causa: O parâmetro de bloqueio de vendedor está ativo e algum produto do serviço foi salvo sem vendedor.

Ação: Preencher o vendedor em todas as linhas de produto do serviço antes de salvar.

Fonte: source/MPD005/UMPD005.pas:670-676 (TfrmMPD005.btnSalvarClick)

W-2006​

Causa: O usuário tentou informar/pesquisar o Endereço antes de escolher a Pessoa (cliente).

Ação: Selecionar primeiro o cliente e só depois o endereço.

Fonte: source/MPD005/UMPD005.pas:1030-1035 (TfrmMPD005.edtCD_ENDERECOKeyDown)

W-2007​

Causa: O número de Ordem de Serviço digitado não existe para a empresa logada.

Ação: Conferir o número digitado ou usar a pesquisa (F9) para localizar a OS correta.

Fonte: source/MPD005/UMPD005.pas:1112-1120 (TfrmMPD005.edtNR_ORDEMSERVICOExit)

W-2008​

Causa: A Condição de Pagamento do cabeçalho está vazia no momento de Gerar Pedido.

Ação: Preencher a Condição de Pagamento antes de gerar o pedido/nota.

Fonte: source/MPD005/UMPD005.pas:1601-1602 (TfrmMPD005.btnPedidoClick)

W-2009​

Causa: O Total da Ordem de Serviço está zerado (nenhum serviço/produto com valor lançado) no momento de gerar o pedido.

Ação: Lançar ao menos um serviço ou produto com valor antes de gerar o pedido/nota.

Fonte: source/MPD005/UMPD005.pas:1604-1605 (TfrmMPD005.btnPedidoClick)

W-2010​

Causa: Ao salvar a OS, a procedure VERIFICA_BLOQUEIO detectou algum motivo de bloqueio comercial/financeiro para o cliente.

Ação: Ler o motivo informado na mensagem para entender a pendência (crédito, título vencido etc.); a OS é automaticamente marcada como Bloqueada.

Fonte: source/MPD005/UMPD005.pas:955-980 (TfrmMPD005.btnSalvarClick)

W-2011​

Causa: Pretendida para avisar que a OS já está fechada/com pedido gerado ao clicar em Fechar novamente, mas devido a um erro de lógica (condição E em vez de OU) nunca é exibida na prática.

Ação: Não depender desta mensagem; verificar o status da OS na tela (campo Status) antes de tentar fechar novamente.

Fonte: source/MPD005/UMPD005.pas:1834-1836 (TfrmMPD005.btnFecharClick)

W-2012​

Causa: O parâmetro que obriga técnico está ativo e existe ao menos um serviço da OS sem nenhum apontamento de hora com técnico preenchido.

Ação: Lançar o técnico responsável no quadro de horas de cada serviço antes de Fechar a OS.

Fonte: source/MPD005/UMPD005.pas:1857-1877 (TfrmMPD005.btnFecharClick)

W-2013​

Causa: Ao gerar Pedido/Nota, o pedido criado ficou marcado como Bloqueado por regra de crédito (VERIFICA_BLOQUEIO).

Ação: Regularizar a pendência indicada e depois liberar o pedido bloqueado (fora desta tela) para poder emitir a nota.

Fonte: source/MPD005/UMPD005.pas:1930-1950 (TfrmMPD005.btnGeraNotaClick)

W-2014​

Causa: O usuário tentou Reabrir uma Ordem de Serviço que está com status Bloqueada.

Ação: Primeiro Liberar a OS (desbloquear) e só depois usar Reabrir, se ainda for necessário.

Fonte: source/MPD005/UMPD005.pas:1998-1999 (TfrmMPD005.btnReabrirClick)

W-2015​

Causa: O usuário que tentou Reabrir não está cadastrado como Autorizador ativo.

Ação: Solicitar que um Autorizador execute a reabertura.

Fonte: source/MPD005/UMPD005.pas:2003-2004 (TfrmMPD005.btnReabrirClick)

W-2016​

Causa: O usuário que tentou Liberar não está cadastrado como Autorizador ativo.

Ação: Solicitar que um Autorizador execute a liberação.

Fonte: source/MPD005/UMPD005.pas:2068-2069 (TfrmMPD005.btnLiberarClick)

W-2017​

Causa: O usuário clicou em Liberar numa OS que não está com status Bloqueada.

Ação: O botão Liberar só se aplica a ordens bloqueadas; nada a fazer se a OS já está aberta/fechada normalmente.

Fonte: source/MPD005/UMPD005.pas:2070-2071 (TfrmMPD005.btnLiberarClick)

W-2018​

Causa: O percentual de desconto informado (no cabeçalho ou na linha de produto do serviço) é negativo.

Ação: Informar um percentual de desconto maior ou igual a zero.

Fonte: source/MPD005/UMPD005.pas:2097-2100 (TfrmMPD005.edtPC_DESCONTOExit)

W-2019​

Causa: No quadro de horas, a Data/Hora Fim informada é igual ou anterior à Data/Hora Início.

Ação: Informar uma Hora Fim posterior à Hora Início do apontamento.

Fonte: source/MPD005/UMPD005.pas:2443-2449 (TfrmMPD005.gridORDEMSERVHORAExit)

W-2020​

Causa: O usuário pressionou F11 (Observação) estando na aba Produtos do Serviço sem nenhum produto selecionado/lançado.

Ação: Selecionar um produto na grade antes de abrir a observação (F11).

Fonte: source/MPD005/UMPD005.pas:2494-2503 (Observacao_Produto)

W-2021​

Causa: O usuário pressionou F11 (Observação) estando na aba Serviços Prestados sem nenhum serviço selecionado/lançado.

Ação: Selecionar um serviço na grade antes de abrir a observação (F11).

Fonte: source/MPD005/UMPD005.pas:2506-2515 (Observacao_Produto)

W-2023​

Causa: Foi solicitada a lista de tabelas de preço (F9) sem que o código do produto/serviço estivesse preenchido.

Ação: Informar o código do produto/serviço antes de consultar as tabelas de preço.

Fonte: source/MPD005/UMPD005.pas:391-392 (PesquisaTabPreco)

W-2025​

Causa: Não há layout de impressão de Ordem de Serviço cadastrado nos Parâmetros de Faturamento (PARMFATUR.CD_LAYORDSERV) da empresa.

Ação: Cadastrar o layout de impressão da Ordem de Serviço em MFA001.

Fonte: source/MPD005/UMPD005.pas:1442-1443 (TfrmMPD005.btnImprimirClick)

W-2026​

Causa: Existe uma Nota Fiscal com status Válida/Baixada/Lançada emitida a partir do pedido gerado por esta OS.

Ação: A reabertura não pode prosseguir enquanto essa nota fiscal existir; verificar/cancelar a nota fiscal (fora desta tela) se realmente for necessário reabrir.

Fonte: source/MPD005/UMPD005.pas:2021-2034 (TfrmMPD005.btnReabrirClick)

W-2027​

Causa: No modo Horímetro, o valor de Km/Hora Final informado é menor ou igual ao valor Inicial.

Ação: Informar um valor final maior que o inicial no controle de horímetro.

Fonte: source/MPD005/UdmMPD005.pas:285-290 (calcaulaHoraHorimetro)

W-2028​

Causa: O usuário fechou a tela de seleção de seriais sem confirmar (clicou Cancelar ou fechou a janela).

Ação: Reabrir a seleção de seriais e confirmar a escolha para poder gravar o produto.

Fonte: source/MPD005/UdmMPD005.pas:651-657 (MostraSerial)

W-2030​

Causa: O código de endereço informado não pertence à pessoa selecionada como cliente.

Ação: Selecionar um endereço válido para essa pessoa (via F9) ou cadastrar um novo endereço em TFA001.

Fonte: source/MPD005/UdmMPD005.pas:772-784 (TdmMPD005.tabORDEMSERVICOCD_ENDERECOValidate)

W-2031​

Causa: O número de série da máquina/equipamento informado não está cadastrado em MAQUINA.

Ação: Cadastrar o equipamento em TFA012 ou corrigir o número de série informado.

Fonte: source/MPD005/UdmMPD005.pas:856-890 (TdmMPD005.tabORDEMSERVICONR_SERIEMAQUINAValidate)

W-2036​

Causa: O campo de Ocorrência/Reclamação (DS_OBSERVACAO) do cabeçalho está vazio ao salvar.

Ação: Descrever a ocorrência/reclamação do cliente antes de salvar a OS.

Fonte: source/MPD005/UdmMPD005.pas:925-929 (TdmMPD005.tabORDEMSERVICOBeforePost)

W-2042​

Causa: O código informado na aba Serviços Prestados não corresponde a nenhum item cadastrado.

Ação: Cadastrar o serviço em TPO001 ou corrigir o código informado.

Fonte: source/MPD005/UdmMPD005.pas:1107-1113 (TdmMPD005.tabORDEMSERVITEMCD_SERVICOValidate)

W-2043​

Causa: O item informado na aba Serviços Prestados é do tipo Produto (TP_ITEM<>'S'), não Serviço.

Ação: Informar um código de item cadastrado como serviço em TPO001.

Fonte: source/MPD005/UdmMPD005.pas:1114-1115 (TdmMPD005.tabORDEMSERVITEMCD_SERVICOValidate)

W-2044​

Causa: O serviço informado existe, mas está com ST_ATIVO='N'.

Ação: Reativar o serviço em TPO001 ou usar outro serviço ativo.

Fonte: source/MPD005/UdmMPD005.pas:1116-1117 (TdmMPD005.tabORDEMSERVITEMCD_SERVICOValidate)

W-2045​

Causa: O parâmetro de validação de tabela de preço está ativo e não existe tabela de preço específica cadastrada para este cliente e este item.

Ação: Cadastrar a tabela de preço para o cliente (PARMTABPRECO) ou vincular o item à tabela padrão em TFA006.

Fonte: source/MPD005/UdmMPD005.pas:1187-1205 (TdmMPD005.tabORDEMSERVITEMCD_SERVICOValidate)

W-2046​

Causa: O item não está vinculado a nenhuma tabela de preço, nem mesmo a tabela padrão da empresa.

Ação: Cadastrar o item na tabela de preço padrão da empresa em TFA006/MFA006.

Fonte: source/MPD005/UdmMPD005.pas:1209-1219 (TdmMPD005.tabORDEMSERVITEMCD_SERVICOValidate)

W-2047​

Causa: O código informado na aba Produtos do Serviço corresponde a um item do tipo Serviço (TP_ITEM='S'), o que não é permitido nesta lista.

Ação: Informar um código de item do tipo produto/peça.

Fonte: source/MPD005/UdmMPD005.pas:1261-1262 (TdmMPD005.tabSERVICOITEMCD_ITEMValidate)

W-2048​

Causa: O produto informado existe, mas está com ST_ATIVO='N'.

Ação: Reativar o produto em TPO001 ou usar outro produto ativo.

Fonte: source/MPD005/UdmMPD005.pas:1263-1264 (TdmMPD005.tabSERVICOITEMCD_ITEMValidate)

W-2049​

Causa: O produto informado já foi lançado anteriormente na mesma Ordem de Serviço.

Ação: Editar a linha já existente do produto (alterando a quantidade) em vez de lançar uma nova linha.

Fonte: source/MPD005/UdmMPD005.pas:1273-1279 (TdmMPD005.tabSERVICOITEMCD_ITEMValidate)

W-2056​

Causa: O peso informado para o produto do serviço é negativo.

Ação: Informar um peso maior ou igual a zero.

Fonte: source/MPD005/UdmMPD005.pas:1631-1635 (TdmMPD005.tabSERVICOITEMPS_SERVICOITEMValidate)

W-2059​

Causa: A quantidade informada no serviço prestado (aba ORDEMSERVITEM) é negativa.

Ação: Informar uma quantidade maior ou igual a zero.

Fonte: source/MPD005/UdmMPD005.pas:1680-1683 (TdmMPD005.tabORDEMSERVITEMQT_SERVICOValidate)

W-2063​

Causa: O parâmetro de OS é do modo Horas ('H') e existe ao menos um apontamento de hora do serviço sem Data/Hora Fim preenchida (em aberto) no momento de encerrar a data de fechamento do serviço.

Ação: Preencher a Hora Fim de todos os apontamentos do técnico para o serviço antes de fechá-lo.

Fonte: source/MPD005/UdmMPD005.pas:1987-2003 (TdmMPD005.tabORDEMSERVITEMDT_FECHAMENTOValidate)

W-2067​

Causa: O usuário informado no lançamento do quadro de horas não corresponde a um usuário cadastrado em USUARIO.

Ação: Selecionar um usuário válido do sistema.

Fonte: source/MPD005/UdmMPD005.pas:2080-2086 (TdmMPD005.tabORDEMSERVHORACD_USUARIOValidate)

W-2068​

Causa: O código de pessoa informado como técnico no quadro de horas não existe em PESSOA.

Ação: Cadastrar a pessoa em TFA001 ou corrigir o código informado.

Fonte: source/MPD005/UdmMPD005.pas:2095-2105 (TdmMPD005.tabORDEMSERVHORACD_PESSOAValidate)

W-2069​

Causa: A pessoa informada como técnico está com ST_ATIVA='N'.

Ação: Reativar a pessoa em TFA001 ou selecionar outro técnico ativo.

Fonte: source/MPD005/UdmMPD005.pas:2106-2107 (TdmMPD005.tabORDEMSERVHORACD_PESSOAValidate)

W-2070​

Causa: A pessoa informada como técnico não é do Tipo de Pessoa 'Funcionário/Técnico' (TP_TIPOPESSOA<>'N').

Ação: Selecionar uma pessoa cujo Tipo de Pessoa esteja configurado como Técnico/Funcionário em TFA001.

Fonte: source/MPD005/UdmMPD005.pas:2108-2109 (TdmMPD005.tabORDEMSERVHORACD_PESSOAValidate)

W-2071​

Causa: A quantidade de horas informada no quadro de horas é negativa.

Ação: Informar uma quantidade de horas maior ou igual a zero.

Fonte: source/MPD005/UdmMPD005.pas:2121-2123 (TdmMPD005.tabORDEMSERVHORAQT_HORASValidate)

W-2072​

Causa: A parte decimal da quantidade de horas informada (interpretada como minutos) é maior que 59.

Ação: Corrigir os minutos informados para um valor entre 00 e 59.

Fonte: source/MPD005/UdmMPD005.pas:2134-2140 (TdmMPD005.tabORDEMSERVHORAQT_HORASValidate)

W-2073​

Causa: O percentual de comissão informado (no cabeçalho ou na linha de produto do serviço) é negativo.

Ação: Informar um percentual de comissão maior ou igual a zero.

Fonte: source/MPD005/UdmMPD005.pas:2349-2353 (TdmMPD005.tabSERVICOITEMPC_COMISSAOValidate)

Regras de negócio​

  • MPD005.R001 (ver regras/MPD005/MPD005.R001.md)
  • MPD005.R002 (ver regras/MPD005/MPD005.R002.md)
  • MPD005.R003 (ver regras/MPD005/MPD005.R003.md)
  • MPD005.R004 (ver regras/MPD005/MPD005.R004.md)
  • MPD005.R005 (ver regras/MPD005/MPD005.R005.md)
  • MPD005.R006 (ver regras/MPD005/MPD005.R006.md)
  • MPD005.R007 (ver regras/MPD005/MPD005.R007.md)
  • MPD005.R008 (ver regras/MPD005/MPD005.R008.md)
  • MPD005.R009 (ver regras/MPD005/MPD005.R009.md)
  • MPD005.R010 (ver regras/MPD005/MPD005.R010.md)
  • MPD005.R011 (ver regras/MPD005/MPD005.R011.md)
  • MPD005.R012 (ver regras/MPD005/MPD005.R012.md)
  • MPD005.R013 (ver regras/MPD005/MPD005.R013.md)
  • MPD005.R014 (ver regras/MPD005/MPD005.R014.md)
  • MPD005.R015 (ver regras/MPD005/MPD005.R015.md)
  • MPD005.R016 (ver regras/MPD005/MPD005.R016.md)
  • MPD005.R017 (ver regras/MPD005/MPD005.R017.md)
  • MPD005.R018 (ver regras/MPD005/MPD005.R018.md)
  • MPD005.R019 (ver regras/MPD005/MPD005.R019.md)
  • MPD005.R020 (ver regras/MPD005/MPD005.R020.md)
  • MPD005.R021 (ver regras/MPD005/MPD005.R021.md)
  • MPD005.R022 (ver regras/MPD005/MPD005.R022.md)

Perguntas frequentes​

P: Por que não consigo alterar/salvar essa Ordem de Serviço? R: Provavelmente a OS está com status Bloqueada (mensagem W-1774) — apenas um usuário Autorizador pode Liberá-la (aba 'Reabrir/Liberar Ordem Serviço') antes de qualquer alteração. Também pode ser que ela já não esteja mais Aberta (Fechada, Gerado Pedido ou Cancelada), o que impede edição direta (W-2003). Fonte: source/MPD005/UMPD005.pas:637-642 (TfrmMPD005.btnSalvarClick)

P: Deu a mensagem 'A Ordem de Serviço está Bloqueada' quando abri; o que eu faço? R: É apenas um aviso ao carregar a OS (W-1700); ela pode ser bloqueada por regra de crédito/negócio detectada ao salvar. Para editar, um usuário do tipo Autorizador precisa usar o botão Liberar. Fonte: source/MPD005/UMPD005.pas:1132-1135 (TfrmMPD005.edtNR_ORDEMSERVICOExit)

P: Por que não consigo gerar o Pedido de Venda a partir da Ordem de Serviço? R: É preciso que a OS esteja Fechada (o botão só habilita nesse status), tenha Forma e Condição de Pagamento preenchidas e o Total da Ordem seja maior que zero (mensagens E-1890/W-2008/W-2009). Fonte: source/MPD005/UMPD005.pas:1597-1605 (TfrmMPD005.btnPedidoClick)

P: Gerei o pedido mas ele veio bloqueado, o que significa? R: Ao criar o pedido, o sistema roda a mesma regra de crédito/bloqueio comercial da empresa (VERIFICA_BLOQUEIO); se detectar um motivo (limite de crédito, título vencido, etc.), o pedido é marcado como Bloqueado e o motivo aparece na mensagem (W-2010/W-2013). É necessário regularizar a pendência do cliente para liberar o pedido antes de emitir a nota. Fonte: source/MPD005/UMPD005.pas:1775-1804 (TfrmMPD005.btnPedidoClick)

P: Não consigo Fechar a Ordem de Serviço, aparece 'É Obrigatório Informar ao Menos um Técnico'. R: A empresa tem o parâmetro de faturamento que obriga técnico (ST_OBRIGATECNICO='S'); é preciso lançar pelo menos um apontamento de hora com técnico preenchido para cada serviço antes de conseguir fechar a OS. Fonte: source/MPD005/UMPD005.pas:1838-1884 (TfrmMPD005.btnFecharClick)

P: Não consigo Reabrir a Ordem de Serviço mesmo sendo Autorizador. R: Se a Ordem de Serviço tem um pedido vinculado que já gerou uma Nota Fiscal válida/lançada/baixada, a reabertura é recusada (W-2026). Também não é possível reabrir se a OS estiver com status Bloqueada — nesse caso é preciso Liberar antes (W-2014). Fonte: source/MPD005/UMPD005.pas:1998-2034 (TfrmMPD005.btnReabrirClick)

P: O usuário disse que fechou a OS de novo e não recebeu nenhum aviso de 'já está fechada' — é normal? R: Sim, é um bug conhecido: a checagem que deveria avisar isso usa uma condição logicamente impossível (status igual a 'F' E igual a 'P' ao mesmo tempo), então a mensagem W-2011 nunca aparece. Na prática o botão Fechar não deveria estar habilitado nesse cenário (ele é desabilitado quando a OS não está Aberta), então o impacto costuma ser baixo, mas vale reportar ao desenvolvimento. Fonte: source/MPD005/UMPD005.pas:1834-1836 (TfrmMPD005.btnFecharClick)

P: Por que a tela pede para selecionar números de série de novo depois que eu já tinha escolhido? R: Isso acontece quando a quantidade ou o peso do item de produto é alterado depois da seleção original dos seriais; o sistema detecta que a quantidade de seriais já vinculados não bate mais com a nova quantidade do item e reabre a tela de seleção automaticamente. Fonte: source/MPD005/UdmMPD005.pas:1717-1738 (TdmMPD005.tabSERVICOITEMAfterPost)

P: Alterei o percentual de desconto geral e os descontos dos itens mudaram sozinhos, é esperado? R: Sim: ao sair do campo de Percentual de Desconto Geral do cabeçalho, o sistema recalcula automaticamente o valor de desconto de todos os serviços e produtos aplicando o mesmo percentual sobre o valor total de cada linha, sobrescrevendo descontos que tivessem sido definidos manualmente item a item. Fonte: source/MPD005/UMPD005.pas:2095-2126 (TfrmMPD005.edtPC_DESCONTOExit)

P: O usuário reclamou que não consegue lançar mais de 59 nos minutos do apontamento de hora, mas queria digitar '1 hora e meia'. R: O campo de Quantidade de Horas usa a parte decimal para representar minutos (não fração de hora): para 1h30, o correto é digitar 1,30 (e não 1,50). Digitar minutos acima de 59 dispara a mensagem W-2072. Fonte: source/MPD005/UdmMPD005.pas:2117-2146 (TdmMPD005.tabORDEMSERVHORAQT_HORASValidate)

P: É possível excluir um serviço já lançado na Ordem de Serviço? R: Sim, selecionando a linha na aba 'Serviços Prestados' e clicando em Excluir (confirmação C-1775). Se o serviço tiver uma composição de peças cadastrada (ficha técnica em PRODUCAO), o sistema perguntará também se deseja excluir os produtos vinculados a essa composição (C-1776). Fonte: source/MPD005/UMPD005.pas:1490-1537 (TfrmMPD005.btnExcluirClick)

P: Recebi a mensagem de estoque negativo mas mesmo assim consegui gravar o item — é esperado? R: Não totalmente: existe um bug conhecido em que o modo de bloqueio forte de estoque negativo (quando o parâmetro pede para travar a gravação) apenas monta a mensagem mas não a lança de fato, então a gravação segue mesmo devendo travar. O modo de alerta (pedir confirmação antes de gravar) funciona normalmente. Fonte: source/MPD005/UdmMPD005.pas:1527-1531 (TdmMPD005.ValidaEstoqueNegativo)

P: Para que serve o botão 'Pedido de Venda' dentro da Ordem de Serviço? R: Ele abre a tela MPD002 (Pedido de Venda) já filtrada pela empresa, número da OS, cliente e endereço da Ordem de Serviço atual, permitindo consultar/gerenciar pedidos relacionados sem sair do contexto da OS. Requer que o usuário tenha acesso ao módulo MPD002 (senão W-1608). Fonte: source/MPD005/UMPD005.pas:2558-2578 (TfrmMPD005.btnPedidoVendaClick)

Dúvidas em aberto (o código não responde)​

  • Qual a diferença de comportamento entre os modos de OS 'H' (horas), 'K' (km) e 'O' (horímetro) além de qual grupo de campos fica visível? — Busca_Parametros só troca a visibilidade dos grupos grpORDEMSERVHORA/grpORDEMSERVKM/grpCONTROLEHORIMETRO conforme PARMFATUR.ST_ORDEMSERVICO; não há no módulo lido nenhuma outra regra de negócio explicando o propósito de cada modo (source/MPD005/UdmMPD005.pas:429-452).
  • O que representam os valores possíveis do campo TP_ORDEMSERVICO além do padrão 'I' atribuído na inclusão? — tabORDEMSERVICOAfterInsert grava TP_ORDEMSERVICO := 'I' sem exibir combo de opções nem validação de domínio no código lido (source/MPD005/UdmMPD005.pas:1807-1825); o campo aparece num combo (cmbTP_ORDEMSERVICO) no .dfm, mas o significado de negócio de cada opção não está no código analisado.
  • Qual a diferença prática entre os valores 'P' e 'A' do parâmetro ST_CODIGOBARRA, já que ambos apenas habilitam o campo de código de barras? — Busca_Parametros converte tanto 'P' quanto 'A' para iST_CODIGOBARRA='S' sem diferenciação posterior no código lido (source/MPD005/UdmMPD005.pas:453-462).
  • O status 'P' (Gerado Pedido) da Ordem de Serviço afeta algo além de travar os botões Fechar/Pedido/Nota e impedir novo salvamento (W-2003)? — Não foi encontrada, no módulo MPD005, nenhuma outra regra (ex.: reflexo em estoque/financeiro) associada especificamente ao status 'P'; o tratamento observado se limita ao AfterOpen (source/MPD005/UdmMPD005.pas:2010-2031) e à trava de edição (source/MPD005/UMPD005.pas:637-639).
  • Por que a validação de estoque negativo no modo de bloqueio forte não lança a exceção (falta 'Raise')? É um bug real ou intencional (feature desativada de propósito)? — O código instancia JException.Create('W-0000', ...) sem o comando Raise no ramo O_ST_BLOQUEIA='S' de ValidaEstoqueNegativo (source/MPD005/UdmMPD005.pas:1527-1531); não há comentário explicando se isso foi proposital ou esquecido.