CE PLUS - Nota 010276

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 14/06/2010 00:00:00

Data/Hora Última Alteração: 22/02/2011 14:13:45

Descrição da Nota: AJUSTADO RATEIO DAS DESPESAS PARA INCLUSÃO NA BASE DOS IMPOSTOS

Sintoma

A ANA não está seguindo o parametro da tabela /pws/zycit404 e está somando todas as despesas nas

bases de calculculo dos impostos.

 

 

Solução

Ajustado programa para adicionar as despesas na base dos impostos de acordo com o parametrizado na

tabela /pws/zycit404.

Ajustado rateio das despesas para soma na base dos impostos.

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

VÁRIOS AJUSTES DE TRATAMENTO E VARIAÇÃO DA ANA - DI ARGENTINA

AJUSTADO CALCULO DO VALOR A RECOLHER(ANA)

Informações Complementares

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

Nota Número 10276 Data: 14/06/2010 Hora: 11:05:13

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

 

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

Nota Número              : 10276

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00003

Agrupamento              : 00026

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

Referência às notas relacionadas:

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

 

09072  - 00001 - 8.0    - 00001  - VÁRIOS AJUSTES DE TRATAMENTO E VARIAÇÃO DA ANA - DI ARGENTINA

10073  - 00002 - 8.0    - 00003  - AJUSTADO CALCULO DO VALOR A RECOLHER(ANA)

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

AJUSTADO RATEIO DAS DESPESAS PARA INCLUSÃO NA BASE DOS IMPOSTOS

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

Palavras Chave:

ANA - DESPESA  - BASE - IMPOSTO - PARAMETRO - RATEIO

/PWS/SAPMZYCI059 - /PWS/ZYCIT404

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

Objetos da nota:

REPS /PWS/MZYCI059F01

REPS /PWS/MZYCI059F03

REPS /PWS/MZYCI059I01

 

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

Modificações efetuadas em REPS /PWS/MZYCI059F01

 

...

FORM loading_all.

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

  DATA: v_alt TYPE c.

* << Fim da inclusão

...

 

...

        itab_zycit049-baseii   = itab_zycit020-baseii.

        READ TABLE itab_zycit039 WITH KEY

             codigo = itab_zycit020-codigo.

        IF sy-subrc EQ 0.

          itab_zycit049-divabs = itab_zycit039-divabs.

          itab_zycit049-peso   = itab_zycit039-peso.

        ENDIF.

      ENDIF.

      IF NOT itab_zycit049-vldp   IS INITIAL.

        IF  itab_zycit049-waers  NE /pws/zycbt007-waersb.

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

          IF v_mudou NE 'X'.

            v_mudou = 'X'.

            v_alt = 'X'.

          ENDIF.

* << Fim da inclusão

          PERFORM taxa_converte USING    itab_zycit049-waers

                                         /pws/zycie085-dttax

                                CHANGING s_tax.

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

          IF v_alt = 'X'.

            CLEAR v_mudou.

          ENDIF.

* << Fim da inclusão

          itab_zycit049-vlreal = itab_zycit049-vldp * s_tax.

        ELSE.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI059F03

 

...

  IF sy-ucomm EQ 'VISUA'.

    v_visualiza = 'X'.

  ENDIF.

  FREE: itab_desp_funcao, itab_zycit036.

  CLEAR: itab_desp_funcao, itab_zycit036.

  LOOP AT itab_zycit049.

    MOVE: itab_zycit049-tpdesp  TO itab_desp_funcao-tpdesp,

          itab_zycit049-vlreal TO itab_desp_funcao-netpr,

          /pws/zycbt007-waersb  TO itab_desp_funcao-waers.

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

    PERFORM retorna_decimais USING itab_desp_funcao-waers

                        CHANGING itab_desp_funcao-netpr.

* << Fim da inclusão

    READ TABLE itab_it WITH KEY nrseqdi = itab_zycit049-nrseq.

    MOVE: itab_it-nrseq  TO itab_desp_funcao-nrseq,

          itab_it-ebeln  TO itab_desp_funcao-ebeln,

          itab_it-ebelp  TO itab_desp_funcao-ebelp.

    APPEND itab_desp_funcao.

  ENDLOOP.

  IF itab_zycit100[] IS INITIAL.

    LOOP AT itab_it.

      MOVE-CORRESPONDING itab_it TO itab_zycit100.

      APPEND itab_zycit100.

