Pular para o conteúdo principal

MRC001 — Pedidos de Pneu (enriquecimento)

Menu: Recapadora > Movimentações > Pedidos de Pneu

Objetivo​

A tela MRC001 cadastra e gerencia pedidos de coleta de pneu para recapagem, vinculando cliente, condição/forma de pagamento, tipo de pedido, vendedor(es) e borracheiro(s), e os itens (pneus) com medida, modelo, desenho, serviço e valores. Ao confirmar o pedido, o sistema verifica crédito/bloqueio do cliente, cota de vendedores, parcela mínima e gera o pedido bloqueado ou liberado para produção/faturamento. A partir do pedido também é possível gerar um orçamento (MRC031) e reabrir um pedido cancelado.

Fluxo principal​

  1. Acessar Recapadora > Movimentações > Pedidos de Pneu e clicar em Incluir na tela de consulta. (MRC001 - Consulta) — source/MRC001/UframeConsulta.pas:531-561 (TframeConsulta.actionIncluirExecute)
  2. Informar Tipo de Pedido e, se aplicável, o Vendedor principal do cabeçalho. (MRC001 - Cabeçalho) — source/MRC001/UdmMRC001.pas:639-682 (TdmMRC001.qryPedidoPneuIDVENDEDORValidate)
  3. Incluir os itens (pneus): série, modelo, medida, desenho, serviço, valor, desconto, DOT e Nº fogo. (MRC001 - Grid de Itens) — source/MRC001/UframeMRC001.pas:1505-1508 (TframeMRC001.ActionIncluirItensExecute)
  4. Associar vendedor(es)/borracheiro(s) a cada item, com percentual/valor de comissão calculado automaticamente. (MRC001 - Grid de Vendedores/Borracheiros) — source/MRC001/UdmMRC001.pas:1502-1597 (TdmMRC001.qryBorracheiroIDBORRACHEIROValidate)
  5. Opcionalmente, gerar um Orçamento (botão Orçamento) a partir do pedido, que abre a tela MRC031. (MRC001 - Cabeçalho) — source/MRC001/UframeMRC001.pas:2064-2183 (TframeMRC001.btnORCAMENTOClick)
  6. Na consulta, é possível Alterar, Cancelar ou Reabrir um pedido existente. (MRC001 - Consulta) — source/MRC001/UframeConsulta.pas:770-833 (TframeConsulta.actionCancelarExecute)

Campos obrigatórios​

CampoCondiçãoMensagemFonte
Cliente (Pessoa)sempre, ao entrar no grid de itensInforme a Pessoa!source/MRC001/UframeMRC001.pas:1605-1612 (TframeMRC001.gridCadastroEnter)
Condição de Pagamentosempre, ao entrar no grid de itensInforme a Condição de Pagamento!source/MRC001/UframeMRC001.pas:1614-1618 (TframeMRC001.gridCadastroEnter)
Forma de Pagamentosempre, ao entrar no grid de itensInforme a Forma de Pagamento!source/MRC001/UframeMRC001.pas:1620-1624 (TframeMRC001.gridCadastroEnter)
Tipo de Pedidosempre, ao entrar no grid de itens e ao confirmarInforme o tipo do Pedido!source/MRC001/UframeMRC001.pas:1626-1630 (TframeMRC001.gridCadastroEnter)
Nº do Blocoquando PARAMRECAP.ST_PEDIDOBLOCO <> 'N'Informe o Nº do Bloco!source/MRC001/UframeMRC001.pas:1632-1636 (TframeMRC001.gridCadastroEnter)
Endereço do clientesempre, ao gravar o cabeçalho do pedidoO Endereço é Obrigatório do Cliente!source/MRC001/UdmMRC001.pas:1084-1090 (TdmMRC001.qryPedidoPneuBeforePost)
Data de Entregaao confirmar o pedido; se vazia, sistema pergunta se pode assumir amanhãÉ Obrigatório informar a data de entrega. Verifique!source/MRC001/UframeMRC001.pas:268-281 (TframeMRC001.actionOKExecute)
Ao menos um item (pneu)sempre, ao confirmar o pedidoO pedido deve conter pelo menos um item!source/MRC001/UframeMRC001.pas:244-249 (TframeMRC001.actionOKExecute)
Nº Fogo do pneuquando PESSOA.ST_OBRIGAFOGOCOLETA='S' para o cliente do pedidoO Nº Fogo deve ser Informado. Verifique!source/MRC001/UdmMRC001.pas:1030-1035 (TdmMRC001.qryItemPedidoPneuBeforePost)
Ano do Pneu (DOT)quando PARAMRECAP.STOBRIGAANOPNEU='S'O Ano do Pneu(DOT) deve ser Informado!source/MRC001/UdmMRC001.pas:1017-1027 (TdmMRC001.qryItemPedidoPneuBeforePost)
Vendedor Principalquando PARAMRECAP.ST_VALIDAVENDPRINCIPAL='S'Nenhum Vendedor está marcado como Principal. Verifique!source/MRC001/UframeMRC001.pas:308-353 (TframeMRC001.actionOKExecute)
Data de Vencimentoquando a condição de pagamento é do tipo 'D' (data fixa)É obrigatório informar a Data de Vencimento para a Condição de Pagamentosource/MRC001/UdmMRC001.pas:1093-1099 (TdmMRC001.qryPedidoPneuBeforePost)

