CE PLUS - Nota 005386

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 05/12/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 15:18:55

Descrição da Nota: DESENVOLVIMENTO ADMISSÃO TEMPORÁRIA ICMS, PIS E COFINS

Sintoma

Desenvolvimento de admissão temporária para aliquota de ICMS, PIS e cofins

 

 

Solução

criar tratamento para cálculo de alíquotas de ICMS, PIS e COFINS quando processo for de admissão

temporária.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

PAGAMENTO PROPORCIONAL DE IMPOSTOS PARA ADMISSÃO TEMPORARIA.

AO ZERAR ALIQUOTA PIS/COFINS E ENTRAR NOVAMENTE NA DI, ESTÁ PREENCHIDA

Informações Complementares

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

Nota Número 05386 Data: 05/12/2007 Hora: 10:06:12

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

 

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

Nota Número              : 05386

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00024

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

Referência às notas relacionadas:

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

 

02272  - 00001 - 6.0    - 00025  - AO ZERAR ALIQUOTA PIS/COFINS E ENTRAR NOVAMENTE NA DI, ESTÁ PREEN

04082  - 00002 - 7.0    - 00002  - PAGAMENTO PROPORCIONAL DE IMPOSTOS PARA ADMISSÃO TEMPORARIA.

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

DESENVOLVIMENTO ADMISSÃO TEMPORÁRIA ICMS, PIS E COFINS

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

Palavras Chave:

TRATAMENTO DE ALÍQUOTAS - PIS - COFINS - ICMS

ADMISSÃO TEMPORÁRIA

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

Objetos da nota:

REPS /PWS/MZYCI001I01

REPS /PWS/MZYCI023F01

REPS /PWS/MZYCI058F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI001I01

 

...

      EXIT.

    ENDIF.

    itab_zycit003-advalii = itab_zycit003-aliqii *

           ( 1 - ( ( 12 * /pws/zycie374-tp_vida_util -

                   /pws/zycie374-tp_perman )

                     / ( 12 * /pws/zycie374-tp_vida_util ) ) ).

    itab_zycit003-advalipi = itab_zycit003-aliqipi *

           ( 1 - ( ( 12 * /pws/zycie374-tp_vida_util -

                   /pws/zycie374-tp_perman )

                     / ( 12 * /pws/zycie374-tp_vida_util ) ) ).

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

    itab_zycit003-advalicms = itab_zycit003-aliqicms *

           ( 1 - ( ( 12 * /pws/zycie374-tp_vida_util -

                   /pws/zycie374-tp_perman )

                     / ( 12 * /pws/zycie374-tp_vida_util ) ) ).

* << Fim da inclusão

  ELSE.

    SELECT SINGLE nrseq FROM /pws/zycit100

      INTO itab_zycit003-nrseq

      WHERE nrseq EQ /pws/zycie001-nrseq.

    IF sy-subrc EQ 0.

      EXIT.

    ENDIF.

    CLEAR: itab_zycit003.

  ENDIF.

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

  MODIFY itab_zycit003 TRANSPORTING advalii advalipi

* << Fim da exclusão

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

  MODIFY itab_zycit003 TRANSPORTING advalii advalipi advalicms

* << Fim da inclusão

              WHERE ebeln = /pws/zycie374-ebeln

                AND ebelp = /pws/zycie374-ebelp.

ENDMODULE.

 

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

Modificações efetuadas em REPS /PWS/MZYCI058F01

 

...

 

FORM fill_itabit.

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

  DATA: BEGIN OF itab_zycit374 OCCURS 0.

          INCLUDE STRUCTURE /pws/zycit374.

  DATA END OF itab_zycit374.

* << Fim da inclusão

 

 

...

 

...

 

   IF NOT itab_zycit003[] IS INITIAL.

     SELECT * FROM /pws/zycit013 INTO TABLE itab_zycit013

              FOR ALL ENTRIES IN itab_zycit003

              WHERE ebeln = itab_zycit003-ebeln AND

                    ebelp = itab_zycit003-ebelp.

 

     SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

              FOR ALL ENTRIES IN itab_zycit003 WHERE

              nrseq = itab_zycit003-nrseq AND

              ebeln = itab_zycit003-ebeln AND

              ebelp = itab_zycit003-ebelp AND

              eliminado = space.

 

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

    SELECT * FROM /pws/zycit374

    INTO TABLE itab_zycit374

               FOR ALL ENTRIES IN itab_zycit003

               WHERE nrseq = itab_zycit003-nrseq.

