Pular para o conteúdo principal

MOF001 — Abertura / Fechamento de Ordem de Serviço

Fonte​

  • Source: source/MOF001/
  • Form: source/MOF001/UMOF001.pas
  • DataModule: source/MOF001/UdmMOF001.pas
  • Form auxiliar (aplicação): source/MOF001/UAPLICMOF001.pas
  • Form auxiliar (obs cliente): source/MOF001/UMOF001OBSCLIENTE.pas
  • Package: source/MOF001/MOF001.dpk

Objetivo​

Tela transacional principal do módulo Oficina: abre, mantém e fecha Ordens de Serviço (OS), controlando peças (ORDEMSERVITEM), serviços (SERVICOITEM) e consumo de materiais em serviços (SERVICOITEMCONSUMO) com cálculo de preços, comissão, imposto e desconto/benefício. Ao fechar, converte a OS em PEDIDO+ITEMPEDIDO (e opcionalmente TELEVENDAS), reserva/gera estoque via procedures (GERA_ESTOQUE/CANCELA_ESTOQUE), registra rateio de vendedores (ITEMPEDIDOVENDEDOR, ORDEMSERVICOVENDEDOR) e apontamento de horas (ORDEMSERVHORA). Comportamento é inteiramente parametrizado por OFI001 (PARMOFICINA, PARMUSUARIO).

Funcionalidades​

  • Abertura de Ordem de Serviço
  • Inclusão de Serviços (Aba Serviços)
  • Inclusão de Peças/Produtos (Aba Peças)
  • Itens de Consumo (Aba Consumo)
  • Fechamento da Ordem de Serviço (Aba Pedido/Fechamento)
  • Reabertura de Ordem de Serviço
  • Geração de Nota Fiscal
  • Bloqueio/Liberação de Ordem de Serviço
  • Gestão de Documentos/Imagens (Aba Anexos)
  • Consulta SCPC

Painel "Resumos"​

GroupBox grpResumo (Caption Resumos) no canto superior direito da tela. Consolida os totais da OS e o controle de Valor Limite. Exceto o Valor Limite, os campos são somente-leitura e alimentados pelo dataset de totais (dmMOF001.dsTOTAL), recalculado a cada alteração de peças/serviços/descontos.

Campo (label)OrigemDescrição
Status da OrdemDS_STATUS (derivado de ST_ORDEMSERVICO)Aberta / Fechada / Gerado Pedido / Bloqueada / Cancelada.
Valor LimiteORDEMSERVICO.VL_LIMITE (edtVL_LIMITEORDEM)Teto de valor autorizado para a OS — ver detalhe abaixo.
Total BrutoVL_TOTORDEM (dsTOTAL)Soma de serviços + peças antes de descontos.
Total de DescontosdsTOTALDescontos de itens + serviços.
Líquido ServiçosdsTOTALTotal líquido da mão-de-obra (serviços).
Líquido PeçasVL_LIQUIDOITEM (dsTOTAL)Total líquido das peças/produtos.
Total LíquidoVL_TOTLIQUIDOTotal líquido da OS (bruto − descontos).
Líquido + ImpostoVL_TOTORDEMIMPOSTOTotal líquido acrescido de impostos.
% Desconto GeralPC_DESCONTOPercentual de desconto geral aplicado.
Valor Desconto GeralVL_DESCONTOValor do desconto geral.

Campo "Valor Limite" (VL_LIMITE)​