...

 

...

            /pws/zycie085 = /pws/zycie085

       IMPORTING

            v_resposta    = v_resp

       TABLES

            itab_zycit036 = itab_zycit036

            itab_despesa  = itab_desp_funcao

            itab_zycit003 = itab_zycit003

            itab_zycit100 = itab_zycit100

       CHANGING

            v_taxa_usd    = v_usd.

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

  IF v_visualiza EQ 'N'.

    CLEAR v_visualiza.

    EXIT.

  ENDIF.

* << Fim da inclusão

  IF v_resp EQ 'S'.

    LOOP AT itab_zycit036.

      UPDATE /pws/zycit375 SET

                        vldp  = itab_zycit036-vlreal

                        waers = itab_zycit036-waers_real

                  WHERE nrseq   EQ itab_zycit036-nrseq

                    AND nrseqdi EQ /pws/zycie085-nrseqdi

                    AND ebeln   EQ itab_zycit036-ebeln

                    AND ebelp   EQ itab_zycit036-ebelp

                    AND codigo  EQ itab_zycit036-codigo.

...

 

...

FORM carrega_tributos.

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

  DATA v_alt TYPE c.

* << Fim da inclusão

...

 

...

               regio IN (adrc-region, space) AND

               pais  = t001-land1 AND

               bukrs = /pws/zycie001-bukrs.

      SELECT * FROM /pws/zycit402 INTO TABLE itab_zycit402

       FOR ALL ENTRIES IN itab_zycit404

        WHERE  codigo = itab_zycit404-codigo AND

               codmod = 'D' AND

               regio IN (adrc-region, space) AND

               pais  = t001-land1 AND

               bukrs = /pws/zycie001-bukrs.

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

      v_visualiza = 'N'.

      PERFORM visualiza_rateio.

* << Fim da inclusão

    ENDIF.

    SORT: itab_zycit404 DESCENDING BY regio,

          itab_zycit399 DESCENDING BY regio,

          itab_zycit400 DESCENDING BY regio,

          itab_zycit401 DESCENDING BY regio,

          itab_zycit402 DESCENDING BY regio.

    READ TABLE: itab_zycit404 INDEX 1,

                itab_zycit399 INDEX 1,

                itab_zycit400 INDEX 1,

                itab_zycit401 INDEX 1,

...

 

...

        LOOP AT itab_zycit404 WHERE  exibir EQ 'X'.

          CLEAR v_ate.

          v_index = v_first.

          WHILE v_ate <= itab_zycit404-nivelate.

            IF v_ate IS INITIAL.

              v_ate = itab_zycit404-nivelde.

            ENDIF.

            CLEAR itab_zycit404_aux.

            READ TABLE itab_zycit404_aux WITH KEY linha = v_ate.

            v_ate = v_ate +  1.

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

            CLEAR itab_zycit019.

            CLEAR itab_zycit049.

            READ TABLE itab_zycit019 WITH KEY

                codigo = itab_zycit404_aux-codigo.

            IF sy-subrc = 0.

              READ TABLE itab_zycit049 WITH KEY

              tpdesp = itab_zycit019-tpdesp .

            ENDIF.