Mensagens: causa e ação​

E-0033​

Causa: O código de pessoa informado (cliente, vendedor, endereço etc.) não existe cadastrado na base.

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

Fonte: source/MRC001/UdmMRC001.pas:264-271 (TdmMRC001.qryPedidoPneuIDPESSOAValidate)

O Cliente está com o SCPC Bloqueado! Verifique[TFA001]!​

Causa: A pessoa selecionada como cliente tem o campo PESSOA.ST_SCPC marcado como bloqueado.

Ação: Analisar/atualizar o bloqueio SCPC do cliente em TFA001 antes de prosseguir com o pedido.

Fonte: source/MRC001/UdmMRC001.pas:292-296 (TdmMRC001.qryPedidoPneuIDPESSOAValidate)

O Cliente deve ter um Endereço Cadastrado![TFA001]​

Causa: A pessoa não possui nenhum registro em ENDERECOPESSOA.

Ação: Cadastrar um endereço para o cliente em TFA001.

Fonte: source/MRC001/UdmMRC001.pas:290-299 (TdmMRC001.qryPedidoPneuIDPESSOAValidate)

O Pedido Será Bloqueado Motivo: %s​

Causa: A procedure VERIFICA_CREDITO retornou um motivo de bloqueio para o cliente/condição de pagamento (ex.: limite de crédito, inadimplência).

Ação: É apenas um aviso nesse momento; ao salvar, o pedido ficará com status Bloqueado e precisa ser liberado em MRC005/MRC040.

Fonte: source/MRC001/UdmMRC001.pas:408-424 (TdmMRC001.qryPedidoPneuIDPESSOAValidate)

%s Para Desbloquear. [MRC005]​

Causa: O pedido foi gravado com bloqueio (status B) e o tipo de bloqueio retornado por VERIFICA_BLOQUEIO não é do tipo 'Coleta' (C) ou o parâmetro ST_SEPARABLOQUEIOPED='N'.

Ação: Acessar a tela MRC005 para liberar o pedido bloqueado.

Fonte: source/MRC001/UframeMRC001.pas:780-790 (TframeMRC001.actionOKExecute)

%s Para Desbloquear. [MRC005] / [MRC040]​

Causa: O pedido foi bloqueado e o parâmetro PARMFATUR.ST_SEPARABLOQUEIOPED está configurado como 'S', separando o fluxo de liberação em duas telas.

Ação: Liberar o pedido em MRC005 e/ou MRC040 conforme o motivo apresentado.

Fonte: source/MRC001/UframeMRC001.pas:788-793 (TframeMRC001.actionOKExecute)

Este pneu já possui uma ordem de produção e não pode ser excluído do pedido!​

Causa: O item já foi movimentado para uma ordem de produção de recapagem (ORDEMPRODUCAORECAP).

