CE PLUS - Nota 006176

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 14/03/2008 00:00:00

Data/Hora Última Alteração: 22/02/2011 13:52:43

Descrição da Nota: AJUSTES PARA TRATAMENTOS DE IPI ISENÇÃO, COURIER E GRANEL NA DI E NF

Sintoma

ajustes para tratamentos de IPI isenção, courier e granel na di e nf

 

 

Solução

tratamento para rateio de despesas quando houver granel, dsi courier e tratamento para IPI isenção.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

NÃO GERA VARIAÇÃO P/MATERIAIS DE CENTROS DE LUCROS DIFERENTES

OPERAÇÃO FUNDAP (PARTE II)

AJUST. DO RATEIO DAS DESPESAS NA NF E A GRAVAÇÃO DO FRETE NA DSI

Informações Complementares

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

Nota Número 06176 Data: 14/03/2008 Hora: 16:44:29

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

 

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

Nota Número              : 06176

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00004

Agrupamento              : 00038

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

Referência às notas relacionadas:

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

 

04895  - 00001 - 7.0    - 00003  - NÃO GERA VARIAÇÃO P/MATERIAIS DE CENTROS DE LUCROS DIFERENTES

05481  - 00002 - 7.0    - 00003  - AJUST. DO RATEIO DAS DESPESAS NA NF E A GRAVAÇÃO DO FRETE NA DSI

05719  - 00003 - 7.0    - 00004  - OPERAÇÃO FUNDAP (PARTE II)

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

AJUSTES PARA TRATAMENTOS DE IPI ISENÇÃO, COURIER E GRANEL NA DI E NF

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

Palavras Chave:

IPI ISENÇÃO - COURIER - NF

 

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

Objetos da nota:

FUNC /PWS/ZYCI_RATEIO_CUSTO

MERG F6DK959024 20080314 163318 PWSCI

MERG F6DK959118 20080314 163306 PWSCI

MERG F6DK959206 20080314 163250 PWSCI

MERG F6DK959212 20080314 163243 PWSCI

MERG F6DK959220 20080314 163234 PWSCI

REPS /PWS/LZYCIGF2F01

REPS /PWS/MZYCI016F01

REPS /PWS/MZYCI023F01

REPS /PWS/MZYCI023F03

REPS /PWS/MZYCI023X01

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO

 

...

    ENDIF.

    LOOP AT itab_zycit036_aux WHERE codigo = 'FRETEI' AND

                                 origem = v_ori.

      v_tfrete = v_tfrete + itab_zycit036_aux-vlreal.

    ENDLOOP.

  ENDIF.

  LOOP AT itab_zycit003 .

    IF ( v_vinserv IS INITIAL AND

         itab_zycit003-servico IS INITIAL ) OR

         ( v_vinserv EQ 'X' AND itab_zycit003-servico EQ 'X' ) .

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

      IF NOT itab_zycit003-qtd_itend IS INITIAL.

        v_tpeso = v_tpeso + itab_zycit003-ntgewd.

      ELSE.

* << Fim da inclusão

      v_tpeso = v_tpeso + itab_zycit003-ntgew.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

      ENDIF.

* << Fim da inclusão

      v_valor  = itab_zycit003-qtd_iten * itab_zycit003-vlreal.

      IF NOT v_valor IS INITIAL AND NOT v_tvalor IS INITIAL.

        v_tseg = v_valor / v_tvalor.

      ENDIF.

      v_seg = v_seg + v_valor.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_zycit003 .

    IF ( v_vinserv IS INITIAL AND

         itab_zycit003-servico IS INITIAL ) OR

         ( v_vinserv EQ 'X' AND itab_zycit003-servico EQ 'X' ) .

      IF NOT v_tpeso IS INITIAL.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

        IF NOT itab_zycit003-qtd_itend IS INITIAL.

          v_vlfrete =  v_tfrete * ( itab_zycit003-ntgewd / v_tpeso ).

        ELSE.

* << Fim da inclusão

        v_vlfrete =  v_tfrete * ( itab_zycit003-ntgew / v_tpeso ).

      ENDIF.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

      ENDIF.

* << Fim da inclusão

      IF /pws/zycit085-waersfob NE itab_zycit003-waers.

        PERFORM taxa_converte USING itab_zycit003-waers

                                        /pws/zycit085-dttax

                                                 t001-land1

                                           CHANGING  v_taxa.