Para que serve: é o valor-teto autorizado para a Ordem de Serviço. Funciona como um limite de valor definido manualmente na OS (ex.: valor aprovado pelo cliente/autorizador). O sistema compara o total da OS (ORDEMSERVICO.VL_ORDEMSERVICO, total líquido = bruto − descontos) contra esse teto e avisa quando o total ultrapassa o limite. É um controle de alçada/autorização de valor — não bloqueia a digitação dos itens, apenas emite aviso.

  • Tabela/campo: ORDEMSERVICO.VL_LIMITE (exibido pelo TDBEdit edtVL_LIMITEORDEM, label Valor Limite, no topo do painel Resumos).
  • Edição: habilitada somente com a OS Aberta (ST_ORDEMSERVICO = 'A'). Em qualquer outro status o campo fica somente-leitura (tabORDEMSERVICOCalcFields).
  • Validações do próprio campo (tabORDEMSERVICOVL_LIMITEValidate):
    • Se ficar em branco → mensagem W-1710 (aviso informativo, não bloqueia — significa "sem controle de teto").
    • Se o limite informado for menor que o total atual da OS (VL_LIMITE < VL_ORDEMSERVICO) → exceção W-1711 (não permite definir um teto abaixo do valor já lançado).
  • Aviso "Valor limite Excedido!" (W-0000): disparado quando o total da OS ultrapassa o limite e o campo está preenchido. Ocorre em dois momentos:
    1. No recálculo dos totais da OS (ao incluir/alterar peças, serviços ou descontos).
    2. Na gravação/confirmação da OS (validação do BeforePost).
  • Limite em branco: nenhum aviso de "excedido" é emitido — o controle de teto fica desativado para aquela OS.

Referências no fonte: source/MOF001/UMOF001.dfm (grpResumo / edtVL_LIMITEORDEM) e source/MOF001/UdmMOF001.pas (tabORDEMSERVICOVL_LIMITEValidate, tabORDEMSERVICOCalcFields e os dois pontos que disparam "Valor limite Excedido!").

Mensagens exibidas​

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

CódigoTipoMensagem
C-1349ConfirmaçãoDeseja Imprimir o Pedido?
C-1679ConfirmaçãoDeseja Reprocessar os Preços dos Serviços/Produtos?
C-1698ConfirmaçãoDeseja imprimir a Ordem de Serviço?
C-1699ConfirmaçãoDeseja imprimir a autorização de execução do serviço?
C-1702ConfirmaçãoDeseja Fechar todos os Serviços da Ordem?
C-1703ConfirmaçãoDeseja Reabrir a Ordem de Serviço?
C-1706ConfirmaçãoDeseja Liberar a Ordem de Serviço?
C-1707ConfirmaçãoDeseja Bloquear a Ordem de Serviço?
C-1708ConfirmaçãoA Peça %s não possui saldo em estoque suficiente para venda. Saldo em Estoque.: %s Deseja Continuar?
C-1709ConfirmaçãoDeseja substituir o Km informado pelo Km atual do veículo?
C-1712ConfirmaçãoDeseja reprocessar as movimentações dos serviços/peças/produtos?
E-1713ErroBeneficio do Cliente não Gerado!
I-0047InformaçãoAlterações Efetuadas com Sucesso.
I-1705InformaçãoArquivo Exportado Com Sucesso %s
W-0153AvisoA Forma de Pagamento %s não está Liberada para a Pessoa %s . Verifique! [TFA001]
W-0202AvisoOperação Cancelada!
W-1700AvisoA Ordem de Serviço está Bloqueada, devido a isso não será possivel realizar alterações. Verifique[MOF007]!
W-1701AvisoO Cartão ID: %s - %s foi cancelado! [MFA022]
W-1704AvisoNão é possível realizar o desconto geral pois não existem itens lançados na ordem de serviço. Verifique[MOF001]
W-1710AvisoValor limite removido.
W-1711AvisoValor informado menor que o valor da Ordem. Verifique!
W-1800AvisoOrdem de serviço deve ser iniciada a partir de um Orçamento. [MOF005]

Mais 287 mensagens com texto literal no código: MOF001.

Parâmetros lidos​

Campos PARM* lidos via values[] em source/MOF001/ (commit 96fc51e236).

