CE PLUS - Nota 002067

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal

Data/Hora da Publicação: 08/09/2006 00:00:00

Data/Hora Última Alteração: 20/06/2011 13:32:27

Descrição da Nota: RATEIO DE ICMS NA NF INCORRETO, NÃO CONSIDERANDO SUSPENSÃO DE IMPOSTOS.

Sintoma

A DI não está respeitando o parâmetro de base cheia da tabela /pws/ZYCIT062, para icm diferido.

 

 

Solução

Atualização do programa da DI para que nos casos de ICMS Diferido o sistema respeite o flegue da

tabela ZYCIT062 no momento de efetuar o cálculo da Base de ICMS.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

CRIAÇÃO DE UMA DI,IMPORTAÇÃO É SUSPENSO,PIS E O COFINS ESTÃO ZERADOS. VA

INCLUSÃO DA NOVA TELA PIS/COFINS NA DI

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 02067 Data: 08/09/2006 Hora: 10:29:53

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 02067

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 6.0

Pacote                   : 00024

Agrupamento              : 00129

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

01520  - 00002 - 6.0    - 00023  - INCLUSÃO DA NOVA TELA PIS/COFINS NA DI

02034  - 00001 - 6.0    - 00024  - CRIAÇÃO DE UMA DI,IMPORTAÇÃO É SUSPENSO,PIS E O COFINS ESTÃO ZERA

----------------------------------------------------------------------------------------------------

RATEIO DE ICMS NA NF INCORRETO, NÃO CONSIDERANDO SUSPENSÃO DE IMPOSTOS.

----------------------------------------------------------------------------------------------------

Palavras Chave:

RATEIO DE DESPESAS  - SUSPENSÃO DE IMPOSTOS - VALORES ERRADOS

NOTA FISCAL - VALORES DE II E IPI - DESPESAS DI

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/MZYCI016F01

REPS /PWS/MZYCI023F04

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI016F01

 

 

...

  APPEND it_zycee007.

  CLEAR it_zycee007.

ENDFORM.

FORM visualiza_rateio.

  DATA: v_programa LIKE /pws/zycit036-origem VALUE 'NF'.

