CE PLUS - Nota 010073

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 16/04/2010 00:00:00

Data/Hora Última Alteração: 29/04/2010 17:08:31

Descrição da Nota: AJUSTADO CALCULO DO VALOR A RECOLHER(ANA)

Sintoma

 

Ajustado programa para recalcular o valor a recolher ao alterar aliquota do imposto e para manter o

valor a recolher informado quando o imposto não possuir aliquota.

 

Solução

 

Ajustado programa para recalcular o valor a recolher ao alterar aliquota do imposto e para manter o

valor a recolher informado quando o imposto não possuir aliquota.

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

CORREÇÃO DO CALCULO DA BASE DOS IMPOSTOS.

Informações Complementares

 

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

Nota Número 10073 Data: 16/04/2010 Hora: 14:12:17

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

 

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

Nota Número              : 10073

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00003

Agrupamento              : 00017

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

10032  - 00001 - CORREÇÃO DO CALCULO DA BASE DOS IMPOSTOS.

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

Texto Rápido:

AJUSTADO CALCULO DO VALOR A RECOLHER(ANA)

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

Palavras Chave:

IMPOSTO - VALOR - RECOLHER - TAXA - EXCLUIR - CALCULO - BASE - ANA

/PWS/SAPMZYCI059 - ANA

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

Objetos da nota:

REPS /PWS/MZYCI059F03

REPS /PWS/MZYCI059I01

 

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

Modificações efetuadas em REPS /PWS/MZYCI059F03

 

...

  CHECK NOT /pws/zycie085-ukursfob IS INITIAL.

  IF itab_zycit029[] IS INITIAL.

    SELECT SINGLE land1

      FROM t001

      INTO t001-land1

      WHERE bukrs EQ /pws/zycie085-bukrs.

    SELECT * FROM /pws/zycit029 INTO TABLE itab_zycit029

      WHERE codmod = 'D' AND

            land1  = t001-land1.

  ENDIF.

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

  IF ok_code EQ 'REFR'

   OR NOT v_input IS INITIAL.

* << Fim da exclusão

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

  IF ok_code EQ 'REFR'.

* << Fim da inclusão

    REFRESH: itab_zycit403_t.

    itab_zycit403_t[] = itab_zycit403[].

    REFRESH itab_zycit403.

    CLEAR itab_zycit403.

  ENDIF.

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

  IF itab_zycit404[] IS INITIAL OR ok_code EQ 'REFR'

                          OR NOT v_input IS INITIAL.

* << Fim da exclusão

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

  IF itab_zycit404[] IS INITIAL OR ok_code EQ 'REFR'.

* << Fim da inclusão

    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.

...

 

...

                ENDIF.

              ENDIF.

              READ TABLE itab_zycit403_t WITH KEY

                                    codigo = itab_zycit403-codigo

                                    ebeln  = itab_zycit403-ebeln

                                    ebelp  = itab_zycit403-ebelp.

              IF sy-subrc EQ 0.

                MOVE:

               itab_zycit403_t-percentual TO itab_zycit403-percentual,

               itab_zycit403_t-condicoes TO itab_zycit403-condicoes,

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

               itab_zycit403_t-creditar  TO itab_zycit403-creditar.

* << Fim da exclusão

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

               itab_zycit403_t-creditar  TO itab_zycit403-creditar,

               itab_zycit403_t-valorrec  TO itab_zycit403-valorrec.

* << Fim da inclusão

              ELSE.

               MOVE itab_zycit403-advalorem TO itab_zycit403-percentual.

              ENDIF.

              v_index = v_index + 1.

              v_ate = v_ate - 1.

              READ TABLE itab_zycit404 INTO itab_zycit404_aux

                                         WITH KEY linha = v_ate.

              CLEAR wa_zycit403.

              READ TABLE itab_zycit403 INTO wa_zycit403

                      WITH KEY codigo = itab_zycit404_aux-codigo

                               ebeln  = itab_zycit003-ebeln

                               ebelp  = itab_zycit003-ebelp .

              ADD 1 TO v_ate.

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

              v_valtot = v_valtot + wa_zycit403-valorcalc.