ParâmetroTabela
CD_TIPOPEDIDOPADRPARMFATUR
ST_ALERTAESTOQUENEGATIVOPARMFATUR
ST_BLOQUEIAPEDIDOOSLIBPARMFATUR
ST_BLOQUEIAPRAZOMEDIOPARMFATUR
ST_BLOQUEIOPEDPARMFATUR
ST_CONTENTREGACONFPARMFATUR
ST_VARIOSVENDEDORESPARMFATUR
NR_DIASGARANTIAPARMOFICINA
NR_QUILOMETRAGEMPARMOFICINA
ST_BLOQDTEMISSAOPARMOFICINA
ST_BLOQUEIADESCPARMOFICINA
ST_BLOQUEIAITEMORCAMENTOPARMOFICINA
ST_DATACONSUMOPARMOFICINA
ST_DESCONTOPRODUCAOPARMOFICINA
ST_EXIGEMOTIVOLIBERACAOPARMOFICINA
ST_IMPORTAOBSITEMPEDPARMOFICINA
ST_IMPORTAOBSPEDPARMOFICINA
ST_MODULOVARIOSVENDEDORESPARMOFICINA
ST_OBRIGAMECANICOPARMOFICINA
ST_OBRIGAORCAMENTOOSPARMOFICINA
ST_OBRIGAORIGEMCLIENTEPARMOFICINA
ST_OBRIGAPLACAPARMOFICINA
ST_OBRIGAVENDEDORPARMOFICINA
ST_RATEIAVENDEDORPARMOFICINA
ST_REPETESERVICOPARMOFICINA
ST_REPROCESSATABPRECOPARMOFICINA
ST_REPROCTABPRECOCFEPARMOFICINA
ST_SEPARABLOQUEIOPARMOFICINA
ST_SULCOPNEUPARMOFICINA
ST_VALIDABOXPLACAVEICULOPARMOFICINA
ST_VALIDAPLACAJUNCAOPARMOFICINA
TP_BLOQUEIOPARMOFICINA
TP_BLOQUEIOOSPARMOFICINA
TP_ORDEMSERVICOPARMOFICINA

Tabelas de Escrita (INSERT/UPDATE/DELETE)​

TabelaOperacoes
ORDEMSERVICODELETE, INSERT, SELECT, UPDATE
ORDEMSERVITEMDELETE, INSERT, SELECT, UPDATE
ORDEMSERVICOVENDEDORDELETE, INSERT, SELECT
ORDEMSERVICODOCDELETE, INSERT, SELECT, UPDATE
ORDEMSERVHORADELETE, INSERT, SELECT, UPDATE
SERVICOITEMDELETE, INSERT, SELECT, UPDATE
SERVICOITEMCONSUMODELETE, INSERT, SELECT, UPDATE
PEDIDOINSERT, SELECT, UPDATE
ITEMPEDIDOINSERT, SELECT, UPDATE
ITEMPEDIDOVENDEDORINSERT
VEICULOSELECT, UPDATE
PESSOASELECT, UPDATE
TELEVENDASINSERT
ORCAMENTOPECAUPDATE

Tabelas de Leitura (SELECT)​

TabelaOperacoes
ACESSOSELECT
AUTORIZADORSELECT
BENEFICIOCLIENTESELECT
CONDPAGTOSELECT
CONDPARCELASELECT
CONTASSELECT
CORVEICULOSELECT
EMPRESASELECT
ENDERECOPESSOASELECT
EQUIPEOFICINASELECT
FORMAPAGTOSELECT
GRUPOMOVIMENTACAOSELECT
ITEMSELECT
ITEMEMPRESASELECT
ITEMLOCALSELECT
ITEMNOTASELECT
ITEMREQUISICAOOFICINASELECT
ITEMTABCOMPRASELECT
ITEMTABPRECOSELECT
ITEMTABPRECODATASELECT
JUNCAOVEICULOSELECT
LOCALESTOQUESELECT
MAQUINASELECT
MARCAVEICULOSELECT
MECANICOSELECT
MODELOPLATAFORMASELECT
MODELOVEICULOSELECT
MOVESTOQUESELECT
MOVIMENTACAOSELECT
MUNICIPIOSELECT
NOTASELECT
ORIGEMCLIENTESELECT
ORIGEMDOCUMENTOSELECT
PARCELAPEDIDOSELECT
PARMESTOQUESELECT
PARMFATURSELECT
PARMNOTASELECT
PARMOFICINASELECT
PARMUSUARIOSELECT
PEDIDONOTASELECT
PESSOACONDPAGTOSELECT
PESSOAFISICASELECT
PESSOAFORMAPAGTOSELECT
PESSOAVENDEDORSELECT
PLATAFORMAVEICULOSELECT
PRODUCAOSELECT
REQUISICAOOFICINASELECT
SERVICOPLATAFORMASELECT
TABPRECOSELECT
TIPOBENEFICIOSELECT
TIPOCALCULOSELECT
TIPOLOCALSELECT
TIPOPEDIDOPNEUSELECT
TIPOVENDEDORSELECT
USUARIOSELECT
VENDEDORSELECT