Ação: Cancelar a ordem de produção correspondente (MRC003) antes de excluir o item do pedido.

Fonte: source/MRC001/UframeMRC001.pas:1515-1542 (TframeMRC001.ActionExcluirItensExecute)

Não é possivel excluir este Pneu pois o mesmo já possui nota de entrada de carcaça. Verifique!​

Causa: O item de pedido já está vinculado a uma nota de entrada de carcaça (IDPEDIDOENT preenchido).

Ação: Não é possível excluir; caso necessário, estornar a nota de entrada da carcaça primeiro.

Fonte: source/MRC001/UframeMRC001.pas:1515-1521 (TframeMRC001.ActionExcluirItensExecute)

Não é possivel excluir item com Orçamento em aberto. Verifique! [MRC031]​

Causa: O item está referenciado em um orçamento (ORCAMENTOPNEU) com status Aberto ou Aprovado.

Ação: Cancelar ou reprovar o orçamento em MRC031 antes de excluir o item do pedido.

Fonte: source/MRC001/UdmMRC001.pas:2712-2723 (TdmMRC001.qryItemPedidoPneuBeforeDelete)

Nenhum Vendedor está marcado como Principal. Verifique!​

Causa: PARAMRECAP.ST_VALIDAVENDPRINCIPAL='S' e nenhum vendedor foi definido como principal (no cabeçalho, ou no grid de borracheiros para nenhum item).

Ação: Preencher o campo Vendedor do cabeçalho ou marcar um borracheiro com tipo de vendedor principal (TFA064) em pelo menos um item.

Fonte: source/MRC001/UframeMRC001.pas:308-353 (TframeMRC001.actionOKExecute)

O Nº Fogo deve ser Informado. Verifique!​

Causa: O cliente do pedido tem PESSOA.ST_OBRIGAFOGOCOLETA='S' e o item foi gravado sem o número de fogo.

Ação: Preencher o Nº Fogo do pneu antes de gravar o item.

Fonte: source/MRC001/UdmMRC001.pas:1030-1035 (TdmMRC001.qryItemPedidoPneuBeforePost)

O Ano do Pneu (DOT) Deve ter 4 Dígitos!​

Causa: O campo DOT foi preenchido com um número de caracteres diferente de 4 (formato semana+ano).

Ação: Informar o DOT com exatamente 4 dígitos, conforme gravado no pneu.

Fonte: source/MRC001/UdmMRC001.pas:2343-2347 (TdmMRC001.qryItemPedidoPneuNRDOTValidate)

O DOT do Pneu é Superior e 364 semanas. Verifique!​

Causa: Regra específica para bandeira Michelin (PARAMRECAP.TPBANDEIRA='M'): a idade do pneu calculada a partir do DOT excede 364 semanas na data de emissão do pedido.

Ação: Conferir o DOT informado; pneus mais antigos que 364 semanas não podem ser aceitos para essa bandeira.

Fonte: source/MRC001/UdmMRC001.pas:2364-2379 (TdmMRC001.qryItemPedidoPneuNRDOTValidate)

Não é possivel informar um valor de comissão para um serviço com valor zero. Verifique!​

Causa: O item de pedido tem valor líquido (VLUNITARIO - VLDESCONTO) igual ou menor que zero, mas foi informado um valor de comissão.

Ação: Zerar a comissão ou revisar o valor do serviço/desconto do item antes de informar comissão.

Fonte: source/MRC001/UdmMRC001.pas:2054-2072 (TdmMRC001.qryBorracheiroVL_COMISSAOValidate)

O pedido não pode mais ser alterado. Existem dados que foram movimentados em outras Telas.​

Causa: O status do pedido (STPEDIDO) deixou de ser 'N' ou 'P' porque outra tela (ex.: ordem de produção, garantia) já movimentou o pedido.

Ação: Cancelar a tela com F12 e reabrir o pedido para carregar o status atualizado.

Fonte: source/MRC001/UframeMRC001.pas:283-296 (TframeMRC001.actionOKExecute)

O pedido (%s) possui uma Ordem de Produção válida e não pode ser cancelado!​

