Bom dia amigos da Localização Brasil... Um cenário do mercado (principalmente com operação varejista) costuma dar um trabalho... É o seguinte:
- Preciso fazer uma transferência entre centros, registrando e contabilizando ICMS e ICMS-ST na saída da origem. No processo de entrada esses valores precisam ser contabilizados na conta de estoque (custo do material), incidindo diretamente sobre o PMM.
O movimento de entrada de um processo de transferência tradicional com STO não consegue fazer essa contabilização no custo do material. Já tentei e vi outras pessoas tentando usar os movimentos 861, 835 e alguns movimentos Z. Sempre o resultado é a contabilização em contas de imposto ou até mesmo a não contabilização dos valores de impostos. O standard do SAP não prevê a contabilização no custo mesmo. Isso é fato!
Algumas pessoas optam por informar a conta de estoque na OB40, chave VS2. Isso faz com que a conta de estoque seja contabilizada, mas o material não é valorizado com esse lançamento. A chave de lançamento no documento contábil é apenas 40, e isso não funciona. O contábil da empresa vai ficar louco com a falta de equalização entre a MBEW e a conta de estoque.
Como isso se resolve? Segue uma proposta simples, mas que funciona...
Você deve fazer a transferência saindo com o material por SD, criando ordem de vendas, remessa e fazendo a saída por lá. O cliente é o mesmo vinculado ao centro para efeitos de transferência.
Na saída os impostos são contabilizados em ICMS e ICMS-ST a recolher contra uma conta transitória de estoque de transferência.
Neste momento o material está no "limbo", se olharmos apenas o standard. O estoque em trânsito deverá ser controlado por tabela Z de log deste processamento. O ideal é que seja construído um cockpit para esse controle.
Já a entrada no destino é feita por "MB1C" utilizando um movimento cópia do 501. Para o movimento novo foram abertos os campos Montante MI e o Base Diferente. O campo montante MI é usado para contabilizar o estoque e o base diferente faz com que os impostos sejam calculados sobre o valor deste campo, ignorando o montante MI.
No campo montante MI você vai informar o valor cheio que deseja contabilizar o estoque. Esse valor vai com custo no centro de origem + ICMS + ICMS-ST. Já o campo base divergente deve ir só com a base de cálculo dos impostos...
O código de imposto a ser utilizado precisa ter apenas as condições standard ICM2 e ICS2, que possuem a chave NVV. Isso fará com que a contabilização seja completamente ignorada, mas os impostos serão carregados na nota fiscal tendo como base de cálculo o valor informado em base diferente.
Exemplo bem simples da contabilização... Saída:
99 - Estoque -10,00
89 - Estoque trânsito +10,00
50 - ICMS -2
50 - ST -2
40 - Estoque trânsito +4 (Sim... O amiguinho de SD precisa usar a conta de estoque em trânsito como se fosse transferência de imposto.)
Entrada:
89 - Estoque +14,00
91 - Estoque -14,00 (Configura uma operação Z da GBB na OMJJ e aponta a conta de trânsito na OBYC.
Claro que é uma customização e possui os contras...
Issue 1. O material fica no limbo com zero controle do trânsito via standard após a saída.
Solução: Construção de uma tabela de LOG para fazer esse controle.
2. A entrada é totalmente desvinculada da saída no standard (mas os cálculos de impostos já são mesmo no standard).
Solução: Através de enhancement você substituirá os valores da nota de entrada pelos valores da nota de saída para garantir equalização nas duas etapas do processo. Pode usar a função J_1B_NF_OBJECT_UPDATE. Mas garanta que os demais processos da sua empresa não serão impactados.
Uma outra saída, menos garantida, só que mais segura e limpa, é sanear as exceções fiscais para que estejam totalmente equalizadas para que os impostos da nota de entrada sejam iguais aos da nota de saída. A não ser que os grupos de impostos atendam tanto MM quanto SD.
3. Se não for um programa Z a fazer o lançamento, o usuário tem que saber exatamente o valor que deve informar em cada campo (montante MI e base diferente).
Solução: Disponibilizar uma transação para que o usuário execute o processo de entrada. O programa vai ler os valores da saída e informá-los corretamente na BAPI que simula a MB1C.
Boa sorte aí! Have fun!