* << Fim da inclusão

  ENDIF.

 

  IF NOT itab_zycit263[] IS INITIAL.

    SELECT * FROM /pws/zycit006 INTO TABLE itab_zycit006

             FOR ALL ENTRIES IN itab_zycit263 WHERE

             nrseq_pgfat = itab_zycit263-nrseq_pgfat.

  ENDIF.

 

  IF NOT itab_zycit003[] IS INITIAL.

    SELECT * FROM /pws/zycit001 INTO TABLE itab_zycit001

             FOR ALL ENTRIES IN itab_zycit003

             WHERE nrseq = itab_zycit003-nrseq.

 

...

 

...

 

    IF NOT itab_itb-advalipi IS INITIAL.

      itab_it-advalipi = itab_itb-advalipi.

    ELSE.

      itab_itb-advalipi = itab_it-advalipi = itab_zycit003-advalipi .

    ENDIF.

    IF NOT itab_itb-advalicms IS INITIAL.

      itab_it-advalicms = itab_itb-advalicms.

    ELSE.

      itab_itb-advalicms = itab_it-advalicms = itab_zycit003-advalicms

    ENDIF.

    IF itab_it-pproc IS INITIAL.

      itab_it-pproc = itab_it-porigem.

    ENDIF.

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

    read table itab_zycit001 with key nrseq = itab_zycit003-nrseq.

* << Fim da inclusão

    IF sy-tcode EQ '/PWS/ZYCI058_C'.

      IF itab_it-advalii   IS INITIAL.

        IF /pws/zycie093-meiotransp EQ 'PS'.

          itab_it-advalii = '60'.

        ELSE.

          itab_it-advalii   = itab_it-aliqii.

        ENDIF.

      ENDIF.

      IF itab_it-advalipi  IS INITIAL.

        itab_it-advalipi  = itab_it-aliqipi.

      ENDIF.

       IF itab_it-advalicms IS INITIAL.

         itab_it-advalicms = itab_it-aliqicms.

       ENDIF.

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

  ENDIF.

* << Fim da exclusão

       SELECT SINGLE matnr FROM ekpo INTO v_matnr

         WHERE ebeln EQ itab_it-ebeln

         AND   ebelp EQ itab_it-ebelp.

 

       IF itab_it-basredpis IS INITIAL.

         SELECT SINGLE *  FROM /pws/zycit406 INTO wa_zycit406

           WHERE pais EQ 'BR'

           AND   matnr EQ v_matnr

           AND   tributos EQ 'PIS'.

         IF sy-subrc EQ 0.

           itab_it-basredpis = wa_zycit406-basred   .

           itab_it-advalpis  = wa_zycit406-aliquotas.

         ELSE.

           SELECT SINGLE * FROM /pws/zycit405 INTO wa_zycit405

             WHERE pais EQ 'BR'

             AND   ncm  EQ itab_it-j_1bnbm

             AND   tributos EQ 'PIS'.

           IF sy-subrc EQ 0.

             itab_it-basredpis = wa_zycit405-basred   .

             itab_it-advalpis  = wa_zycit405-aliquotas.

           ELSE.

             SELECT SINGLE * FROM /pws/zycit407 INTO wa_zycit407

               WHERE pais EQ 'BR'

               AND   tributos EQ 'PIS'.

             IF sy-subrc EQ 0.

               itab_it-basredpis = wa_zycit407-basred   .

               itab_it-advalpis  = wa_zycit407-aliquotas.

             ELSE.

               itab_it-basredpis = 100.

               CLEAR : itab_it-advalpis,

                       itab_it-vlpis   .

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

            ENDIF.

          ENDIF.

