Skip to Content

Prezados,

Devido a grandes problemas que muitas pessoas estão tendo com relação ao Desconto na NF, eu resolvi abrir este Blog para ajudar com uma solução paliativa.

O desconto deve ser especificado em cada item. Assim se você vai dar um desconto de 10% no valor da nota deve informar o valor correspondente do desconto para cada item. O campo desconto não é obrigatório, então também poderá numa mesma nota, haver itens com desconto e outros sem desconto. No momento de digitar o desconto na tela do produto, tenha em mente que este somente será considerado no total geral da nota.

O programa somará os descontos de todos os itens e vai subtrair do total da nota na seção de totais. Assim, quando houver desconto, os valores unitários de comercialização, tributação e o valor total bruto de cada item devem ser informados sem o desconto, somente no total geral os descontos serão considerados.


E como fica a base de cálculo dos impostos?
Caso sua nota tenha destaque de impostos, lembre-se de digitar como base de cálculo dos impostos o valor já diminuído do desconto. O programa vai considerar para efeito de cálculo dos impostos o valor digitado por você. Tenha muito cuidado pois esquecer os descontos aqui vai fazer com que você pague impostos a mais do que deveria.
Fonte: Blog de Suporte


Cenário: Base de Cálculo do ICMS tem o valor cheio da NF sem o desconto.


Total Produtos: R$ 100,00

Desconto: R$ 10,00

Total NF: R$ 90,00

Total Base de ICMS: R$ 100,00

Aliquota ICMS e Total: 17% – R$ 17,00


Para este cálculo funcionar eu utilizei como exemplo um pedido com os valores destacados acima e a Pricing de COMPRAS tem de estar com a condição Standard RB00 (Desconto Absoluto) conforme imagem abaixo:


ScreenHunter_01 Feb. 25 09.21.jpg


OBS:  A condição de ICMS na Pricing deve estar com o valor correto, você tem de fazer o cálculo do ICMS baseado no preço bruto sem desconto para que calcule corretamente, no meu caso a condição ICM1 vem automática via fórmula e já está tratado dentro da mesma. De qualquer forma este é o pré-requisito, pois o programa não altera a pricing de compras somente a aba de fatura – Impostos e na MIRO.


Em seguida o Seguinte Enhancement tem de ser implementado:


Classe: CL_TAX_CALC_BR_MM.

Method: CALCULATE_ICMS.


METHOD calculate_icms .

“””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””$”$\SE:(1) Classe CL_TAX_CALC_BR, Método CALCULATE_ICMS, Início                                                                                              A

*$*$-Start: (1)———————————————————————————$*$*

ENHANCEMENT 1  Z_TRATAMENTO_DESCONTO_PO.    “active version

*Tratamento para a Base do ICMS não excluir o valor do Desconto

DATA: t_tkomv TYPE komv_tab,

      l_tkomv LIKE LINE OF t_tkomv,

      v_kbetr TYPE komv_index-kbetr,

      l_knumv TYPE ekko-knumv,

      l_kbetr TYPE konv-kbetr,

      t_komki TYPE komk,

      t_komve TYPE TABLE OF komv,

      l_komve LIKE LINE  OF t_komve.

DATA: t_xkomv TYPE komv_tab.

FIELD-SYMBOLS: <fs_t_komv>  TYPE any,

               <fs_ebeln>   TYPE any,

               <fs_ebelp>   TYPE any.

ASSIGN (‘(SAPLMEPO)TKOMV[]’) TO <fs_t_komv>.

ASSIGN (‘(SAPLV61A)KOMP-EVRTN’) TO <fs_ebeln>.

ASSIGN (‘(SAPLV61A)KOMP-EVRTP’) TO <fs_ebelp>.

IF <fs_t_komv> IS ASSIGNED.

  MOVE <fs_t_komv> TO t_tkomv.

IF <fs_ebelp> IS ASSIGNED.

    IF sy-tcode = ‘ME21N’ OR sy-tcode = ‘ME22N’ OR sy-tcode = ‘ME23N’ OR sy-tcode = ‘ME47’.

                    

      LOOP AT t_tkomv INTO l_tkomv  WHERE kschl = ‘RB00’ AND kposn = <fs_ebelp>.

        IF l_tkomv-kwert IS NOT INITIAL.

          l_tkomv-kwert = l_tkomv-kwert * -1.

          IF ms_tax_data-net_amount IS NOT INITIAL.

            ms_tax_data-net_amount = ms_tax_data-net_amount + l_tkomv-kwert.

          ENDIF.

        ENDIF.

      ENDLOOP.

    ENDIF.

