Skip to Content
Technical Articles

Exclusão do ICMS da base do PIS/COFINS no SAP em 3 passos

 

 

Como sabemos no Brasil, um dos tópicos do momento é a exclusão do ICMS da base do PIS/COFINS. Há vinte anos esse assunto vem sendo discutindo e, com os dados publicados pelo governo, ainda não existe uma definição clara sobre o modo de cálculo, impossibilitando a implementação de uma solução standard no SAP ECC e S/4HANA.

Mas, como sempre, as operações das empresas não esperam por uma definição formal do governo e uma respectiva SAP Note e já estão acontecendo no dia a dia, então como lidar com esses casos?

Basicamente pode se fazer qualquer coisa nas classes da TAXBRA e de 1000 maneiras diferentes, mas aqui vai nossa sugestão de como pode se fazer isso no ECC e S/4HANA, tanto em MM/Compras como SD/Vendas.

Lembrando que, como ainda não está 100% transparente como deve ser o cálculo – com ou sem  fcp, redução de base, etc. – a regra/lógica de cálculo em si deve ser definida pelo cliente, mas ela pode facilmente ser integrada nesses mesmos lugares, o que acaba simplificando a implementação uma vez que todas as regras forem definidas junto ao negócio.

 

Passo 1 – Enhancement no método determine_additional_rate na classe CL_TAX_CALC_BR (necessário tanto para SD como para MM)

 

Aqui o parametro MV_ADDITIONAL_RATE é ajustado. Esse parâmetro é calculado para PIS e COFINS sendo multiplicado pela alíquota do ICMS, que nesse caso precisará ser desconsiderada. Uma nova lógica precisa ser incluída no enhancement, dependendo dos parâmetros a serem considerados ( mestre do cliente/fornecedor, IPI, FCP, etc… )

Passo 2 – Enhancement no método calculate_pis_cof_base na classe CL_TAX_CALC_BR ( caso de SD )

Nesse caso o parametro EV_BASE recebe o valor calculado incluindo ICMS e é preciso deduzir o valor do ICMS desse parâmetro.

Passo 3 – Enhancement no método calculate_pis_cof_base na classe CL_TAX_CALC_BR_MM ( caso de MM )

Nesse caso o parametro EV_BASE recebe o valor calculado incluindo ICMS e é preciso deduzir o valor do ICMS desse parâmetro ( e IPI também no caso de compras para consumo ).

Importante!

  • Todos enhancements que mencionamos podem ser feitos como enhancements implícitos no final de cada método ou post-method enhancements e não involvem modificações de código standard, apenas ampliações.
  • Quando a SAP lançar SAP Notes para contemplar esse cenário durante a implementação das notas individuais ( ou após um upgrade ) é preciso re-testar o cenário e remover (ou re-adequar) a implementação.
  • O exemplo de implementação acima usa o modelo TAXBRA, no caso de TAXBRJ a implementação precisa ser completamente diferente.

E ai, o que acham? Como vocês estão fazendo o desenvolvimento dessa solução?

8 Comments
You must be Logged on to comment or reply to a post.
  • Bom dia Renan!!

    Obrigado por compartilhar este tema que é tão importante.

    Atualmente onde trabalho utilizamos TAXBRJ.

    Neste cenário como poderíamos proceder? Pode me dar um help, por favor?

    Muito obrigado e um grande abraço!!!

    • Oi Eduardo,

      Como proceder? 1- Migrar para TAXBRA, 2- Implementar a solução acima. ;D

      Brincadeiras à parte, na TAXBRJ eu não estudei a solução, mas com certeza é mais complicado de fazer.

      Tem que olhar a função J_1BCALCULATE_TAXES e como está tudo espalhado em vários forms dentro da mesma função e com nomes de variáveis que não fazem muito sentido precisaria analisar bem mais a fundo antes de criar uma solução. Sorry não poder ajudar.

      att,

      Renan Correa

  • Bom dia Renan!!

    Obrigado por compartilhar este conhecimento:

    No caso da TAXBRJ o ideal seria um desenvolvimento na função J_1BCALCULATE_TAXES usando enhancements ( já que não tem ainda BAdI que sirva para esse propósito ) nos FORMS determine_additional_rate e provavelmente calculate_pis e calculate_cofins para retirar o ICMS das alíquotas/bases do pis/cofins. Nesses pontos precisaria reduzir  Mas teria que ser bem testado, pode ser que tenha efeitos colaterais depende de como for feito.

  • Renan,

    Parabéns pela publicação!

    Implementamos aqui na empresa e está funcionando a Exclusão.

    Apenas não encontramos na biblioteca do nosso sistema SAP o ms_tx_data-calcasset do passo 1, if da linha 36,  pode dar um help por favor?

    Obrigada!

    • Oi Jisseléa,

      Obrigado pleo retorno, mas não tenho nem idéia da diferença no código, nesse ponto do método só tenho comentários da nota 1755461 ( que inseriu esse parametro ) e da nota 2259725 ( que alterou o resuldo do else ).

      E ambas as notas são mais velhas do que andar pra frente, já devem estar implementada por Support Package há anos.

      Olhando a versão do objeto você pode ter uma idéia se esse contexto foi removido ou alterado no seu sistema, fora isso não tenho muitas sugestões.

      att,

      Renan Correa

  • Boa tarde Renan.

    A área fiscal da empresa que atuo informou que além de reduzir o valor do ICMS da base do PIS e COFINS, é necessário informar o valor subtraído  como "Montante base excluído". Segundo eles para demonstração no SPED por exemplo.

    Já houve tal questionamento?

    Obrigado.

    • Oi Ramon,

      Nos projetos que participei não tive esse requisito ainda. Em teoria deve dar pra fazer, mas adiciona mais trabalho.

      regards,

      Renan Correa