...

 

...

                      itab_zycit036_aux-vlreal = itab_zycit443-vl_sisco.

                    itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.

                      ENDIF.

                    ENDIF.

                  ELSE.

                    IF itab_zycit039-divabs EQ 'X'.

                itab_zycit036_aux-vlreal = itab_despesa-netpr / v_linha.

                      itab_zycit036_aux-waers_real = itab_despesa-waers.

                    ELSEIF itab_zycit039-peso EQ 'X'.

                      IF NOT v_tpeso IS INITIAL.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                        IF NOT itab_zycit003-qtd_itend IS INITIAL.

                        itab_zycit036_aux-vlreal = itab_despesa-netpr *

                                       itab_zycit003-ntgewd / v_tpeso.

                        ELSE.

* << Fim da inclusão

                        itab_zycit036_aux-vlreal = itab_despesa-netpr *

                                          itab_zycit003-ntgew / v_tpeso.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                        ENDIF.

* << Fim da inclusão

                      itab_zycit036_aux-waers_real = itab_despesa-waers.

                      ENDIF.

                    ELSEIF itab_zycit039-proporplan EQ 'X'.

                     itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *

                                     itab_zycit003-qtd_iten / v_tot ) *

...

 

...

                     itab_zycit036_aux-vlreal = itab_zycit100a-vl_sisco.

                    itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.

                      ENDIF.

                    ENDIF.

                  ELSE.

                    IF itab_zycit039-divabs EQ 'X'.

                itab_zycit036_aux-vlreal = itab_despesa-netpr / v_linha.

                      itab_zycit036_aux-waers_real = itab_despesa-waers.

                    ELSEIF itab_zycit039-peso EQ 'X'.

                      IF NOT v_tpeso IS INITIAL.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                        IF NOT itab_zycit003-qtd_itend IS INITIAL.

                        itab_zycit036_aux-vlreal = itab_despesa-netpr *

                                         itab_zycit003-ntgewd / v_tpeso.

                        ELSE .

* << Fim da inclusão

                        itab_zycit036_aux-vlreal = itab_despesa-netpr *

                                          itab_zycit003-ntgew / v_tpeso.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                        ENDIF.

* << Fim da inclusão

                      itab_zycit036_aux-waers_real = itab_despesa-waers.

                      ENDIF.

                    ELSEIF itab_zycit039-proporplan EQ 'X'.

                     itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *

                                     itab_zycit003-qtd_iten / v_tot ) *

...

 

...

              itab_zycit036-vlreal = v_total.

            ENDIF.

            IF NOT itab_zycit036-vlreal IS INITIAL.

              IF v_waers IS INITIAL.

                itab_zycit036-waers_real = /pws/zycbt007-waersb.

              ELSE.

                itab_zycit036-waers_real = v_waers.

              ENDIF.

            ENDIF.

          ELSE.

            MOVE: 'FRETEI'             TO itab_zycit036-codigo.

            IF NOT v_tpeso IS INITIAL.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

              itab_zycit036-vlreal = v_total * ( itab_zycit003-ntgew /

                                                              v_tpeso ).

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

              IF NOT itab_zycit003-qtd_itend IS INITIAL.

                itab_zycit036-vlreal = v_total *

                ( itab_zycit003-ntgewd / v_tpeso ).

              ELSE.

                itab_zycit036-vlreal = v_total *

                ( itab_zycit003-ntgew / v_tpeso ).

              ENDIF.

* << Fim da inclusão

            ENDIF.

            IF v_waers IS INITIAL.

              itab_zycit036-waers_real = /pws/zycbt007-waersb.

            ELSE.

              itab_zycit036-waers_real = v_waers.

            ENDIF.

          ENDIF.

        ELSEIF v_parametro(2) EQ '03'.

          IF v_linha = v_index.

            IF NOT v_tot_desp IS INITIAL.

...

 

 