ENDIF.

UNASSIGN <fs_t_komv>.

ENDIF.

IF sy-tcode = ‘MIRO’.

  IF <fs_ebeln> IS ASSIGNED AND <fs_ebelp> IS ASSIGNED.

    SELECT SINGLE knumv INTO l_knumv FROM ekko

      WHERE ebeln = <fs_ebeln>.

    IF sy-subrc = 0.

      t_komki-knumv = l_knumv.

      SELECT SINGLE kbetr INTO l_kbetr FROM konv

        WHERE knumv = l_knumv

          AND kposn = <fs_ebelp>

          AND kschl = ‘RB00’.

      IF sy-subrc = 0.

        IF l_kbetr IS NOT INITIAL.

          l_kbetr = l_kbetr * -1.

          IF ms_tax_data-net_amount IS NOT INITIAL.

            ms_tax_data-net_amount = ms_tax_data-net_amount + l_kbetr.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDIF.

  UNASSIGN: <fs_ebeln>, <fs_ebelp>.

ENDIF.

ENDENHANCEMENT.

Enfim, este é apenas um exemplo de código e solução paliativa você pode tratar este desenvolvimento de outras formas, cabe ao programador decidir como vai fazer.

Após o desenvolvimento a PRICING TAXBRA vai ficar assim:


ScreenHunter_02 Feb. 25 09.21.jpg


Este Tratamento já vai funcionar para o PEDIDO de Compras e para o Lançamento na MIRO, você também pode efetuar este tratamento para a Base do IPI, PIS e COFINS é só utilizar os METHODS de calcular o IPI, PIS e COFINS e fazer tratamentos diferenciados.


Bom espero ter ajudado, Um grande Abraço à todos que estão sempre contribuindo para o SCN ser uma grande ferramenta de Suporte e as dúvidas de todos.


David Medeiros

SAP MM Consultant

To report this post you need to login first.

11 Comments