* << Fim da inclusão

        ENDIF.

      ENDIF.

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

       IF itab_zycit001-regime EQ '09' .

         READ TABLE itab_zycit374 WITH KEY

                nrseq = itab_it-nrseq

                ebeln = itab_it-ebeln

                ebelp = itab_it-ebelp.

         IF sy-subrc EQ 0

           AND NOT itab_zycit374-tp_vida_util IS INITIAL.

           itab_it-advalpis = itab_it-advalpis *

             ( 1 - ( ( 12 * itab_zycit374-tp_vida_util -

                     itab_zycit374-tp_perman )

                       / ( 12 * itab_zycit374-tp_vida_util ) ) ).

* << Fim da inclusão

         ENDIF.

       ENDIF.

       IF itab_it-basredcof IS INITIAL.

         SELECT SINGLE *  FROM /pws/zycit406 INTO wa_zycit406

           WHERE pais EQ 'BR'

           AND   matnr EQ v_matnr

           AND   tributos EQ 'COFINS'.

         IF sy-subrc EQ 0.

           itab_it-basredcof    = wa_zycit406-basred   .

           itab_it-advalcofins  = wa_zycit406-aliquotas.

         ELSE.

           SELECT SINGLE * FROM /pws/zycit405 INTO wa_zycit405

             WHERE pais EQ 'BR'

             AND   ncm  EQ itab_it-j_1bnbm

             AND   tributos EQ 'COFINS'.

           IF sy-subrc EQ 0.

             itab_it-basredcof    = wa_zycit405-basred   .

             itab_it-advalcofins  = wa_zycit405-aliquotas.

           ELSE.

             SELECT SINGLE * FROM /pws/zycit407 INTO wa_zycit407

               WHERE pais EQ 'BR'

               AND   tributos EQ 'COFINS'.

             IF sy-subrc EQ 0.

               itab_it-basredcof    = wa_zycit407-basred   .

               itab_it-advalcofins  = wa_zycit407-aliquotas.

             ELSE.

               itab_it-basredcof = 100.

               CLEAR : itab_it-advalcofins,

                       itab_it-vlcofins   .

             ENDIF.

           ENDIF.

         ENDIF.

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

      ENDIF.

      IF itab_zycit001-regime EQ '09' .

        READ TABLE itab_zycit374 WITH KEY

               nrseq = itab_it-nrseq

               ebeln = itab_it-ebeln

               ebelp = itab_it-ebelp.

        IF sy-subrc EQ 0

          AND NOT itab_zycit374-tp_vida_util IS INITIAL.

          itab_it-advalcofins = itab_it-advalcofins *

            ( 1 - ( ( 12 * itab_zycit374-tp_vida_util -

                    itab_zycit374-tp_perman )

                      / ( 12 * itab_zycit374-tp_vida_util ) ) ).

        ENDIF.

      ENDIF.

* << Fim da inclusão

    ENDIF.

    ENDIF.

    PERFORM text_item_fill.

    IF NOT itab_zycit003-qtd_itend IS INITIAL.

      IF NOT /pws/zycie093-brgewd IS INITIAL AND

         NOT itab_zycit003 IS INITIAL.

        itab_it-ntgew = itab_zycit003-ntgewd.

      ENDIF.

    ENDIF.

    IF v_sub EQ 0.

      MODIFY itab_it INDEX v_idx.

    ELSE.

      APPEND itab_it.

    ENDIF.

    v_tntgew  = v_tntgew + itab_it-ntgew.

    v_tsegfat = v_tsegfat + itab_it-vlseg_fat.

    IF itab_it-qtd_itencacl IS INITIAL.

      v_tval = v_tval + ( itab_it-qtd_iten * itab_it-vlreal ).

      v_tmle = v_tmle + ( ( itab_it-qtd_iten * itab_it-vlreal )

                      * itab_it-dttaxbem ).

...

 

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F01

 

...

 

FORM fill_itabit.

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

  DATA: BEGIN OF itab_zycit374 OCCURS 0.

          INCLUDE STRUCTURE /pws/zycit374.

  DATA END OF itab_zycit374.

* << Fim da inclusão

 

...

 

