Pular para o conteúdo principal

MEQ003 — Cancelamento de Lançamentos (enriquecimento)

Menu: Estoque > Movimentações > Cancelamento de Lançamentos

Objetivo​

Permite cancelar um lançamento avulso de movimentação de estoque ou uma ordem de produção finalizada, revertendo os efeitos no saldo de estoque, custo e quantidades produzidas. A tela é acessada pelo menu ou chamada por outras telas de consulta (CEQ001, CEQ002, CEQ005) já com o lançamento/ordem pré-selecionado. Antes de efetivar, o sistema valida vínculos com nota fiscal, ordens de produção, romaneios, etapas de produção e bloqueios de processamento do JunsoftEstoque.

Fluxo principal​

  1. Acessar o menu Estoque > Movimentações > Cancelamento de Lançamentos (MEQ003), ou ser direcionado a partir de CEQ001, CEQ002 ou CEQ005. (Toolbar/Menu) — source/MEQ003/UMEQ003.pas:128-177 (iniciar)
  2. Escolher a aba correspondente: 'Lançamento Avulso' para cancelar um movimento isolado ou 'Ordem de Produção' para cancelar uma ordem/lote de produção. (Aba Lançamento Avulso / Ordem de Produção) — source/MEQ003/UMEQ003.pas:574-580 (TfrmMEQ003.PaginasChange)
  3. Informar o número do lançamento (avulso) ou o número da ordem/lote de produção e confirmar (Enter); o sistema valida e carrega os dados do movimento. (Campo Número Lançamento / Número Ordem de Produção) — source/MEQ003/UdmMEQ003.pas:93-183 (TdmMEQ003.tabEMPRESANR_LANCAMENTOValidate)
  4. Confirmar a pergunta 'Deseja Cancelar...?' na caixa de diálogo. (MessageBox de confirmação) — source/MEQ003/UMEQ003.pas:300-300 (TfrmMEQ003.btnExcluirClick)
  5. O sistema exibe mensagem de sucesso ('Cancelado com Sucesso') e limpa a tela para novo cancelamento; se aberta a partir de outra tela, fecha automaticamente. (MessageBox de confirmação final) — source/MEQ003/UMEQ003.pas:530-534 (TfrmMEQ003.btnExcluirClick)

Campos obrigatórios​

CampoCondiçãoMensagemFonte
Número do Lançamento (NR_LANCAMENTO)Aba 'Lançamento Avulso', ao clicar em CancelarO Número de Lançamento do Movimento no Estoque deve ser Informado!source/MEQ003/UMEQ003.pas:279-283 (TfrmMEQ003.btnExcluirClick)
Número da Ordem de Produção (NR_ORDEMPRODUCAO)Aba 'Ordem de Produção', ao clicar em CancelarO Número da Ordem de Produção deve ser Informado!source/MEQ003/UMEQ003.pas:369-373 (TfrmMEQ003.btnExcluirClick)
Empresa e Número de Lançamento (nível procedure)Sempre, checado internamente pela procedure ao processar qualquer cancelamentoÉ OBRIGATÓRIO INFORMAR A EMPRESA/O NÚMERO DE LANÇAMENTO PARA CANCELAR MOVIMENTOS NO ESTOQUE.Scripts/CANCELA_ESTOQUE.sql:50-59 (CANCELA_ESTOQUE)

Mensagens: causa e ação​

A ordem de produção está vinculada a uma ordem de produção de Recapadora. Para cancelar, utilize a tela de Ordens de Produção de Recapadora[MRC003]!​

Causa: A ordem informada está ligada a um pedido de pneu de recapadora (ORDEMPRODUCAORECAP/PEDIDOPNEU).

Ação: Cancelar a ordem pelo módulo MRC003.

Fonte: source/MEQ003/UdmMEQ003.pas:140-156 (TdmMEQ003.tabEMPRESANR_ORDEMPRODUCAOValidate)

A Ordem de Produção já está Cancelada!​

Causa: A ordem informada já possui ST_ORDEMPRODUCAO = 'C'.

