O Protheus ERP oferece a capacidade de recalcular o custo médio, levando em consideração diferentes formas de apropriação. Aqui estão as formas detalhadas:
- Sequencial: Neste método, todas as movimentações de estoque são valorizadas exatamente na ordem em que foram inseridas. Para isso, os arquivos SD1, SD2 e SD3 contêm o campo D?_NUMSEQ, que armazena o número sequencial de sua gravação. Este número é obtido a partir do campo M0_DOCSEQ, do cadastro de empresas da Microsiga (SIGAMAT.EMP). É importante notar que em uma produção, todos os registros gerados no arquivo SD3 têm o campo D3_NUMSEQ com o mesmo número. Da mesma forma, em uma única nota fiscal de entrada ou saída, os registros do SD1 e SD2 têm o mesmo número de sequência para o mesmo documento. A função PROXNUM() é usada para obter o próximo número sequencial disponível no SIGAMAT.EMP e incrementa um para disponibilizá-lo para a próxima movimentação. Esta função deve ser utilizada em todos os programas personalizados que geram movimentações de estoque, arquivos SD1, SD2 e SD3.
- Diária: Neste método, todas as entradas de notas fiscais e devoluções ao estoque do “DIA” são consideradas para a obtenção do custo médio. Este custo médio será usado para valorizar as requisições e notas fiscais de saída do mesmo “DIA”. Portanto, a cada dia pode haver uma valorização diferenciada dos estoques, dependendo das entradas realizadas.
- Mensal: Neste método, a partir do saldo inicial, notas fiscais de entrada e devoluções ao estoque, do período informado, o sistema calculará o novo custo médio. Este custo médio será usado para valorizar as movimentações internas e notas fiscais de saída do mesmo período informado para o recálculo.
Essas formas de apropriação oferecem flexibilidade e precisão no cálculo do custo médio, permitindo que as empresas gerenciem efetivamente suas movimentações de estoque.
Os arquivos envolvidos no recalculo do custo médio, com os campos de maior importância e seus respectivos conteúdo são os descritos abaixo:
SB9 – Saldo inicial.
Na implantação dos módulos de materiais, o usuário deve cadastrar todos os estoques de seus produtos, a nível de quantidades e valores em todas as moedas utilizadas. Neste primeiro cadastramento, o campo B9_DATA fica em branco, ou seja, o programa não pede o seu preenchimento. Após a implantação manual destes saldos, este arquivos somente sofre manutenção automática efetuada pelo programa de virada de saldos.
A tabela SB9 registra os saldos iniciais (físicos e de custo) dos itens em um determinado período. Esses saldos podem ser gerados de três maneiras:
- Saldos Iniciais (MATA220): Os saldos iniciais são registrados sem a identificação de data.
- Inventário Físico (MATA270): Caso o saldo inventariado seja utilizado para o fechamento do período, é configurado através da rotina Acerto de Inventário (MATA340) com a opção F12 ‘Atualiza o Saldo do Fechamento = SIM’ e o processamento do fechamento.
- Processo de fechamento de estoque: Quando as rotinas Recálculo do Custo Médio (MATA330) ou Saldo Atual para Final (MATA350) são processadas, o sistema verifica os saldos gravados na tabela de saldos em estoque (SB2) nos campos Quantidade Atual (B2_QATU), Valor Atual (B2_VATU1), Custo Médio Unitário (B2_CM1) e “transfere” esses dados para os campos Quantidade Final (B2_QFIM), Valor Final (B2_VFIM1) e Custo Médio Final (B2_CMFIM1). Durante a Virada de Saldos (MATA280), o sistema busca esses valores e os atualiza na tabela SB9, através dos campos Quantidade Inicial (B9_QINI), Valor Inicial (B9_VINI) e Custo Médio Unitário Inicial (B9_CM1).
SB2 – Saldo atual.
Este arquivo contem o saldo atual ( B2_QATU ) dos estoques bem como os valores nas moedas utilizadas pelo sistema ( B2_VATU1, B2_VATU2, B2_VATU3, B2_VATU4 e B2_VATU5 ). É também utilizado pelo programa de recalculo do custo médio no processo de fechamento mensal, gravando os campos para a virada dos saldos ( B2_QFIM, B2_VFIM1, B2_VFIM2, B2_VFIM3, B2_VFIM4 e B2_VFIM5 ).
SD1 – Itens de notas fiscais de entrada:
Nesta tabela contem o custo das notas fiscais de entrada nas moedas utilizadas ( D1_CUSTO1, D1_CUSTO2, D1_CUSTO3, D1_CUSTO4 e D1_CUSTO5 )
No cálculo dos custos em diferentes moedas, há distinções significativas a serem consideradas:
Moeda Corrente: O custo (D1_CUSTO) é calculado com base no valor total do item, incluindo o IPI, se aplicável, menos os impostos (IPI e ICMS), caso os parâmetros do TES, “CRÉDITO DE ICMS” e “CRÉDITO DE IPI”, estejam ambos marcados como “S”. Se um deles estiver marcado como “N”, o imposto correspondente não será subtraído.
Outras Moedas: O custo (D1_CUSTO2~5) é determinado pela soma das duplicatas dividida pela taxa de câmbio da moeda na data do vencimento respectivo. Em seguida, verifica-se se os parâmetros do TES, “CRÉDITO DE ICMS” e “CRÉDITO DE IPI”, estão ambos marcados como “S” para subtrair o valor dos impostos. Se um deles estiver marcado como “N”, o imposto correspondente não será subtraído.
Os impostos são convertidos para outras moedas com base nos parâmetros MV_ICMVENC e MV_IPIVENC, que indicam o prazo para o recolhimento do imposto após o vencimento. Este processo é crucial para garantir uma contabilidade precisa e adequada às diferentes moedas envolvidas nas transações comerciais.
SD2 – Itens de notas fiscais de saída:
Este arquivo contem o custo da mercadoria vendida ( D2_CUSTO1, D2_CUSTO2, D2_CUSTO3, D2_CUSTO4 e D2_CUSTO5 ), estes campos são atualizados pelo programa de recalculo do custo médio, ou seja, o CMV será alterado de acordo com as movimentações, atribuindo uma nova valorização.
SD3 – Movimentações internas:
- Este tabela contem todas as movimentações dos estoques com exceção de notas de entrada e saída ( SD1 e SD2 ). Detalhes da D3_CF:
RE0 – Requisição manual.
RE1 – Requisição automática.
RE2 – Requisição automática de material de apropriação indireta.
RE3 – Transferência para local de apropriação indireta.
RE4 – Requisição por transferência.
RE5 – Requisição informando OP na nota fiscal de entrada.
RE6 – Requisição valorizada.
RE7 – Requisição para transferência de um para “N”.
DE0 – Devolução manual.
DE1 – Devolução automática – estorno da produção.
DE2 – Devolução automática de material de apropriação indireta – estorno da
produção.
DE3 – Estorno de transferência para local de apropriação indireta.
DE4 – Devolução de transferência entre locais.
DE5 – Devolução de material apropriado em OP – exclusão de nota fiscal de entrada.
DE6 – Devolução valorizada.
DE7 – Devolução de transferência de um para “N”.
PR0 – Produção manual.
PR1 – Produção automática.
ER0 – Estorno de produção manual.
ER1 – Estorno de automática.
SG1 – Estrutura dos produtos.
SC2 – Ordem de produção.
Esta tabela contem campos importantes para o cálculo do custo dos produtos acabados. Isto se deve ao fato de que nesta tabela é guardado o saldo inicial destas OPs.
Campo é atualizado pelo programa de virada dos saldos:
C2_QUJE Quantidade já produzida.
Observação.: Quando desejamos reprocessar um mês já encerrado, devemos voltar o backup deste arquivo. Campos: C2_APRATU1, C2_APRINI1,C2_APRFIM1, C2_VINI1 ,C2_VATU1 ,C2_APRATU2, C2_APRINI2 ,C2_APRFIM2 ,C2_VINI2 e C2_VATU2
4- Estruturas do Produto
No Protheus ERP, a tabela “SG1 – Estrutura dos produtos” armazena as informações essenciais sobre a composição dos itens que compõem um produto acabado. Isso inclui matéria-prima, subconjuntos e mão-de-obra. Ao cadastrar um produto, é possível definir sua estrutura, indicando os componentes e suas quantidades. Essa funcionalidade facilita o planejamento da produção, permitindo entender os insumos necessários e como eles se relacionam para gerar o produto final.
Exemplo de cálculo do Custo Médio Unitário:
Movimento | Qtd | Custo Unitário | Custo Total | Valor em estoque | Qtd em estoque | CM Unitário* |
Nota fiscal de entrada | 10 | R$ 1,00 | R$ 10,00 | R$ 10,00 | 10 | R$ 1,00 |
Nota fiscal de entrada | 10 | R$ 4,00 | R$ 40,00 | R$ 50,00 | 20 | R$ 2,50 |
Nota fiscal de saída | 08 | R$ 2,50 | R$ 20,00 | R$ 30,00 | 12 | R$ 2,50 |
Nota fiscal de saída | 07 | R$ 2,50 | R$ 17,50 | R$ 12,50 | 05 | R$ 2,50 |
Nota fiscal de entrada | 05 | R$ 10,00 | R$ 50,00 | R$ 62,50 | 10 | R$ 6,25 |
Requisição para consumo | 03 | R$ 6,25 | R$ 18,75 | R$ 43,75 | 07 | R$ 6,25 |
*CM Unitário: Esta coluna é sempre calculada dividindo o valor total em estoque pela quantidade total de estoque.
Durante o processamento da rotina de Custo Médio (MATA330), o campo B2_CMFIM1 é calculado utilizando a fórmula que divide o valor total do armazém pela quantidade total de estoque.
É importante notar que a rotina de Custo Médio (MATA330) reorganiza a ordem dos movimentos que devem ser processados, o que resulta no ajuste do custo médio.
Observação: Quando a quantidade e/ou o valor total do armazém estão zerados ou negativos, o campo B2_CMFIM1/B2_CM1 não é atualizado, mantendo o custo histórico do produto.
Diferenças entre os campos B2_CMFIM1 e B2_CM1:
- B2_CMFIM1: Usado no reprocessamento do custo médio para determinar o valor unitário do produto.
- B2_CM1: Utilizado durante a movimentação de estoque, como quando os usuários estão incluindo movimentos internos ou documentos de entrada.
Por padrão, ao final do processamento da rotina de Custo Médio (MATA330), o valor processado no campo B2_CMFIM1 é copiado para o campo B2_CM1. No entanto, caso não se deseje esse comportamento, é possível realizar a alteração através do parâmetro MV_330ATCM = .F.
Parametros da rotina de recalculo do custo médio:
Nome: | MV_SEQ300 |
Tipo: | Logico |
Cont. Por.: | .T. |
Descrição: | Indica se deve seqüenciar a ordem 300 do arquivo de trabalho da rotina de recalculo do custo médio (T=Seqüenciar / F=Não Seqüenciar ) |
Nome: | MV_PRODPR0 |
Tipo: | Numerico |
Cont. Por.: | 1 |
Descrição: | Indica o tipo de proporcionalizacao do custeio dos apontamentos de producao durante o recalculo do custo medio. |
Nome: | MV_REQAUT |
Tipo: | Caracter |
Cont. Por.: | A |
Descrição: | Verifica se o sistema deve ou nao gerar requisicoes automaticas (baseado no empenho) na producao. |
Configurar produto para não ter custo na Ordem de Produção (OP) :
No cadastro do produto (MATA010), preencha o campo “Custeio OP” (B1_AGREGCU) com “Permite” para indicar que o produto pode ser requisitado para uma OP sem adicionar custo a ela.
No tipo de movimentação de produção (MATA230), preencha o campo “Custeia OP” (F5_AGREGCU) com “Não” para indicar que o custo da matéria-prima será ignorado na OP.
Observações:
Produtos cadastrados com “Custeio OP” = “Não permite” continuarão sendo custeados, independentemente da configuração do Tipo de Movimentação.
Se os componentes forem requisitados manualmente durante o processo produtivo, o Tipo de Movimentação de requisição também deve ser configurado com “Custeia OP” = “Não”.
As requisições/devoluções geradas terão o tipo RE9 e DE9 (Movimentos para OP sem agregar custo).
MATA330 – Passo a passo para fazer uma análise de Custos no Protheus:
A análise do custo do estoque, para ser mais assertiva, é sempre recomendável ser feita utilizando um único produto e atentando-se à algumas premissas. Vamos separá-las abaixo:
1 – Em caso de dúvidas sobre o custo do(s) produto(s), execute o Recálculo do Custo Médio
O Recálculo reordena os custos dos produtos de forma que apresente os dados corretamente após as movimentações durante um período.
OBS: Ao executar a rotina de Recalculo do Custo (MATA330) ocorre recursividade na base de dados? Se sim, execute o relatório MATR331 (“Analise de Recursividade”) e somente após acertar a recursividade deverá executar novamente a rotina de custo médio (MATA330).
2 – A análise deve ser feita entre o período inicial do Estoque até a data limite do Recálculo do Custo Médio
Para analisar se o custo de um ou mais produtos estão corretos ou não, precisamos sempre analisar primeiramente o período de estoque aberto, ou seja: um dia após o último fechamento do estoque até a “Data Limite Final” delegada no processamento do Recálculo do Custo Médio.
Para analisar a variação e o custo final, utilize o relatório Kardex por Período (MATR900).
3 – Utilizando e parametrizando o Kardex por Período (MATR900).
Para analisar as informações de maneira assertiva, é de suma importância parametrizar os filtros do relatório de forma correta. Segue algumas informações de como parametrizá-las:
– Data inicial: Data do último fechamento de estoque + 1 dia, por exemplo: se o último fechamento de estoque foi em 31/03, a data inicial do relatório deverá ser 01/04.
– Data final: Data limite utilizada no processamento do recálculo do custo médio.
– Sequência de impressão: Cálculo
– Verificação do parâmetro MV_CUSFIL:
Este parâmetro permite o custo ser aglutinado por Armazém (A), Filial (F) ou Empresa (E).
Caso esse esteja configurado como A, imprimir o Kardex apenas do armazém analisado;
Caso esteja configurado como F, imprimir o Kardex com a informação ** no campo armazém;
Caso esteja como E, imprimir o relatório de todas as filiais, considerando ## no campo armazém;
Importante: Para não correr riscos do relatório imprimir algum resultado diferente por conta dos demais usuários que estão operando o sistema, o parâmetro MV_DBLQMOV deve estar configurado com a data do ultimo dia do período em validação. No nosso exemplo, seria o dia 30/04 (Ultimo dia do mês em que está sendo processado o relatório)
4 – Analisando o Kardex do período atual noto que meu custo está incorreto. Como posso avaliar onde foi o problema?
Em caso de custos incorretos, pode-se trilhar alguns caminhos para chegar ao diagnóstico: B2_CM1, B9_VINI1
Imprimir o relatório Kardex por Período (MATR900) dos três últimos períodos para análise e verificação se houve ou não fechamento incorreto, ou seja: os Saldos Iniciais batem com Saldos Finais?
Observar o Custo Médio Unitário do Armazém (B2_CM1) – Observar se há valores elevados para este campo, pois isso pode distorcer o custo e até mesmo ocasionar estouro de campo no processamento da rotina do Recálculo do Custo Médio;
Observar sempre o Saldo inicial (SB9) oriundo do ultimo fechamento de estoque (B9_VINI1..5), pois a causa do problema pode estar no período anterior (fechamento passado).
Verificar se na tabela SB9 existem registros deletados, se sim, verificar se o custo incorreto é referente à alguma Ordem de Produção. Se for, verificar se o ocorreu reabertura de estoque. Caso tenha ocorrido reabertura do estoque, recomendamos que solicite auxilio de um analista in loco pois não é procedimento padrão realizar Reabertura de Estoque para quando possui Ordem de Produção.
Problemas com recalculo do custo médio:
Problema 1: Ao processar o Recálculo do Custo Médio o valor do custo fica zerado. O que fazer para resolver?
Motivo: Esse incidente ocorre devido a problemas na codificação do stored procedure, sendo notado após processamento da rotina para clientes que utilizam custo unificado por empresa ou por filial (MV_CUSFIL=”E” ou MV_CUSFIL=”F”) com Stored Procedure instalada.
Solução
Para solucionar essa ocorrência, realize os seguintes passos:
Para completa atualização dos fontes e Procedures responsáveis para o Recálculo do Custo Médio, atualize o pacote Acumulado do módulo de Estoque/Custos.
Problema 2: Apontamento de produção (PR0) com valor negativo duplicado e B2_VFIM1 e B2_QFIM negativos
Solução: Desinstalar procedure Virada de Saldo e Recalcular custo médio
Dicas adicionais:
- Custos em Ordem de Produção (OP): https://centraldeatendimento.totvs.com/hc/pt-br/articles/1500012330641-Cross-Segmento-Backoffice-Linha-Protheus-SIGAEST-MATR860-Interpretando-Custos-em-Ordem-de-Produ%C3%A7%C3%A3o-OP
- SIGAEST – Roteiro para Fechamento de Estoque (virada de saldos): https://centraldeatendimento.totvs.com/hc/pt-br/articles/360048372754-Cross-Segmento-Backoffice-Linha-Protheus-SIGAEST-Roteiro-para-Fechamento-de-Estoque-virada-de-saldos
- Melhorando a Performance da Rotina de Recálculo do Custo Médio (MATA330) – Protheus da Totvs: https://www.2fconsultoria.com.br/2024/04/melhorando-a-performance-da-rotina-de-recalculo-do-custo-medio-mata330/
- Novo fechamento de custos e estoque no ERP Protheus da Totvs: https://www.2fconsultoria.com.br/2022/10/novo-fechamento-de-custos-e-estoque-no-erp-protheus-da-totvs/
- Documentação adicional: https://tdn.totvs.com/pages/releaseview.action?pageId=340361781
- Pacotes de atualização: https://tdn.totvs.com/pages/releaseview.action?pageId=522000602
- Cross Segmento – Backoffice (Linha Protheus) – SIGAEST – MATR860 – Interpretando Custos em Ordem de Produção (OP): Cross Segmento – Backoffice (Linha Protheus) – SIGAEST – MATR860 – Interpretando Custos em Ordem de Produção (OP) – Central de Atendimento TOTVS
- Como extrair arquivo de trabalho TRB ao executar o Recálculo do Custo Médio (MATA330)? https://centraldeatendimento.totvs.com/hc/pt-br/articles/360011904591-Cross-Segmento-Backoffice-Linha-Protheus-SIGAEST-MATA330-Como-extrair-arquivo-de-trabalho-TRB-ao-executar-o-Rec%C3%A1lculo-do-Custo-M%C3%A9dio-MATA330
- QUAIS CAMPOS DE CUSTOS DA TABELA SC2 SÃO ATUALIZADOS DURANTE O PROCESSO PRODUTIVO, RECÁLCULO DO CUSTO MÉDIO E VIRADA DE SALDOS? MP – EST – QUAIS CAMPOS DE CUSTOS DA TABELA SC2 SÃO ATUALIZADOS DURANTE O PROCESSO PRODUTIVO, RECÁLCULO DO CUSTO MÉDIO E VIRADA DE SALDOS? – Central de Atendimento TOTVS