MRC031 — Orçamento de Recapadora (enriquecimento)
Menu: Recapadora > Movimentações > Orçamento de Recapadora
Objetivo
A tela MRC031 permite montar, consultar, aprovar ou reprovar orçamentos de recapagem de pneus para um cliente, detalhando cada pneu (modelo, medida, serviço, desenho, valor) e os consertos de borracharia associados. Ela também permite importar pneus já produzidos, vincular laudos de garantia/recusa para desconto, imprimir o orçamento em layout configurado e cancelar orçamentos ainda em aberto. A aprovação do orçamento desbloqueia ordens de produção e pedidos que dependiam dessa liberação comercial.
Fluxo principal
- Na tela de consulta, filtrar orçamentos existentes ou clicar em Incluir para iniciar um novo orçamento. (Consulta de Orçamentos) —
source/MRC031/UframeConsultaMRC031.pas:464-481 (TframeConsultaMRC031.actINSERIRORCExecute) - Preencher o cabeçalho: Cliente, Endereço, Condição/Forma de Pagamento, Vendedor, Tipo de Pedido e Data de Emissão. (Edição do Orçamento (cabeçalho)) —
source/MRC031/UdmMRC031.pas:374-416 (TdmMRC031.tabORCAMENTOPNEUBeforePost) - Incluir os consertos de borracharia vinculados a cada pneu, manualmente ou via Atualizar Consertos (busca da produção). (Edição do Orçamento (grade de consertos)) —
source/MRC031/UframeMRC031.pas:1016-1113 (TframeMRC031.actATUALIZARCONSERTOSExecute) - Opcionalmente, vincular laudos de garantia/recusa para gerar desconto rateado entre os itens (Vincular Laudos). (Saldo de Laudo) —
source/MRC031/UMRC031SaldoLaudo.pas:173-269 (TfrmMRC031SaldoLaudo.btnConfirmarClick) - Gravar o orçamento (OK/F6); o sistema valida itens e status antes de confirmar. (Edição do Orçamento) —
source/MRC031/UframeMRC031.pas:143-233 (TframeMRC031.actionOKExecute) - Imprimir o orçamento (F8) usando o layout configurado no parâmetro da recapadora. (Edição ou Consulta do Orçamento) —
source/MRC031/UframeMRC031.pas:853-866 (TframeMRC031.actIMPRIMIRExecute)
Campos obrigatórios
| Campo | Condição | Mensagem | Fonte |
|---|---|---|---|
| Cabeçalho do orçamento: Cliente, Endereço, Condição de Pagamento, Forma de Pagamento, Tipo de Pedido e Data de Emissão | Sempre, ao gravar o orçamento (botão OK/F6) | Informe a Pessoa! / Informe o Endereço do Cliente! / Informe a Condição de Pagamento! / Informe a Forma de Pagamento! / Informe o tipo do Pedido! / Informe a Data de Emissão! | source/MRC031/UdmMRC031.pas:374-416 (TdmMRC031.tabORCAMENTOPNEUBeforePost) |
| Item de pneu: Modelo, Medida, Série, DOT (condicional), Serviço, Desenho e Valor Unitário | Ao gravar cada linha da grade de pneus; DOT só é obrigatório se PARAMRECAP.STOBRIGAANOPNEU = 'S' | Informe o Modelo do Pneu. Verfique! / Informe a Medida do Pneu. Verfique! / Informe a Série do Pneu. Verfique! / Informe o DOT do Pneu. Verfique! / Informe o Serviço do Pneu. Verfique! / Informe o Desenho do Pneu. Verfique! / Informe o Valor Unitário do Pneu. Verfique! | source/MRC031/UdmMRC031.pas:584-645 (TdmMRC031.tabITEMORCAMENTOPNEUBeforePost) |
| Conserto: Conserto selecionado, Quantidade (>0), Valor Unitário e Percentual de Desconto (0-100) | Ao gravar cada linha da grade de consertos | Informe o Conserto. Verifique! / A Quantidade de Consertos Informada Deve ser Maior Que Zero. Verifique! / O Valor do Conserto deve ser Informado! / O Percentual de Desconto deve ser entre 0 e 100 %! | source/MRC031/UdmMRC031.pas:1401-1438 (TdmMRC031.tabCONSERTOITEMBeforePost) |
Mensagens: causa e ação
Informe a Pessoa!
Causa: O campo Cliente do cabeçalho do orçamento está vazio ao tentar gravar.
Ação: Selecionar o cliente no campo Cliente antes de gravar.
Fonte: source/MRC031/UdmMRC031.pas:376-380 (TdmMRC031.tabORCAMENTOPNEUBeforePost)
Informe o Endereço do Cliente!
Causa: O endereço do cliente não foi selecionado, mesmo com o cliente informado.
Ação: Selecionar um endereço cadastrado para o cliente (F9 no campo Endereço).
Fonte: source/MRC031/UdmMRC031.pas:382-386 (TdmMRC031.tabORCAMENTOPNEUBeforePost)
Informe a Condição de Pagamento!
Causa: Campo Condição de Pagamento vazio ao gravar o orçamento.
Ação: Selecionar a condição de pagamento (F9) antes de gravar.
Fonte: source/MRC031/UdmMRC031.pas:388-392 (TdmMRC031.tabORCAMENTOPNEUBeforePost)
Informe a Forma de Pagamento!
Causa: Campo Forma de Pagamento vazio ao gravar o orçamento.
Ação: Selecionar a forma de pagamento (F9) antes de gravar.
Fonte: source/MRC031/UdmMRC031.pas:394-398 (TdmMRC031.tabORCAMENTOPNEUBeforePost)
Informe o tipo do Pedido!
Causa: Campo Tipo de Pedido vazio ao gravar o orçamento.
Ação: Selecionar o tipo de pedido (F9) antes de gravar.
Fonte: source/MRC031/UdmMRC031.pas:400-404 (TdmMRC031.tabORCAMENTOPNEUBeforePost)
Informe a Data de Emissão!
Causa: Campo Data de Emissão vazio ao gravar o orçamento.
Ação: Preencher a data de emissão do orçamento.
Fonte: source/MRC031/UdmMRC031.pas:406-410 (TdmMRC031.tabORCAMENTOPNEUBeforePost)
Informe o Modelo do Pneu. Verfique!
Causa: O item de pneu não tem modelo selecionado.
Ação: Selecionar o modelo do pneu na grade de itens.
Fonte: source/MRC031/UdmMRC031.pas:595-599 (TdmMRC031.tabITEMORCAMENTOPNEUBeforePost)
Informe a Medida do Pneu. Verfique!
Causa: O item de pneu não tem medida selecionada.
Ação: Selecionar a medida do pneu na grade de itens.
Fonte: source/MRC031/UdmMRC031.pas:601-605 (TdmMRC031.tabITEMORCAMENTOPNEUBeforePost)
Informe a Série do Pneu. Verfique!
Causa: O campo Série (identificação física do pneu) está vazio.
Ação: Informar o número de série do pneu.
Fonte: source/MRC031/UdmMRC031.pas:607-611 (TdmMRC031.tabITEMORCAMENTOPNEUBeforePost)
Informe o DOT do Pneu. Verfique!
Causa: A empresa exige DOT (PARAMRECAP.STOBRIGAANOPNEU='S') e o campo está vazio.
Ação: Preencher o DOT do pneu (4 dígitos).
Fonte: source/MRC031/UdmMRC031.pas:613-624 (TdmMRC031.tabITEMORCAMENTOPNEUBeforePost)
Informe o Serviço do Pneu. Verfique!
Causa: O item de pneu não tem serviço selecionado.
Ação: Selecionar o serviço a ser executado no pneu.
Fonte: source/MRC031/UdmMRC031.pas:626-630 (TdmMRC031.tabITEMORCAMENTOPNEUBeforePost)
Informe o Desenho do Pneu. Verfique!
Causa: O item de pneu não tem desenho de banda selecionado.
Ação: Selecionar o desenho da banda de rodagem.
Fonte: source/MRC031/UdmMRC031.pas:632-636 (TdmMRC031.tabITEMORCAMENTOPNEUBeforePost)
Informe o Valor Unitário do Pneu. Verfique!
Causa: O valor unitário do item de pneu está vazio.
Ação: Informar o valor unitário do serviço do pneu (ou aguardar preenchimento automático pela tabela de preço).
Fonte: source/MRC031/UdmMRC031.pas:638-642 (TdmMRC031.tabITEMORCAMENTOPNEUBeforePost)
Este serviço Não Está Cadastrado. Verifique! [TRC007]!
Causa: O código de serviço informado não existe na tabela de serviços de pneu.
Ação: Selecionar um serviço válido via busca (F9) no cadastro de Serviço do Pneu [TRC007].
Fonte: source/MRC031/UdmMRC031.pas:925-927 (TdmMRC031.tabITEMORCAMENTOPNEUIDSERVICOPNEUValidate)
o Serviço Selecionado Não Está Ativo. Verifique! [TRC007]
Causa: O serviço selecionado está inativo e não foi substituído por outro serviço ativo.
Ação: Selecionar um serviço ativo no cadastro de Serviço do Pneu [TRC007].
Fonte: source/MRC031/UdmMRC031.pas:798-807 (TdmMRC031.tabITEMORCAMENTOPNEUIDSERVICOPNEUValidate)
o Produto Referente ao Serviço Selecionado Não Está Ativo. Verifique! [TPO001]
Causa: O produto (item) vinculado ao serviço está inativo no cadastro de itens.
Ação: Ativar o produto/item vinculado ao serviço ou trocar o serviço [TPO001].
Fonte: source/MRC031/UdmMRC031.pas:810-811 (TdmMRC031.tabITEMORCAMENTOPNEUIDSERVICOPNEUValidate)
A medida deverá ser associada ao serviço [TRC007]!
Causa: O serviço escolhido não está vinculado à medida do pneu, com STLIBERACONSERVICO='0'.
Ação: Selecionar um serviço cadastrado para a medida do pneu informado.
Fonte: source/MRC031/UdmMRC031.pas:813-816 (TdmMRC031.tabITEMORCAMENTOPNEUIDSERVICOPNEUValidate)
O Modelo não está cadastrado. Verifique! [TRC005]
Causa: O código de modelo do pneu informado não existe.
Ação: Selecionar um modelo válido via busca (F9) [TRC005].
Fonte: source/MRC031/UdmMRC031.pas:709-710 (TdmMRC031.tabITEMORCAMENTOPNEUIDMODELOPNEUValidate)
O modelo está Inativo. Verifique! [TRC005]
Causa: O modelo de pneu selecionado está marcado como inativo.
Ação: Selecionar outro modelo ativo ou reativar o modelo em [TRC005].
Fonte: source/MRC031/UdmMRC031.pas:711-713 (TdmMRC031.tabITEMORCAMENTOPNEUIDMODELOPNEUValidate)
O Desenho não está ativo! Verifique[TRC001]!
Causa: O desenho de banda selecionado está inativo.
Ação: Selecionar outro desenho ativo em [TRC001].
Fonte: source/MRC031/UdmMRC031.pas:946-947 (TdmMRC031.tabITEMORCAMENTOPNEUIDDESENHOPNEUValidate)
O Percentual de desconto deve ser entre 0 e 100 %!
Causa: O percentual de desconto informado no item está fora da faixa 0-100.
Ação: Informar um percentual entre 0 e 100.
Fonte: source/MRC031/UdmMRC031.pas:987-990 (TdmMRC031.tabITEMORCAMENTOPNEUPCDESCONTOValidate)
O Valor de Desconto não pode ser maior que o Valor do Pneu!
Causa: O valor de desconto digitado excede o valor unitário do pneu.
Ação: Reduzir o valor de desconto para no máximo o valor unitário do pneu.
Fonte: source/MRC031/UdmMRC031.pas:1009-1011 (TdmMRC031.tabITEMORCAMENTOPNEUVLDESCONTOValidate)
Conserto Já Informado. Verifique!
Causa: O mesmo conserto já foi lançado para este item de pneu.
Ação: Editar a quantidade do conserto já existente em vez de adicionar novamente.
Fonte: source/MRC031/UdmMRC031.pas:1112-1122 (TdmMRC031.tabCONSERTOITEMIDCONSERTOValidate)
Este Conserto Não Está Cadastrado. Verifique! [TRC012]!
Causa: O código de conserto informado não existe no cadastro de consertos de pneu.
Ação: Selecionar um conserto válido via busca (F9) [TRC012].
Fonte: source/MRC031/UdmMRC031.pas:1245-1247 (TdmMRC031.tabCONSERTOITEMIDCONSERTOValidate)
O Conserto Selecionado Não Está Ativo. Verifique! [TRC012]
Causa: O conserto selecionado está inativo no cadastro.
Ação: Selecionar outro conserto ativo ou reativar em [TRC012].
Fonte: source/MRC031/UdmMRC031.pas:1134-1135 (TdmMRC031.tabCONSERTOITEMIDCONSERTOValidate)
A Quantidade Informada deve Ser maior que Zero. Verifique!
Causa: A quantidade do conserto informada é zero ou negativa/vazia.
Ação: Informar uma quantidade de conserto maior que zero.
Fonte: source/MRC031/UdmMRC031.pas:1374-1378 (TdmMRC031.tabCONSERTOITEMQTCONSERTOValidate)
Informe o Conserto. Verifique!
Causa: Tentativa de gravar uma linha de conserto sem selecionar o conserto.
Ação: Selecionar o conserto antes de gravar a linha.
Fonte: source/MRC031/UdmMRC031.pas:1411-1414 (TdmMRC031.tabCONSERTOITEMBeforePost)
O Orçamento deve conter pelo menos um item!
Causa: Tentativa de gravar o orçamento sem nenhum pneu lançado.
Ação: Incluir ao menos um pneu antes de gravar.
Fonte: source/MRC031/UframeMRC031.pas:188-193 (TframeMRC031.actionOKExecute)
É Obrigatório informar ao menos um Serviço para que possam ser informados os Consertos do Mesmo. Verifique!
Causa: Tentativa de acessar a grade de consertos sem nenhum item de pneu cadastrado.
Ação: Cadastrar o pneu/serviço antes de lançar consertos.
Fonte: source/MRC031/UframeMRC031.pas:661-662 (TframeMRC031.gridCONSERTOSEnter)
Atenção O Status deste orçamento está como [%s]. Verifique!
Causa: Outro usuário alterou o status do orçamento depois que a tela foi aberta para edição.
Ação: Fechar e reabrir o orçamento para trabalhar com o status atualizado.
Fonte: source/MRC031/UframeMRC031.pas:179-184 (TframeMRC031.actionOKExecute)
Deseja Aprovar o Orçamento N° %s ?
Causa: Confirmação exigida antes de aprovar o orçamento, pois a ação libera pedidos/produção.
Ação: Confirmar apenas se a aprovação comercial realmente foi concedida.
Fonte: source/MRC031/UframeMRC031.pas:745-745 (TframeMRC031.actAPROVARORCAMENTOExecute)
Orçamento Aprovado Com Sucesso!
Causa: Confirmação de que o status foi alterado para Aprovado e ordens/pedidos dependentes foram liberados.
Ação: Nenhuma ação necessária.
Fonte: source/MRC031/UframeMRC031.pas:814-814 (TframeMRC031.actAPROVARORCAMENTOExecute)
Deseja Reprovar o Orçamento N° %s ?
Causa: Confirmação exigida antes de reprovar o orçamento.
Ação: Confirmar apenas se a reprovação comercial for definitiva.
Fonte: source/MRC031/UframeMRC031.pas:833-833 (TframeMRC031.actREPROVARORCAMENTOExecute)
Existem Pneus que ainda não passaram pelo Exame Inicial. Série / Fogo %s Deseja Continuar?
Causa: Um ou mais pneus do orçamento ainda não têm Exame Inicial concluído, e o tipo de bloqueio do orçamento exige essa checagem.
Ação: Encaminhar os pneus indicados ao Exame Inicial, ou confirmar a continuidade se for uma exceção autorizada.
Fonte: source/MRC031/UdmMRC031.pas:1938-1957 (TdmMRC031.validaExameInicialPneu)
Nenhum Orçamento Selecionado para Realizar Alteração
Causa: Tentativa de alterar sem selecionar uma linha na grade de consulta.
Ação: Selecionar um orçamento na lista antes de clicar em Alterar.
Fonte: source/MRC031/UframeConsultaMRC031.pas:485-495 (TframeConsultaMRC031.actALTERARORCAMENTOExecute)
Nenhum Orçamento Selecionado para Realizar Impressão. Verifique!
Causa: Tentativa de imprimir sem selecionar um orçamento na grade de consulta.
Ação: Selecionar um orçamento na lista antes de imprimir.
Fonte: source/MRC031/UframeConsultaMRC031.pas:502-503 (TframeConsultaMRC031.actIMPRIMIRExecute)
Layout de Orçamento não Informado, Verifique [REC001]!
Causa: O parâmetro PARAMRECAP.CD_LAYORCAMENTO não está configurado para a empresa.
Ação: Cadastrar o layout de impressão do orçamento no parâmetro da recapadora [REC001].
Fonte: source/MRC031/UframeConsultaMRC031.pas:505-506 (TframeConsultaMRC031.actIMPRIMIRExecute)
Deseja realizar o Cancelamento deste Orçamento?
Causa: Confirmação exigida antes de cancelar o orçamento.
Ação: Confirmar apenas se o cancelamento for realmente desejado.
Fonte: source/MRC031/UframeConsultaMRC031.pas:522-522 (TframeConsultaMRC031.buttonCancelarClick)
Não é Possivel Realizar o Cancelamento de um Orçamento que Já Esteja Cancelado/Aprovado/Reprovado. Verifique!
Causa: O orçamento selecionado já está com status Aprovado, Reprovado ou Cancelado.
Ação: Cancelamento só é possível enquanto o orçamento está Em Aberto.
Fonte: source/MRC031/UframeConsultaMRC031.pas:524-528 (TframeConsultaMRC031.buttonCancelarClick)
Não há consertos para os Pneus do Orçamento!
Causa: Não existe registro de produção (limpeza de manchão/retrabalho) vinculado às ordens do orçamento para gerar consertos.
Ação: Aguardar o registro da produção antes de usar Atualizar Consertos, ou lançar os consertos manualmente.
Fonte: source/MRC031/UframeMRC031.pas:1066-1068 (TframeMRC031.actATUALIZARCONSERTOSExecute)
O Valor utilizado para o laudo nº %s não pode ser maior que o valor Habilitado para Desconto!
Causa: O valor informado para o laudo excede o saldo de garantia disponível para aquele laudo.
Ação: Reduzir o valor utilizado para até o saldo de garantia exibido para o laudo.
Fonte: source/MRC031/UMRC031SaldoLaudo.pas:190-191 (TfrmMRC031SaldoLaudo.btnConfirmarClick)
O Valor Total dos laudos (%s) não Pode Extrapolar o Valor dos Serviços/Consertos (%s)!
Causa: A soma dos valores utilizados de todos os laudos marcados é maior que o total de serviços e consertos do orçamento.
Ação: Reduzir o valor utilizado de um ou mais laudos até que a soma não ultrapasse o total do orçamento.
Fonte: source/MRC031/UMRC031SaldoLaudo.pas:225-226 (TfrmMRC031SaldoLaudo.btnConfirmarClick)
Você não possui acessso ao programa "%s"!
Causa: O usuário tentou abrir uma busca F9 (pneu/serviço/banda/medida/desenho/modelo) para um submódulo ao qual não tem acesso no menu.
Ação: Solicitar liberação do item de menu correspondente (TRC001/002/004/005/006/007) ao administrador.
Fonte: source/MRC031/UframeMRC031.pas:380-381 (TframeMRC031.gridCadastroKeyDown)
A Consulta não Retornou Registros!
Causa: Os filtros aplicados na tela de importação de pneus não encontraram nenhum pneu disponível.
Ação: Revisar/relaxar os filtros de busca (modelo, medida, datas, status) na lista de pneus.
Fonte: source/MRC031/UMRC031ListaPneus.pas:321-326 (TfrmListaPneus.btnPesquisarClick)
Regras de negócio
MRC031.R001(verregras/MRC031/MRC031.R001.md)MRC031.R002(verregras/MRC031/MRC031.R002.md)MRC031.R003(verregras/MRC031/MRC031.R003.md)MRC031.R004(verregras/MRC031/MRC031.R004.md)MRC031.R005(verregras/MRC031/MRC031.R005.md)MRC031.R006(verregras/MRC031/MRC031.R006.md)MRC031.R007(verregras/MRC031/MRC031.R007.md)MRC031.R008(verregras/MRC031/MRC031.R008.md)MRC031.R009(verregras/MRC031/MRC031.R009.md)MRC031.R010(verregras/MRC031/MRC031.R010.md)MRC031.R011(verregras/MRC031/MRC031.R011.md)MRC031.R012(verregras/MRC031/MRC031.R012.md)MRC031.R013(verregras/MRC031/MRC031.R013.md)MRC031.R014(verregras/MRC031/MRC031.R014.md)MRC031.R015(verregras/MRC031/MRC031.R015.md)MRC031.R016(verregras/MRC031/MRC031.R016.md)MRC031.R017(verregras/MRC031/MRC031.R017.md)MRC031.R018(verregras/MRC031/MRC031.R018.md)MRC031.R019(verregras/MRC031/MRC031.R019.md)
Perguntas frequentes
P: Por que não consigo gravar o orçamento e aparece 'Informe a Pessoa!' ou outro campo do cabeçalho?
R: O cabeçalho do orçamento exige Cliente, Endereço, Condição/Forma de Pagamento, Tipo de Pedido e Data de Emissão preenchidos antes de gravar.
Fonte: source/MRC031/UdmMRC031.pas:374-416 (TdmMRC031.tabORCAMENTOPNEUBeforePost)
P: Por que a tela às vezes pede o DOT do pneu e em outras empresas não?
R: O DOT só é obrigatório quando o parâmetro STOBRIGAANOPNEU da recapadora (PARAMRECAP) está configurado como 'S' para a empresa.
Fonte: source/MRC031/UdmMRC031.pas:613-624 (TdmMRC031.tabITEMORCAMENTOPNEUBeforePost)
P: Por que aparece 'Conserto Já Informado' ao tentar lançar um conserto?
R: O mesmo conserto já foi lançado para aquele item de pneu; deve-se editar a quantidade do lançamento existente em vez de duplicar.
Fonte: source/MRC031/UdmMRC031.pas:1112-1122 (TdmMRC031.tabCONSERTOITEMIDCONSERTOValidate)
P: Por que o sistema pergunta se quero continuar mesmo com pneus 'sem Exame Inicial' ao aprovar/reprovar?
R: O orçamento verifica se todos os pneus já passaram pelo Exame Inicial antes de aprovar/reprovar, e pede confirmação quando algum pneu ainda não passou (exceto quando o pedido está marcado com bloqueio de orçamento 'N').
Fonte: source/MRC031/UdmMRC031.pas:1916-1965 (TdmMRC031.validaExameInicialPneu)
P: Por que o botão Atualizar Consertos diz que 'Não há consertos para os Pneus do Orçamento'?
R: Não existe ainda registro de limpeza de manchão/retrabalho na produção vinculado às ordens do orçamento; é preciso aguardar o registro da produção ou lançar os consertos manualmente.
Fonte: source/MRC031/UframeMRC031.pas:1016-1068 (TframeMRC031.actATUALIZARCONSERTOSExecute)
P: Por que não consigo cancelar um orçamento?
R: O cancelamento pela tela de consulta só é permitido enquanto o orçamento está com status 'Em Aberto'; orçamentos já Aprovados, Reprovados ou Cancelados não podem ser cancelados de novo.
Fonte: source/MRC031/UframeConsultaMRC031.pas:524-528 (TframeConsultaMRC031.buttonCancelarClick)
P: Por que o valor unitário do pneu ou do conserto aparece bloqueado para edição?
R: O parâmetro ST_TABPRECO da recapadora (PARAMRECAP) está configurado como 'B', o que faz o valor unitário ser definido apenas pela tabela de preço, sem digitação manual.
Fonte: source/MRC031/UdmMRC031.pas:915-923 (TdmMRC031.tabITEMORCAMENTOPNEUIDSERVICOPNEUValidate)
P: Por que aparece mensagem de que não há Parâmetros de Tabela de Preço para o cliente/serviço [TFA006]?
R: O parâmetro STVALITEMTABPRECO está como 'S' (bloqueia) ou 'A' (apenas avisa) e não existe tabela de preço vinculada a esse cliente para o serviço/conserto selecionado; é preciso cadastrar o vínculo em PARMTABPRECO.
Fonte: source/MRC031/UdmMRC031.pas:840-871 (TdmMRC031.tabITEMORCAMENTOPNEUIDSERVICOPNEUValidate)
P: Por que não consigo imprimir o orçamento?
R: O parâmetro CD_LAYORCAMENTO da recapadora (PARAMRECAP) não está configurado; é preciso cadastrar o layout de impressão do orçamento [REC001].
Fonte: source/MRC031/UframeMRC031.pas:857-858 (TframeMRC031.actIMPRIMIRExecute)
P: Por que aparece um aviso de que o status do orçamento mudou logo antes de eu conseguir gravar?
R: O sistema confere novamente o status do orçamento no banco no momento de gravar; se outro usuário já tiver alterado o status enquanto a tela estava aberta, a gravação é bloqueada e é preciso reabrir o orçamento.
Fonte: source/MRC031/UframeMRC031.pas:169-185 (TframeMRC031.actionOKExecute)
P: Por que aparece 'Você não possui acesso ao programa' ao pesquisar (F9) modelo/medida/serviço/desenho na grade de itens?
R: O usuário não tem liberado no menu o submódulo correspondente (TRC001/002/004/005/006/007) usado internamente pela busca daquela coluna.
Fonte: source/MRC031/UframeMRC031.pas:380-381 (TframeMRC031.gridCadastroKeyDown)
P: Por que o valor utilizado de um laudo não pode ser maior que determinado valor ao vincular laudos?
R: O valor usado de cada laudo é limitado ao saldo de garantia disponível daquele laudo, e a soma de todos os laudos não pode ultrapassar o valor total dos serviços/consertos do orçamento.
Fonte: source/MRC031/UMRC031SaldoLaudo.pas:186-226 (TfrmMRC031SaldoLaudo.btnConfirmarClick)
Dúvidas em aberto (o código não responde)
- O parâmetro CD_LAYORCAMENTO e ST_TABPRECO usados no código vêm de PARAMRECAP (parmRecap), mas o briefing lista também PARMFATUR.CD_LAYORCAMENTO, PARMFATUR.ST_TABPRECO e PARMORCAMENTO.ST_TABPRECO. Esses parâmetros de PARMFATUR/PARMORCAMENTO são realmente lidos por este módulo em algum outro ponto não coberto pelos arquivos .pas analisados? — Em UframeMRC031.pas e UframeConsultaMRC031.pas só foi encontrado o uso de parmRecap.Values['CD_LAYORCAMENTO'] e parmRecap.Values['ST_TABPRECO']; parmFatur só foi usado para VL_MINPARCELAPEDIDO.
- Qual é exatamente a regra de negócio por trás da checagem 'anoDot < 90' na validação do DOT (linha 775 de UdmMRC031.pas)? Parece uma janela de compatibilidade para DOTs antigos com 2 dígitos de ano >= 90 (décadas de 1990), mas não há comentário explicando o motivo. — TdmMRC031.tabITEMORCAMENTOPNEUNRDOTValidate, linhas 762-778.
- As mensagens de desconto do conserto em tabCONSERTOITEMBeforePost (linhas 1429-1437) parecem trocadas entre 'Percentual' e 'Valor' de desconto — é um bug conhecido a corrigir ou existe alguma intenção não documentada no texto? — Comparado com a lógica equivalente do item de pneu (tabITEMORCAMENTOPNEUVLDESCONTOValidate), que não tem essa inconsistência.