Procedures Chamadas​

ProcedureFunção
ATUALIZA_BENEFICIOCLIENTEAtualiza saldo/uso de benefício do cliente
CALCULA_COMISSAO / CALCULA_COMISSAO_V2Calcula comissão do vendedor/mecânico
CALCULA_IMPOSTOPEDIDORecalcula impostos do pedido gerado
CALCULA_VALORRecalcula totais do item
CANCELA_ESTOQUE / GERA_ESTOQUEReserva/estorno de estoque da OS
CANCELA_PEDIDOOSCancela pedido vinculado ao cancelar OS
GERA_SEQUENCIAObtém próximo NR_ORDEMSERVICO/NR_PEDIDO
HABILITA_PESOQTDE / VERIFICA_PESOQTDEControla peso/quantidade de item
PARCELA_FINANCIAMENTOGera parcelas do pedido
RETORNA_CHAVENOTAChave fiscal da nota vinculada
RETORNA_ESTOQUECOMPROMETIDO / RETORNA_SALDOESTOQUEConsulta saldos para validar reserva
RETORNA_IMPOSTOMOF001Impostos específicos de MOF001
RETORNA_ITEMMPItens de matéria-prima
RETORNA_LOCAISARMAZENAGEMLocais candidatos para saída
RETORNA_MOVIMENTACAOMovimentação fiscal aplicável
RETORNA_PRECOITEM / RETORNA_TABPRECOPreço e tabela do item
RETORNA_VALORORDEMSERVICOTotaliza valor da OS
VALIDA_UNIDADEFECHADATrava por unidade fechada (competência)
VERIFICA_BLOQUEIOBloqueio de cliente (SCPC/financeiro)
VIEW_DESCONTOBENEFICIOView de desconto por benefício

Tabelas via Procedures (acesso indireto)​

TabelaOperacoes
BENEFICIOCLIENTESELECT, UPDATE
COMISSAOVENDEDORSELECT
CONTASSELECT
ESTOQUEINSERT, SELECT, UPDATE
ESTOQUEDIAINSERT, SELECT, UPDATE
ESTOQUEDIAPESSOAINSERT, SELECT, UPDATE
ESTOQUEGRADEINSERT, SELECT, UPDATE
IMPOSTO / IMPOSTOITEM / IMPOSTOMOVSELECT
ITEMTABPRECOINSERT, SELECT, UPDATE
LOGBENEFICIOCLIENTEINSERT, SELECT
LOTESEMENTESELECT, UPDATE
MOVESTOQUEINSERT, SELECT, UPDATE
MOVTOCONTABILDELETE, INSERT, SELECT, UPDATE
MOVTOCONTABILCCINSERT
MOVTOEQUIPAMENTOSELECT, UPDATE
ORDEMSERVICO / ORDEMSERVITEMSELECT, UPDATE
PEDIDO / PEDIDOPNEUSELECT, UPDATE
SEQUENCIASELECT, UPDATE
VOLUMEPRODUCAOSELECT, UPDATE

+80 tabelas acessadas via procedures (PARM*, CONDPAGTO, CREDITO*, DEVOLUCAONOTA, HISTORICO, JURO, MANUTENCAOORDEMLEIRA, METAVENDEDOR, NCM, OPERACAO, ORCAMENTOPECA, PARCELA*, PARTICIPANTELIMITECREDITO, TIPO*, UNIDMED, etc.).

Dependencias Aferentes (quem alimenta esta tela)​

Telas que escrevem em tabelas lidas por MOF001 (640 no total). Top por volume de tabelas compartilhadas:

TelaTítuloTabelas em Comum
MNF001Recebimento de Notas Fiscais de CompraPESSOA, MOVESTOQUE, PEDIDO, ITEM, ITEMPEDIDO +8
MNF011Alteração de ComissõesPESSOA, MOVIMENTACAO, PEDIDO, ITEM, ITEMPEDIDO +6
CNF001Consulta de Notas FiscaisPESSOA, MOVIMENTACAO, MOVESTOQUE, ITEM, CONDPAGTO +4
CNF012Consulta de CTRCPESSOA, MOVIMENTACAO, MOVESTOQUE, ITEM, CONDPAGTO +4
MOF006Fechamento Ordem de Serviço - OficinaORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, PESSOA, SERVICOITEMCONSUMO +4
TFA006Tabelas de PreçoPESSOA, FORMAPAGTO, ITEM, CONDPAGTO, PARMFATUR +4
MNF030Cancelamento/Complemento de NFPESSOA, PEDIDO, ITEM, NOTA, PEDIDONOTA +3
MOF005Orçamento de Peças/ServiçosORDEMSERVICOVENDEDOR, ORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO +3
MPD011Confirmação Ordem CarregamentoPESSOA, PEDIDO, ITEMPEDIDO, NOTA, CONTAS +3
MPD084Emissão de OS (variante)ORDEMSERVICO, SERVICOITEM, PESSOA, MOVIMENTACAO, PEDIDO +3
MRC020Confirmação de Ordem de Carregamento RecapadoraPESSOA, PEDIDO, ITEMPEDIDO, NOTA, CONTAS +3
RNF004Relação de Notas FiscaisJUNCAOVEICULO, PESSOA, ITEM, CONDPAGTO, USUARIO +3
CPD013Consulta Pedidos/OSORDEMSERVICO, SERVICOITEM, PESSOA, PEDIDO, ITEM +2
MNF002Emissão de Nota Fiscal de VendaPEDIDO, ITEMPEDIDO, PARCELAPEDIDO, NOTA, PEDIDONOTA +2
MNF024Manutenção de NF (variante)MOVIMENTACAO, PEDIDO, ITEM, ITEMPEDIDO, NOTA +2
MPD005Ordem de Serviço (balcão)ORDEMSERVICOVENDEDOR, ORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, PEDIDO +2
TFA001Pessoas Físicas / JurídicasPESSOA, PESSOAFORMAPAGTO, VENDEDOR, ENDERECOPESSOA, PESSOAFISICA +2
TOF007Cadastro de PeçasMOVESTOQUE, ITEM, ITEMEMPRESA, ITEMTABPRECO, ITEMTABCOMPRA +2
CPD001Consulta de PedidosPESSOA, MOVIMENTACAO, PEDIDO, ITEM, ITEMPEDIDO +1
CNF017Consulta Notas (complementar)PESSOA, ITEM, NOTA, ITEMTABPRECO, ITEMTABCOMPRA +1
MCB015Envio de EmailPESSOA, FORMAPAGTO, CONDPAGTO, VENDEDOR, MUNICIPIO +1
MNF016Controle de EntregaPESSOA, PEDIDO, ITEM, ITEMPEDIDO, ITEMNOTA +1
MNF036Transferência por Estoque MínimoPEDIDO, ITEMPEDIDO, NOTA, PEDIDONOTA, ITEMNOTA +1
MOF004Requisição de Peças de TerceirosORDEMSERVITEM, SERVICOITEM, PEDIDO, ITEMPEDIDO, REQUISICAOOFICINA +1
MOF008Desbloqueio de Ordens de Serviço - FinanceiroORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, SERVICOITEMCONSUMO, PEDIDO +1
MRC018Emissão de Remessa RecapagemPEDIDO, ITEMPEDIDO, NOTA, PEDIDONOTA, ITEMNOTA +1
TPO001ProdutosITEM, PRODUCAO, ITEMEMPRESA, ITEMTABPRECO, ITEMTABCOMPRA +1
OFI001Parâmetros de OficinaPARMOFICINA, PARMUSUARIO
CPD002Consulta de Orçamentos / OSPESSOA, MOVIMENTACAO, PEDIDO, ITEM, EMPRESA
JunsoftIntegracaoIntegradorPESSOA, PEDIDO, ITEM, PARCELAPEDIDO, TABPRECO +1

