CE PLUS - Nota 012607

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 17/10/2012 14:45:14

Data/Hora Última Alteração: 17/10/2012 14:45:14

Descrição da Nota: AJUSTE NO CALCULO DAS BASES DOS IMPOSTOS

Sintoma

Ajustado tratamento do calculo dos impostos para que sejam exibidos na pasta de impostos apenas

aqueles marcado para exibição e que apenas as despesas e impostos marcado como somatória entrem na

base dos impostos.

 

 

Solução

Ajustado tratamento do calculo dos impostos para que sejam exibidos na pasta de impostos apenas

aqueles marcado para exibição e que apenas as despesas e impostos marcado como somatória entrem na

base dos impostos.

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

NÃO ESTÁ CALCULANDO VALORES DE SEGURO DA ANA

Informações Complementares

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

Nota Número 12607 Data: 15/10/2012 Hora: 14:21:58

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

 

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

Nota Número              : 12607

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 9.0

Pacote                   : 00002

Agrupamento              : 00132

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

Referência às notas relacionadas:

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

 

12600  - 00001 - 9.0    - 00002  - NÃO ESTÁ CALCULANDO VALORES DE SEGURO DA ANA

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

AJUSTE NO CALCULO DAS BASES DOS IMPOSTOS

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

Palavras Chave:

ANA - CALCULO - BASE - IMPOSTOS - PARAMETRO - /PWS/ZYCIT404

/PWS/SAPMZYCI059

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

Objetos da nota:

REPS /PWS/MZYCI059O01

REPS /PWS/MZYCI059I01

REPS /PWS/MZYCI059F03

REPS /PWS/MZYCI059F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI059O01

 

...

MODULE load_data OUTPUT.

  IF t002-spras IS INITIAL.

    t002-spras = 'P'.

  ENDIF.

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

  IF itab_zycit404[] IS INITIAL AND

     NOT itab_zycit403[] IS INITIAL.

    IF NOT itab_it[] IS INITIAL.

      SELECT nrseq ebeln ebelp doc FROM /pws/zycit082

      INTO TABLE itab_zycit082

      FOR ALL ENTRIES IN itab_it WHERE

              ebeln = itab_it-ebeln AND

              ebelp = itab_it-ebelp AND

              nrseq = /pws/zycie001-nrseq.

    ENDIF.

    IF j_1bbranch-bukrs  NE /pws/zycie085-bukrs OR

       j_1bbranch-branch NE /pws/zycie085-j_1bbranch.

      SELECT SINGLE * FROM j_1bbranch

        WHERE bukrs = /pws/zycie085-bukrs

         AND branch = /pws/zycie085-j_1bbranch.

      SELECT SINGLE * FROM adrc

        WHERE addrnumber = j_1bbranch-adrnr.

      SELECT SINGLE * FROM /pws/zycit477 INTO wa_zycit477

        WHERE land = t001-land1.

    ENDIF.

    SELECT * FROM /pws/zycit404 INTO TABLE itab_zycit404

      WHERE codmod = 'D' AND

            regio IN (adrc-region, space) AND

            pais  = t001-land1.

    IF sy-subrc EQ 0.

      SELECT * FROM /pws/zycit399 INTO TABLE itab_zycit399

       FOR ALL ENTRIES IN itab_zycit404

        WHERE  codigo = itab_zycit404-codigo AND

               codmod = 'D' AND

               regio IN (adrc-region, space) AND

               pais  = t001-land1.

    ENDIF.

  ENDIF.

* << Fim da inclusão

  SORT itab_zycit403 BY codigo.

  CLEAR itab_zycit403t.

  REFRESH itab_zycit403t.

  LOOP AT itab_zycit403.

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

    CLEAR itab_zycit404.

    READ TABLE itab_zycit404

                WITH KEY codigo = itab_zycit403-codigo.

    CHECK itab_zycit404-exibir EQ 'X'.

* << Fim da inclusão

    MOVE-CORRESPONDING itab_zycit403 TO itab_zycit403t.

    COLLECT itab_zycit403t.

  ENDLOOP.

  SORT itab_zycit403t BY codigo condicoes.

  IF /pws/zycie085-nrseqdi IS INITIAL.

    CLEAR /pws/zycie085-ntimp.

    IMPORT wa_zycie085 FROM MEMORY ID rimc4.

    IF sy-subrc EQ 0.

      MOVE wa_zycie085 TO /pws/zycie085.

      CLEAR: /pws/zycie085-dtuserc,   /pws/zycie085-dtusera,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI059I01

 