...

        ENDLOOP.

        LOOP AT itab_zycit036_aux.

          MOVE itab_zycit036_aux TO itab_zycit036.

          APPEND itab_zycit036.

        ENDLOOP.

      ELSE.

        SELECT SINGLE land1 FROM t001 INTO t001-land1

                  WHERE bukrs EQ /pws/zycbt007-bukrs.

        SELECT SINGLE * FROM /pws/zycit031

          WHERE inco1 = /pws/zycit001-inco1 AND

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                land1 EQ t001-land1.                    "#EC CI_NOFIRST

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

               land1 EQ t001-land1.                     "#EC CI_NOFIRST

* << Fim da inclusão

        SELECT SINGLE land1 FROM t001 INTO t001-land1

                   WHERE bukrs EQ /pws/zycbt007-bukrs.

        SELECT SINGLE * FROM /pws/zycbt007

                        WHERE bukrs EQ v_bukrs.

        READ TABLE itab_zycit100a INDEX 1.

        SELECT SINGLE * FROM /pws/zycit085

               WHERE nrseqdi = itab_zycit100a-nrseqdi.

        SELECT SINGLE * FROM /pws/zycit093

               WHERE nrseqce = /pws/zycit085-nrbl.

        DESCRIBE TABLE itab_zycit003 LINES v_line_rateio.

...

 

...

                                     ebelp  = itab_zycit036_aux-ebelp

                                     codigo = itab_zycit036_aux-codigo.

                  IF sy-subrc EQ 0.

                    CONTINUE.

                  ENDIF.

                  IF itab_zycit039-divabs EQ 'X'.

                itab_zycit036_aux-vlreal = itab_despesa-netpr / v_linha.

                    itab_zycit036_aux-waers_real = itab_despesa-waers.

                  ELSEIF itab_zycit039-peso EQ 'X'.

                    IF NOT v_tpeso IS INITIAL.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                      IF NOT itab_zycit003-qtd_itend IS INITIAL.

* << Fim da inclusão

                      itab_zycit036_aux-vlreal = itab_despesa-netpr *

                                          itab_zycit003-ntgew / v_tpeso.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                      ELSE.

                        itab_zycit036_aux-vlreal = itab_despesa-netpr *

                                          itab_zycit003-ntgew / v_tpeso.

                      ENDIF.

* << Fim da inclusão

                      itab_zycit036_aux-waers_real = itab_despesa-waers.

                    ENDIF.

...

 

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

Modificações efetuadas em REPS /PWS/MZYCI016F01

 

...

      SELECT SINGLE waers meioemba inco1 embarca j_1bbranch

            FROM /pws/zycit001 INTO

          (/pws/zycit001-waers, /pws/zycit001-meioemba,

          /pws/zycit001-inco1, /pws/zycit001-embarca,

                        /pws/zycit001-j_1bbranch)

        WHERE nrseq = itab_zycit003-nrseq.

    ENDIF.

  ENDIF.

  CLEAR v_ntgew_tot.

  LOOP AT itab_zycit003.

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

    IF NOT itab_zycit003-qtd_itend IS INITIAL.

      v_ntgew_tot = v_ntgew_tot + itab_zycit003-ntgewd.

    ELSE.

* << Fim da inclusão

    v_ntgew_tot = v_ntgew_tot + itab_zycit003-ntgew.

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

    ENDIF.

* << Fim da inclusão

  ENDLOOP.

  SELECT SINGLE * FROM /pws/zycit062

   WHERE regio = adrc-region.

  LOOP AT itab_zycit003.

    READ TABLE itab_zycit042 WITH KEY nrseq = itab_zycit003-nrseq

                                      ebeln = itab_zycit003-ebeln

...

 

...

        IF sy-subrc EQ 0 .

          IF NOT /pws/zycit093-ternacion IS INITIAL.

            PERFORM trata_decimais USING /pws/zycit093-waersfre

                               CHANGING /pws/zycit093-ternacion.

            v_ternacion = /pws/zycit093-ternacion.

            IF /pws/zycie085-dttax IS INITIAL.

              /pws/zycie085-dttax = /pws/zycit085-dttax.

            ENDIF.

            IF /pws/zycit093-waersfre = /pws/zycbt007-waersb.

              IF NOT v_ntgew_tot IS INITIAL.

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

                IF NOT itab_zycit003-qtd_itend IS INITIAL.

                  v_ternacion = ( v_ternacion * itab_zycit003-ntgewd

                        / v_ntgew_tot ).

                ELSE.