* << Fim da inclusão

            IF itab_zycit404_aux-codigo EQ 'FOB'.

              IF NOT v_usd IS INITIAL.

                v_valtot = v_valtot +

                                                 itab_it-vlfob .

              ENDIF.

            ELSEIF itab_zycit404_aux-codigo EQ 'FRETEC'.

              v_valtot = v_valtot + itab_it-vlfre.

            ELSEIF itab_zycit404_aux-codigo EQ 'SEGURO'.

              v_valtot = v_valtot + itab_it-vlseg.

            ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'.

              v_valtot = v_valtot + itab_it-ajuste.

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

            ELSEIF itab_zycit404_aux-codigo EQ itab_zycit019-codigo AND

                   NOT itab_zycit049-vldp IS INITIAL AND

                   NOT itab_zycit019-codigo = 'SISC'.

              READ TABLE itab_zycit036 WITH KEY

                                ebeln  = itab_it-ebeln

                                ebelp  = itab_it-ebelp

                                codigo = itab_zycit404_aux-codigo.

              PERFORM trata_decimais USING itab_zycit036-waers_real

                                  CHANGING itab_zycit036-vlreal.

              IF itab_zycit036-waers_real NE /pws/zycbt007-waersa.

                IF v_mudou NE 'X'.

                  v_mudou = 'X'.

                  v_alt = 'X'.

                ENDIF.

                PERFORM taxa_converte USING  itab_zycit036-waers_real

                                               /pws/zycie085-dttax

                                      CHANGING s_tax.

                IF v_alt = 'X'.

                  CLEAR v_mudou.

                ENDIF.

                itab_zycit036-vlreal = itab_zycit036-vlreal * s_tax.

                itab_zycit036-vlreal = itab_zycit036-vlreal / v_usd.

              ENDIF.

              v_valtot = v_valtot + itab_zycit036-vlreal.

* << Fim da inclusão

            ELSEIF sy-subrc EQ 4.

              MOVE: itab_it-nrseqdi TO itab_zycit403-nrseqdi,

                    itab_it-ebeln TO itab_zycit403-ebeln,

                    itab_it-ebelp TO itab_zycit403-ebelp,

                    itab_zycit404-codigo TO itab_zycit403-codigo.

              READ TABLE itab_zycit399 WITH KEY

                               codigo = itab_zycit403-codigo.

              IF sy-subrc EQ 0.

                MOVE itab_zycit399-condicoes TO itab_zycit403-condicoes.

              ENDIF.

...

 

...

              v_valtot = v_valtot + wa_zycit403-valorrec.

            ENDIF.

          ENDWHILE.

          MOVE: itab_it-nrseqdi TO itab_zycit403-nrseqdi,

                itab_it-ebeln TO itab_zycit403-ebeln,

                itab_it-ebelp TO itab_zycit403-ebelp,

                itab_zycit404-codigo TO itab_zycit403-codigo,

                v_valtot TO itab_zycit403-base,

                100 TO  itab_zycit403-basered.

          CLEAR  v_valtot.

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

          LOOP AT itab_trib WHERE ebeln = itab_it-ebeln AND

                                 ebelp = itab_it-ebelp.

            IF NOT v_usd IS INITIAL.

              IF itab_trib-waers NE wa_zycbt007-waersb.

                itab_trib-t_ivdesp = itab_trib-t_ivdesp / v_usd.

              ELSE.

                itab_trib-t_ivdesp = itab_trib-t_ivdesp / v_usd.

              ENDIF.

            ENDIF.

            itab_zycit403-base =

            itab_zycit403-base + itab_trib-t_ivdesp.

          ENDLOOP.

* << Fim da exclusão

          IF ( itab_zycit404-codigo EQ '000415' OR

             itab_zycit404-codigo EQ '000422' OR

             itab_zycit404-codigo EQ '000429' ) AND

             t001-land1 EQ 'AR'.

            itab_zycit403-base = itab_zycit403-base

            + itab_it-vlicms.

          ELSEIF wa_zycit477-land EQ t001-land1.

            READ TABLE itab_zycit020

                              WITH KEY codigo = 'SISC'

                                       baseii = 'X'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI059I01

 

...

    v_index_imp = sy-tabix.

    IF sy-subrc NE 0 .

      CONTINUE.

    ENDIF.

    CLEAR v_ate.

    v_index = v_first.

    v_ate = itab_zycit404-nivelde.

    WHILE v_ate <= itab_zycit404-nivelate.

      CLEAR itab_zycit404_aux.

      READ TABLE itab_zycit404_aux WITH KEY linha = v_ate.

