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
- 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) - 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) - 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) - Confirmar a pergunta 'Deseja Cancelar...?' na caixa de diálogo. (MessageBox de confirmação) —
source/MEQ003/UMEQ003.pas:300-300 (TfrmMEQ003.btnExcluirClick) - 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
| Campo | Condição | Mensagem | Fonte |
|---|---|---|---|
| Número do Lançamento (NR_LANCAMENTO) | Aba 'Lançamento Avulso', ao clicar em Cancelar | O 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 Cancelar | O 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(verregras/MEQ003/MEQ003.R001.md)MEQ003.R002(verregras/MEQ003/MEQ003.R002.md)MEQ003.R003(verregras/MEQ003/MEQ003.R003.md)MEQ003.R004(verregras/MEQ003/MEQ003.R004.md)MEQ003.R005(verregras/MEQ003/MEQ003.R005.md)MEQ003.R006(verregras/MEQ003/MEQ003.R006.md)MEQ003.R007(verregras/MEQ003/MEQ003.R007.md)MEQ003.R008(verregras/MEQ003/MEQ003.R008.md)MEQ003.R009(verregras/MEQ003/MEQ003.R009.md)MEQ003.R010(verregras/MEQ003/MEQ003.R010.md)MEQ003.R011(verregras/MEQ003/MEQ003.R011.md)MEQ003.R012(verregras/MEQ003/MEQ003.R012.md)MEQ003.R013(verregras/MEQ003/MEQ003.R013.md)MEQ003.R014(verregras/MEQ003/MEQ003.R014.md)MEQ003.R015(verregras/MEQ003/MEQ003.R015.md)MEQ003.R016(verregras/MEQ003/MEQ003.R016.md)MEQ003.R017(verregras/MEQ003/MEQ003.R017.md)MEQ003.R018(verregras/MEQ003/MEQ003.R018.md)MEQ003.R019(verregras/MEQ003/MEQ003.R019.md)MEQ003.R020(verregras/MEQ003/MEQ003.R020.md)MEQ003.R021(verregras/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.