Causa: Existe ao menos um item do pedido com ordem de produção de recapagem em status diferente de cancelada.

Ação: Cancelar a ordem de produção em MRC003 antes de cancelar o pedido.

Fonte: source/MRC001/UframeConsulta.pas:786-814 (TframeConsulta.actionCancelarExecute)

O pedido (%s) possui um Laudo com Financeiro válido e não pode ser cancelado. Verifique! [MRC004]​

Causa: Existe laudo técnico de garantia com lançamento financeiro (CONTAS) não cancelado vinculado a um item do pedido.

Ação: Cancelar o lançamento financeiro do laudo em MRC004 antes de cancelar o pedido.

Fonte: source/MRC001/UframeConsulta.pas:791-816 (TframeConsulta.actionCancelarExecute)

Não há registro selecionado para alteração!​

Causa: O usuário clicou em Alterar sem nenhum pedido selecionado na grade de consulta (ibQuery vazio).

Ação: Selecionar um pedido na lista de consulta antes de clicar em Alterar.

Fonte: source/MRC001/UframeConsulta.pas:564-630 (TframeConsulta.actionAlterarExecute)

A pesquisa não retornou dados!​

Causa: O filtro aplicado na consulta de pedidos não encontrou nenhum registro.

Ação: Revisar os filtros (cliente, vendedor, datas, status) e pesquisar novamente.

Fonte: source/MRC001/UframeConsulta.pas:663-671 (TframeConsulta.actionConsultaExecute)

Regras de negócio​

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

Perguntas frequentes​

P: Por que aparece a mensagem 'O Cliente está com o SCPC Bloqueado'? R: Porque o cadastro do cliente (PESSOA.ST_SCPC) está marcado como bloqueado; é necessário regularizar em TFA001. Fonte: source/MRC001/UdmMRC001.pas:292-296 (TdmMRC001.qryPedidoPneuIDPESSOAValidate)

P: Por que não consigo excluir um pneu do pedido? R: O item pode já ter ordem de produção, nota de entrada de carcaça faturada, ou estar vinculado a um orçamento em aberto/aprovado; nesses casos a exclusão é bloqueada. Fonte: source/MRC001/UframeMRC001.pas:1515-1542 (TframeMRC001.ActionExcluirItensExecute)

P: Por que o sistema exige um vendedor principal? R: Porque o parâmetro PARAMRECAP.ST_VALIDAVENDPRINCIPAL está ligado ('S'); é preciso marcar um vendedor/borracheiro com tipo parametrizado como principal (TFA064). Fonte: source/MRC001/UframeMRC001.pas:308-353 (TframeMRC001.actionOKExecute)

P: Por que não consigo alterar mais um pedido que já estava aberto? R: Porque o status do pedido mudou (ex.: já entrou em produção) por movimentação em outra tela; é preciso cancelar (F12) e reabrir o pedido para atualizar as informações. Fonte: source/MRC001/UframeMRC001.pas:283-296 (TframeMRC001.actionOKExecute)

P: Por que o pedido ficou com status Bloqueado (B) depois de salvar? R: A procedure VERIFICA_BLOQUEIO identificou um motivo de bloqueio (crédito, liberação de coleta, etc.); o pedido precisa ser liberado nas telas MRC005 e/ou MRC040. Fonte: source/MRC001/UframeMRC001.pas:756-793 (TframeMRC001.actionOKExecute)

P: Por que não consigo cancelar um pedido? R: Existe ordem de produção válida ou laudo com lançamento financeiro válido vinculado ao pedido; é preciso cancelar essas movimentações antes (MRC003/MRC004). Fonte: source/MRC001/UframeConsulta.pas:786-817 (TframeConsulta.actionCancelarExecute)

P: Por que apareceu 'não há Parâmetros de Tabela de Preço' para o serviço? R: Não existe tabela de preço vinculada ao serviço/cliente (TFA006/MFA006); dependendo do parâmetro PARAMRECAP.STVALITEMTABPRECO, o sistema bloqueia ('S') ou apenas avisa e usa a tabela padrão ('A'). Fonte: source/MRC001/UdmMRC001.pas:839-870 (TdmMRC001.qryItemPedidoPneuIDSERVICOPNEUValidate)