+610 telas com linkage (EMPRESA/USUARIO/ITEM/PESSOA e demais lookups).

Dependencias Eferentes (quem consome dados desta tela)​

Telas que leem ORDEMSERVICO/ORDEMSERVITEM/SERVICOITEM/SERVICOITEMCONSUMO/PEDIDO/ITEMPEDIDO etc. (1.154 no total). Top 30 por volume:

TelaTítuloTabelas em Comum
CPD003Consulta de Ordens de ServiçoORDEMSERVICOVENDEDOR, ORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO +5
MPD005Ordem de Serviço (balcão)ORDEMSERVICOVENDEDOR, ORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO +4
RPD010Demonstrativo de Ordens de ServiçoORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO, PESSOA +4
MFA022Faturamento (variante)ORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO, PESSOA +3
MOF006Fechamento Ordem de Serviço - OficinaORDEMSERVICOVENDEDOR, ORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO +3
MOF008Desbloqueio de Ordens de Serviço - FinanceiroORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO, PESSOA +3
ROF003Comissão de MecânicoORDEMSERVICOVENDEDOR, ORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, PESSOA +3
ROF004Comissão Sobre OS por Vendedor/MecânicoORDEMSERVICOVENDEDOR, ORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, PESSOA +3
ROF010Faturamento por Ordem de ServiçoORDEMSERVICOVENDEDOR, ORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, PESSOA +3
RPD007Demonstrativo de PedidosORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO, PESSOA +3
jBeneficioClienteShared unit benefíciosORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO, PESSOA +3
CPD013Consulta Pedidos/OSORDEMSERVICO, SERVICOITEM, VEICULO, PESSOA, PEDIDO +2
LOF000Layout Ordem de ServiçoORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO, PESSOA +2
MOF004Requisição de Peças de TerceirosORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, PESSOA, PEDIDO +2
MOF007Desbloqueio de Ordens de ServiçoORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, PESSOA, SERVICOITEMCONSUMO +2
MPD026Controle de ObrasORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO, PESSOA +2
MPD084Emissão de OS (variante)ORDEMSERVICO, SERVICOITEM, VEICULO, PESSOA, PEDIDO +2
ROF009Relatório OS (complementar)ORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO, PESSOA +2
CNF001Consulta de Notas FiscaisORDEMSERVICO, ORDEMSERVITEM, VEICULO, PESSOA, PEDIDO +1
CPD001Consulta de PedidosORDEMSERVICO, ORDEMSERVITEM, PESSOA, PEDIDO, ITEMPEDIDO +1
LOS003Layout OSORDEMSERVICOVENDEDOR, ORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, PESSOA +1
LOS012Layout OSORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO, PESSOA +1
LOS029Layout OSORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO, PESSOA +1
LOS037Layout OSORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO, PESSOA +1
LOS038Layout OSORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, PESSOA, PEDIDO +1
MOF002Venda de Peças - Ordem de ServiçoORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO, PESSOA +1
MPD045Produção por Ordem de ServiçoORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, PESSOA, PEDIDO +1
MPD097Emissão OS (variante)ORDEMSERVICO, SERVICOITEM, VEICULO, PESSOA, PEDIDO +1
RPD017Relação de Ordens de ServiçoORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, VEICULO, PESSOA +1
LNF107Layout NF-e (oficina)ORDEMSERVICO, ORDEMSERVITEM, SERVICOITEM, PESSOA, PEDIDO

+1.124 telas consomem dados escritos por MOF001.