* << Fim da inclusão

                v_ternacion = ( v_ternacion * itab_zycit003-ntgew

                      / v_ntgew_tot ).

              ENDIF.

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

              ENDIF.

* << Fim da inclusão

              IF NOT itab_zycit003-qtd_itend IS INITIAL.

                itab_zycit042-netpr = itab_zycit042-netpr -

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

                ( v_ternacion / itab_zycit003-qtd_iten ).

* << Fim da exclusão

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

                ( v_ternacion / itab_zycit003-qtd_itend ).

* << Fim da inclusão

              ELSE.

                IF NOT itab_zycit042-qtd_iten IS INITIAL.

                  itab_zycit042-netpr = itab_zycit042-netpr -

                  ( v_ternacion / itab_zycit042-qtd_iten ).

                ENDIF.

              ENDIF.

            ELSE.

              PERFORM taxa_converte USING /pws/zycit093-waersfre

                                          /pws/zycit085-dttax

                                  CHANGING v_taxa_desp.

              v_ternacion = v_ternacion * v_taxa_desp .

              IF NOT v_ntgew_tot IS INITIAL.

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

                IF NOT itab_zycit003-qtd_itend IS INITIAL.

* << Fim da inclusão

                v_ternacion = ( v_ternacion * itab_zycit003-ntgew

                      / v_ntgew_tot ).

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

                ELSE.

                  v_ternacion = ( v_ternacion * itab_zycit003-ntgewd

                        / v_ntgew_tot ).

* << Fim da inclusão

              ENDIF.

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

              ENDIF.

* << Fim da inclusão

              IF NOT itab_zycit003-qtd_itend IS INITIAL.

                itab_zycit042-netpr = itab_zycit042-netpr -

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

                ( v_ternacion / itab_zycit003-qtd_iten ).

* << Fim da exclusão

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

                ( v_ternacion / itab_zycit003-qtd_itend ).

* << Fim da inclusão

              ELSE.

                IF NOT itab_zycit042-qtd_iten IS INITIAL.

...

 

...

             AND  land1 = t001-land1.

    SELECT * FROM /pws/zycit039 INTO TABLE itab_zycit039

         FOR ALL ENTRIES IN itab_zycit020

          WHERE codmod = 'D'

              AND codigo = itab_zycit020-codigo

              AND land1 EQ t001-land1.

  ENDIF.

  CLEAR: v_tot_ntgew, v_tot_plan, v_tot_real.

  LOOP AT itab_zycit003.

    IF NOT itab_zycit003-qtd_itend IS INITIAL.

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

      v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgew.

* << Fim da exclusão

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

      v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgewd.

* << Fim da inclusão

    ELSE.

      v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgew.

    ENDIF.

    IF itab_zycit085-waersfob NE itab_zycit003-waers.

      PERFORM taxa_converte USING itab_zycit003-waers

                                  itab_zycit085-dttax

                         CHANGING v_taxa.

      IF NOT v_taxa IS INITIAL.

        itab_zycit003-vlreal = itab_zycit003-vlreal * v_taxa.

        itab_zycit003-netpr  = itab_zycit003-netpr  * v_taxa.

...

 

...

      INTO TABLE itab_zycit049_a

      FOR ALL ENTRIES IN itab_zycit019

      WHERE nrseq = /pws/zycie041-nrseq

         AND vldp > 0

         AND tpdesp = itab_zycit019-tpdesp.

  ENDIF.

  DESCRIBE TABLE itab_zycit042_d LINES v_lines.

  CLEAR:  v_tot_ntgew, v_tot_plan, v_tot_real.

  READ TABLE itab_zycit085 INDEX 1.

  LOOP AT itab_zycit003.

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

    IF NOT itab_zycit003-qtd_itend IS INITIAL.

      v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgewd.

    ELSE.

* << Fim da inclusão

    v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgew.

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

    ENDIF.

* << Fim da inclusão

    IF itab_zycit085-waersfob NE itab_zycit003-waers.

      PERFORM taxa_converte USING itab_zycit003-waers

                                  itab_zycit085-dttax

                         CHANGING v_taxa.

      IF NOT v_taxa IS INITIAL.

        itab_zycit003-vlreal =

...

 

