Recalculo do custo médio no Protheus ERP da Totvs


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:

    1. Saldos Iniciais (MATA220): Os saldos iniciais são registrados sem a identificação de data.
    2. 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.
    3. 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:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.