* >> Início da inclusão: MODULE REAPURA_IMP

      CLEAR itab_zycit019.

      CLEAR itab_zycit049.

      READ TABLE itab_zycit019 WITH KEY

          codigo = itab_zycit404_aux-codigo.

      IF sy-subrc = 0.

        READ TABLE itab_zycit049 WITH KEY

        tpdesp = itab_zycit019-tpdesp .

      ENDIF.

* << Fim da inclusão

      IF itab_zycit404_aux-codigo EQ 'FOB'.

        IF NOT v_usd IS INITIAL.

          v_valtot = v_valtot + itab_it-vlfob .

        ENDIF.

      ELSEIF itab_zycit404_aux-codigo EQ 'FRETEC'.

        v_valtot = v_valtot + itab_it-vlfre.

      ELSEIF itab_zycit404_aux-codigo EQ 'SEGURO'.

        v_valtot = v_valtot + itab_it-vlseg.

      ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'.

        v_valtot = v_valtot + itab_it-ajuste.

* >> Início da inclusão: MODULE REAPURA_IMP

      ELSEIF itab_zycit404_aux-codigo EQ itab_zycit019-codigo AND

             NOT itab_zycit049-vldp IS INITIAL AND

             NOT itab_zycit019-codigo = 'SISC'.

        READ TABLE itab_zycit036 WITH KEY

                          ebeln  = /pws/zycie100a-ebeln

                          ebelp  = /pws/zycie100a-ebelp

                          codigo = itab_zycit404_aux-codigo.

        PERFORM trata_decimais USING itab_zycit036-waers_real

                            CHANGING itab_zycit036-vlreal.

        IF itab_zycit036-waers_real NE /pws/zycbt007-waersa.

          IF v_mudou NE 'X'.

            v_mudou = 'X'.

            v_alt = 'X'.

          ENDIF.

          PERFORM taxa_converte USING  itab_zycit036-waers_real

                                         /pws/zycie085-dttax

                                CHANGING s_tax.

          IF v_alt = 'X'.

            CLEAR v_mudou.

          ENDIF.

          itab_zycit036-vlreal = itab_zycit036-vlreal * s_tax.

          itab_zycit036-vlreal = itab_zycit036-vlreal / v_usd.

        ENDIF.

        v_valtot = v_valtot + itab_zycit036-vlreal.

* << Fim da inclusão

      ELSEIF sy-subrc EQ 4.

        READ TABLE itab_zycit404 INTO itab_zycit404_aux

                                   WITH KEY linha = v_ate.

        CLEAR wa_zycit403.

        READ TABLE itab_zycit403_i INTO wa_zycit403

                WITH KEY codigo = itab_zycit404_aux-codigo

                         ebeln  = itab_zycit003-ebeln

                         ebelp  = itab_zycit003-ebelp .

        v_valtot = v_valtot + wa_zycit403-valorrec.

      ENDIF.

      v_ate = v_ate +  1.

    ENDWHILE.

    MOVE: v_valtot TO itab_zycit403_i-base.

    CLEAR  v_valtot.

* >> Início da exclusão: MODULE REAPURA_IMP

    LOOP AT itab_trib WHERE ebeln = itab_it-ebeln AND

                           ebelp = itab_it-ebelp.

      IF NOT v_usd IS INITIAL.

        IF itab_trib-waers NE wa_zycbt007-waersb.

          itab_trib-t_ivdesp = itab_trib-t_ivdesp / v_usd.

        ELSE.

          itab_trib-t_ivdesp = itab_trib-t_ivdesp / v_usd.

        ENDIF.

      ENDIF.

      itab_zycit403_i-base =

      itab_zycit403_i-base + itab_trib-t_ivdesp.

    ENDLOOP.

* << Fim da exclusão

    IF ( itab_zycit404-codigo EQ '000415' OR

       itab_zycit404-codigo EQ '000422' OR

       itab_zycit404-codigo EQ '000429' ) AND

       t001-land1 EQ 'AR'.

      itab_zycit403_i-base = itab_zycit403_i-base

      + itab_it-vlicms.

    ELSEIF wa_zycit477-land EQ t001-land1.

      READ TABLE itab_zycit020

                        WITH KEY codigo = 'SISC'

                                 baseii = 'X'.

...