Dúvida
Qual o roteiro e maneira para fazer o Fechamento do Período do Estoque? Quais as finalidades dos parâmetros MV_ULMES e MV_DBLQMOV neste Processo?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - Estoque/Custos - Todas as versões.
Solução
Informação importante A partir da release 12.1.33 foi implementada uma nova rotina - Acompanha Custos (MATA038) - que visa centralizar os processos obrigatórios contidos nessa FAQ: Recálculo do Custo Médio (MATA330), Contabilização do Custo Médio (MATA331 - se empresa contabiliza) e Virada de Saldos (MATA280 - esta última descontinuada para uso à parte). Seção de Artigos da rotina Acompanha Custos - MATA038 - Clique Aqui
Obs: Todas as demais orientações sobre os processamentos opcionais e avaliação de custo contidas nessa documentação permanecem as mesmas. |
Esta documentação tem por objetivo um simples detalhamento dos processos de fechamento.
O ponto de partida para o fechamento de período é o parâmetro MV_ULMES, este parâmetro é alimentado automaticamente pelo sistema de forma que não deve ser manipulado manualmente, a não ser em casos muito específicos como ao iniciar a utilizar as rotinas de fechamento já que o conteúdo padrão deste parâmetro no sistema é “20070101”, também é aconselhável utilizar o parâmetro MV_DBLQMOV para bloquear movimentações no período que se está efetuando o fechamento já que movimentações durante as validações podem gerar inconsistência nos saldos iniciais do período seguinte, ao contrário do parâmetro MV_ULMES que não deve ser manipulado o parâmetro MV_DBLQMOV deve ser alterado conforme documentação abaixo.
MP - SIGAEST - Como realizar o bloqueio de movimentações no estoque?
Cálculo do custo das notas de entrada
O cálculo do custo das notas de entrada no processo de fechamento é opcional e a critério do cliente executar ou não.
A rotina refaz do custo de entrada tem por objetivo fazer o cálculo do custo baseado nos impostos recuperáveis (ICMS, IPI, PIS/COFINS, despesas etc.).
Abaixo a documentação referente ao custo de entrada.
MP - SIGAEST - Custo de entrada (MATA190) - Conceito e Exemplos
Processo de inventário
O processo de inventário também é opcional e poderá ser feito quando o cliente tiver a necessidade de verificar o pareamento entre o estoque físico e o estoque constante no sistema, detalhes deste processo no link abaixo.
MP - SIGAEST - COMO REALIZAR INVENTARIO DO SALDO ATUAL
Saldo atual
A rotina refaz saldos pode ser executada também embora não influencie de forma direta no processo de fechamento ficando a critério do cliente executar ou não.
Refaz poder de terceiro
A rotina refaz poder de terceiro faz o ajuste dos saldos de/em terceiro e não é obrigatória, ficando a critério do cliente utilizar ou não.
Recálculo do custo médio
A rotina recálculo do custo médio é uma das mais importantes para o processo de fechamento, para clientes que utilizam o custo off-line definido através do parâmetro MV_CUSMED com o conteúdo M, indicando que é mensal, ou seja, através do recálculo do custo médio.
Uma das partes mais importantes é a definição dos perguntes da rotina recálculo do custo médio, é onde definimos boa parte da regra de negócio que atende à necessidade dos nossos clientes.
Devido à grande diversidade de formas de apuração de custo o sistema possui também parâmetros que ficam na SX6, alterados através do configurador, são parâmetros mais restritos pelos quais também podemos alterar o fluxo de informações, porém não entraremos em detalhes de todos somente dos mais usuais.
Para exemplificar na prática estes processos de fechamento iremos criar um exemplo em que compramos a matéria prima produzimos e vendemos o produto acabado.
Não detalharemos o custeio de MOD/GGF, a documentação abaixo já trata do assunto.
https://tdn.totvs.com/pages/releaseview.action?pageId=366649055
1 – Vamos criar os produtos (MATA010) MP1000, matéria prima e o produto PA1000, produto acabado.
2 – Dar saldo inicial (MATA220) para o produto MP1000 no armazém 01 com quantidade 1 e valor 10 e no armazém 02 com quantidade e custo zero e para o produto PA1000 com quantidade e custo zero no armazém 01.
3 – Agora vamos fazer um documento de entrada (MATA103) com quantidade 10 e custo unitário 11 da nossa matéria prima conforme print abaixo no armazém 02.
4 – Para demonstrar o método de apropriação diário vamos dar entrada só que com data base diferente e quantidade 10 e custo unitário 12 conforme print abaixo:
5 – Agora vamos realizar uma movimentação interna de transferência (MATA260/MATA261) do produto MP1000 do armazém 02 para o armazém 01, de quantidade 10 conforme print abaixo.
6 – Vamos realizar o mesmo processo acima só que em um dia diferente.
7 – Vamos criar uma estrutura (MATA200) para o produto PA1000 tendo o produto MP1000 em sua base.
8 – Gerar uma ordem de produção (MATA650) com quantidade 10 para o produto PA1000, fechar a rotina e confirmar o empenho do produto MP1000.
9 – Gerar uma segunda ordem de produção em posterior com quantidade 10, veja abaixo:
10 – Realizar o apontamento da ordem de produção (MATA250) gerada anteriormente com quantidade 10.
11- Realizar outro apontamento de produção com quantidade 10.
12 – Vamos realizar a venda do nosso PA através da rotina pedidos de venda (MATA410) com quantidade 5, após fazer a liberação do pedido.
13 – Realizar uma nova venda com quantidade 15 do produto PA1000.
14 – Após este processo podemos executar a rotina recálculo do custo médio, vamos listar apenas os parâmetros que influenciam no custo do produto.
Um dos parâmetros mais importantes para o custeio da OP é o MV_PRODPR0, não vamos entrar em detalhes sobre o seu conceito, no link abaixo já tem este detalhamento.
https://tdn.totvs.com/pages/releaseview.action?pageId=6085227
No nosso teste utilizaremos o método 1 (MV_PRODPR0 = 1) porém não influencia no fluxo de teste.
Outro parâmetro fundamental é o MV_CUSFIL, efetuaremos 1 exemplo nas 3 formas possíveis, por armazém (MV_CUSFIL= A), por filial (MV_CUSFIL= F) e por empresa (MV_CUSFIL= E).
Iniciaremos com o parâmetro com o custo por armazém, neste caso todos os armazéns terão seu próprio custo, exemplificarei abaixo.
Após executar e rotina recálculo do custo médio (MATA330) surgem os parâmetros que são de suma importância, detalharemos apenas os mais importantes e que tenham influencia no custo do exemplo passado.
1 – Data limite final?
Devemos definir a data limite para processamento da rotina recálculo do custo médio, exemplo 30/11/2019.
2 – Atualiza arquivos de movimentos?
Devemos sempre definir como sim para que as movimentações internas (SD3) sejam processadas.
3 – Gerar estrutura pela movimentação?
Fica a critério do cliente, porém quando temos ordens de produção onde possui algum produto que foi requisitado e não faz parte da estrutura (SG1) essa requisição acaba não agregando o custo para esta ordem de produção, aconselhamos a deixar como sim.
4 – Método de apropriação?
Este parâmetro é extremamente importante para definirmos a forma de apuração do custo da empresa, iniciaremos pelo método de apropriação mensal.
5 – Recalcula níveis de estrutura?
Sempre que o parâmetro “Gerar estrutura pela movimentação? ” estiver como sim devemos colocar sim para que o sistema recalcule os níveis da estrutura.
6 – Movimentos internos valorizados?
Este parâmetro define se ao realizarmos uma movimentação interna valorizada se esta movimentação deve ser antes das movimentações internas ou após as movimentações internas.
Vamos executar o recálculo do custo médio com o método de apropriação mensal e o custo por armazém (MV_CUSFIL = A).
Após a execução do recálculo podemos utilizar o relatório MATR900 para a conferência do custo, veja abaixo como ficou o armazém 01.
Para podermos analisar a ordenação feita pela rotina recálculo do custo médio temos que parametrizar o relatório MATR900 com os perguntes "Doc Sequência? = S e Sequência de impressão = Cálculo" e o pergunte “Qual armazém? ”, quando o custo é por armazém devemos informar o armazém que se está analisando e quando o custo é por filial devemos informar o caractere “**” e quando o custo é por empresa devemos utilizar o caractere “##”.
Vejamos agora o armazém 02.
Agora vamos ver como funciona o custo por filial por filial (MV_CUSFIL = F).
Para verificarmos o cauto por empresa vamos realizar uma entrada (Compra) na filial 02 com custo unitário de 13, vejam abaixo como altera o custo de ambas as filiais quando o custo é por empresa (MV_CUSFIL=E).
Agora vamos analisar o método de apropriação diário, este método se assemelha com o método de apropriação mensal, porém calculado por dia, neste caso todos os dias terão seu custo apurado individualmente com base nos saldos do dia anterior e nas entradas que afetam o custo no dia.
Vamos executar o recálculo do custo médio com o pergunte “Método de apropriação? ” diário e custo por armazém (MV_CUSFIL= A).
Veja como ficou o custo no armazém 01.
Vejamos também o armazém 02.
Vejamos agora o custo médio por filial.
Vejamos agora um exemplo do método de apropriação diário e custo por empresa (MV_CUSFIL=E).
O método de apropriação sequencial é o mais simples de todos, neste método o sistema não altera a ordenação dos movimentos, ou seja, da mesma ordem que foi digitado no sistema permanecem, veja abaixo o custo por armazém, armazém 01.
Vejamos também o armazém 02.
Vejamos agora o custo por filial (MV_CUSFIL=F).
E por último o custo por empresa (MV_CUSFIL=E).
Ordenação de movimentos.
A ordenação de movimentos é uma parte importante para podermos apurar o custo, abaixo temos o print da ordenação padrão feita pelo sistema, disponível também na documentação abaixo na aba ordenação de movimentos.
https://tdn.totvs.com/pages/releaseview.action?pageId=340361781
Em alguns cenários o recálculo do custo médio pode não ordenar conforme o esperado, veja o cenário abaixo.
1 – Realizar uma devolução de venda do produto PA1000 através da rotina documento de entrada.
2 – Agora vamos realizar a desmontagem (MATA242) do produto.
3 – Agora vamos realizar a transferência do armazém 01 para o armazém 02 através da rotina de transferência múltiplas (MATA261).
Para exemplificar melhor como fica a ordenação no cenário acima vamos executar a rotina recálculo do custo médio (MATA330) e o custo por filial (MV_CUSFIL =F), este problema nos métodos de apropriação mensal e diário.
Veja que acima o movimento DE7 ficou ordenado abaixo dos demais movimentos, porém este cenário, na maioria de nossos clientes, não atenderia.
No padrão o parâmetro MV_SEQ300 que quando habilitado ordena os movimentos conforme a digitação dos movimentos feita pelo usuário, ou seja, todos os movimentos que estão na ordem 300 não terão sua ordenação alterada da digitada pelo usuário.
Vejamos agora a ordenação após habilitar o parâmetro MV_SEQ300.
Caso esta ordenação também não atenda a necessidade do cliente será necessário utilizar o ponto de entrada MA330TRB, maiores detalhes na documentação abaixo na aba ordenação de movimentos.
https://tdn.totvs.com/pages/releaseview.action?pageId=340361781
Apuração dos custos e quantidades processadas pela rotina recálculo do custo médio.
Para realizar a conferência do custo podemos utilizar o relatório MATR900 conforme já representado acima e também podemos utilizar os relatórios relação da posição do estoque (MATR260) e resumo das entradas e saídas (MATR320).
Vamos imprimir o relatório MATR260 do produto MP1000 porém pode ser feita uma range de produtos específica com o pergunte “Saldo do produto a considerar? ” como fechamento, neste caso o relatório busca o conteúdo dos campos B2_QFIM e B2_VFIM1 que são os campos que são atualizados pela rotina recálculo do custo médio, isto também se aplica ao relatório resumo das entradas e saídas (MATR320), veja a impressão dos dois relatórios abaixo.
Os valores acima representam os valores apurados pela rotina recálculo do custo médio e abaixo vamos imprimir os mesmos relatórios só com a pergunta “Saldo do produto a considerar? ” por movimento e com data igual a data que se está realizando o fechamento, desta forma podemos verificar se o processamento da rotina recálculo do custo médio (MATA330) foi feito corretamente, veja abaixo a impressão dos relatórios.
Após as conferências podemos executar a rotina fechar períodos (MATA280), não detalharemos a execução da rotina pois ela é importante, porém simples, caso queira o cliente pode executar o relatório relação da posição do estoque (MATR260) por movimento e com data do fechamento e este relatório irar listar os valores inseridos na tabela de saldos iniciais (SB9).
Reabertura de estoque (para ambientes na release 12.1.27)
Atualmente não existe um programa padrão para reabertura de estoque, porem em casos específicos tal processo é realizado eliminando os registros da tabela SB9 e ajustam o parâmetro MV_ULMES com a data do período anterior.
Não recomendamos a realização deste processo pois não e um processo padrão do sistema, porem quando não existe alternativa o cliente deve se atentar a seguinte situação:
Não se deve reabrir fechamentos de estoque quando em sua base de dados existem ordens de produção (Tabela SC2) que possuem movimentação de requisição/devolução de estoque contra OP entre os períodos de fechamento de estoque. Pois esta ação irá prejudicar o controle de custos destes produtos desestabilizando seus valores.
Veja o exemplo abaixo:
Foram feitas duas requisições sendo uma com quantidade 1 e outra com quantidade 2 e custo total 34,29 porém não geramos apontamento de produção.
A rotina de custo médio prepara o saldo que está em processo (no exemplo acima 34,29 – duas requisições) da seguinte forma:
SC2->C2_VFIM1 = SC2->C2_VINI1 + Movimentações internas (Requisição/Devolução) contra produção para esta ordem de produção.
No nosso exemplo ficara:
SC2->C2_VINI1 = 0 (Pois a OP foi aberta neste mês)
Total de Requisições = 34,29
Resultado SC2->C2_VFIM1 = 34,29
A rotina de virada de saldos prepara o saldo da tabela SC2 para o próximo período da seguinte forma:
SC2->C2_VINI1 = Saldo em processo do período anterior
SC2->C2_VINI1 = SC2->C2_VFIM1, ou seja, SC2->C2_VINI1 = 34,29 para o próximo período.
Ao realizar o procedimento de reabertura de estoque o cliente que possui ordem de produção que são utilizadas em dois ou mais fechamento não se atentam ao controle de saldos da tabela SC2 e ocorre o problema abaixo:
A rotina de custo médio prepara o saldo que está em processo (no exemplo acima 150,00 – duas requisições) da seguinte forma:
SC2->C2_VFIM1 = SC2->C2_INI1 + Movimentações internas (Requisição/Devolução) contra esta ordem de produção.
No nosso exemplo ficara:
SC2->C2_VINI1 = 34,29 (Pois ao reabrir o estoque o cliente não conhece a estrutura de nossas tabelas e não tem o controle do campo C2_VINI1 do período anterior)
Total de Requisições = 34,29
Resultado SC2->C2_VFIM1 = 68,58 (AQUI ESTA O IMPACTO NA REABERTURA DE ESTOQUE, ONDE O CUSTO FICARA INCORRETO E SERA REPASSADO PARA OS APONTAMENTOS DE PRODUÇÃO).
Reabertura de estoque (para ambientes que utilizam a rotina Acompanha Custos)
A partir da release 12.1.33, foi implementada a nova rotina Acompanha Custos, atendendo então a demanda de centralizar os processos obrigatórios na Jornada de Fechamento, e também incrementando no padrão o processo de Reabertura de Estoque. Todos os detalhes sobre o processo de Reabertura do Estoque estão contidos na documentação do link abaixo:
Cross Segmento - Backoffice (Linha Protheus) - SIGAEST - MATA038 - Processo de Reabertura de Estoque
Finalizamos assim este artigo para auxiliar nossos clientes na análise de seus custos e validações referentes ao fechamento.
Saiba mais:
12 Comentários