Regras de Negocio​

  1. Origem da abertura: MOF001 pode ser chamado independentemente ou via MPD005/MOF005 (orçamento aprovado vira OS). O fluxo checa programa.params para saber se está vinculado a pedido/orçamento pré-existente.
  2. Numeração: NR_ORDEMSERVICO vem de GERA_SEQUENCIA com chave 'ORDEMSERVICO'+CD_EMPRESA.
  3. Status da OS (ST_ORDEMSERVICO em ORDEMSERVICO): A=Aberta, B=Bloqueada financeiramente, F=Fechada, C=Cancelada. Fechamento dispara GERA_ESTOQUE e cria PEDIDO correspondente.
  4. Parametrização por OFI001 (PARMOFICINA): controla obrigatoriedade de placa, marca/modelo, vendedor, mecânico, KM; tipo de cálculo de preço de serviço (TP_PRECOSERVICO); habilita rateio de vendedores e comissão de mecânico; bloqueia desconto em itens; exige motivo de liberação.
  5. PARMUSUARIO.TP_ABASMOF001 controla quais abas (peças/serviços/consumos/horas/docs) cada usuário visualiza.
  6. Consumo em serviço (SERVICOITEMCONSUMO): cada SERVICOITEM pode ter consumo de peças que reduz estoque ao fechar — não gera linha de cobrança adicional no pedido (é custo interno).
  7. Rateio de vendedores (ORDEMSERVICOVENDEDOR/ITEMPEDIDOVENDEDOR): se PARMOFICINA.ST_MODULOVARIOSVENDEDORES='S', cada item pode ter múltiplos vendedores com % via jVendedor/jRateioVendedor.
  8. Benefício do cliente (BENEFICIOCLIENTE/TIPOBENEFICIO): aplicação de desconto/crédito via jBeneficioCliente; chama ATUALIZA_BENEFICIOCLIENTE e VIEW_DESCONTOBENEFICIO.
  9. Bloqueio financeiro / SCPC (jSCPC + VERIFICA_BLOQUEIO): cliente com pendências bloqueia fechamento; MOF008 pode liberar.
  10. Horas trabalhadas (ORDEMSERVHORA): apontamento de hora por mecânico usado em ROF003/ROF004 para comissão.
  11. Documentos anexos (ORDEMSERVICODOC): imagens/arquivos vinculados à OS.
  12. Cancelamento: ao setar ST_ORDEMSERVICO='C' chama CANCELA_PEDIDOOS + CANCELA_ESTOQUE para reverter reservas.
  13. Validação de unidade fechada (VALIDA_UNIDADEFECHADA): impede alteração em competência já encerrada.
  14. programa.tpAcesso = 2 oculta btnNovo/btnSalvar/btnExcluir (uso somente consulta).
  15. Valor Limite (VL_LIMITE): teto de valor autorizado da OS, editável só com a OS Aberta. Avisa "Valor limite Excedido!" quando o total da OS supera o teto; recusa teto menor que o total já lançado (W-1711). Detalhe em Painel "Resumos". (Sem efeito se ficar em branco.)

Datasets e SQL​

DatasetTabelaDescrição
tabORDEMSERVICOORDEMSERVICOMaster da OS (veículo, pessoa, status, totais).
tabORDEMSERVITEMORDEMSERVITEMPeças vinculadas à OS.
tabSERVICOITEMSERVICOITEMServiços executados (mão-de-obra).
tabSERVICOITEMCONSUMOSERVICOITEMCONSUMOConsumo de peças pelo serviço.
tabORDEMSERVHORAORDEMSERVHORAApontamento de horas por mecânico.
tabORDEMSERVICODOCORDEMSERVICODOCDocumentos/anexos da OS.
tabORDEMSERVICOVENDEDORORDEMSERVICOVENDEDORRateio de vendedores por OS.
tabPEDIDO / tabITEMPEDIDOPEDIDO / ITEMPEDIDOPedido gerado no fechamento.
tabVEICULOVEICULO (JOIN MARCAVEICULO/MODELOVEICULO/CORVEICULO/PLATAFORMAVEICULO)Veículo da OS — pode criar/atualizar no BeforePost.
tabPESSOAPESSOA (JOIN PESSOAFISICA/ENDERECOPESSOA/MUNICIPIO)Cliente da OS; suporta pequenas edições.

Forms auxiliares​

  • frmAPLICMOF001 (UAPLICMOF001) — diálogo de aplicação de benefício/desconto sobre item.
  • frmUMOF001OBSCLIENTE (UMOF001OBSCLIENTE) — edição de observação específica do cliente na OS.