...

          ENDIF.

          IF v_lines = v_tabix.

            v_vldp = itab_zycit049_a-vldp - v_tot_vldp.

            itab_zycit042_d-vldp = itab_zycit042_d-vldp + v_vldp.

            CLEAR v_vldp.

          ELSE.

            IF itab_zycit039-divabs = 'X'.

              v_vldp = itab_zycit049_a-vldp / v_lines.

            ELSEIF itab_zycit039-peso = 'X'.

              IF NOT v_tot_ntgew IS INITIAL.

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

                IF NOT itab_zycit003-ntgewd IS INITIAL.

                 v_vldp = itab_zycit049_a-vldp * itab_zycit003-ntgewd /

                                                            v_tot_ntgew.

                ELSE.

* << Fim da inclusão

                v_vldp = itab_zycit049_a-vldp * itab_zycit003-ntgew /

                         v_tot_ntgew.

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

                ENDIF.

* << Fim da inclusão

              ENDIF.

            ELSEIF itab_zycit039-proporplan = 'X'.

              v_vldp = itab_zycit049_a-vldp *

                     ( itab_zycit003-netpr *

                     itab_zycit003-qtd_iten / v_tot_plan ).

...

 

...

              ENDIF.

              IF v_lines = v_tabix.

                v_vldp = itab_zycit049-vldp - v_tot_vldp.

                itab_zycit042-vldp = itab_zycit042-vldp + v_vldp.

                CLEAR v_vldp.

              ELSE.

                IF itab_zycit039-divabs = 'X'.

                  v_vldp = itab_zycit049-vldp / v_lines.

                ELSEIF itab_zycit039-peso = 'X'.

                  IF NOT v_tot_ntgew IS INITIAL.

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

                    IF NOT itab_zycit003-ntgewd IS INITIAL.

                   v_vldp = itab_zycit049-vldp * itab_zycit003-ntgewd /

                                                            v_tot_ntgew.

                    ELSE.

* << Fim da inclusão

                    v_vldp = itab_zycit049-vldp * itab_zycit003-ntgew /

                                                            v_tot_ntgew.

                  ENDIF.

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

                  ENDIF.

* << Fim da inclusão

                ELSEIF itab_zycit039-proporplan = 'X'.

                  v_vldp = itab_zycit049-vldp *

                       ( itab_zycit003-netpr *

                       itab_zycit003-qtd_iten /  v_tot_plan ).

...

 

...

              ENDIF.

              IF v_lines = v_tabix.

                v_vldp = itab_zycit049-vldp - v_tot_vldp.

               itab_zycit042_d-vldpii = itab_zycit042_d-vldpii + v_vldp.

                CLEAR v_vldp.

              ELSE.

                IF itab_zycit039-divabs = 'X'.

                  v_vldp = itab_zycit049-vldp / v_lines.

                ELSEIF itab_zycit039-peso = 'X'.

                  IF NOT v_tot_ntgew IS INITIAL.

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

                    IF NOT itab_zycit003-ntgewd IS INITIAL.

                   v_vldp = itab_zycit049-vldp * itab_zycit003-ntgewd /

                                                            v_tot_ntgew.

                    ELSE.

* << Fim da inclusão

                    v_vldp = itab_zycit049-vldp * itab_zycit003-ntgew /

                                                            v_tot_ntgew.

                  ENDIF.

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

                  ENDIF.

* << Fim da inclusão

                ELSEIF itab_zycit039-proporplan = 'X'.

                  v_vldp = itab_zycit049-vldp *

                       ( itab_zycit003-netpr *

                         itab_zycit003-qtd_iten / v_tot_plan ).

...

 

...

      INTO TABLE itab_zycit003

      FOR ALL ENTRIES IN itab_zycit042

      WHERE nrseq = itab_zycit042-nrseq

        AND ebeln = itab_zycit042-ebeln

        AND ebelp = itab_zycit042-ebelp.

  ENDIF.

  SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_aux

    WHERE nrseq = itab_zycit042-nrseq.

  CLEAR:  v_tot_ntgew, v_tot_plan, v_tot_real.

  LOOP AT itab_zycit003_aux.

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

    IF NOT itab_zycit003_aux-qtd_itend IS INITIAL .

      v_tot_ntgew = v_tot_ntgew + itab_zycit003_aux-ntgewd.

    ELSE.