...

MODULE carrega_zycit403 INPUT.

  READ TABLE itab_zycit403_i INDEX tc_trib-current_line.

  IF itab_zycit403_i-percentual NE /pws/zycie403-percentual.

    IF /pws/zycie403-percentual IS INITIAL AND

    itab_zycit403_i-valorrec NE /pws/zycie403-valorrec.

    ELSE.

      CLEAR: /pws/zycie403-valorrec.

    ENDIF.

  ENDIF.

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

  MOVE: /pws/zycie403-nrseqdi    TO  itab_zycit403_i-nrseqdi,

        /pws/zycie403-ebeln      TO  itab_zycit403_i-ebeln,

        /pws/zycie403-ebelp      TO  itab_zycit403_i-ebelp,

* << Fim da exclusão

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

  MOVE:

* << Fim da inclusão

        /pws/zycie403-codigo     TO  itab_zycit403_i-codigo,

        /pws/zycie403-base       TO  itab_zycit403_i-base,

        /pws/zycie403-basered    TO  itab_zycit403_i-basered,

        /pws/zycie403-advalorem  TO  itab_zycit403_i-advalorem,

        /pws/zycie403-percentual TO  itab_zycit403_i-percentual,

        /pws/zycie403-valorcalc  TO  itab_zycit403_i-valorcalc,

        /pws/zycie403-valorrec   TO  itab_zycit403_i-valorrec,

        /pws/zycie403-condicoes  TO  itab_zycit403_i-condicoes,

        /pws/zycie403-creditar   TO  itab_zycit403_i-creditar.

  MODIFY itab_zycit403_i INDEX tc_trib-current_line.

...

 

...

               pais  = t001-land1.

    ENDIF.

  ENDIF.

  SORT: itab_zycit404 DESCENDING BY regio,

        itab_zycit399 DESCENDING BY regio.

  READ TABLE: itab_zycit404 INDEX 1,

              itab_zycit399 INDEX 1.

  DELETE: itab_zycit404 WHERE regio NE itab_zycit404-regio,

          itab_zycit399 WHERE regio NE itab_zycit399-regio.

  SORT itab_zycit404 BY linha.

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

  LOOP AT itab_zycit404 WHERE somatoria EQ 'X'.

    MOVE itab_zycit404 TO itab_zycit404_aux.

    APPEND itab_zycit404_aux.

  ENDLOOP.

* << Fim da exclusão

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

  itab_zycit404_aux[] = itab_zycit404[].

* << Fim da inclusão

  READ TABLE itab_it WITH KEY ebeln = /pws/zycie100a-ebeln

                              ebelp = /pws/zycie100a-ebelp.

  READ TABLE itab_zycit003 WITH KEY ebeln = /pws/zycie100a-ebeln

                                    ebelp = /pws/zycie100a-ebelp.

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

  LOOP AT itab_zycit404 WHERE  exibir EQ 'X'.

* << Fim da exclusão

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

  LOOP AT itab_zycit404 WHERE nivelde NE space.

* << Fim da inclusão

    READ TABLE itab_zycit403_i

                WITH KEY codigo = itab_zycit404-codigo

                         ebeln  = itab_zycit003-ebeln

                         ebelp  = itab_zycit003-ebelp.

    v_index_imp = sy-tabix.

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

    IF itab_zycit404-nivelde NE space AND

       sy-subrc NE 0.

 

      READ TABLE itab_zycit403 INTO itab_zycit403_i

                  WITH KEY codigo = itab_zycit404-codigo

                           ebeln  = itab_zycit003-ebeln

                           ebelp  = itab_zycit003-ebelp.

    ENDIF.

* << Fim da inclusão

    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.

      CLEAR itab_zycit019.

...

 

...

      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' OR

             itab_zycit404_aux-codigo EQ 'FRETEI'.

        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'.

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

      IF itab_zycit404_aux-somatoria NE 'X'.

        ADD 1 TO v_ate.

        CONTINUE.

      ENDIF.

* << Fim da inclusão

        v_valtot = v_valtot + itab_it-ajuste.

      ELSEIF itab_zycit404_aux-codigo EQ itab_zycit019-codigo AND

             NOT itab_zycit049-vldp IS INITIAL AND

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

             itab_zycit404_aux-nivelde NE space AND

* << Fim da inclusão

             NOT itab_zycit019-codigo = 'SISC'.

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

      IF itab_zycit404_aux-somatoria NE 'X'.

        ADD 1 TO v_ate.

        CONTINUE.

      ENDIF.

