MEQ012 — Fechamento de Ordem de Produção (enriquecimento)
Menu: Produção/Industrialização > Movimentações > Fechamento de Ordem de Produção
Objetivo
A tela MEQ012 permite consultar uma Ordem de Produção (ou Lote de Produção) aberta pela MEQ011 e executar seu fechamento, dando entrada no produto acabado e saída das matérias-primas via procedure GERA_ORDEMPRODUCAO. Também permite ajustar dados da ordem antes de fechar (quantidade, componentes, locais de armazenagem, lotes/grade/serial), cancelar ordens ou lotes inteiros, adicionar produtos acabados a um lote e registrar tarefas/análises de controle de qualidade da produção.
Fluxo principal
- Informar Empresa e Nº de Ordem, Nº de Lote ou Nº de Pedido para localizar a(s) ordem(ns) de produção em aberto. (Grupo 'Consulta Ordem') —
source/MEQ012/UdmMEQ012.pas:1136-1212 (TdmMEQ012.tabEmpresaNR_ORDEMPRODUCAOValidate) - Conferir/ajustar dados do cabeçalho da ordem (datas, quantidade produzida, rendimento, local de armazenagem do produto acabado). (Grupo 'Dados da Ordem de Produção') —
source/MEQ012/UdmMEQ012.pas:569-635 (TdmMEQ012.tabPRODUCAOBeforePost) - Conferir/ajustar os produtos componentes (matérias-primas), quantidades, locais e eventual item substituído. (Grupo 'Produtos Componentes') —
source/MEQ012/UdmMEQ012.pas:637-706 (TdmMEQ012.tabPRODUTOBeforePost) - Se houver lote/semente ou grade, distribuir a quantidade nos lotes (botão Alterar Lote) ou na grade (F10). (Botão 'Alterar Lote Produto' / grade (F10)) —
source/MEQ012/UMEQ012.pas:2256-2310 (TfrmMEQ012.btnLoteClick) - Se o parâmetro de análise final estiver ativo, preencher os resultados das análises em 'Dados Análise'. (Botão 'Dados Análise') —
source/MEQ012/UMEQ012.pas:444-508 (TfrmMEQ012.btnDadosAnaliseClick) - O sistema executa GERA_ORDEMPRODUCAO (baixa/entrada de estoque), grava tarefas/lotes/seriais e confirma a transação, exibindo mensagem de sucesso. (Processamento interno) —
source/MEQ012/UMEQ012.pas:1544-1577 (TfrmMEQ012.btnFecharClick)
Campos obrigatórios
| Campo | Condição | Mensagem | Fonte |
|---|---|---|---|
| CD_ITEM (Produto da ordem) | Sempre, ao salvar o cabeçalho da ordem. | É Obrigatório Informar o Produto da Produção! | source/MEQ012/UdmMEQ012.pas:606-610 (TdmMEQ012.tabPRODUCAOBeforePost) |
| NR_VERSAO (Versão da Ficha de Produção) | Sempre, ao salvar o cabeçalho. | É Obrigatório Informar a Versão da Ficha de Produção! | source/MEQ012/UdmMEQ012.pas:612-616 (TdmMEQ012.tabPRODUCAOBeforePost) |
| CD_TIPOLOCAL / CD_LOCAL (cabeçalho) | Sempre, ao salvar o cabeçalho. | É Obrigatório Informar o Tipo de Local do Produto da Ficha de Produção! / o Local de Armazenagem do Produto da Ficha de Produção! | source/MEQ012/UdmMEQ012.pas:618-628 (TdmMEQ012.tabPRODUCAOBeforePost) |
| DT_INICIOPRODUCAO / QT_PRODUZIDA (cabeçalho) | Sempre, ao salvar o cabeçalho. | É Obrigatório Informar a Data de Início da Produção! / a Quantidade da Produção! | source/MEQ012/UdmMEQ012.pas:599-634 (TdmMEQ012.tabPRODUCAOBeforePost) |
| CD_MATERIAPRIMA (componente) | Sempre, ao salvar uma linha de componente. | É Obrigatório Informar o Produto Componente da Produção! | source/MEQ012/UdmMEQ012.pas:643-647 (TdmMEQ012.tabPRODUTOBeforePost) |
| QT_ITEM ou PS_ITEM (Quantidade ou Peso do componente) | QT_ITEM obrigatório se TP_UNIDADE='Q'; PS_ITEM obrigatório se TP_UNIDADE='P' e houver unidade alternativa. | É Obrigatório Informar a Quantidade do Produto! / o Peso do Produto! | source/MEQ012/UdmMEQ012.pas:649-659 (TdmMEQ012.tabPRODUTOBeforePost) |
| CD_TIPOLOCAL / CD_LOCAL (componente) | Obrigatório quando TP_DESPESA do componente for 'M' (movimenta estoque). | É Obrigatório Informar o Tipo de Local do Produto! / o Local de Armazenagem do Produto! | source/MEQ012/UdmMEQ012.pas:661-674 (TdmMEQ012.tabPRODUTOBeforePost) |
| QT_SUBSTITUIDO | Obrigatório e deve ser maior que zero quando CD_ITEMSUBSTITUIDO estiver preenchido. | É Obrigatório Informar a Quantidade do Item Substituído! / A Quantidade do Item Substituído deve ser Maior que Zero! | source/MEQ012/UdmMEQ012.pas:676-688 (TdmMEQ012.tabPRODUTOBeforePost) |
| DS_TAREFA (Descrição da Tarefa/Observação) | Sempre, ao salvar uma linha na aba de Tarefas. | É Obrigatório informar a Descrição da Tarefa! | source/MEQ012/UdmMEQ012.pas:1222-1226 (TdmMEQ012.tabTarefaBeforePost) |
| DS_ALTERACAO (Motivo da Alteração) | Sempre que a janela de Motivo de Alteração for exibida (ordem alterada e não conferida, com parâmetro ativo). | É Obrigatório Informar o Motivo da Alteração! | source/MEQ012/UfrmMOTIVOALTERACAO.pas:49-57 (TfrmMOTIVOALTERACAO.btnOKClick) |
Mensagens: causa e ação
C-1552
Causa: Usuário clicou em Cancelar Ordem (btnExcluir) com uma ordem ativa aberta.
Ação: Confirmar se realmente deseja cancelar; o sistema ainda valida etapas em aberto (MEQ070) antes de efetivar.
Fonte: source/MEQ012/UMEQ012.pas:540-541 (TfrmMEQ012.btnExcluirClick)
C-1555
Causa: Usuário clicou em Fechar Ordem (F11) após passar pelas validações de etapa e conferência.
Ação: Confirmar para efetivar o fechamento (baixa de estoque via GERA_ORDEMPRODUCAO).
Fonte: source/MEQ012/UMEQ012.pas:1241-1244 (TfrmMEQ012.btnFecharClick)
C-1556
Causa: Usuário clicou em Fechar Lote (F3) após passar pelas mesmas validações, para fechar todas as ordens do lote de uma vez.
Ação: Confirmar para efetivar o fechamento de todas as ordens do lote.
Fonte: source/MEQ012/UMEQ012.pas:1821-1822 (TfrmMEQ012.btnFecharLoteClick)
C-1558
Causa: Usuário clicou em Cancelar Lote.
Ação: Confirmar; o sistema valida cada ordem do lote quanto a status e etapas antes de cancelar.
Fonte: source/MEQ012/UMEQ012.pas:2321-2322 (TfrmMEQ012.btnExcluiLoteClick)
I-1553
Causa: Cancelamento de ordem individual concluído com sucesso (ST_ORDEMPRODUCAO alterado para 'C' e commitado).
Ação: Nenhuma ação necessária, apenas confirmação.
Fonte: source/MEQ012/UMEQ012.pas:588-590 (TfrmMEQ012.btnExcluirClick)
I-1557
Causa: Fechamento por lote concluído: todas as ordens do lote foram processadas via GERA_ORDEMPRODUCAO e commitadas.
Ação: Nenhuma ação necessária, apenas confirmação.
Fonte: source/MEQ012/UMEQ012.pas:2214-2240 (TfrmMEQ012.btnFecharLoteClick)
I-1559
Causa: Cancelamento de lote concluído com sucesso.
Ação: Nenhuma ação necessária, apenas confirmação.
Fonte: source/MEQ012/UMEQ012.pas:2382-2383 (TfrmMEQ012.btnExcluiLoteClick)
W-1560
Causa: Na tela de seleção de seriais (entrada), o usuário digitou um número de série que já está cadastrado para o mesmo item/empresa (ITEMSERIAL).
Ação: Informar um número de série diferente, ainda não utilizado para este item.
Fonte: source/MEQ012/UITEMSERIAL.pas:136-148 (TfrmSERIAL.btnOKClick)
W-1561
Causa: Usuário confirmou a tela de seriais sem marcar (saída) ou informar (entrada) nenhum serial para um item com controle de serial.
Ação: Selecionar/informar ao menos um serial antes de confirmar.
Fonte: source/MEQ012/UITEMSERIAL.pas:171-203 (TfrmSERIAL.btnOKClick)
W-1562
Causa: A quantidade de seriais marcados/informados não bate com a quantidade movimentada em estoque para o item (entrada ou saída).
Ação: Ajustar a seleção de seriais até que a contagem seja igual à quantidade exigida (exibida na própria mensagem).
Fonte: source/MEQ012/UITEMSERIAL.pas:177-208 (TfrmSERIAL.btnOKClick)
W-1791
Causa: Existem tarefas de análise (TAREFAPRODUCAO/TAREFAITEM tipo 'A') cadastradas para o produto, mas o campo Resultado (DS_RESULTADO) de ao menos uma delas está em branco.
Ação: Abrir 'Dados Análise' e preencher o resultado de cada análise pendente antes de fechar a ordem.
Fonte: source/MEQ012/UdmMEQ012.pas:413-426 (Preenche_Tarefa)
W-1792
Causa: O parâmetro ST_DADOSANALISEFINALPROD está ativo, mas o produto não possui nenhuma tarefa de análise cadastrada na Ficha de Produção (TEQ004).
Ação: Cadastrar as tarefas de análise do produto na tela TEQ004, ou verificar se o parâmetro deveria estar desligado para este produto.
Fonte: source/MEQ012/UMEQ012.pas:476-481 (TfrmMEQ012.btnDadosAnaliseClick)
W-1793
Causa: Usuário fechou a tela de Tarefas/Análises sem confirmar com OK (cancelou a janela).
Ação: Reabrir 'Dados Análise' e confirmar com OK para poder prosseguir com o fechamento.
Fonte: source/MEQ012/UMEQ012.pas:499-502 (TfrmMEQ012.btnDadosAnaliseClick)
Regras de negócio
MEQ012.R001(verregras/MEQ012/MEQ012.R001.md)MEQ012.R002(verregras/MEQ012/MEQ012.R002.md)MEQ012.R003(verregras/MEQ012/MEQ012.R003.md)MEQ012.R004(verregras/MEQ012/MEQ012.R004.md)MEQ012.R005(verregras/MEQ012/MEQ012.R005.md)MEQ012.R006(verregras/MEQ012/MEQ012.R006.md)MEQ012.R007(verregras/MEQ012/MEQ012.R007.md)MEQ012.R008(verregras/MEQ012/MEQ012.R008.md)MEQ012.R009(verregras/MEQ012/MEQ012.R009.md)MEQ012.R010(verregras/MEQ012/MEQ012.R010.md)MEQ012.R011(verregras/MEQ012/MEQ012.R011.md)MEQ012.R012(verregras/MEQ012/MEQ012.R012.md)MEQ012.R013(verregras/MEQ012/MEQ012.R013.md)MEQ012.R014(verregras/MEQ012/MEQ012.R014.md)MEQ012.R015(verregras/MEQ012/MEQ012.R015.md)MEQ012.R016(verregras/MEQ012/MEQ012.R016.md)MEQ012.R017(verregras/MEQ012/MEQ012.R017.md)MEQ012.R018(verregras/MEQ012/MEQ012.R018.md)MEQ012.R019(verregras/MEQ012/MEQ012.R019.md)MEQ012.R020(verregras/MEQ012/MEQ012.R020.md)MEQ012.R021(verregras/MEQ012/MEQ012.R021.md)MEQ012.R022(verregras/MEQ012/MEQ012.R022.md)
Perguntas frequentes
P: Por que não consigo fechar a Ordem de Produção mesmo confirmando?
R: Provavelmente há uma etapa de produção em aberto vinculada (MEQ070) ou, se o parâmetro de conferência estiver ativo, a ordem ainda não foi conferida na MEQ072.
Fonte: source/MEQ012/UMEQ012.pas:1216-1239 (TfrmMEQ012.btnFecharClick)
P: Deu a mensagem 'A Ordem de Produção não pode ser fechada porque está Cancelada/Fechada'.
R: A ordem já teve seu status alterado para Fechada (V) ou Cancelada (C) por outra operação; não é possível fechá-la ou cancelá-la de novo — é preciso abrir uma nova ordem na MEQ011 se ainda houver produção pendente.
Fonte: source/MEQ012/UMEQ012.pas:1251-1260 (TfrmMEQ012.btnFecharClick)
P: Por que apareceu a tela pedindo o 'Motivo da Alteração'?
R: O parâmetro de conferência de ordem de produção está ativo e a ordem foi alterada antes de ser conferida; o sistema exige o registro do motivo e do usuário responsável para auditoria.
Fonte: source/MEQ012/UMEQ012.pas:2667-2719 (TfrmMEQ012.InformaMotivoAltercao)
P: Deu a mensagem de estoque insuficiente para o componente ao salvar.
R: O saldo disponível do item no local (considerando comprometido ou não, conforme o item) ficaria negativo com a quantidade informada; dependendo do parâmetro TP_VALIDACAOESTNEG, o sistema bloqueia ou apenas pergunta se deseja continuar.
Fonte: source/MEQ012/UdmMEQ012.pas:1519-1595 (TdmMEQ012.ValidaEstoque)
P: Por que sou obrigado a informar seriais ao fechar a ordem?
R: O produto acabado ou algum componente tem controle de série (ITEM.ST_SERIAL='S'); o sistema exige selecionar/informar os seriais correspondentes à movimentação de estoque de entrada ou saída gerada pelo fechamento.
Fonte: source/MEQ012/UdmMEQ012.pas:449-533 (CheckItemSerial)
P: Deu a mensagem sobre análises pendentes sem valores informados.
R: O produto tem tarefas de análise cadastradas na Ficha de Produção (TEQ004) e ao menos uma não teve o resultado preenchido; é preciso abrir 'Dados Análise' e completar todos os resultados antes de fechar.
Fonte: source/MEQ012/UdmMEQ012.pas:413-426 (Preenche_Tarefa)
P: Não consigo alterar os componentes da ordem, a grade está bloqueada.
R: A ordem já foi conferida (ST_CONFERIDO='S' na MEQ072); enquanto conferida, a MEQ012 não permite editar os produtos componentes.
Fonte: source/MEQ012/UMEQ012.pas:836-856 (TfrmMEQ012.grpPRODUTOSEnter)
P: Por que não consigo cancelar a Ordem/Lote?
R: A ordem está vinculada a uma etapa de produção da MEQ070 ainda não cancelada, ou já está com status Fechada/Cancelada — nesses casos o cancelamento é bloqueado.
Fonte: source/MEQ012/UMEQ012.pas:561-579 (TfrmMEQ012.btnExcluirClick)
P: A etiqueta não é impressa automaticamente ao fechar a ordem.
R: Verificar se o parâmetro ST_IMPRIMEETIQUETA está ligado em PARMESTOQUE e se há um layout configurado em PARMFATUR.CD_LAYETIQUETA; sem os dois, a impressão automática não ocorre.
Fonte: source/MEQ012/UMEQ012.pas:1601-1605 (TfrmMEQ012.btnFecharClick)
P: Por que o sistema pediu para distribuir Lote ou Grade antes de fechar?
R: O produto (acabado ou componente) tem controle de rastreabilidade por lote (semente) ou por grade, e a quantidade total lançada nos lotes/grade não bate com a quantidade produzida/consumida atual; é necessário refazer a distribuição.
Fonte: source/MEQ012/UMEQ012.pas:1379-1394 (TfrmMEQ012.btnFecharClick)
P: Não consigo adicionar um novo Produto Acabado ao lote.
R: É preciso ter um Nº de Lote de Produção informado na tela antes de usar o botão 'Adc. Prod. Acabado'; além disso, o mesmo item não pode já ser produto final de outra ordem do lote.
Fonte: source/MEQ012/UMEQ012.pas:2488-2501 (TfrmMEQ012.btnAdcprodClick)
Dúvidas em aberto (o código não responde)
- Qual é o efeito exato de cada valor do parâmetro PARMESTOQUE.TP_VALIDACAOESTNEG além de 'B' (bloqueia) e 'A' (avisa)? Existe um terceiro valor que não valida? — O código só trata explicitamente 'B' e 'A' em TdmMEQ012.ValidaEstoque (source/MEQ012/UdmMEQ012.pas:1558-1585); não há tratamento de outro valor/branco visível neste módulo.
- O que exatamente o parâmetro PARMESTOQUE.ST_PRODUCAOUNIDALT controla além de exibir os campos de quantidade alternativa na tela? — Só encontrado o uso em source/MEQ012/UdmMEQ012.pas:1185-1191, que apenas mostra/habilita os campos QT_ALTERNATIVA/SG_UNIDALT; não fica claro se afeta o cálculo de estoque em outro módulo.
- Quais valores válidos existem para PARMESTOQUE.ST_DADOSANALISEFINALPROD além de 'S' e 'N', e o que ocorre num valor vazio? — O código em source/MEQ012/UdmMEQ012.pas:352 e UMEQ012.pas:255 trata apenas a comparação com 'S'/'N'.