Ação: Nenhuma ação necessária; a ordem já foi cancelada anteriormente.

Fonte: source/MEQ003/UdmMEQ003.pas:151-154 (TdmMEQ003.tabEMPRESANR_ORDEMPRODUCAOValidate)

A Ordem de Produção Nº %s (Lote: %s). Está vinculada à uma Etapa de Produção! Verifique [MEQ070].​

Causa: Existe execução de etapa de produção ativa (ou ordem pai não cancelada) ligada a essa ordem.

Ação: Encerrar/cancelar a etapa de produção pelo módulo MEQ070 antes de cancelar a ordem.

Fonte: source/MEQ003/UMEQ003.pas:385-428 (TfrmMEQ003.btnExcluirClick)

A Ordem de Produção não está Cadastrada!​

Causa: Não foi encontrada ordem de produção com esse número na empresa logada.

Ação: Conferir o número digitado e a empresa; usar F9 para pesquisar ordens válidas.

Fonte: source/MEQ003/UdmMEQ003.pas:151-181 (TdmMEQ003.tabEMPRESANR_ORDEMPRODUCAOValidate)

Este Lote de Produção %s está associado a um Romaneio [MPD049] Para cancelar esta Ordem, cancele o Romaneio Nº %s. [CPD009]​

Causa: O lote de produção da ordem tem um romaneio de grão ativo vinculado.

Ação: Cancelar o romaneio indicado (consulta em MPD049, cancelamento em CPD009) e tentar novamente.

Fonte: source/MEQ003/UMEQ003.pas:587-613 (TfrmMEQ003.validaLoteRomaneio)

Está ordem produção é uma ordem de produção de curtume, não pode ser cancelada. Verifique!​

Causa: A ordem consta na tabela PRODUCAOCORTUME (produção de curtume).

Ação: Buscar a tela apropriada para cancelamento de ordens de curtume; esta tela não trata esse tipo de ordem.

Fonte: source/MEQ003/UMEQ003.pas:375-383 (TfrmMEQ003.btnExcluirClick)

Não é permitido cancelar um movimento de Transferência de Estoque na Empresa de Destino! Para cancelar esta movimentação, cancele a movimentação de Origem( Empresa: %s; Lançamento: %s).​

Causa: O lançamento é a entrada gerada por uma transferência de estoque recebida de outra empresa.

Ação: Acessar a empresa de origem indicada e cancelar o lançamento de saída lá; o sistema propaga o cancelamento para o destino automaticamente.

Fonte: source/MEQ003/UMEQ003.pas:285-297 (TfrmMEQ003.btnExcluirClick)

O Lançamento %s pertence a outra Empresa Empresa Atual.: %s Empresa do Lançamento.: %s​

Causa: A tela foi aberta a partir de outra consulta (ex.: CEQ005) com um lançamento de empresa diferente da empresa logada na sessão.

Ação: Trocar de empresa na sessão do ERP para a empresa indicada e reabrir a consulta.

Fonte: source/MEQ003/UMEQ003.pas:172-176 (iniciar)

O Lançamento está Ligado a Nota Fiscal Nº.: %s e não pode ser Cancelado por este Programa!​

Causa: O lançamento de estoque tem NR_LANCTONOTA preenchido, ou seja, foi gerado por uma nota fiscal.

Ação: Cancelar a nota fiscal correspondente no módulo de faturamento/notas fiscais.

Fonte: source/MEQ003/UdmMEQ003.pas:107-116 (TdmMEQ003.tabEMPRESANR_LANCAMENTOValidate)

O Lançamento está Ligado a Ordem de Produção Nº.: %s e não pode ser Cancelado Avulso!​

Causa: O lançamento pertence a uma ordem de produção que ainda não foi cancelada.

Ação: Cancelar a ordem de produção na aba 'Ordem de Produção' em vez de tentar cancelar o lançamento avulso.

Fonte: source/MEQ003/UdmMEQ003.pas:107-118 (TdmMEQ003.tabEMPRESANR_LANCAMENTOValidate)