* >> Início da exclusão: FORM VISUALIZA_RATEIO

  DATA:   v_vlpis       LIKE /pws/zycit100-vlpis   ,

          v_vlcofins    LIKE /pws/zycit100-vlcofins,

          v_vlii        LIKE /pws/zycit100-vlii,

          v_vlipi       LIKE /pws/zycit100-vlipi,

          v_vlicms      LIKE /pws/zycit100-vlicms.

  CLEAR itab_zycit049_a.

  LOOP AT itab_zycit042.

    READ TABLE itab_zycit100 WITH KEY

                                   nrseq = itab_zycit042-nrseq

                                   ebeln = itab_zycit042-ebeln

                                   ebelp = itab_zycit042-ebelp  .

    IF sy-subrc EQ 0.

      v_vlpis    =  v_vlpis    +  itab_zycit100-vlpis.

      v_vlcofins =  v_vlcofins +  itab_zycit100-vlcofins.

      v_vlii     =  v_vlii     +  itab_zycit100-vlii.

      v_vlipi    =  v_vlipi    +  itab_zycit100-vlipi.

      v_vlicms   =  v_vlicms   + itab_zycit100-vlicms.

    ENDIF.

  ENDLOOP.

  itab_zycit049_a-nrseq  = itab_zycit100-nrseqdi.

  itab_zycit049_a-tpdesp = '004'.

  itab_zycit049_a-descr  = 'PIS'.

  itab_zycit049_a-waers  = itab_zycit042-waersb.

  itab_zycit049_a-vlreal = v_vlpis.

  IF NOT itab_zycit049_a-vlreal IS INITIAL.

    APPEND itab_zycit049_a.

  ENDIF.

  CLEAR itab_zycit049_a.

  itab_zycit049_a-nrseq  = itab_zycit100-nrseqdi.

  itab_zycit049_a-tpdesp = '005'.

  itab_zycit049_a-descr  = 'COFINS'.

  itab_zycit049_a-waers  = itab_zycit042-waersb.

  itab_zycit049_a-vlreal = v_vlcofins.

  IF NOT itab_zycit049_a-vlreal IS INITIAL.

    APPEND itab_zycit049_a.

  ENDIF.

  CLEAR itab_zycit049_a.

  itab_zycit049_a-nrseq  = itab_zycit100-nrseqdi.

  itab_zycit049_a-tpdesp = '003'.

  itab_zycit049_a-descr  = 'II'.

  itab_zycit049_a-waers  = itab_zycit042-waersb.

  itab_zycit049_a-vlreal = v_vlii.

  IF NOT itab_zycit049_a-vlreal IS INITIAL.

    APPEND itab_zycit049_a.

  ENDIF.

  CLEAR itab_zycit049_a.

  itab_zycit049_a-nrseq  = itab_zycit100-nrseqdi.

  itab_zycit049_a-tpdesp = '001'.

  itab_zycit049_a-descr  = 'IPI'.

  itab_zycit049_a-waers  = itab_zycit042-waersb.

  itab_zycit049_a-vlreal = v_vlipi.

  IF NOT itab_zycit049_a-vlreal IS INITIAL.

    APPEND itab_zycit049_a.

  ENDIF.

  CLEAR itab_zycit049_a.

  itab_zycit049_a-nrseq  = itab_zycit100-nrseqdi.

  itab_zycit049_a-tpdesp = '002'.

  itab_zycit049_a-descr  = 'ICMS'.

  itab_zycit049_a-waers  = itab_zycit042-waersb.

  itab_zycit049_a-vlreal = v_vlicms.

  IF NOT itab_zycit049_a-vlreal IS INITIAL.

    APPEND itab_zycit049_a.

  ENDIF.

  CLEAR itab_zycit049_a.

  CLEAR   itab_desp_funcao.

  REFRESH itab_desp_funcao.

  LOOP AT itab_zycit049_a.

    MOVE: itab_zycit049_a-tpdesp  TO itab_desp_funcao-tpdesp,

          itab_zycit049_a-vlreal TO itab_desp_funcao-netpr,

          itab_zycit049_a-waers  TO itab_desp_funcao-waers.

    READ TABLE itab_zycit100 WITH KEY nrseqdi = itab_zycit049-nrseq.

    MOVE: itab_zycit100-nrseq  TO itab_desp_funcao-nrseq,

          itab_zycit100-ebeln  TO itab_desp_funcao-ebeln,

          itab_zycit100-ebelp  TO itab_desp_funcao-ebelp.

    APPEND itab_desp_funcao.

  ENDLOOP.

* << Fim da exclusão

  IF sy-dynnr = '0200'.

    v_visualiza = 'N'.

    CALL FUNCTION '/PWS/ZYCI_RATEIO_CUSTO'

      EXPORTING

        v_programa          =  v_programa

...

 

...

        itab_despesa        =  itab_desp_funcao

        itab_zycit003       =  itab_zycit003

        itab_zycit100       =  itab_zycit100aux

        itab_zycit036_plan  =  itab_zycit036_plan.

  ENDIF.

* >> Início da exclusão: FORM VISUALIZA_RATEIO

  LOOP AT itab_zycit049_a.

    DELETE itab_zycit049_a WHERE mandt IS initial.

  ENDLOOP.

* << Fim da exclusão

ENDFORM.

FORM ver_rateio.

  DATA: v_programa LIKE /pws/zycit036-origem VALUE 'NF'.

  SELECT * FROM /pws/zycit100

         INTO TABLE itab_zycit100aux

...

 

...

             AND ebelp = itab_zycit100aux-ebelp

             AND origem = 'FAT'

             AND ( codigo = 'FOB' OR

                   codigo = 'CIF' OR

                   codigo = 'C&F' ).