* << Fim da inclusão

        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'.

...

 

...

          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.

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

      ELSEIF sy-subrc EQ 4.

* << Fim da exclusão

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

      ELSEIF itab_zycit404_aux-nivelde NE space.

      IF itab_zycit404_aux-somatoria NE 'X'.

        ADD 1 TO v_ate.

        CONTINUE.

      ENDIF.

* << Fim da inclusão

        READ TABLE itab_zycit404 INTO itab_zycit404_aux

                                   WITH KEY linha = v_ate.

        CLEAR wa_zycit403.

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

        READ TABLE itab_zycit403_i INTO wa_zycit403

* << Fim da exclusão

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

        READ TABLE itab_zycit403 INTO wa_zycit403

* << Fim da inclusão

                WITH KEY codigo = itab_zycit404_aux-codigo

...

 

...

        + itab_it-vlicms.

      ENDIF.

    ENDIF.

    CLEAR  v_valtot.

    IF itab_zycit404-codigo EQ '000010' OR

       itab_zycit404-codigo EQ '000011' OR

       itab_zycit404-codigo EQ 'DERECH'.

      READ TABLE itab_zycit082 WITH KEY ebeln = itab_it-ebeln

                                        ebelp = itab_it-ebelp.

      IF sy-subrc EQ 0 AND itab_zycit082-doc NE space.

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

        IF itab_zycit404-exibir EQ 'X'.

* << Fim da inclusão

        MODIFY itab_zycit403_i INDEX v_index_imp.

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

        ENDIF.

* << Fim da inclusão

        READ TABLE itab_zycit403 WITH KEY

                              codigo = itab_zycit404-codigo

                              ebeln  = itab_zycit003-ebeln

                              ebelp  = itab_zycit003-ebelp.

        IF sy-subrc EQ 0 .

          MOVE itab_zycit403_i TO itab_zycit403.

...

 

...

       NOT  itab_zycit399-vlmin IS INITIAL.

      itab_zycit403_i-valorcalc = itab_zycit399-vlmin.

    ENDIF.

    IF itab_zycit403_i-valorcalc > itab_zycit399-vlmax AND

       NOT itab_zycit399-vlmax IS INITIAL.

      itab_zycit403_i-valorcalc = itab_zycit399-vlmax.

    ENDIF.

    IF itab_zycit403_i-valorrec IS INITIAL.

      itab_zycit403_i-valorrec = itab_zycit403_i-valorcalc.

    ENDIF.

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

    IF itab_zycit404-exibir EQ 'X'.

* << Fim da inclusão

    MODIFY itab_zycit403_i INDEX v_index_imp.

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

    ENDIF.

* << Fim da inclusão

    READ TABLE itab_zycit403 WITH KEY

                          codigo = itab_zycit404-codigo

                          ebeln  = itab_zycit003-ebeln

                          ebelp  = itab_zycit003-ebelp.

    IF sy-subrc EQ 0 .

      MOVE itab_zycit403_i TO itab_zycit403.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI059F03

 

...

                itab_zycit399 INDEX 1,

                itab_zycit400 INDEX 1,

                itab_zycit401 INDEX 1,

                itab_zycit402 INDEX 1.

    DELETE: itab_zycit404 WHERE regio NE itab_zycit404-regio,

            itab_zycit399 WHERE regio NE itab_zycit399-regio,

            itab_zycit400 WHERE regio NE itab_zycit400-regio,

            itab_zycit401 WHERE regio NE itab_zycit401-regio,

            itab_zycit402 WHERE regio NE itab_zycit402-regio.

    SORT itab_zycit404 BY linha.

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

    LOOP AT itab_zycit404 WHERE exibir NE 'X'

                             OR somatoria EQ space.

      MOVE itab_zycit404 TO itab_zycit404_aux.

      APPEND itab_zycit404_aux.

    ENDLOOP.

* << Fim da exclusão

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

    itab_zycit404_aux[] = itab_zycit404[].

* << Fim da inclusão

    IF itab_zycit403[] IS INITIAL.

      v_first = 0.

      LOOP AT itab_it.

        READ TABLE itab_zycit003 WITH KEY ebeln = itab_it-ebeln

                                          ebelp = itab_it-ebelp.

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

        LOOP AT itab_zycit404 WHERE  exibir EQ 'X'.

* << Fim da exclusão

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

        LOOP AT itab_zycit404 WHERE  nivelde NE space.

* << Fim da inclusão

          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.

            CLEAR itab_zycit019.