* << Fim da inclusão

    v_tot_ntgew = v_tot_ntgew + itab_zycit003_aux-ntgew.

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

    ENDIF.

* << Fim da inclusão

    v_tot_plan = v_tot_plan +

         ( itab_zycit003_aux-netpr * itab_zycit003_aux-qtd_iten ).

    v_tot_real = v_tot_real +

         ( itab_zycit003_aux-vlreal * itab_zycit003_aux-qtd_iten ).

  ENDLOOP.

  SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie041-bukrs.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F01

 

...

  IF itab_zycit001-inco1 EQ 'DDU'.

    IF NOT v_dif_frn IS INITIAL.

      t_vmle = t_vmle + ( /pws/zycie003-ntgew / v_ntgew ) * v_dif_frn.

    ENDIF.

  ELSE.

    IF NOT v_dif_frn IS INITIAL.

      t_vmle = t_vmle + ( /pws/zycie003-ntgew / v_ntgew ) * v_dif_frn.

    ENDIF.

    t_ivmle2 = t_vmle2 * /pws/zycie100a-dttaxbem.

  ENDIF.

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

  IF s_inco1_ci NE 'FOB' AND

    v_ntgewd IS INITIAL.

* << Fim da exclusão

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

  IF s_inco1_ci NE 'FOB'.

* << Fim da inclusão

    IF NOT /pws/zycie093-ternacion IS INITIAL.

      v_ternacion = /pws/zycie093-ternacion.

      PERFORM trata_decimais USING /pws/zycie085-waersfre

                                   v_ternacion   .

      IF /pws/zycie085-waersfob NE /pws/zycie093-waersfre .

        PERFORM: calc_conv_moeda:

                 USING    /pws/zycie093-waersfre

                          /pws/zycie085-waersfob

                 CHANGING v_ternacion.

      ENDIF.

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

      IF NOT /pws/zycie003-qtd_itend IS INITIAL.

        v_diftern =  ( ( /pws/zycie003-ntgewd / v_ntgewd )

                         * v_ternacion ).

      ELSE.

* << Fim da inclusão

      v_diftern =  ( ( /pws/zycie003-ntgew / v_tntgew )

                       * v_ternacion ).

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

      ENDIF.

* << Fim da inclusão

      t_vmle = t_vmle - v_diftern .

    ENDIF.

  ENDIF.

  IF itab_zycit003-qtd_itend IS INITIAL.

    t_vmle_d2 = t_vmle = t_vmle + t_vldif.

...

 

...

    PERFORM calc_itab_vals USING 'I'.

    s_wadreco = s_waddevi = s_waddevi + ( itab_it-baseantid *

    ( itab_it-antidrate / 100 ) ) + ( itab_it-vlantid *

    itab_it-qtdeantid ).

    itab_it-vlfre_me = v_tot_fre.

    itab_it-vlseg_me = v_tot_seg.

    itab_it-vlfre    = t_ivfre.

    itab_it-vlseg    = t_ivseg.

    itab_it-vldiffob = t_vldif.

    IF NOT /pws/zycie093-ternacion IS INITIAL.

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

      IF NOT itab_it-qtd_itend IS INITIAL.

        itab_it-frn = ( /pws/zycie003-ntgewd / v_tntgew ) *

             /pws/zycie093-ternacion.

      ELSE.

* << Fim da inclusão

      itab_it-frn = ( /pws/zycie003-ntgew / v_tntgew ) *

           /pws/zycie093-ternacion.

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

      ENDIF.

* << Fim da inclusão

    ENDIF.

    /pws/zycie085-vlpis  = /pws/zycie085-vlpis  + t_pis  .

    /pws/zycie085-vlcofins = /pws/zycie085-vlcofins + t_cofins .

    MODIFY itab_it INDEX v_idx TRANSPORTING

           vlseg vlfre vlfob baseii vlii baseipi vlipi baseicms vlicms

...

 

...

        itab_it-codregtripiscofi = '5'.

        itab_it-codregtriipi = '5'.

        itab_it-codregtriicms = '5'.

      ENDIF.

    ENDIF.

    IF v_sub EQ 0.

      MODIFY itab_it INDEX v_idx.

    ELSE.

      APPEND itab_it.

    ENDIF.

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

    IF NOT itab_it-qtd_itend IS INITIAL.

      v_tntgew  = v_tntgew + itab_it-ntgewd.

    ELSE.