O Lançamento no Estoque não está Cadastrado!​

Causa: Não existe lançamento com esse número na empresa logada.

Ação: Conferir o número informado e a empresa logada; consultar em CEQ005.

Fonte: source/MEQ003/UdmMEQ003.pas:98-129 (TdmMEQ003.tabEMPRESANR_LANCAMENTOValidate)

O Lote de Produção não está Cadastrado ou não foi Fechado!​

Causa: Não há ordem de produção com esse lote e status 'Fechado' (ST_ORDEMPRODUCAO='V') na empresa.

Ação: Fechar/finalizar o lote de produção antes de tentar cancelar, ou conferir o número informado.

Fonte: source/MEQ003/UdmMEQ003.pas:194-226 (TdmMEQ003.tabEMPRESANR_LOTEPRODUCAOValidate)

O Movimento de Estoque da Ordem de Produção '%s' não foi processada. Verifique se o JunsoftEstoque esta aberto e tente novamente em alguns instantes!​

Causa: Há movimento de estoque dessa ordem marcado como bloqueado (ST_CANCELAMENTO='B') aguardando o processo JunsoftEstoque.

Ação: Aguardar e tentar novamente; se persistir, verificar com o TI se o serviço JunsoftEstoque está ativo.

Fonte: source/MEQ003/UdmMEQ003.pas:159-167 (TdmMEQ003.tabEMPRESANR_ORDEMPRODUCAOValidate)

O Movimento de Estoque do Lote de Produção '%s' não foi processado. Verifique se o JunsoftEstoque esta aberto e tente novamente em alguns instantes!​

Causa: Movimento de estoque do lote está marcado como bloqueado (ST_CANCELAMENTO='B') aguardando o JunsoftEstoque.

Ação: Aguardar e tentar novamente; verificar se o serviço JunsoftEstoque está em execução.

Fonte: source/MEQ003/UdmMEQ003.pas:205-215 (TdmMEQ003.tabEMPRESANR_LOTEPRODUCAOValidate)

O Número da Ordem de Produção deve ser Informado!​

Causa: O usuário clicou em Cancelar sem ter informado uma ordem de produção válida na aba.

Ação: Digitar o número da ordem de produção e pressionar Enter para validar antes de cancelar.

Fonte: source/MEQ003/UMEQ003.pas:369-373 (TfrmMEQ003.btnExcluirClick)

O Número de Lançamento do Movimento no Estoque deve ser Informado!​

Causa: O usuário clicou em Cancelar sem ter informado um lançamento válido na aba Avulso.

Ação: Digitar o número do lançamento e pressionar Enter para validar antes de cancelar.

Fonte: source/MEQ003/UMEQ003.pas:279-283 (TfrmMEQ003.btnExcluirClick)

Regras de negócio​

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

Perguntas frequentes​

P: Por que o cancelamento da ordem de produção pede para cancelar o romaneio primeiro? R: Porque o lote de produção da ordem está vinculado a um Romaneio de Grão (MPD049) ainda ativo; o romaneio precisa ser cancelado antes (tela CPD009). Fonte: source/MEQ003/UMEQ003.pas:587-613 (TfrmMEQ003.validaLoteRomaneio)

P: Por que aparece 'está vinculada a uma Etapa de Produção! Verifique [MEQ070]'? R: Há execução de etapa de produção ativa (ou ordem-mãe de produção parcial ainda não finalizada) ligada a essa ordem; é preciso resolver isso na MEQ070 antes de cancelar. Fonte: source/MEQ003/UMEQ003.pas:385-428 (TfrmMEQ003.btnExcluirClick)

P: Por que não consigo cancelar um lançamento de transferência de estoque? R: Se o lançamento for a entrada recebida em outra empresa (transferência), o sistema exige que o cancelamento seja feito na empresa de origem, pelo lançamento de saída. Fonte: source/MEQ003/UMEQ003.pas:285-297 (TfrmMEQ003.btnExcluirClick)