...

 

...

              IF NOT v_usd IS INITIAL.

                v_valtot = v_valtot +

                                                 itab_it-vlfob .

              ENDIF.

            ELSEIF itab_zycit404_aux-codigo EQ 'FRETEC' OR

                   itab_zycit404_aux-codigo EQ 'FRETEI'.

              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'.

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

              IF itab_zycit404_aux-somatoria NE 'X'.

                CONTINUE.

              ENDIF.

* << Fim da inclusão

              v_valtot = v_valtot + itab_it-ajuste.

            ELSEIF itab_zycit404_aux-codigo EQ itab_zycit019-codigo AND

                   NOT itab_zycit049-vldp IS INITIAL AND

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

                   itab_zycit404_aux-nivelde NE space AND

* << Fim da inclusão

                   NOT itab_zycit019-codigo = 'SISC'.

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

              IF itab_zycit404_aux-somatoria NE 'X'.

                CONTINUE.

              ENDIF.

* << Fim da inclusão

              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'.

...

 

...

                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.

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

            ELSEIF sy-subrc EQ 4.

* << Fim da exclusão

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

            ELSEIF itab_zycit404_aux-nivelde NE space.

              IF itab_zycit404_aux-somatoria NE 'X'.

                CONTINUE.

              ENDIF.

* << Fim da inclusão

              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.

              READ TABLE itab_zycit512 WITH KEY

...

 

...

                  itab_zycit403-condicoes  TO wa_adic-condicoes.

            PERFORM alv_vlint CHANGING wa_adic.

            MODIFY itab_adic FROM wa_adic INDEX sy-tabix.

          ENDIF.

          CLEAR itab_zycit403.

        ENDLOOP.

        DESCRIBE TABLE itab_zycit403 LINES v_first.

      ENDLOOP.

      SORT itab_zycit403 BY codigo.

      LOOP AT itab_zycit403.

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

        CLEAR itab_zycit404.

        READ TABLE itab_zycit404

                    WITH KEY codigo = itab_zycit403-codigo.

        CHECK itab_zycit404-exibir EQ 'X'.

* << Fim da inclusão

        MOVE-CORRESPONDING itab_zycit403 TO itab_zycit403t.

        COLLECT itab_zycit403t.

      ENDLOOP.

      PERFORM verifica_exit USING 'D'

                                  '/PWS/SAPMZYCI059'

                                  'ANA001'.

      CLEAR itab_zyglt100 .

      READ TABLE itab_zyglt100 WITH KEY zexit = 'ANA001'  BINARY SEARCH.

      IF sy-subrc EQ 0.

        IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

          PERFORM (itab_zyglt100-formulario) IN PROGRAM

              (itab_zyglt100-programa) IF FOUND.

        ENDIF.

      ENDIF.

    ELSE.

      SORT itab_zycit403 BY codigo.

      CLEAR itab_zycit403t.

      REFRESH itab_zycit403t.

      LOOP AT itab_zycit403.

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

        CLEAR itab_zycit404.

        READ TABLE itab_zycit404

                    WITH KEY codigo = itab_zycit403-codigo.

        CHECK itab_zycit404-exibir EQ 'X'.

* << Fim da inclusão

        MOVE-CORRESPONDING itab_zycit403 TO itab_zycit403t.

        COLLECT itab_zycit403t.

      ENDLOOP.

    ENDIF.

  ENDIF.

  SORT itab_zycit403t BY codigo condicoes.

ENDFORM.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI059F01

 

...

    ENDLOOP.

    READ TABLE itab_it WITH KEY mark = 'X'.

    v_ip = sy-tabix.

    IF v_msg = 'S'.

      MESSAGE i015 WITH text-219.

    ENDIF.

  ENDIF.

  LOOP AT itab_zycit403.

    CHECK itab_zycit403-ebeln = itab_it-ebeln AND

          itab_zycit403-ebelp = itab_it-ebelp.

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

    CLEAR itab_zycit404.

    READ TABLE itab_zycit404 WITH KEY

                          codigo = itab_zycit403-codigo.

    CHECK itab_zycit404-exibir EQ 'X'.

* << Fim da inclusão

    MOVE itab_zycit403 TO itab_zycit403_i.

    APPEND itab_zycit403_i.

  ENDLOOP.

  MOVE: itab_it-matnr TO /pws/zycie003-matnr,

        itab_it-idnlf TO mepo1319-idnlf.

  CALL SCREEN '0400'.

ENDFORM.

...