MRC020 — Confirmação de Ordem de Carregamento Recapadora (enriquecimento)
Menu: Recapadora > Movimentações > Confirmação de Ordem de Carregamento Recapadora
Objetivo
O MRC020 é a tela onde o usuário confirma/encerra as ordens de carregamento geradas na produção da recapadora (MRC019), edita dados do embarque (motorista, transportador, frete, pedágio) e emite as notas fiscais de venda para os clientes da ordem. Ao emitir a nota, o sistema valida cabeçalho e itens conforme os parâmetros de faturamento da empresa (MFA001/PARMFATUR) e da recapadora (PARAMRECAP), podendo aplicar desconto de laudo, exigir autorização para alterações e bloquear a nota por regras de crédito/pedido. Ao confirmar/encerrar a ordem, o sistema gera automaticamente as movimentações de estoque e os lançamentos de contas a receber e muda o status da ordem para Confirmada/Atendida. É a etapa final de expedição/faturamento do fluxo de recapagem de pneus.
Fluxo principal
- Na grade de ordens retornadas, marcar (espaço ou clique na coluna Status, ou botão Marcar Todos) as ordens de carregamento que serão trabalhadas. (pagORDEM) —
source/MRC020/UMRC020.pas:1488-1528 (TfrmMRC020.gridOrdemKeyDown) - (Opcional) Clicar em Ordem (F11) para abrir a tela de Embarque e ajustar motorista, transportador, frete, pedágio, data de embarque, ou incluir/excluir produtos da ordem. (MRC020Embarque) —
source/MRC020/UMRC020.pas:1400-1440 (TfrmMRC020.btnOrdemClick) - (Alternativa) Clicar em Excluir (F7) para cancelar a ordem selecionada, somente se ainda não houver nota fiscal emitida para ela. (pagORDEM) —
source/MRC020/UMRC020.pas:987-1058 (TfrmMRC020.btnExcluirClick) - Clicar em Imprimir (F8) ou Fechamento para reimprimir o layout da ordem de carregamento. (pagORDEM) —
source/MRC020/UMRC020.pas:1061-1082 (TfrmMRC020.btnImprimirClick)
Campos obrigatórios
| Campo | Condição | Mensagem | Fonte |
|---|---|---|---|
| Pessoa (Cliente) da Nota Fiscal | Sempre, ao salvar a nota (quando a nota não vem só de leitura da ordem) | É Obrigatório informar a Pessoa Física / Jurídica! | source/MRC020/UdmMRC020NFORDEM.pas:3158-3162 (TdmMRC020NFORDEM.tabNOTABeforePost) |
| Endereço da Pessoa | Sempre, ao salvar a nota | É Obrigatório informar o Endereço da Pessoa Física / Jurídica! | source/MRC020/UdmMRC020NFORDEM.pas:3164-3168 (TdmMRC020NFORDEM.tabNOTABeforePost) |
| Condição de Pagamento | Sempre, ao salvar a nota | É Obrigatório informar a Condição de Pagamento! | source/MRC020/UdmMRC020NFORDEM.pas:3170-3174 (TdmMRC020NFORDEM.tabNOTABeforePost) |
| Data de Vencimento | Quando a condição de pagamento é do tipo 'Vencto Digitado' (ST_CONDPAGTO = 'D') | É Obrigatório informar a Data de Vencimento para a Condição de Pagamento do Tipo Vencto Digitado! | source/MRC020/UdmMRC020NFORDEM.pas:3176-3181 (TdmMRC020NFORDEM.tabNOTABeforePost) |
| Forma de Pagamento | Sempre, ao salvar a nota | É Obrigatório informar a Forma de Pagamento! | source/MRC020/UdmMRC020NFORDEM.pas:3191-3195 (TdmMRC020NFORDEM.tabNOTABeforePost) |
| Produto do Item da Nota | Ao gravar cada linha de item | É Obrigatório informar o Produto da Nota Fiscal! | source/MRC020/UdmMRC020NFORDEM.pas:3236-3241 (TdmMRC020NFORDEM.tabITEMNOTABeforePost) |
| Movimentação do Item | Ao gravar cada linha de item | É Obrigatório informar a Movimentação do Produto na Nota Fiscal! | source/MRC020/UdmMRC020NFORDEM.pas:3242-3247 (TdmMRC020NFORDEM.tabITEMNOTABeforePost) |
| Tabela de Preço do Item | Quando PARMFATUR.ST_TABPRECO = 'T', ou 'S' com o item marcado como de tabela, e o item tem conta/valor > 0 | É Obrigatório informar a Tabela de Preço do Produto na Nota Fiscal! | source/MRC020/UdmMRC020NFORDEM.pas:3248-3257 (TdmMRC020NFORDEM.tabITEMNOTABeforePost) |
| Peso do Item | Quando a unidade de cálculo do item é por peso (TP_UNIDADE = 'P') | É Obrigatório informar o Peso do Produto na Nota Fiscal! | source/MRC020/UdmMRC020NFORDEM.pas:3258-3264 (TdmMRC020NFORDEM.tabITEMNOTABeforePost) |
| Quantidade do Item | Quando a unidade de cálculo do item é por quantidade (TP_UNIDADE = 'Q') | É Obrigatório informar a Quantidade do Produto na Nota Fiscal! | source/MRC020/UdmMRC020NFORDEM.pas:3265-3271 (TdmMRC020NFORDEM.tabITEMNOTABeforePost) |
| Valor Unitário do Item | Ao gravar cada linha de item | É Obrigatório informar o Valor Unitário do Produto na Nota Fiscal! | source/MRC020/UdmMRC020NFORDEM.pas:3272-3277 (TdmMRC020NFORDEM.tabITEMNOTABeforePost) |
| Valor Total do Item | Ao gravar cada linha de item | É Obrigatório informar o Valor Total do Produto na Nota Fiscal! | source/MRC020/UdmMRC020NFORDEM.pas:3278-3283 (TdmMRC020NFORDEM.tabITEMNOTABeforePost) |
| CFO (Código Fiscal de Operação) do Item | Derivado da movimentação escolhida; se a movimentação não tem CFO associado, bloqueia | A Movimentação não possui Código Fiscal de Operação(CFO) Associado [TCB001]! | source/MRC020/UdmMRC020NFORDEM.pas:3284-3289 (TdmMRC020NFORDEM.tabITEMNOTABeforePost) |
| Data de Embarque | Ao confirmar a tela de dados do embarque (motorista/transportador) | É Obrigatório informar a Data de MRC020Embarque! | source/MRC020/UMRC020Embarque.pas:175-179 (TfrmMRC020Embarque.btnConfirmarClick) |
| Motorista ou Transportador | Ao confirmar a tela de dados do embarque | É Obrigatório informar o Motorista / Transportador! | source/MRC020/UMRC020Embarque.pas:181-187 (TfrmMRC020Embarque.btnConfirmarClick) |
Mensagens: causa e ação
W-0153
Causa: A pessoa tem restrição cadastrada de formas de pagamento (tabela PESSOAFORMAPAGTO) e a forma de pagamento escolhida na nota não está entre as liberadas para ela.
Ação: Selecionar uma forma de pagamento liberada para o cliente, ou incluir a forma desejada no cadastro de formas de pagamento da pessoa (TFA001).
Fonte: source/MRC020/UdmMRC020NFORDEM.pas:3846-3867 (TdmMRC020NFORDEM.tabNOTACD_FORMAPAGTOValidate)
A ordem de carregamento %s já foi cancelada, não sendo mais permitida a emissão da nota. Verifique [MRC019]!
Causa: Entre a abertura da tela de emissão e o salvamento da nota, a ordem de carregamento recap foi cancelada (por outra operação/usuário, ex.: MRC019/MRC021).
Ação: Fechar a tela de emissão sem salvar e reconsultar a ordem no MRC020 para verificar a situação atual.
Fonte: source/MRC020/UMRC020NFORDEM.pas:1350-1361 (TfrmMRC020NFORDEM.btnSalvarClick)
A Nota Fiscal %s já foi Emitida. A Tela de Emissão será Fechada.
Causa: A nota já estava gravada e confirmada no banco (ex.: uma falha de impressão anterior deixou a tela aberta) e o usuário tentou salvar novamente.
Ação: Nenhuma ação necessária além de fechar a tela; conferir a nota já emitida na consulta de notas.
Fonte: source/MRC020/UMRC020NFORDEM.pas:843-868 (TfrmMRC020NFORDEM.btnSalvarClick)
Existem Notas Fiscais Pendentes para esta Ordem que não foram Emitidas.
Causa: Há produtos da ordem marcada para confirmação sem nota fiscal gerada (NR_LANCAMENTO nulo).
Ação: Emitir as notas pendentes antes de confirmar; se o parâmetro (MFA001) ST_BLOQCONFIRMACAO permitir, é possível confirmar mesmo assim respondendo Sim à pergunta de confirmação.
Fonte: source/MRC020/UMRC020.pas:844-868 (TfrmMRC020.btnSalvarClick)
Existem Notas Fiscais Bloqueadas para esta Ordem que não foram Liberadas.
Causa: Existe uma nota fiscal da ordem com status Bloqueada ('B') ou em Liberação ('L').
Ação: Liberar a nota bloqueada (na tela de liberação de notas/MRC021) antes de confirmar/encerrar a ordem.
Fonte: source/MRC020/UMRC020.pas:871-889 (TfrmMRC020.btnSalvarClick)
Existem Notas Fiscais Emitidas para esta Ordem de Carregamento. Para Cancelar use o Programa MRC021!
Causa: A ordem selecionada para exclusão/cancelamento já possui nota fiscal emitida.
Ação: Usar o módulo MRC021 para cancelar a ordem/nota já emitida.
Fonte: source/MRC020/UMRC020.pas:1013-1022 (TfrmMRC020.btnExcluirClick)
A Ordem de Carregamento está Bloqueada para Faturamento. Verifique!
Causa: A ordem está com liberação de venda negada (ST_VENDALIBERADA = 'N') e o parâmetro MFA001 ST_BLOQUEIAORDEMCARREG está ativo para a empresa.
Ação: Liberar a venda da ordem de carregamento antes de tentar emitir a nota fiscal.
Fonte: source/MRC020/UMRC020.pas:1131-1139 (TfrmMRC020.btnAtualizarClick)
Não Foi Possível Gerar a Nota Fiscal Pois o Embarque Possui Somente Pneus Recusados. Verifique!
Causa: Todos os pneus do embarque foram reprovados no exame final de recapagem (nenhum item aprovado a faturar).
Ação: Revisar o resultado do exame/recapagem; não há produto disponível para faturamento nesse embarque.
Fonte: source/MRC020/UMRC020.pas:1141-1151 (TfrmMRC020.btnAtualizarClick)
Existem Pneus da Casa com a Carcaça Não Faturada para o cliente %s:%s.
Causa: Parâmetro PARAMRECAP.STOBRIGAFATURACARCACA = 'S' exige que a carcaça (pneu de propriedade da recapadora) tenha nota de entrada vinculada antes de faturar o serviço de recapagem.
Ação: Faturar/vincular a nota de entrada da carcaça correspondente antes de emitir a NF do serviço.
Fonte: source/MRC020/UMRC020.pas:1203-1222 (TfrmMRC020.btnAtualizarClick)
Existem Pneus Recusados Para a Pessoa %s. Deseja Continuar?
Causa: Há pneus recusados no exame final para essa pessoa dentro do embarque.
Ação: Confirmar se deseja prosseguir emitindo a nota mesmo com pneus recusados presentes no embarque.
Fonte: source/MRC020/UMRC020.pas:1245-1247 (TfrmMRC020.btnAtualizarClick)
O Cliente possui Laudos a serem descontados. Deseja Descontá-los?
Causa: Parâmetro PARAMRECAP.STBONIFICACAOLAUDO = 'S' e o cliente tem laudos com saldo de garantia/bonificação disponível para compensar na nota.
Ação: Escolher Sim para abrir a tela de seleção de laudos e aplicar o desconto na nota, ou Não para seguir sem descontar.
Fonte: source/MRC020/UMRC020NFORDEM.pas:907-914 (TfrmMRC020NFORDEM.btnSalvarClick)
O Valor utilizado não pode ser maior que o valor Habilitado para Desconto!
Causa: O valor informado para desconto de um laudo específico excede o valor de garantia disponível para aquele laudo.
Ação: Reduzir o valor utilizado do laudo até o limite habilitado (VL_GARANTIA).
Fonte: source/MRC020/UdmMRC020NFORDEM.pas:5821-5828 (TdmMRC020NFORDEM.tabCOMPENSACAOVL_UTILIZADOValidate)
Não existe Local de Estoque Válido para o Item %s. Verifique!
Causa: O produto não tem local de armazenagem cadastrado com faturamento liberado (ITEMLOCAL.ST_FATURAMENTO = 'S').
Ação: Cadastrar/liberar um local de armazenagem para o produto (TPO001) com permissão de faturamento.
Fonte: source/MRC020/UdmMRC020NFORDEM.pas:3352-3365 (TdmMRC020NFORDEM.tabITEMNOTABeforePost)
CNPJ/CPF Inválido
Causa: O dígito verificador do CNPJ/CPF informado manualmente para o motorista/transportador no embarque não confere.
Ação: Corrigir o número de CNPJ/CPF digitado.
Fonte: source/MRC020/UMRC020Embarque.pas:130-146 (TfrmMRC020Embarque.edtNR_CGCCPFExit)
A Senha Deve Ser Informado!
Causa: A alteração feita no cabeçalho da nota exigiu autorização (PARMFATUR.ST_ALTERACABECALHONOTA = 'A') e o campo de senha do autorizador ficou em branco.
Ação: Informar login e senha de um usuário cadastrado como autorizador ativo para confirmar a alteração.
Fonte: source/MRC020/UMRC020AUTORIZACAO.pas:48-51 (TfrmAUTORIZACAO.btnConfirmarClick)
Regras de negócio
MRC020.R001(verregras/MRC020/MRC020.R001.md)MRC020.R002(verregras/MRC020/MRC020.R002.md)MRC020.R003(verregras/MRC020/MRC020.R003.md)MRC020.R004(verregras/MRC020/MRC020.R004.md)MRC020.R005(verregras/MRC020/MRC020.R005.md)MRC020.R006(verregras/MRC020/MRC020.R006.md)MRC020.R007(verregras/MRC020/MRC020.R007.md)MRC020.R008(verregras/MRC020/MRC020.R008.md)MRC020.R009(verregras/MRC020/MRC020.R009.md)MRC020.R010(verregras/MRC020/MRC020.R010.md)MRC020.R011(verregras/MRC020/MRC020.R011.md)MRC020.R012(verregras/MRC020/MRC020.R012.md)MRC020.R013(verregras/MRC020/MRC020.R013.md)MRC020.R014(verregras/MRC020/MRC020.R014.md)MRC020.R015(verregras/MRC020/MRC020.R015.md)MRC020.R016(verregras/MRC020/MRC020.R016.md)MRC020.R017(verregras/MRC020/MRC020.R017.md)MRC020.R018(verregras/MRC020/MRC020.R018.md)MRC020.R019(verregras/MRC020/MRC020.R019.md)MRC020.R020(verregras/MRC020/MRC020.R020.md)MRC020.R021(verregras/MRC020/MRC020.R021.md)MRC020.R022(verregras/MRC020/MRC020.R022.md)MRC020.R023(verregras/MRC020/MRC020.R023.md)
Perguntas frequentes
P: Por que não consigo confirmar/encerrar a ordem de carregamento?
R: Provavelmente existem notas fiscais pendentes de emissão nessa ordem e o parâmetro de faturamento (MFA001) está configurado para bloquear a confirmação nesse caso (ST_BLOQCONFIRMACAO), ou existe uma nota bloqueada/liberação pendente associada à ordem.
Fonte: source/MRC020/UMRC020.pas:844-889 (TfrmMRC020.btnSalvarClick)
P: Deu a mensagem 'Existem Notas Fiscais Emitidas para esta Ordem de Carregamento. Para Cancelar use o Programa MRC021!' — o que fazer?
R: O MRC020 só cancela ordens que ainda não têm nota fiscal emitida. Se já existe NF gerada para a ordem, o cancelamento precisa ser feito no módulo MRC021 (Cancelamento de Nota Fiscal/Ordem).
Fonte: source/MRC020/UMRC020.pas:1013-1022 (TfrmMRC020.btnExcluirClick)
P: Por que não consigo emitir a nota fiscal da ordem — apareceu 'A Ordem de Carregamento está Bloqueada para Faturamento'?
R: A ordem está com liberação de venda negada (ST_VENDALIBERADA = 'N') e o parâmetro de faturamento MFA001 (ST_BLOQUEIAORDEMCARREG) exige que essa liberação esteja ativa para faturar. É preciso liberar a venda da ordem antes de emitir a NF.
Fonte: source/MRC020/UMRC020.pas:1131-1139 (TfrmMRC020.btnAtualizarClick)
P: Por que a tela pede a nota de entrada da carcaça antes de emitir a nota do serviço de recapagem?
R: O parâmetro PARAMRECAP.STOBRIGAFATURACARCACA está ativo ('S') para a empresa: pneus da casa (carcaça de propriedade da recapadora) precisam ter uma nota de entrada vinculada ao pedido de compra da carcaça antes que o serviço de recapagem possa ser faturado para o cliente.
Fonte: source/MRC020/UMRC020.pas:1203-1242 (TfrmMRC020.btnAtualizarClick)
P: Deu a mensagem W-0153 'A Forma de Pagamento X não está Liberada para a Pessoa Y'. Como resolver?
R: Essa pessoa tem restrição cadastrada de formas de pagamento permitidas (tabela PESSOAFORMAPAGTO) e a forma escolhida não está entre elas. Escolha uma forma de pagamento liberada para o cliente, ou ajuste o cadastro de formas de pagamento da pessoa (TFA001).
Fonte: source/MRC020/UdmMRC020NFORDEM.pas:3846-3867 (TdmMRC020NFORDEM.tabNOTACD_FORMAPAGTOValidate)
P: Por que o sistema pede login e senha de um autorizador ao salvar a nota?
R: O cabeçalho da nota foi alterado (ex.: dados que normalmente vêm do pedido/ordem) e o parâmetro PARMFATUR.ST_ALTERACABECALHONOTA está configurado como 'A' (exige autorização). É preciso informar um usuário cadastrado como autorizador ativo.
Fonte: source/MRC020/UMRC020NFORDEM.pas:958-980 (TfrmMRC020NFORDEM.btnSalvarClick), source/MRC020/UMRC020AUTORIZACAO.pas:43-83 (TfrmAUTORIZACAO.btnConfirmarClick)
P: A nota fiscal 'já foi emitida' e a tela fechou sozinha ao clicar em Salvar de novo — perdi a nota?
R: Não. A nota já havia sido gravada e confirmada no banco anteriormente (por exemplo, uma falha de impressão deixou a tela aberta antes). Ao tentar salvar de novo, o sistema detecta que já existe registro com essa chave e evita duplicar, apenas avisando e fechando a tela. A nota já está emitida normalmente.
Fonte: source/MRC020/UMRC020NFORDEM.pas:839-868 (TfrmMRC020NFORDEM.btnSalvarClick)
P: Por que a quantidade/peso do item não pode ser menor que a do pedido?
R: Quando o produto tem mais de um local de estoque com controle habilitado, o sistema não permite informar na nota uma quantidade/peso menor do que a quantidade selecionada originalmente no pedido de recapagem, para não gerar diferença de saldo não rastreada.
Fonte: source/MRC020/UdmMRC020NFORDEM.pas:4581-4583 (TdmMRC020NFORDEM.tabITEMNOTAPS_ITEMNOTAValidate), source/MRC020/UdmMRC020NFORDEM.pas:4765-4770 (TdmMRC020NFORDEM.tabITEMNOTAQT_ITEMNOTAValidate)
P: Não consigo retirar um produto da ordem de carregamento — deu erro que está associado a uma nota fiscal válida.
R: O produto/pedido já tem uma nota fiscal válida gerada para ele nessa ordem. Para retirá-lo, é necessário cancelar a nota fiscal correspondente primeiro (fora do MRC020, via cancelamento de nota).
Fonte: source/MRC020/UMRC020Exclui.pas:119-126 (TfrmMRC020Exclui.btnConfirmarClick)
P: O CNPJ/CPF do motorista ou transportador não é aceito no embarque.
R: O sistema valida o dígito verificador do CNPJ/CPF informado manualmente no campo de identificação do motorista; se o dígito não confere, é preciso corrigir o número digitado.
Fonte: source/MRC020/UMRC020Embarque.pas:130-146 (TfrmMRC020Embarque.edtNR_CGCCPFExit)
Dúvidas em aberto (o código não responde)
- O efeito completo de PARMFATUR.ST_TABPRECO, ST_REPROCESSATABPRECO, ST_REPROCESSAVEND, ST_OBSCLIENTE, ST_OBSPEDIDONOTA e TP_OBSNOTA não foi totalmente rastreado nesta sessão (apenas alguns pontos de leitura foram vistos, ex.: TP_OBSNOTA em UMRC020SaldoLaudo.pas:334). — Esses parâmetros aparecem na lista do briefing mas o código que efetivamente aplica seu efeito completo está em rotinas de UdmMRC020NFORDEM.pas não lidas integralmente (arquivo tem 6917 linhas; apenas trechos foram cobertos).
- Por que o atendimento em lote do saldo do pedido (Atende_Pedido) só executa quando PARMFATUR.ST_ATENDECARREG = 'N', e não quando está vazio/outro valor? O nome do parâmetro sugere o contrário do que o código faz. — UdmMRC020.pas:725 'if (ParmFatur.Values[''ST_ATENDECARREG''] = ''N'') then' controla o atendimento em lote na confirmação da ordem; já em UMRC020NFORDEM.pas:1342 o atendimento por nota individual roda quando o parâmetro é 'S'. Não há comentário explicando o valor vazio/outros.
- PARAMRECAP.ST_VALIDAPEDIDOMESMOCLIENTE (lido em UMRC020.pas:1094-1098) não está na lista de parâmetros do briefing — deve ser incluído na documentação de parâmetros do módulo? — Controla se o sistema avisa sobre produtos/serviços pendentes do cliente fora da ordem de carregamento ao emitir NF.
- Qual o efeito exato dos parâmetros PARMFATUR.ST_FILTROPESSOA = 'T' vs 'S' vs outro valor sobre os tipos de pessoa aceitos na nota? — UdmMRC020NFORDEM.pas:3400-3413 diferencia 'S' (Cliente/Cliente-Fornecedor) de outro valor (Cliente/Vendedor/Cliente-Fornecedor), mas o valor 'T' (todos?) e outros não ficaram claros no trecho lido.