MOF005 — Orçamento de Peças/Serviços (enriquecimento)
Menu: Ordem de Serviço > Movimentações > Orçamento de Peças/Serviços
Objetivo
A tela MOF005 permite montar um orçamento de peças e serviços para um cliente (com veículo associado, quando aplicável), calculando preços, tabelas de preço, benefícios de fidelidade e totais antes de qualquer compromisso comercial. Depois de aprovado pelo cliente, o orçamento pode ser convertido diretamente em Ordem de Serviço (MOF001) ou em Pedido de Venda (MPD002), preservando os dados já levantados. A tela também trata o encerramento/cancelamento do orçamento, inclusive com motivo obrigatório quando parametrizado.
Fluxo principal
- Clicar em 'Novo' para iniciar um orçamento; a tela limpa os grids e sugere o Tipo de Pedido padrão e a validade do orçamento (se parametrizada). (Barra de ferramentas / Grupo Orçamento) —
source/MOF005/UMOF005.pas:942-988 (TfrmMOF005.btnNovoClick) - Informar o Cliente (Pessoa); o sistema busca dados cadastrais, condição/forma de pagamento padrão e verifica situação SCPC, ativo e origem do cliente. (Grupo Orçamento) —
source/MOF005/UdmMOF005.pas:1075-1134 (TdmMOF005.tabORCAMENTOCD_PESSOAValidate) - Informar o veículo (placa) ou, em oficina por plataforma, a Marca e o Modelo, conforme o tipo de oficina configurado. (Grupo Orçamento (dados do veículo)) —
source/MOF005/UdmMOF005.pas:1295-1324 (TdmMOF005.tabORCAMENTONR_PLACAValidate) - Com o orçamento aprovado pelo cliente, gerar a Ordem de Serviço ('Gerar OS') ou o Pedido de Venda ('Gerar Pedido'), conforme o fluxo comercial da empresa. (Barra de ferramentas) —
source/MOF005/UMOF005.pas:1438-1544 (TfrmMOF005.btnGerarPedidoClick)
Campos obrigatórios
| Campo | Condição | Mensagem | Fonte |
|---|---|---|---|
| Data de Emissão do Orçamento | Sempre, ao salvar o orçamento | É Obrigatório informar a Data de Emissão do Orçamento! | source/MOF005/UdmMOF005.pas:518-522 (TdmMOF005.tabORCAMENTOBeforePost) |
| Pessoa (Cliente) | Sempre, ao salvar o orçamento | É Obrigatório informar a Pessoa! | source/MOF005/UdmMOF005.pas:523-527 (TdmMOF005.tabORCAMENTOBeforePost) |
| Vendedor | Quando PARMOFICINA.ST_OBRIGAVENDEDOR = 'S' | O vendedor deve ser informado.Verifique! | source/MOF005/UdmMOF005.pas:528-536 (TdmMOF005.tabORCAMENTOBeforePost) |
| Placa do Veículo | Quando o tipo de oficina é veicular (TP_ORDEMSERVICO='V') e PARMOFICINA.ST_OBRIGAPLACAORCAMENTO='S' | É obrigatório informar o Veículo! | source/MOF005/UdmMOF005.pas:1985-1994 (TdmMOF005.tabSERVICOBeforeInsert) |
| Marca e Modelo do Veículo | Quando o tipo de oficina é por plataforma (TP_ORDEMSERVICO='P') | É obrigatório informar a Marca do Veículo! / É obrigatório informar o Modelo do Veículo! | source/MOF005/UdmMOF005.pas:1996-2009 (TdmMOF005.tabSERVICOBeforeInsert) |
| Origem do Cliente | Quando PARMOFICINA.ST_OBRIGAORIGEMCLIENTE = 'S' e a pessoa não possui origem cadastrada | W-1799 É Obrigatorio Informar a Origem do Cliente! | source/MOF005/UdmMOF005.pas:1559-1597 (TdmMOF005.validaOrigemCliente) |
| Código do Produto (item) | Ao incluir uma linha de produto na grade de itens | É obrigatório informar o Produto da Requisição! | source/MOF005/UdmMOF005.pas:576-578 (TdmMOF005.tabITEMBeforePost) |
| Peso ou Quantidade do Produto | Conforme unidade de cálculo do item (P=peso, Q=quantidade) | É Obrigatório informar o Peso do Produto! / É Obrigatório informar a Quantidade do Produto! | source/MOF005/UdmMOF005.pas:592-602 (TdmMOF005.tabITEMBeforePost) |
| Valor Unitário e Valor Total do Produto | Sempre, ao gravar o item | É Obrigatório informar o valor do Produto! / É Obrigatório informar o Valor Total do Produto! | source/MOF005/UdmMOF005.pas:664-674 (TdmMOF005.tabITEMBeforePost) |
| Quantidade do Serviço | Sempre, ao gravar o serviço | É Obrigatório informar a Quantidade do Serviço! | source/MOF005/UdmMOF005.pas:1421-1425 (TdmMOF005.tabSERVICOBeforePost) |
| Valor Unitário e Valor Total do Serviço | Sempre, ao gravar o serviço | É Obrigatório informar o valor do Serviço! / É Obrigatório informar o valor total do Serviço! | source/MOF005/UdmMOF005.pas:1460-1470 (TdmMOF005.tabSERVICOBeforePost) |
| Motivo de Cancelamento | Ao cancelar (Excluir) ou Encerrar o orçamento, quando PARMOFICINA.ST_MOTIVOCANCELAMENTOORC = 'S' | Motivo de Cancelamento deve ser informado! | source/MOF005/UfrmMotivoCancelamento.pas:276-283 (TfrmMotivoCancelamento.tabMOTIVOCANCELAMENTOORCBeforePost) |
Mensagens: causa e ação
O Orçamento está %s. Não é permitido Alteração.
Causa: O usuário tentou salvar alterações em um orçamento cujo status não é mais 'Novo' (foi Encerrado, Atendido ou Cancelado).
Ação: Não é possível editar; se necessário, criar um novo orçamento ou verificar o status atual na tela.
Fonte: source/MOF005/UMOF005.pas:800-801 (TfrmMOF005.btnSalvarClick)
Informe ao menos um serviço ou um produto!
Causa: O usuário tentou salvar o orçamento sem nenhuma linha nas grades de Produtos e Serviços.
Ação: Incluir ao menos um item antes de salvar.
Fonte: source/MOF005/UMOF005.pas:851-852 (TfrmMOF005.btnSalvarClick)
A Quantidade do Produto não pode ser Menor ou Igual a Zero!
Causa: Um item de produto está com quantidade/peso zerado ou negativo ao salvar, gerar Pedido ou gerar OS.
Ação: Corrigir a quantidade ou peso do item na grade de Produtos.
Fonte: source/MOF005/UMOF005.pas:806-818 (TfrmMOF005.btnSalvarClick)
A Quantidade do Serviço não pode ser Menor ou Igual a Zero!
Causa: Um item de serviço está com quantidade zerada ou negativa ao salvar, gerar Pedido ou gerar OS.
Ação: Corrigir a quantidade do serviço na grade de Serviços.
Fonte: source/MOF005/UMOF005.pas:832-833 (TfrmMOF005.btnSalvarClick)
O Orçamento está Atendido. Não é permitido Exclusão.
Causa: O usuário tentou excluir/cancelar um orçamento que já gerou Pedido de Venda ou Ordem de Serviço (status Atendido).
Ação: Não é possível excluir; se for o caso, cancelar o Pedido/OS gerado antes, seguindo as regras daquele módulo.
Fonte: source/MOF005/UMOF005.pas:673-675 (TfrmMOF005.btnExcluirClick)
O Orçamento Nº %s está vinculado à Ordem de Serviço Nº %s e não pode ser cancelado.
Causa: O orçamento gerou uma Ordem de Serviço que ainda não foi cancelada.
Ação: Cancelar primeiro a Ordem de Serviço vinculada (módulo de Ordem de Serviço) para depois cancelar o orçamento.
Fonte: source/MOF005/UMOF005.pas:681-691 (TfrmMOF005.btnExcluirClick)
Operação Cancelada! É obrigatório informar o Motivo de Cancelamento!
Causa: O usuário fechou a janela de Motivo de Cancelamento sem preencher o campo Motivo, com o parâmetro PARMOFICINA.ST_MOTIVOCANCELAMENTOORC ativo.
Ação: Reabrir a operação e selecionar um Motivo do tipo 'Cancelamento' antes de confirmar.
Fonte: source/MOF005/UMOF005.pas:2590-2606 (TfrmMOF005.obrigaMotivoCancelamento)
Motivo não Cadastrado! Verifique [TFA009]
Causa: O código de Motivo informado não existe no cadastro de Motivos.
Ação: Cadastrar o motivo em TFA009 ou selecionar um motivo existente pela lista (F9).
Fonte: source/MOF005/UfrmMotivoCancelamento.pas:152-156 (TfrmMotivoCancelamento.tabMOTIVOCANCELAMENTOORCCD_MOTIVOValidate)
Motivo deve ser do Tipo "Cancelamento". Verifique [TFA009]
Causa: O motivo selecionado existe, mas seu tipo cadastrado não é 'Cancelamento'.
Ação: Selecionar em TFA009 um motivo cujo tipo esteja marcado como Cancelamento.
Fonte: source/MOF005/UfrmMotivoCancelamento.pas:158-162 (TfrmMotivoCancelamento.tabMOTIVOCANCELAMENTOORCCD_MOTIVOValidate)
Não é possivel a alteração da data de emissão para usuários não autorizadores. Verifique![OFI001]
Causa: PARMOFICINA.TP_BLOQUEIO='V' e o usuário logado não é Autorizador ativo, mas tentou mudar a data de emissão já gravada.
Ação: Solicitar a um usuário Autorizador (cadastro AUTORIZADOR) a alteração, ou verificar o parâmetro TP_BLOQUEIO em OFI001.
Fonte: source/MOF005/UdmMOF005.pas:2024-2046 (TdmMOF005.tabORCAMENTODT_ORCAMENTOValidate)
Não foi possivel diminuir o valor do item. Verifique![OFI001]
Causa: PARMOFICINA.TP_BLOQUEIO='V' e o usuário não é Autorizador, mas tentou reduzir o valor unitário já informado do produto/serviço.
Ação: Solicitar a um usuário Autorizador a redução do valor, ou revisar o parâmetro TP_BLOQUEIO.
Fonte: source/MOF005/UdmMOF005.pas:1156-1164 (TdmMOF005.tabITEMVL_UNITARIOValidate), source/MOF005/UdmMOF005.pas:1539-1547 (TdmMOF005.tabSERVICOVL_UNITARIOValidate)
A Pessoa está com situação SCPC igual a bloqueado![TFA001]
Causa: O cliente selecionado está marcado como bloqueado por SCPC no cadastro de Pessoa.
Ação: Verificar/regularizar a situação do cliente no cadastro TFA001 antes de vinculá-lo ao orçamento.
Fonte: source/MOF005/UdmMOF005.pas:1096-1097 (TdmMOF005.tabORCAMENTOCD_PESSOAValidate)
Origem de Cliente não Cadastrada! Verifique [TFA085]
Causa: O código de Origem do Cliente informado não existe no cadastro TFA085.
Ação: Cadastrar a origem em TFA085 ou selecionar uma existente pela lista (F9).
Fonte: source/MOF005/UdmMOF005.pas:1273-1286 (TdmMOF005.tabORCAMENTOCD_ORIGEMCLIENTEValidate)
W-1799 É Obrigatorio Informar a Origem do Cliente! Verifique.
Causa: PARMOFICINA.ST_OBRIGAORIGEMCLIENTE='S' e a pessoa selecionada não tem Origem do Cliente definida.
Ação: Selecionar uma Origem do Cliente na lista que é aberta automaticamente, ou preencher o campo Origem antes de salvar.
Fonte: source/MOF005/UdmMOF005.pas:1564-1584 (TdmMOF005.validaOrigemCliente)
A Kilometragem informada não pode ser memor que a anterior!
Causa: O usuário informou uma quilometragem do veículo menor que a última registrada no cadastro do veículo.
Ação: Confirmar a quilometragem atual do veículo com o cliente e corrigir o valor informado.
Fonte: source/MOF005/UdmMOF005.pas:1936-1944 (TdmMOF005.tabORCAMENTOKM_ATUALValidate)
Informe o veiculo!
Causa: O usuário tentou informar a quilometragem antes de selecionar o veículo (placa) do orçamento.
Ação: Informar a placa do veículo antes de preencher a quilometragem.
Fonte: source/MOF005/UdmMOF005.pas:1946-1949 (TdmMOF005.tabORCAMENTOKM_ATUALValidate)
É obrigatório informar o Veículo!
Causa: Tipo de oficina veicular (TP_ORDEMSERVICO='V') com PARMOFICINA.ST_OBRIGAPLACAORCAMENTO='S'; o usuário tentou incluir um serviço sem informar a placa.
Ação: Informar a placa do veículo no cabeçalho do orçamento antes de lançar serviços.
Fonte: source/MOF005/UdmMOF005.pas:1989-1994 (TdmMOF005.tabSERVICOBeforeInsert)
É obrigatório informar a Marca do Veículo! / É obrigatório informar o Modelo do Veículo!
Causa: Tipo de oficina por plataforma (TP_ORDEMSERVICO='P'); o usuário tentou incluir um serviço sem informar marca/modelo do veículo.
Ação: Preencher Marca e Modelo do veículo no cabeçalho antes de lançar serviços.
Fonte: source/MOF005/UdmMOF005.pas:1996-2009 (TdmMOF005.tabSERVICOBeforeInsert)
A Marca do Veículo não está Cadastrado [TTR003]! / O Modelo do Veículo não está Cadastrado [TTR003]!
Causa: O código de marca ou modelo informado não existe no cadastro de veículos.
Ação: Cadastrar a marca/modelo em TTR003 ou corrigir o código informado.
Fonte: source/MOF005/UdmMOF005.pas:1220-1230 (TdmMOF005.tabORCAMENTOCD_MARCAVEICULOValidate), source/MOF005/UdmMOF005.pas:1238-1262 (TdmMOF005.tabORCAMENTOCD_MODELOVEICULOValidate)
O Produto não está Ativo! / O Serviço não está Ativo!
Causa: O item informado está com o campo Ativo desmarcado no cadastro de Produto.
Ação: Reativar o produto/serviço no cadastro (TPO001) ou selecionar outro item.
Fonte: source/MOF005/UdmMOF005.pas:709-710 (TdmMOF005.tabITEMCD_ITEMValidate), source/MOF005/UdmMOF005.pas:1636-1637 (TdmMOF005.tabSERVICOCD_ITEMValidate)
O Produto %s já foi Informado no Orçamento! / O Serviço %s já foi Informado no Orçamento!
Causa: O usuário tentou incluir o mesmo código de produto ou serviço mais de uma vez no mesmo orçamento.
Ação: Alterar a quantidade da linha já existente em vez de duplicar o item.
Fonte: source/MOF005/UdmMOF005.pas:714-724 (TdmMOF005.tabITEMCD_ITEMValidate), source/MOF005/UdmMOF005.pas:1645-1653 (TdmMOF005.tabSERVICOCD_ITEMValidate)
A Movimentação Gera Estoque e o Produto não possui Local de Armazenagem Associado![TPO001, TOF007]
Causa: O produto controla estoque, mas não tem nenhum local de armazenagem vinculado.
Ação: Cadastrar um local de armazenagem para o produto em TOF007/TPO001.
Fonte: source/MOF005/UdmMOF005.pas:787-805 (TdmMOF005.tabITEMCD_ITEMValidate)
Condição de pagamento não cadastrada! [TFC002] / Condição de pagamento não está Ativa! [TFC002]
Causa: O código de condição de pagamento informado não existe ou está inativo.
Ação: Cadastrar/ativar a condição em TFC002 ou selecionar outra condição existente.
Fonte: source/MOF005/UdmMOF005.pas:2072-2076 (TdmMOF005.tabORCAMENTOCD_CONDPAGTOValidate)
A Forma de Pagamento não está Cadastrada. Verifque [TFC001]!
Causa: O código de forma de pagamento informado não existe no cadastro.
Ação: Cadastrar a forma de pagamento em TFC001 ou selecionar outra existente.
Fonte: source/MOF005/UdmMOF005.pas:2423-2436 (TdmMOF005.tabORCAMENTOCD_FORMAPAGTOValidate)
O Vendedor não está Cadastrado ou está Inativo[TFA001]! / [TFA007]!
Causa: O código de vendedor informado não existe como Pessoa ativa (TFA001) ou não está ativo como Vendedor (TFA007).
Ação: Verificar/ativar o cadastro do vendedor em TFA001/TFA007 ou informar outro vendedor.
Fonte: source/MOF005/UdmMOF005.pas:1900-1921 (TdmMOF005.tabORCAMENTOCD_VENDEDORValidate)
É Obrigatório informar a Tabela de Preço do Produto na Ordem de Serviço!
Causa: A configuração de tabela de preço da empresa exige tabela por item ('T') ou por item padrão ('S') e o produto/serviço não tem tabela de preço vinculada.
Ação: Selecionar uma tabela de preço válida para o item (campo Tabela de Preço da grade).
Fonte: source/MOF005/UdmMOF005.pas:641-661 (TdmMOF005.tabITEMBeforePost), source/MOF005/UdmMOF005.pas:1438-1456 (TdmMOF005.tabSERVICOBeforePost)
O Valor unitário não deve ser menor que o valor da tabela de Preço(%s)!
Causa: O usuário reduziu o valor unitário do produto/serviço abaixo do preço da tabela vigente, sem ser autorizador em configuração que bloqueia essa redução.
Ação: Ajustar o valor para não ficar abaixo do preço de tabela, ou solicitar liberação de um Autorizador.
Fonte: source/MOF005/UdmMOF005.pas:630-639 (TdmMOF005.tabITEMBeforePost)
É Obrigatório informar o Código do Cliente para Gerar o Pedido. / É Obrigatório informar o Código do Cliente.
Causa: O usuário tentou Gerar Pedido/Gerar OS sem ter informado o cliente no orçamento.
Ação: Informar o cliente no cabeçalho do orçamento antes de gerar o Pedido/Ordem de Serviço.
Fonte: source/MOF005/UMOF005.pas:1455-1456 (TfrmMOF005.btnGerarPedidoClick), source/MOF005/UMOF005.pas:2066-2067 (TfrmMOF005.btnGerarOSClick)
É Obrigatório informar o Condição de Pagamento / a Forma de Pagamento / a Movimentação de Venda / a Movimentação de Serviço no Parâmetro de Faturamento [MFA001].
Causa: O orçamento não tem esses dados definidos e o Parâmetro de Faturamento (MFA001) da empresa também está sem valor padrão configurado.
Ação: Configurar os campos correspondentes em MFA001, ou informar Condição/Forma de Pagamento diretamente no orçamento.
Fonte: source/MOF005/UMOF005.pas:1480-1487 (TfrmMOF005.btnGerarPedidoClick)
O Valor da Parcela do Pedido Está Abaixo do Permitido (R$%s).
Causa: O valor da parcela calculada (valor total dividido pela quantidade de parcelas da condição de pagamento) ficou menor que PARMFATUR.VL_MINPARCELAPEDIDO.
Ação: Reduzir a quantidade de parcelas, aumentar o valor do orçamento, ou revisar o parâmetro de valor mínimo de parcela.
Fonte: source/MOF005/UMOF005.pas:1489-1503 (TfrmMOF005.btnGerarPedidoClick)
W-0339 O Endereço da Pessoa Física / Jurídica não está Cadastrado.
Causa: A pessoa/cliente do orçamento não possui nenhum endereço cadastrado, necessário para gerar Pedido ou Ordem de Serviço.
Ação: Cadastrar um endereço para a pessoa em TFA001 antes de gerar o Pedido/OS.
Fonte: source/MOF005/UMOF005.pas:1516-1523 (TfrmMOF005.btnGerarPedidoClick), source/MOF005/UMOF005.pas:2134-2141 (TfrmMOF005.btnGerarOSClick)
O Produto de Terceiro %s deve possuir uma Requisição[MOF004]! Verifique.
Causa: Existe item marcado como 'Terceiro' no orçamento sem requisição de peça de terceiro lançada em MOF004.
Ação: Gerar/associar a requisição do produto de terceiro em MOF004 antes de gerar a Ordem de Serviço.
Fonte: source/MOF005/UMOF005.pas:2033-2049 (TfrmMOF005.btnGerarOSClick)
O Orçamento Deve ter Valor Maior do que Zero Para Gerar Ordem de Serviço!
Causa: O total do orçamento calculado é zero ou negativo (nenhum item com valor) ao tentar gerar a Ordem de Serviço.
Ação: Lançar itens com valor no orçamento antes de gerar a Ordem de Serviço.
Fonte: source/MOF005/UMOF005.pas:2015-2020 (TfrmMOF005.btnGerarOSClick)
Não é Possível Gerar um Pedido Sem um Veículo Cadastrado!
Causa: A placa informada não corresponde a um veículo cadastrado no sistema.
Ação: Cadastrar o veículo (via botão Cadastrar Veículo/TTR001) antes de gerar a Ordem de Serviço.
Fonte: source/MOF005/UMOF005.pas:2022-2030 (TfrmMOF005.btnGerarOSClick)
O Usuário não possui acesso a tela de Pedido [MPD002]! / a tela de Requisiões [MOF004]!
Causa: O usuário logado não tem permissão de acesso ao módulo de destino (Pedido de Venda ou Requisição) no cadastro de acesso.
Ação: Solicitar ao administrador a liberação de acesso ao módulo MPD002/MOF004 para o usuário.
Fonte: source/MOF005/UMOF005.pas:1749-1751 (TfrmMOF005.btnGerarPedidoClick), source/MOF005/UMOF005.pas:1998-2000 (TfrmMOF005.btnGeraRequisicaoClick)
Ordem de Serviço Nº %s será Bloqueada. Verifique MOF007!
Causa: A verificação automática de bloqueio (crédito/estoque/pendências) encontrou uma restrição para o cliente ou item ao gerar a Ordem de Serviço.
Ação: Consultar o motivo do bloqueio na tela de liberação (MOF007) e regularizar a pendência apontada.
Fonte: source/MOF005/UMOF005.pas:2358-2398 (TfrmMOF005.btnGerarOSClick)
Regras de negócio
MOF005.R001(verregras/MOF005/MOF005.R001.md)MOF005.R002(verregras/MOF005/MOF005.R002.md)MOF005.R003(verregras/MOF005/MOF005.R003.md)MOF005.R004(verregras/MOF005/MOF005.R004.md)MOF005.R005(verregras/MOF005/MOF005.R005.md)MOF005.R006(verregras/MOF005/MOF005.R006.md)MOF005.R007(verregras/MOF005/MOF005.R007.md)MOF005.R008(verregras/MOF005/MOF005.R008.md)MOF005.R009(verregras/MOF005/MOF005.R009.md)MOF005.R010(verregras/MOF005/MOF005.R010.md)MOF005.R011(verregras/MOF005/MOF005.R011.md)MOF005.R012(verregras/MOF005/MOF005.R012.md)MOF005.R013(verregras/MOF005/MOF005.R013.md)MOF005.R014(verregras/MOF005/MOF005.R014.md)MOF005.R015(verregras/MOF005/MOF005.R015.md)MOF005.R016(verregras/MOF005/MOF005.R016.md)MOF005.R017(verregras/MOF005/MOF005.R017.md)MOF005.R018(verregras/MOF005/MOF005.R018.md)MOF005.R019(verregras/MOF005/MOF005.R019.md)MOF005.R020(verregras/MOF005/MOF005.R020.md)MOF005.R021(verregras/MOF005/MOF005.R021.md)MOF005.R022(verregras/MOF005/MOF005.R022.md)MOF005.R023(verregras/MOF005/MOF005.R023.md)MOF005.R024(verregras/MOF005/MOF005.R024.md)MOF005.R025(verregras/MOF005/MOF005.R025.md)
Perguntas frequentes
P: Por que o usuário não consegue mais alterar um orçamento já salvo?
R: O orçamento só pode ser alterado enquanto está com status 'Novo'. Se já foi Encerrado, Atendido (gerou Pedido/OS) ou Cancelado, a tela bloqueia qualquer alteração.
Fonte: source/MOF005/UMOF005.pas:800-801 (TfrmMOF005.btnSalvarClick)
P: Apareceu a mensagem 'Informe ao menos um serviço ou um produto!' ao salvar, o que fazer?
R: O orçamento está sendo salvo sem nenhuma linha na grade de Produtos nem na de Serviços; oriente o usuário a incluir ao menos um item antes de salvar.
Fonte: source/MOF005/UMOF005.pas:851-852 (TfrmMOF005.btnSalvarClick)
P: Por que não é possível excluir/cancelar um orçamento?
R: Orçamentos com status 'Atendido' não podem ser excluídos, e orçamentos vinculados a uma Ordem de Serviço que ainda não foi cancelada também não podem ser cancelados.
Fonte: source/MOF005/UMOF005.pas:673-675 (TfrmMOF005.btnExcluirClick), source/MOF005/UMOF005.pas:681-691 (TfrmMOF005.btnExcluirClick)
P: Por que o sistema pede para informar o Motivo antes de cancelar/encerrar o orçamento?
R: O parâmetro PARMOFICINA.ST_MOTIVOCANCELAMENTOORC está habilitado para a empresa, exigindo o preenchimento do motivo de cancelamento na janela específica antes de confirmar.
Fonte: source/MOF005/UMOF005.pas:646-648 (TfrmMOF005.btnEncerrarClick), source/MOF005/UfrmMotivoCancelamento.pas:279-283 (TfrmMotivoCancelamento.tabMOTIVOCANCELAMENTOORCBeforePost)
P: Por que o usuário não consegue alterar a data de emissão do orçamento?
R: O parâmetro PARMOFICINA.TP_BLOQUEIO está como 'V' e o usuário logado não está cadastrado como Autorizador ativo; nesse caso a data de emissão fica travada após o primeiro registro.
Fonte: source/MOF005/UdmMOF005.pas:2019-2046 (TdmMOF005.tabORCAMENTODT_ORCAMENTOValidate)
P: Por que não é possível diminuir o valor unitário de um produto/serviço?
R: Com PARMOFICINA.TP_BLOQUEIO='V', apenas usuários cadastrados como Autorizador podem reduzir o valor unitário já informado; para outros, a diminuição é bloqueada.
Fonte: source/MOF005/UdmMOF005.pas:1156-1164 (TdmMOF005.tabITEMVL_UNITARIOValidate), source/MOF005/UdmMOF005.pas:1539-1547 (TdmMOF005.tabSERVICOVL_UNITARIOValidate)
P: Por que o campo Origem do Cliente é exigido em alguns cadastros e em outros não?
R: Isso depende do parâmetro PARMOFICINA.ST_OBRIGAORIGEMCLIENTE; quando ativo e a pessoa não tiver origem cadastrada, o sistema abre a lista de Origem do Cliente para seleção obrigatória.
Fonte: source/MOF005/UdmMOF005.pas:1564-1596 (TdmMOF005.validaOrigemCliente)
P: Deu erro sobre Condição de Pagamento/Forma de Pagamento/Movimentação faltando ao Gerar Pedido ou Ordem de Serviço, o que verificar?
R: Verifique o cadastro de Parâmetros de Faturamento (MFA001) da empresa: é necessário ter Condição de Pagamento, Forma de Pagamento, Movimentação de Venda e Movimentação de Serviço padrão configurados.
Fonte: source/MOF005/UMOF005.pas:1480-1487 (TfrmMOF005.btnGerarPedidoClick), source/MOF005/UMOF005.pas:2083-2093 (TfrmMOF005.btnGerarOSClick)
P: Deu a mensagem de Endereço não cadastrado (W-0339) ao gerar Pedido/OS, como resolver?
R: A Pessoa selecionada não possui nenhum endereço cadastrado em ENDERECOPESSOA; oriente o usuário a completar o cadastro de endereço da pessoa em TFA001 antes de gerar o documento.
Fonte: source/MOF005/UMOF005.pas:1516-1523 (TfrmMOF005.btnGerarPedidoClick), source/MOF005/UMOF005.pas:2134-2141 (TfrmMOF005.btnGerarOSClick)
P: Por que aparece erro de 'Produto de Terceiro deve possuir uma Requisição' ao gerar a Ordem de Serviço?
R: Existe item marcado como Terceiro no orçamento sem requisição correspondente lançada em MOF004; é necessário gerar/associar a requisição desse produto antes de converter o orçamento em Ordem de Serviço.
Fonte: source/MOF005/UMOF005.pas:2033-2049 (TfrmMOF005.btnGerarOSClick)
P: Por que o valor unitário de um produto aparece travado para edição, mesmo sem bloqueio de autorizador?
R: O item possui uma tabela de preço promocional vigente para a data atual (ITEMTABPRECODATA) e o parâmetro PARMOFICINA.ST_DESCONTOPRODUCAO está como 'N', o que trava a edição do valor durante a promoção.
Fonte: source/MOF005/UdmMOF005.pas:823-851 (TdmMOF005.tabITEMCD_ITEMValidate)
P: O sistema perguntou se deseja reprocessar os preços dos serviços/produtos, por quê?
R: O parâmetro PARMOFICINA.ST_REPROCESSATABPRECO está como 'S' (pergunta) ou 'A' (automático) e o usuário trocou a Condição de Pagamento do orçamento, o que pode mudar a tabela de preço aplicável aos itens já lançados.
Fonte: source/MOF005/UdmMOF005.pas:2090-2115 (TdmMOF005.tabORCAMENTOCD_CONDPAGTOValidate)
Dúvidas em aberto (o código não responde)
- A rotina validaItemTerceiroReq (UMOF005.pas:2853-2906), que compara item a item a quantidade requisitada de produtos de terceiro, é chamada em algum ponto do sistema? — Foi encontrada declarada e implementada, mas nenhuma chamada a ela foi localizada no módulo; a validação realmente usada ao gerar OS (btnGerarOSClick, linhas 2033-2049) só lê a primeira linha do resultado (Resultado[2]/Resultado[3]), o que pode deixar de avisar sobre outros produtos de terceiro sem requisição quando há mais de um na mesma nota.
- Qual o significado de cada valor da configuração de tabela de preço (variável interna iST_TABELA, lida de PARMFATUR.ST_TABPRECO) e de iTP_PRECOSERVICO (PARMOFICINA.TP_PRECOSERVICO)? — O código usa os valores 'B','L','V','N','T','S','A' para iST_TABELA e 'P','T' para iTP_PRECOSERVICO para decidir se a tabela de preço/valor fica bloqueada para edição (Busca_Parametros, UdmMOF005.pas:294-321), mas nenhum comentário ou tela de parâmetro foi lido nesta sessão para confirmar o rótulo exibido ao usuário em MFA001/OFI001.
- O texto da mensagem em UdmMOF005.pas:578 ('É obrigatório informar o Produto da Requisição!') é intencional ou um erro de cópia de outra tela? — A rotina é TdmMOF005.tabITEMBeforePost, que valida o item de produto do próprio Orçamento (MOF005), não de uma Requisição (MOF004); o texto pode ter sido copiado de outra tela e não corrigido.