You must be Logged on to comment or reply to a post.

  1. Allyson F. de Paula Reis

    Meu caro, acredito que sua interpretação está errada. Considerando o desconto incondicional, este não compõe a BC do ICMS, neste caso a empresa deveria recolher R$ 15,30 e não R$ 17,00 de ICMS.

    (0) 
    1. DAVID MEDEIROS Post author

      Olá Alyson, creio que você não entendeu ou não leu completamente o blog, mais vou lhe explicar.

      O comentário sobre o desconto na NF foi colocado pelo grande especialista em NF Rodrigo Alves, nós não estamos criticando como a Legislação funciona, além do mais conhecemos as Regras do Desconto Condicional e Incondicional. Neste Blog estamos como colocando de forma clara como o SAP Funciona e não como era pra ser a NF, até mesmo porque se os Clientes / Fornecedores enviam as Notas Fiscais erradas e não querem corrigir, cabe apenas ao consultor Alertar do problema e encontrar uma solução para o Problema.

      A forma como o Rodrigo descreveu está bem clara de que é como o SAP funciona, se você obtiver desconto na NF e este mesmo desconto que é rateado nos itens da NF não compor a BASE dos impostos o SAP vai efetuar o cálculo errado!

      E o meu Blog tem como isso levar em considerações todos os cenários e um deles é quando o Fornecedor envia a NF com o Valor que foi efetuado como desconto no Total da Base de ICMS e neste caso eu tenho muitos exemplos de Notas Fiscais desta forma, ninguém é obrigado a fazer o correto ou que se diz supostamente ser correto, não sabemos no que o Fornecedor está baseado legalmente para gerar este tipo de NF, acredito que se passou no SEFAZ já é um bom inicio pra acreditarmos que a NF está correta sendo que foi protocolada e assinada pelo governo.

      Enfim, este fórum é para uma solução paliativa e simples para os programadores, ainda não tive tempo de criar um cenário com condições na Pricing e sei que isto é possível, só estou estudando a melhor forma de como fazer. De qualquer forma agradeço pelo comentário. Qualquer dúvida ou esclarecimento estarei à disposição.

      Abraços,

      David Medeiros

      (0) 
      1. Allyson F. de Paula Reis

        Olá David,

        Como você bem sabe o SEFAZ pode autorizar notas com erro de lógica, o validador do webservice só nega erros formais. Ele inclusive nunca notificará um contribuinte que está recolhendo imposto indevido ou a maior.

        Se o objetivo é mostrar como o SAP funciona OK, mas o exemplo dado pode induzir um leitor que não entende das regras de ICMS que esta seria a forma aderente à legislação – isso não ficou claro e foi esse o intuito do meu comentário.

        (0) 
        1. DAVID MEDEIROS Post author

          Olá Allyson,

          Sem problemas! O Objetivo da SCN ao menos para mim, é abrir Discussões, Blogs entre outros apenas para resolver ou apresentar algo novo com relação ao produto SAP, ao menos não estou discutindo regras e legislações, concordo com você que o leitor pode se confundir, mais que fique claro que este fórum é apenas relacionado ao SAP para ajudar Consultores e Usuários, entre outros.

          De qualquer forma agradeço a compreensão e desculpe o mal entendido…Mais é saudável este tipo de discussão, é bom para que todos os leitores possam entender melhor qual o objetivo do Blog.

          Abraços,

          David Medeiros

          (0) 
  2. Marquilanio Cavalcante

    Olá David,

    Esse cenário que está se referindo, é quando um fornecedor envia uma nota com um desconto sobre o valor total da nota??

    Quando você fala que esse desconto deveria ser especificado em cada item, você está se referindo a criação do pedido ou o momento do lançamento da MIRO?

    Estou com um problema que o fornecedor emitiu a nota com desconto sobre o valor total e a essa não possui ICMS. Neste caso, qual seria sua orientação para fazer este recebimento? Você já utilizou aquele campo desconto na MIRO (Aba pagamento)?

    (0) 
    1. DAVID MEDEIROS Post author

      Olá Marquilanio,

      Este blog que eu criei é apenas para os cenários que tem ICMS. No seu caso você pode tentar utilizar a Condição RB00 como desconto  absoluto ou RA00 como Porcentagem no cabeçalho do pedido.

      Abraços,

      (0) 
  3. Eduardo Chagas

    Oi David

    Na prática a fiscalização não deve implicar já que você está pagando o imposto a mais que o devido (desde que também você não tome crédito indevido).

    Ai fica por conta do fiscal da empresa. Se ele quer pagar mais imposto e escriturar a nota errada…

    Confesso que é a primeira vez que eu vejo uma empresa querer pagar mais imposto que o devido! Já vi varias empresas optarem por antecipar o pagamento de impostos mas pagar a mais… é a primeira!

    Abraço

    Eduardo Chagas

    (0) 
    1. DAVID MEDEIROS Post author

      Olá Edu,

      Então, eu também discordo desta prática de lançar o imposto com base em um valor que não seja dos produtos, base reduzida, entre outros… Acontece que eu já encontrei ao menos 4 empresas que recebem Notas Fiscais desta forma e escrituram desta forma, já gerei até discussões sobre a questão do desconto Condicional ou Incondicional, mais confesso que desisti (rs) e por conta disto acabei abrindo esse Blog com uma solução paliativa ou ao menos provisória.

      As empresas que recebem muito este tipo de NF, não sei se é algo muito incomum, mais são as empresas de Agronegócio, vários fornecedores destas empresas aplicam este tipo de desconto e o Fiscal informa que a NF tem de entrar desta forma.

      Enfim, como você mesmo citou acima, fica por conta do Fiscal da empresa.

      Abraços,

      (0) 
        1. DAVID MEDEIROS Post author

          rsrs, Pois é Edu, e como eu comentei com o Allyson anteriormente, nós tentamos ao menos explicar como o SAP Funciona, agora qual é a regra Fiscal correta (rsrs), prefiro não discutir!

          (0) 
  4. Pedro Muller

    David Medeiros,

    Estou com um problema quanto ao desconto, gostaria de saber se você já se deparou com este erro:

    Compra de consumo – IVA de IPI (15%) e ICMS (19%)

         – Material R$ 1.000,00 ( tirando o IPI e ICMS =  R$ 781,50)

         – Desconto R$ 100,00

              – Retirando o desconto no valor bruto R$ 100,00, valor líquido = R$ 703,35

              – Retirando o desconto no valor líquido de R$ 78,15, valor líquido = R$ 720,43 

    Linhas de imposto:

         – Base para o IPI = 1.000,00 = R$ 150,00

         – Base para o ICMS (1.000,00 – 100,00 + 150,00) = R$ 1.050,00 * 19% = R$ 199,50

    O valor total da nota seria de R$ 1.050,00

    Onde estou, as bases estão vindo com valores errados e mesmo ajustando na mão, eles fica com um valor total inconsistente.

    (0) 

Leave a Reply