* << Fim da inclusão

    v_tntgew  = v_tntgew + itab_it-ntgew.

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

    ENDIF.

* << Fim da inclusão

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

    ELSE.

...

 

...

         a_iitcalc,  a_iitredu,  a_iitdevi,  a_iitreco,

         a_ipitdevi, a_ipitreco, v_tot_seg,  v_tseg,

         a_pistcalc, a_pistredu, a_pistdevi, a_pistreco,

         a_coftcalc, a_coftredu, a_coftdevi, a_coftreco,

         v_tfre,     v_tot_fre,  v_tfrefat,

         a_addevi,   a_adreco,   a_icdevi,   a_icreco,

         /pws/zycie116-baseii,   v_tot_plan,

         a_basepc.

  .

  LOOP AT itab_it.

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

    IF NOT itab_it-qtd_itend IS INITIAL.

      v_tntgew = v_tntgew + itab_it-ntgewd.

    ELSE.

* << Fim da inclusão

    v_tntgew = v_tntgew + itab_it-ntgew.

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

    ENDIF.

* << Fim da inclusão

  ENDLOOP.

  LOOP AT itab_itb.

    v_idx = itab_itb-seq.

    MOVE itab_itb TO wa_it.

    MOVE-CORRESPONDING: itab_itb TO /pws/zycie100a,

                        itab_itb TO /pws/zycie003.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F03

 

...

                              nrseq = itab_it-nrseq

                              ebeln = itab_it-ebeln

                              ebelp = itab_it-ebelp.

    IF NOT itab_it-vlreald IS INITIAL.

      itab_it-vlreal = itab_it-vlreald.

    ENDIF.

    IF NOT itab_zycit003-ntgewd IS INITIAL.

      itab_it-ntgew = itab_zycit003-ntgewd.

    ENDIF.

    CLEAR: v_tvaln, v_qtd_iten.

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

    IF itab_it-qtd_itend NE '' AND v_dit = 'N'.

* << Fim da exclusão

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

    IF itab_it-qtd_itend NE ''.

* << Fim da inclusão

      v_qtd_iten = itab_it-qtd_itend.

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

      v_tntgew = v_tntgew + itab_it-ntgewd.

* << Fim da inclusão

    ELSE.

      v_qtd_iten = itab_it-qtd_iten.

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

      v_tntgew = v_tntgew + itab_it-ntgew.

* << Fim da inclusão

    ENDIF.

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

    v_tntgew = v_tntgew + itab_it-ntgew.

* << Fim da exclusão

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

                              itab_it-dttaxbem ).

    IF /pws/zycie085-waersfob NE itab_it-waers.

      PERFORM: calc_conv_moeda USING    itab_it-waers

                                        /pws/zycie085-waersfob

                               CHANGING itab_it-vlfre_fat.

      v_tfrefat = v_tfrefat + itab_it-vlfre_fat.

    ELSE.

      v_tfrefat = v_tfrefat + itab_it-vlfre_fat.

    ENDIF.

...

 

...

    IF NOT /pws/zycit062-flag_icms IS INITIAL AND

       /pws/zycie100a-icms_dif NE 'X'.

      IF /pws/zycit062-base IS INITIAL AND

         NOT /pws/zycie003-basred EQ '100' .

        t_icmsx = (  1 - ( /pws/zycie003-advalicms / 100 ) ).

      ELSE.

        t_icmsx = (  1 - v_advicms )  .

      ENDIF.

      t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *

                               ( t_icmsbs / t_icmsx ).

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

      itab_it-vlicms   = t_icms.

* << Fim da exclusão

      IF NOT /pws/zycie003-basred IS INITIAL AND

         NOT /pws/zycie003-basred EQ '100'.

        t_icmsbs = ( t_icmsbs / t_icmsx ).

      ELSE.

        t_icmsbs_d2 = t_icmsbs = t_icmsbs + t_icms.

      ENDIF.

      IF /pws/zycit062-susp_nf EQ 'S'.

        IF '356' CA /pws/zycie100a-codregtriicms .

          t_icmsbs_d2 = t_icmsbs =

          t_icmsbs - t_icms.

...

 