P: A mensagem pede para verificar se o JunsoftEstoque está aberto. O que fazer? R: O movimento de estoque está marcado como bloqueado, aguardando processamento por um serviço externo (JunsoftEstoque); aguarde alguns instantes e tente novamente ou acione o TI se persistir. Fonte: source/MEQ003/UdmMEQ003.pas:159-167 (TdmMEQ003.tabEMPRESANR_ORDEMPRODUCAOValidate)

P: Por que o cancelamento não é imediato mesmo sem mensagem de erro? R: Se a empresa tiver o parâmetro de bloqueio de estoque ativado (PARMESTOQUE.ST_BLOQUEIO), a procedure apenas marca o lançamento como bloqueado para processamento posterior, em vez de cancelar na hora. Fonte: Scripts/CANCELA_ESTOQUE.sql:215-223 (CANCELA_ESTOQUE)

P: Por que a mensagem diz que o lançamento está associado a uma leira e pede para usar a MEQ066? R: Lançamentos originados de manutenção de leira só podem ser cancelados pelo módulo MEQ066; a MEQ003 recusa esse cancelamento por regra da procedure CANCELA_ESTOQUE. Fonte: Scripts/CANCELA_ESTOQUE.sql:103-116 (CANCELA_ESTOQUE)

P: Por que não consigo cancelar um lançamento vinculado a uma nota fiscal? R: Lançamentos gerados por nota fiscal só podem ser desfeitos pelo cancelamento da própria nota no módulo de faturamento, não por esta tela. Fonte: source/MEQ003/UdmMEQ003.pas:107-116 (TdmMEQ003.tabEMPRESANR_LANCAMENTOValidate)

P: Deu erro dizendo que o produto não pode ter saldo negativo. O que fazer? R: O cancelamento faria o saldo do item no local de armazenagem ficar negativo, e o cadastro do local não permite estoque negativo; regularize o saldo do item/local antes de cancelar. Fonte: Scripts/CANCELA_ESTOQUE.sql:172-212 (CANCELA_ESTOQUE)

P: Por que a ordem de produção de curtume não pode ser cancelada aqui? R: Ordens registradas em PRODUCAOCORTUME não são tratadas por esta tela; é necessário usar o processo/tela específico de curtume. Fonte: source/MEQ003/UMEQ003.pas:375-383 (TfrmMEQ003.btnExcluirClick)

P: Ao cancelar uma ordem de produção parcial, o que acontece com a ordem original? R: Se a ordem de origem ainda estiver aberta ('N'), o sistema devolve para ela a quantidade de matéria-prima consumida e a quantidade produzida pela ordem cancelada, e exibe aviso de que a origem foi atualizada. Fonte: source/MEQ003/UMEQ003.pas:462-504 (TfrmMEQ003.btnExcluirClick)

P: Não consigo ver os botões Novo e Cancelar na tela. Por quê? R: O usuário tem acesso somente de consulta a este programa (tpAcesso=2); esses botões ficam ocultos por perfil de acesso. Fonte: source/MEQ003/UMEQ003.pas:143-148 (iniciar)

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

  • O que determina o parâmetro ST_BLOQUEIO de PARMESTOQUE (bloqueio do JunsoftEstoque) e quanto tempo leva para o processo externo liberar/processar o lançamento marcado como 'B' ou 'C'? — CANCELA_ESTOQUE.sql:215-223 apenas marca o movimento como bloqueado ('C') para processamento posterior por um processo externo (JunsoftEstoque) quando o parâmetro está ativo; o código não mostra onde/como esse processo roda.
  • Por que o cancelamento de lançamento associado a leira só é permitido a partir do módulo MEQ066 especificamente? — CANCELA_ESTOQUE.sql:103-116 verifica o CD_MODULO da sessão atual; não há explicação de negócio no código sobre por que só a MEQ066 pode fazer esse cancelamento.
  • Existem outros cenários (além de Romaneio MPD049 e Etapa de Produção MEQ070) que bloqueiam o cancelamento de uma ordem de produção mas não estão nesta tela? — Não localizado no código lido; apenas as validações em UMEQ003.pas:375-431 foram identificadas.