P: Por que o DOT informado é rejeitado? R: O DOT deve ter 4 dígitos, a semana não pode exceder 53 nem a semana atual do ano corrente; para bandeira Michelin, o pneu também não pode ter mais de 364 semanas de idade. Fonte: source/MRC001/UdmMRC001.pas:2343-2380 (TdmMRC001.qryItemPedidoPneuNRDOTValidate)

P: Por que não consigo trocar o serviço de um pneu? R: Se o novo serviço usa uma carcaça diferente da atual e o item já tem nota de entrada de carcaça faturada, a troca é bloqueada. Fonte: source/MRC001/UdmMRC001.pas:770-795 (TdmMRC001.qryItemPedidoPneuIDSERVICOPNEUValidate)

P: Por que o valor de comissão não é aceito? R: O percentual deve estar entre 0 e 100 e o valor de comissão não pode passar de 100% do valor líquido do serviço; serviços com valor líquido zero não aceitam comissão em valor. Fonte: source/MRC001/UdmMRC001.pas:2023-2072 (TdmMRC001.qryBorracheiroPC_COMISSAOValidate)

P: Por que não consigo mudar o Tipo de Pedido? R: Se algum item do pedido tem laudo técnico válido lançado, a troca de tipo de pedido fica bloqueada até que o laudo seja cancelado. Fonte: source/MRC001/UdmMRC001.pas:1710-1724 (TdmMRC001.qryPedidoPneuIDTIPOPEDIDOValidate)

P: Por que a mensagem de valor de parcela abaixo do permitido aparece ao salvar? R: O parâmetro PARMFATUR.VL_MINPARCELAPEDIDO define um valor mínimo de parcela; se o cálculo da parcela ficar abaixo desse valor, o pedido não pode ser gravado. Fonte: source/MRC001/UframeMRC001.pas:621-643 (TframeMRC001.actionOKExecute)

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

  • Onde e como é feita a verificação da licença 'erpProdVulcano' exigida para este módulo? — O briefing indica que a licença erpProdVulcano é exigida, mas essa validação não aparece nos arquivos .pas lidos do MRC001; provavelmente é feita em camada de carregamento de programa (sessao.carregarPrograma) fora do escopo lido.
  • Quais campos exatamente ficam com Required=True dinamicamente pela rotina camposObrigatorios? — As rotinas BeforePost chamam 'camposObrigatorios(DataSet)' repetidamente, mas a implementação dessa função não está nos arquivos do módulo MRC001 lidos (deve estar em jDB.pas ou similar); não foi possível confirmar a lista completa de campos que ela torna obrigatórios.
  • Qual o efeito exato do parâmetro PARAMRECAP.STOBRIGAANOPNEU e por que ele não está na lista oficial de parâmetros do módulo? — O código lê 'STOBRIGAANOPNEU' diretamente da tabela PARAMRECAP via SQL (UdmMRC001.pas:1017-1022), mas esse nome não consta na lista de parâmetros do briefing (que cita apenas os nomes com prefixo IDMARCAPADRAO, ST_*, etc.); pode ser um parâmetro legado ou não documentado.
  • Como funciona exatamente a regra de rateio/duplicação de vendedores entre itens quando PARAMRECAP.ST_VENDEDORPEDIDOITEM='P'? — O código tem lógica condicional extensa (qryItemPedidoPneuAfterPost, actionOKExecute) sobre duplicar vendedores apenas no primeiro item ou em todos, com trechos comentados, sugerindo incerteza/histórico de mudanças; não foi possível confirmar o comportamento atual com certeza total sem testes.
  • O DOT com 4 dígitos, mas anoDot entre 90 e 99 é aceito sem checar limite superior? — Em UdmMRC001.pas:2358, a condição só lança erro se anoDot < 90 E anoDot > ano atual (2 dígitos); não ficou claro se DOTs de pneus muito antigos (época anoDot >= 90, ex. anos 1990) recebem alguma outra validação de limite máximo além do formato.