...

          t_icmsbs_d2 = t_icmsbs =

          t_icmsbs - t_icms.

        ENDIF.

      ENDIF.

    ELSE.

      t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *

                           ( t_icmsbs ) .

      t_icmsbs_d2 = t_icmsbs .

    ENDIF.

  ENDIF.

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

  itab_it-vlicms   = t_icms.

* << Fim da inclusão

  IF '356' CA /pws/zycie100a-codregtriicms .

    CLEAR: t_icmsx, t_icms_d2, t_icms.

  ENDIF.

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

  itab_it-vlicms   = t_icms.

* << Fim da exclusão

  IF p_tipo = 'I' OR p_tipo = 'T'     .

    s_wicdevi = s_wicdevi + t_icms    .

    s_wpisreco = s_wpisreco + t_pis   .

    s_wcofreco = s_wcofreco + t_cofins.

...

 

...

                      wa_matuse_aux-hkont

                      space

                      space.

      ENDIF.

      APPEND itab_matuse_aux.

      CLEAR itab_matuse_aux.

    ENDIF.

  ENDLOOP.

  CLEAR v_tntgew.

  LOOP AT itab_zycit003.

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

    IF NOT itab_zycit003-qtd_itend IS INITIAL.

      v_tntgew = v_tntgew + itab_zycit003-ntgewd.

    ELSE .

* << Fim da inclusão

    v_tntgew = v_tntgew + itab_zycit003-ntgew.

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

    ENDIF.

* << Fim da inclusão

  ENDLOOP.

  IF itab_zycit263[] IS INITIAL.

    SELECT *

      FROM /pws/zycit263

      INTO TABLE itab_zycit263

      FOR ALL ENTRIES IN itab_zycit006

...

 

...

      itab_di-vlfob = ( itab_zycit100-dttaxbem * itab_zycit100-vlfob ) .

    ELSE.

      itab_di-vlfob = itab_zycit100-dttaxbem * itab_zycit100-vlfob.

    ENDIF.

    IF NOT /pws/zycie093-ternacion IS INITIAL.

      READ TABLE itab_zycit003 WITH KEY

               nrseq = itab_zycit100-nrseq

               ebeln = itab_zycit100-ebeln

               ebelp = itab_zycit100-ebelp .

      IF NOT v_tntgew IS INITIAL.

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

        IF NOT itab_zycit003-qtd_itend IS INITIAL.

          itab_di-vlfren =  ( ( itab_zycit003-ntgewd / v_tntgew ) *

             /pws/zycie093-ternacion ) * /pws/zycie085-ukursfre .

        ELSE.

* << Fim da inclusão

        itab_di-vlfren =  ( ( itab_zycit003-ntgew / v_tntgew ) *

           /pws/zycie093-ternacion ) * /pws/zycie085-ukursfre .

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

        ENDIF.

* << Fim da inclusão

      ENDIF.

    ENDIF.

    itab_di-vldi = itab_di-vlfob + itab_di-vlseg +

          itab_di-vlfre + itab_di-vlfren.

    COLLECT itab_di.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023X01

 

...

        cof_reduzido  LIKE /pws/zycie085-vlfob,

        cof_devido     LIKE /pws/zycie085-vlfob,

        cof_recolher   LIKE /pws/zycie085-vlfob,

        ad_devido     LIKE /pws/zycie085-vlfob,

        ad_recolher   LIKE /pws/zycie085-vlfob,

        vlfobr        LIKE /pws/zycie100a-vlfre,

        codcambial    LIKE /pws/zycie006-codcambial,

        inco_item     LIKE /pws/zycit001-inco1,

        paisfab       LIKE /pws/zycit003-paisfab,

        vlreal_dest   LIKE /pws/zycie003-vlreal,

* >> Início da inclusão:

        ntgewd LIKE /pws/zycie003-ntgewd,

* << Fim da inclusão

        mark,

END OF itab_it.

DATA: BEGIN OF itab_zycit049 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie049.

DATA:   tipo      LIKE /pws/zycit019-tipo,

        coddesp   LIKE /pws/zycit000-cod_sisc,

        codigo    LIKE /pws/zycit019-codigo,

        baseicms  LIKE /pws/zycit020-baseicms,

        baseii    LIKE /pws/zycit020-baseii,

        reduz     LIKE /pws/zycie122-descricao_reduz,

...