* >> Início da exclusão: FORM VER_RATEIO

  ENDIF.

  DATA:   v_vlpis       LIKE /pws/zycit100-vlpis   ,

          v_vlcofins    LIKE /pws/zycit100-vlcofins,

          v_vlii        LIKE /pws/zycit100-vlii,

          v_vlipi       LIKE /pws/zycit100-vlipi,

          v_vlicms      LIKE /pws/zycit100-vlicms.

  CLEAR itab_zycit049_a.

  LOOP AT itab_zycit042.

    READ TABLE itab_zycit100 WITH KEY

                                   nrseq = itab_zycit042-nrseq

                                   ebeln = itab_zycit042-ebeln

                                   ebelp = itab_zycit042-ebelp  .

    IF sy-subrc EQ 0.

      v_vlpis    =  v_vlpis    +  itab_zycit100-vlpis.

      v_vlcofins =  v_vlcofins +  itab_zycit100-vlcofins.

      v_vlii     =  v_vlii     +  itab_zycit100-vlii.

      v_vlipi    =  v_vlipi    +  itab_zycit100-vlipi.

      v_vlicms   =  v_vlicms   + itab_zycit100-vlicms.

    ENDIF.

  ENDLOOP.

  itab_zycit049_a-nrseq  = itab_zycit100-nrseqdi.

  itab_zycit049_a-tpdesp = '004'.

  itab_zycit049_a-descr  = 'PIS'.

  itab_zycit049_a-waers  = itab_zycit042-waersb.

  itab_zycit049_a-vlreal = v_vlpis.

  IF NOT itab_zycit049_a-vlreal IS INITIAL.

    APPEND itab_zycit049_a.

  ENDIF.

  CLEAR itab_zycit049_a.

  itab_zycit049_a-nrseq  = itab_zycit100-nrseqdi.

  itab_zycit049_a-tpdesp = '005'.

  itab_zycit049_a-descr  = 'COFINS'.

  itab_zycit049_a-waers  = itab_zycit042-waersb.

  itab_zycit049_a-vlreal = v_vlcofins.

  IF NOT itab_zycit049_a-vlreal IS INITIAL.

    APPEND itab_zycit049_a.

* << Fim da exclusão

  ENDIF.

* >> Início da exclusão: FORM VER_RATEIO

  CLEAR itab_zycit049_a.

  itab_zycit049_a-nrseq  = itab_zycit100-nrseqdi.

  itab_zycit049_a-tpdesp = '003'.

  itab_zycit049_a-descr  = 'II'.

  itab_zycit049_a-waers  = itab_zycit042-waersb.

  itab_zycit049_a-vlreal = v_vlii.

  IF NOT itab_zycit049_a-vlreal IS INITIAL.

    APPEND itab_zycit049_a.

  ENDIF.

  CLEAR itab_zycit049_a.

  itab_zycit049_a-nrseq  = itab_zycit100-nrseqdi.

  itab_zycit049_a-tpdesp = '001'.

  itab_zycit049_a-descr  = 'IPI'.

  itab_zycit049_a-waers  = itab_zycit042-waersb.

  itab_zycit049_a-vlreal = v_vlipi.

  IF NOT itab_zycit049_a-vlreal IS INITIAL.

    APPEND itab_zycit049_a.

  ENDIF.

  CLEAR itab_zycit049_a.

  itab_zycit049_a-nrseq  = itab_zycit100-nrseqdi.

  itab_zycit049_a-tpdesp = '002'.

  itab_zycit049_a-descr  = 'ICMS'.

  itab_zycit049_a-waers  = itab_zycit042-waersb.

  itab_zycit049_a-vlreal = v_vlicms.

  IF NOT itab_zycit049_a-vlreal IS INITIAL.

    APPEND itab_zycit049_a.

  ENDIF.

  CLEAR itab_zycit049_a.

  CLEAR   itab_desp_funcao.

  REFRESH itab_desp_funcao.

  LOOP AT itab_zycit049_a.

    MOVE: itab_zycit049_a-tpdesp  TO itab_desp_funcao-tpdesp,

          itab_zycit049_a-vlreal TO itab_desp_funcao-netpr,

          itab_zycit049_a-waers  TO itab_desp_funcao-waers.

    READ TABLE itab_zycit100 WITH KEY nrseqdi = itab_zycit049-nrseq.

    MOVE: itab_zycit100-nrseq  TO itab_desp_funcao-nrseq,

          itab_zycit100-ebeln  TO itab_desp_funcao-ebeln,

          itab_zycit100-ebelp  TO itab_desp_funcao-ebelp.

    APPEND itab_desp_funcao.

  ENDLOOP.

