MEQ012.R001 — Fechamento bloqueado se ordem tiver etapa em aberto (MEQ070)
Módulo: MEQ012 · Menu: Produção/Industrialização > Movimentações > Fechamento de Ordem de Produção Classificação: intencional · Relevância: alta
Regra
Ao clicar em Fechar Ordem ou Fechar Lote, o sistema verifica EXECUTAETAPAPRODUCAO; se existir etapa com status 'I' (em aberto) a operação é interrompida.
Quando dispara
Usuário clica em Fechar Ordem (F11) ou Fechar Lote (F3) para uma ordem/lote vinculado a etapas de produção do módulo MEQ070.
Mensagem exibida
A Ordem de Produção %s possui etapa em aberto. Verifique! [MEQ070] / O Lote %s possui etapa em aberto. Verifique! [MEQ070]
Como o usuário resolve
Encerrar/executar a etapa pendente na tela MEQ070 antes de tentar o fechamento no MEQ012.
Evidência
| Arquivo | Linhas | Rotina | O que o trecho faz |
|---|---|---|---|
source/MEQ012/UMEQ012.pas | 1216-1225 | TfrmMEQ012.btnFecharClick | Consulta ST_EXECUTAETAPAPRODUCAO e bloqueia se 'I' |
source/MEQ012/UMEQ012.pas | 1796-1805 | TfrmMEQ012.btnFecharLoteClick | Mesma checagem para NR_LOTE |
source/MEQ012/UMEQ012.pas:1216
Consulta :=
'SELECT ' + #10 +
' E.ST_EXECUTAETAPAPRODUCAO ' + #10 +
'FROM EXECUTAETAPAPRODUCAO E ' + #10 +
'WHERE E.CD_EMPRESA = ' + Nulo(dmMEQ012.tabPRODUCAOCD_EMPRESA.AsString,'I') +
' AND E.NR_ORDEMPRODUCAO = ' + Nulo(dmMEQ012.tabPRODUCAONR_ORDEMPRODUCAO.AsString,'I');
Resultado := ExecutaConsulta(dmMEQ012.transaction, Consulta);
if (Resultado[0] = 'I') then
raise JException.Create('E-0000',['A Ordem de Produção ' + dmMEQ012.tabPRODUCAONR_ORDEMPRODUCAO.AsString + ' possui etapa em aberto. Verifique! [MEQ070]']);
source/MEQ012/UMEQ012.pas:1796
Consulta :=
'SELECT ' + #10 +
' E.ST_EXECUTAETAPAPRODUCAO ' + #10 +
'FROM EXECUTAETAPAPRODUCAO E ' + #10 +
'WHERE E.CD_EMPRESA = ' + Nulo(dmMEQ012.tabPRODUCAOCD_EMPRESA.AsString,'I') +
' AND E.NR_LOTE = ' + Nulo(dmMEQ012.tabPRODUCAONR_LOTEPRODUCAO.AsString,'I');
Resultado := ExecutaConsulta(dmMEQ012.transaction, Consulta);
if (Resultado[0] = 'I') then
raise JException.Create('E-0000',['O Lote ' + dmMEQ012.tabEmpresaNR_LOTEPRODUCAO.AsString + ' possui etapa em aberto. Verifique! [MEQ070]']);