* << Fim da exclusão

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

              v_valtot = v_valtot + wa_zycit403-valorrec.

* << Fim da inclusão

            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.

          LOOP AT itab_trib WHERE ebeln = itab_it-ebeln AND

...

 

...

            ENDIF.

          ENDIF.

          READ TABLE itab_zycit403_t WITH KEY

                                codigo = itab_zycit403-codigo

                                ebeln  = itab_zycit403-ebeln

                                ebelp  = itab_zycit403-ebelp.

          IF sy-subrc EQ 0.

            MOVE:

           itab_zycit403_t-percentual TO itab_zycit403-percentual,

           itab_zycit403_t-condicoes TO itab_zycit403-condicoes,

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

           itab_zycit403_t-creditar  TO itab_zycit403-creditar.

* << Fim da exclusão

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

           itab_zycit403_t-creditar  TO itab_zycit403-creditar,

            itab_zycit403_t-valorrec  TO itab_zycit403-valorrec.

* << Fim da inclusão

          ELSE.

            MOVE itab_zycit403-advalorem TO itab_zycit403-percentual.

          ENDIF.

          itab_zycit403-valorcalc =

              itab_zycit403-base * itab_zycit403-percentual / 100.

          IF itab_zycit403-valorcalc < itab_zycit399-vlmin AND

             NOT  itab_zycit399-vlmin IS INITIAL.

            itab_zycit403-valorcalc = itab_zycit399-vlmin.

          ENDIF.

          IF itab_zycit403-valorcalc > itab_zycit399-vlmax AND

             NOT itab_zycit399-vlmax IS INITIAL.

            itab_zycit403-valorcalc = itab_zycit399-vlmax.

          ENDIF.

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

          IF v_input IS INITIAL.

* << Fim da exclusão

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

          IF NOT itab_zycit403-percentual IS INITIAL.

* << Fim da inclusão

            itab_zycit403-valorrec = itab_zycit403-valorcalc.

          ENDIF.

          APPEND itab_zycit403.

          READ TABLE itab_adic INTO wa_adic

                               WITH KEY ebeln  = itab_it-ebeln

                                        ebelp  = itab_it-ebelp

                                        codigo = itab_zycit403-codigo.

          IF sy-subrc NE 0.

            MOVE: itab_it-ebeln            TO wa_adic-ebeln,

                  itab_it-ebelp            TO wa_adic-ebelp,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI059I01

 

...

MODULE carrega_zycit403 INPUT.

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

  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.

* << Fim da inclusão

  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,

        /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,

...

 

...

      ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'.

        v_valtot = v_valtot + itab_it-ajuste.

      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 .

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

        v_valtot = v_valtot + wa_zycit403-valorcalc.

* << Fim da exclusão

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

        v_valtot = v_valtot + wa_zycit403-valorrec.

* << Fim da inclusão

      ENDIF.

      v_ate = v_ate +  1.

    ENDWHILE.

    MOVE: v_valtot TO itab_zycit403_i-base.

    CLEAR  v_valtot.

    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.

...

 

...

                     codigo = itab_zycit403_i-codigo.

    itab_zycit403_i-valorcalc =

        itab_zycit403_i-base * itab_zycit403_i-percentual / 100.

    IF itab_zycit403_i-valorcalc < itab_zycit399-vlmin AND

       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.

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

    IF itab_zycit403_i-valorrec IS INITIAL.

      itab_zycit403_i-valorrec = itab_zycit403_i-valorcalc.

    ENDIF.

* << Fim da inclusão

    MODIFY itab_zycit403_i INDEX v_index_imp.

    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.

      MODIFY itab_zycit403 INDEX sy-tabix.

    ENDIF.

...