Pragiva — Tecnologia na prática

Movimento recusado por data no Protheus: fechamento do estoque e bloqueio de movimentos

O sistema recusa nota, requisição ou transferência com data antiga e mostra o aviso de fechamento. Veja qual data vale, quais rotinas param e quem libera a data.

Protheus Guia de processo 5 min de leitura

Assista o vídeo Ver o fluxograma

Nesta página6 seções

Resposta curta: o estoque tem uma data de corte. Qualquer movimento com data igual ou anterior a ela é recusado com o aviso de fechamento. A data de corte é a mais recente entre o último fechamento do estoque e a data de bloqueio de movimentos, e só quem administra o estoque ou a TI muda isso.

Antes de pedir liberação: confira se a data do movimento está certa. Na maioria dos casos o usuário digitou a data errada ou o sistema está com a data-base antiga.

Você tenta dar entrada numa nota, fazer uma requisição ou uma transferência e o sistema para com um aviso de fechamento. Nada está quebrado: o período já foi fechado e o Protheus protege os saldos e o custo daquele período.

Como a data de corte é decidida

Qual data o estoque usa como corte
simnãoÚltimo fechamento(virada de saldos)Qual é amais recente?Data de bloqueiode movimentosData de corteData do movimentoé igual ou anterior?Recusado:aviso de fechamentoMovimento aceito

Duas datas entram na conta: a do último fechamento (gravada quando o estoque fecha o mês) e a de bloqueio de movimentos (que a empresa pode adiantar para travar o período antes do fechamento). O sistema usa a maior das duas. A comparação é “igual ou anterior”: movimento no próprio dia do corte também é recusado, só o dia seguinte passa.

O que fazer, na ordem

  1. Confira a data do movimento. Veja a data da nota, da requisição ou da transferência e a data do sistema (a data-base, que aparece na barra da tela e pode ficar parada em um dia antigo se o Protheus ficou aberto desde ontem). Corrija se estiver errada. Isso resolve a maior parte dos casos.
  2. Se a data está certa e é do período fechado: o lançamento atrasado precisa de autorização. Procure quem cuida do estoque ou a TI e informe a data do movimento e a rotina em que parou.
  3. Quem libera decide se reabre o período ou se o lançamento entra com data de hoje, conforme a regra da empresa. Reabrir mexe em saldo e custo já fechados, então não é decisão do usuário da tela.
  4. Tente de novo depois da liberação, na mesma rotina.

Onde o bloqueio vale

Conferi nos programas padrão quais telas usam essa data de corte. Nelas, o aviso aparece ao informar a data ou ao confirmar:

Operação (como aparece no menu)Recusa pela data de corte
Documento de entrada (incluir, classificar, excluir)Sim
Pré-notaSó quando a empresa usa a data de recebimento para fechar (confira com a TI)
Faturamento: gerar nota de saídaSim
Faturamento: excluir nota de saídaSim, pela data de digitação da nota
Movimentos internos (requisição e devolução)Sim
Transferência entre armazéns, simples e múltiplaSim
Ordem de produção: apontamento e estornoSim
Endereçamento, liberação e estorno do controle de qualidade, inventário e outras rotinas de estoqueTambém usam a data de corte
Títulos a pagar e a receber (financeiro)Não usa esta data: tem data limite própria
Livros e lançamentos fiscaisNão usa esta data: tem data limite fiscal própria

Se a recusa vem de uma rotina fora desta lista, o motivo pode ser outro (data limite do financeiro ou do fiscal, por exemplo). Nesse caso o aviso costuma ser diferente do de fechamento; mostre a mensagem completa para a TI.

Erro comum: a nota é de hoje, mas o aviso aparece

A data que conta na entrada de nota é a data-base do sistema, não a data da emissão do fornecedor. Se a data-base está em dia fechado, a nota é recusada mesmo com emissão correta. Na exclusão de nota de saída vale a data em que ela foi digitada: nota digitada em período fechado não se exclui, mesmo que hoje seja outro mês.

Solução de problemas

SintomaCausa provávelQuem resolve
Aviso de fechamento ao incluir nota ou movimentoData-base ou data do movimento dentro do período fechadoUsuário corrige a data; se estiver certa, estoque/TI
Funcionava no mês passado e agora recusa lançamento antigoO estoque fechou o mês, ou a empresa adiantou a data de bloqueioEstoque/TI
Só uma filial recusaA data de corte pode ser diferente por filialTI
Recusa no dia do próprio corteA comparação inclui o dia da data de corteUsar o dia seguinte ou pedir liberação
Exclusão de nota de saída recusadaNota digitada em período fechadoEstoque/TI decide a regra de estorno

Para TI e consultor: onde ver isso no banco

As duas datas ficam na SX6, como parâmetros do sistema:

  • : data do último fechamento do estoque. É atualizada pela virada de saldos (a rotina grava a data informada ao final do processamento).
  • : data de bloqueio de movimentos. Quando preenchida e maior que MV_ULMES, ela passa a ser a data de corte. A rotina de recálculo do custo médio também a atualiza com a data do recálculo, quando está ligado.

A função padrão que entrega a data de corte devolve o maior valor entre MV_ULMES e MV_DBLQMOV (se MV_DBLQMOV não existir, vale MV_ULMES). As rotinas da tabela acima comparam a data do movimento com ela e recusam quando a data de corte é maior ou igual.

Dois outros parâmetros aparecem nessa história e mudam o resultado em pontos específicos:

  • : na inclusão de pré-nota, só com valor 2 o sistema compara a data de recebimento com a data de corte. Na classificação da nota, a data-base é sempre comparada; com valor 2, a data de recebimento da pré-nota também.
  • MV_CMDBLQV: liga a atualização automática de MV_DBLQMOV pelo recálculo do custo médio.

O financeiro tem outra trava, , que recusa movimento com data anterior a ela (aqui o dia da própria data passa, ao contrário do estoque). É um assunto à parte.

Para ver o que o seu ambiente tem hoje:

Confira no seu ambienteSQL
SELECT X6_FIL, X6_VAR, X6_TIPO, X6_DESCRIC, X6_CONTEUD
  FROM SX6010
 WHERE X6_VAR IN ('MV_ULMES', 'MV_DBLQMOV', 'MV_CMDBLQV', 'MV_DATAHOM', 'MV_DATAFIN')
   AND D_E_L_E_T_ = ' '
 ORDER BY X6_VAR, X6_FIL

A consulta mostra cadastro e conteúdo do seu ambiente; o valor de outro ambiente não vale como referência. Se houver linhas por filial (X6_FIL preenchido), a data de corte pode diferir entre elas. O conteúdo vem como data no formato AAAAMMDD. Alterar MV_ULMES ou MV_DBLQMOV à mão muda o corte de todas as rotinas acima: faça só com aprovação de quem responde pelo estoque e pelo custo.

Continue por aqui