* << Fim da exclusão

  CALL FUNCTION '/PWS/ZYCI_RATEIO_CUSTO'

    EXPORTING

      v_programa          =  v_programa

      v_visualiza         =  v_visualiza

      v_bukrs             =  /pws/zycit085-bukrs

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI023F04

 

...

         a_cofcalc, a_cofredu, a_cofdevi, a_cofrec.

  CASE /pws/zycie100a-codregtripiscofi.

    WHEN '3' OR '5'.

      IF /pws/zycie100a-aliqpis IS INITIAL.

        a_pisdevi = a_piscalc =

* >> Início da exclusão: FORM CALC_PISCOFINS

          ( ( /pws/zycie100a-advalpis  / 100 ) * t_pisbs ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PISCOFINS

        ( ( /pws/zycie100a-advalpis  / 100 ) * /pws/zycie100a-basepis ).

* << Fim da inclusão

      ELSE.

        a_pisdevi = a_piscalc =

* >> Início da exclusão: FORM CALC_PISCOFINS

         ( ( /pws/zycie100a-aliqpis  / 100 ) * t_pisbs ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PISCOFINS

         ( ( /pws/zycie100a-aliqpis  / 100 ) * /pws/zycie100a-aliqpis ).

* << Fim da inclusão

      ENDIF.

      IF /pws/zycie100a-aliqcof IS INITIAL.

        a_cofdevi = a_cofcalc =

           ( ( /pws/zycie100a-advalcofins  / 100 )

* >> Início da exclusão: FORM CALC_PISCOFINS

                    * t_cofinsbs ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PISCOFINS

                    * /pws/zycie100a-basecofins ) .

* << Fim da inclusão

      ELSE.

        a_cofdevi = a_cofcalc =

* >> Início da exclusão: FORM CALC_PISCOFINS

        ( ( /pws/zycie100a-aliqcof  / 100 ) * t_cofinsbs ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PISCOFINS

        ( ( /pws/zycie100a-aliqcof  / 100 )

                    * /pws/zycie100a-basecofins ) .

* << Fim da inclusão

      ENDIF.

      CLEAR : t_pis, a_pisredu , t_cofins , a_cofredu.

    WHEN '4'.

      IF /pws/zycie100a-basredpis IS INITIAL.

        IF /pws/zycie100a-aliqpis IS INITIAL.

          a_piscalc =

* >> Início da exclusão: FORM CALC_PISCOFINS

           ( ( /pws/zycie100a-advalpis  / 100 ) * t_pisbs ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PISCOFINS

           ( ( /pws/zycie100a-advalpis  / 100 )

                    * /pws/zycie100a-basepis ) .

* << Fim da inclusão

        ELSE.

          a_piscalc =

* >> Início da exclusão: FORM CALC_PISCOFINS

         ( ( /pws/zycie100a-aliqpis  / 100 ) * t_pisbs ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PISCOFINS

         ( ( /pws/zycie100a-aliqpis  / 100 )

                    * /pws/zycie100a-basepis ) .

* << Fim da inclusão

        ENDIF.

      ELSE.

        a_piscalc =

* >> Início da exclusão: FORM CALC_PISCOFINS

          ( ( /pws/zycie100a-basredpis  / 100 ) * t_pisbs ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PISCOFINS

          ( ( /pws/zycie100a-basredpis  / 100 )

                    * /pws/zycie100a-basepis ) .

* << Fim da inclusão

      ENDIF.

      IF /pws/zycie100a-basredcof IS INITIAL.

        IF /pws/zycie100a-aliqcof IS INITIAL.

          a_cofcalc =

* >> Início da exclusão: FORM CALC_PISCOFINS

          ( ( /pws/zycie100a-advalcofins  / 100 ) * t_cofinsbs ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PISCOFINS

          ( ( /pws/zycie100a-advalcofins  / 100 )

                    * /pws/zycie100a-basecofins ) .

* << Fim da inclusão

        ELSE.

          a_cofcalc =

* >> Início da exclusão: FORM CALC_PISCOFINS

    ( ( /pws/zycie100a-aliqcof / 100 ) * t_cofinsbs ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PISCOFINS

    ( ( /pws/zycie100a-aliqcof / 100 )

                    * /pws/zycie100a-basecofins ) .

* << Fim da inclusão

        ENDIF.

      ELSE.

        a_cofcalc =

* >> Início da exclusão: FORM CALC_PISCOFINS

          ( ( /pws/zycie100a-basredcof  / 100 )  * t_cofinsbs ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PISCOFINS

          ( ( /pws/zycie100a-basredcof  / 100 )

                    * /pws/zycie100a-basecofins ) .

* << Fim da inclusão

      ENDIF.

      t_pis = a_pisdevi = a_pisredu =

       ( /pws/zycie100a-basepis / 100 ) * /pws/zycie100a-basredpis  .

      t_cofins = a_cofdevi = a_cofredu =

       ( /pws/zycie100a-basecofins / 100 ) * /pws/zycie100a-basredcof.

    WHEN OTHERS.

      IF /pws/zycie100a-aliqpis IS INITIAL.

        t_pis =  a_pisredu = a_pisdevi = a_piscalc =

* >> Início da exclusão: FORM CALC_PISCOFINS

          ( ( /pws/zycie100a-advalpis  / 100 ) * t_pisbs ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PISCOFINS

          ( ( /pws/zycie100a-advalpis  / 100 )

                    * /pws/zycie100a-basepis ) .

* << Fim da inclusão

      ELSE.

        t_pis =  a_pisredu = a_pisdevi = a_piscalc =

* >> Início da exclusão: FORM CALC_PISCOFINS

         ( ( /pws/zycie100a-aliqpis  / 100 ) * t_pisbs ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PISCOFINS

         ( ( /pws/zycie100a-aliqpis  / 100 )

                    * /pws/zycie100a-basepis ) .

* << Fim da inclusão

      ENDIF.

      IF /pws/zycie100a-aliqcof IS INITIAL.

        t_cofins = a_cofredu = a_cofdevi = a_cofcalc =

           ( ( /pws/zycie100a-advalcofins  / 100 )

* >> Início da exclusão: FORM CALC_PISCOFINS

                    * t_cofinsbs ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PISCOFINS

                    * /pws/zycie100a-basecofins ) .

* << Fim da inclusão

      ELSE.

        t_cofins = a_cofredu = a_cofdevi = a_cofcalc =

* >> Início da exclusão: FORM CALC_PISCOFINS

        ( ( /pws/zycie100a-aliqcof  / 100 ) * t_cofinsbs ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PISCOFINS

        ( ( /pws/zycie100a-aliqcof  / 100 )

                    * /pws/zycie100a-basecofins ) .

* << Fim da inclusão

      ENDIF.

  ENDCASE.

* >> Início da exclusão: FORM CALC_PISCOFINS

    /pws/zycie100a-codfunlegpiscofi  = '16'.

* << Fim da exclusão

 

  itab_it-pis_calculado = a_piscalc.

  itab_it-pis_reduzido  = a_pisredu.

  itab_it-pis_devido    = a_pisdevi.

...