...

             FOR ALL ENTRIES IN itab_zycit003

             WHERE land1 = itab_zycit003-porigem.

  ENDIF.

  SELECT * FROM /pws/zycit122 INTO TABLE itab_zycit122.

  SELECT * FROM /pws/zycit123 INTO TABLE itab_zycit123.

  IF NOT itab_zycit003[] IS INITIAL.

    SELECT * FROM ekpo INTO TABLE itab_ekpo

             FOR ALL ENTRIES IN itab_zycit003

             WHERE ebeln = itab_zycit003-ebeln

               AND ebelp = itab_zycit003-ebelp.

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

    SELECT * FROM /pws/zycit374

    INTO TABLE itab_zycit374

               FOR ALL ENTRIES IN itab_zycit003

               WHERE nrseq = itab_zycit003-nrseq.

* << Fim da inclusão

  ENDIF.

  SELECT * FROM /pws/zycit229 INTO TABLE itab_zycit229

           WHERE codeven = 'DI'.

  IF itab_zycit086[] IS INITIAL.

    PERFORM fill_instdesp.

  ENDIF.

  /pws/zycie085-mdadicao = 'S'.

  CLEAR: v_tntgew, v_tval, v_tmle, v_waers, v_tsegfat.

  LOOP AT itab_zycit003.

    READ TABLE itab_zycit013 WITH KEY

...

 

...

            SELECT SINGLE * FROM /pws/zycit407 INTO wa_zycit407

              WHERE pais EQ 'BR'

              AND   tributos EQ 'PIS'.

            IF sy-subrc EQ 0.

              itab_it-basredpis = wa_zycit407-basred   .

              itab_it-advalpis  = wa_zycit407-aliquotas.

            ELSE.

              itab_it-basredpis = itab_it-advalpis.

              CLEAR : itab_it-advalpis,

                      itab_it-vlpis   .

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

            ENDIF.

* << Fim da inclusão

            ENDIF.

          ENDIF.

        ENDIF.

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

      IF itab_zycit001-regime EQ '05' .

        READ TABLE itab_zycit374 WITH KEY

               nrseq = itab_it-nrseq

               ebeln = itab_it-ebeln

               ebelp = itab_it-ebelp.

        IF sy-subrc EQ 0

          AND NOT itab_zycit374-tp_vida_util IS INITIAL.

          itab_it-advalpis = itab_it-advalpis *

            ( 1 - ( ( 12 * itab_zycit374-tp_vida_util -

                    itab_zycit374-tp_perman )

                      / ( 12 * itab_zycit374-tp_vida_util ) ) ).

* << Fim da inclusão

      ENDIF.

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

      ENDIF.

* << Fim da inclusão

      IF itab_it-basredcof IS INITIAL.

        SELECT SINGLE *  FROM /pws/zycit406 INTO wa_zycit406

          WHERE pais EQ 'BR'

          AND   matnr EQ v_matnr

          AND   tributos EQ 'COFINS'

          AND   regime EQ itab_zycit001-regime.

...

 

...

              itab_it-basredcof    = wa_zycit407-basred   .

              itab_it-advalcofins  = wa_zycit407-aliquotas.

            ELSE.

              itab_it-basredcof = itab_it-advalcofins.

              CLEAR : itab_it-advalcofins,

                      itab_it-vlcofins   .

            ENDIF.

          ENDIF.

        ENDIF.

      ENDIF.

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

      IF itab_zycit001-regime EQ '05' .

        READ TABLE itab_zycit374 WITH KEY

               nrseq = itab_it-nrseq

               ebeln = itab_it-ebeln

               ebelp = itab_it-ebelp.

        IF sy-subrc EQ 0

          AND NOT itab_zycit374-tp_vida_util IS INITIAL.

          itab_it-advalcofins = itab_it-advalcofins *

            ( 1 - ( ( 12 * itab_zycit374-tp_vida_util -

                    itab_zycit374-tp_perman )

                      / ( 12 * itab_zycit374-tp_vida_util ) ) ).

* << Fim da inclusão

    ENDIF.

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

      ENDIF.

    ENDIF.

* << Fim da inclusão

    READ TABLE itab_zycit078 WITH KEY

        nrseqli = itab_zycit003-nrseqli.

    IF sy-subrc EQ 0.

      itab_it-codfunleg = itab_zycit078-codfunleg .

      itab_it-codregtri = itab_zycit078-codregtri .

...