CE PLUS - Nota 006389

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Custo Efetivo

Data/Hora da Publicação: 15/04/2008 00:00:00

Data/Hora Última Alteração: 22/02/2011 14:31:39

Descrição da Nota: ESTÁ INCORRETA A CONVERSÃO DE MOEDAS P/ NOVO TIPO DE MOEDA PARAMETRIZADA

Sintoma

Está incorreta a conversão de moedas p/ novo tipo de moeda parametrizada

 

 

Solução

Atualização do programa do custo efetivo para tratar casas decimais para qualquer tipo de moeda e

fatura tipo P.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

O VALOR DO PLANEJADO ESTA DIFERENDO DO REALIZADO NA ALTERAÇÃO DE MOEDAS

TRATAMENTO PARA PARAMETR. DE FATOR DE MOEDA PARA TAXA CONVERSÃO NO SAP

NRSEQORI DUPLICADO GERA VALORES DUPLICADOS NO CUSTO

Informações Complementares

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

Nota Número 06389 Data: 15/04/2008 Hora: 09:21:49

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

 

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

Nota Número              : 06389

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00005

Agrupamento              : 00043

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

Referência às notas relacionadas:

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

 

03391  - 00001 - 7.0    - 00001  - NRSEQORI DUPLICADO GERA VALORES DUPLICADOS NO CUSTO

05395  - 00002 - 7.0    - 00003  - TRATAMENTO PARA PARAMETR. DE FATOR DE MOEDA PARA TAXA CONVERSÃO N

05466  - 00003 - 7.0    - 00003  - O VALOR DO PLANEJADO ESTA DIFERENDO DO REALIZADO NA ALTERAÇÃO DE

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

ESTÁ INCORRETA A CONVERSÃO DE MOEDAS P/ NOVO TIPO DE MOEDA PARAMETRIZADA

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

Palavras Chave:

CONVERSÃO DE MOEDAS - JPY - JPZ - FATURA TIPO P

 

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

Objetos da nota:

REPS /PWS/MZYCI010F01

REPS /PWS/MZYCI010F03

REPS /PWS/ZYCIR006

 

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

Modificações efetuadas em REPS /PWS/MZYCI010F01

 

...

      itab_zycit036a-vldif      = itab_zycit036_aux2-vldif.

      IF itab_zycit036a-vldif NE 0.

        IF  itab_zycit036_aux2-origem EQ 'PED'.

          PERFORM retorna_decimais USING itab_zycit036a-waers_mov

                                CHANGING itab_zycit036a-vldif.

        ENDIF.

      ENDIF.

    ENDIF.

    IF itab_zycit036_aux2-codigo EQ 'FRETEI' .

      IF itab_zycit036_aux2-vlreal EQ space AND

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

         itab_zycit036_aux2-origem NE 'PED' AND

* << Fim da inclusão

         itab_zycit036_aux2-congelamov NE 'X'.

        CONTINUE.

      ENDIF.

      IF v_frete > 1.

        IF itab_zycit036a-waers_real = 'JPY' AND

           /pws/zycit000-fretepres NE 'X'.

          PERFORM retorna_decimais USING itab_zycit036_aux2-waers_real

                              CHANGING itab_zycit036_aux2-vlreal.

          IF NOT /pws/zycit085-ukursfre IS INITIAL.

            itab_zycit036_aux2-vlreal = itab_zycit036_aux2-vlreal *

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI010F03

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR006

 

...

                                       nrseq  = itab_zycit036-nrseq

                                       ebeln  = itab_zycit036-ebeln

                                       ebelp  = itab_zycit036-ebelp

                                      codigo = itab_zycit036-codigo.

            IF sy-subrc = 0.

              IF itab_zycit036-vlmov = 0 AND

                 itab_zycit036_plan-netpr GT 0 AND NOT

                 itab_zycit036_plan-waers IS INITIAL

                 AND v_itemcongela NE 'X'.

                v_valor = itab_zycit036_plan-netpr.

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

                PERFORM retorna_decimais

                              USING itab_zycit036_plan-waers

                           CHANGING v_valor.

* << Fim da inclusão

                IF itab_zycit036-origem <> 'FAT'.

                  IF NOT /pws/zycit085-ukursfob IS INITIAL.

                    itab_zycit036-vlmov = v_valor *

                                          /pws/zycit085-ukursfob .

                    itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                  ELSE.

               PERFORM busca_fator_moed USING  itab_zycit036-waers_real

                                                   /pws/zycbt007-waersb

                                                          CHANGING v_de

                                                                 v_para.

...

 

...

                  READ TABLE itab_zycit100 WITH KEY

                                        nrseq = itab_zycit036-nrseq

                                        ebeln = itab_zycit036-ebeln

                                        ebelp = itab_zycit036-ebelp.

                  IF itab_zycit036-origem <> 'FAT'.

                    IF NOT itab_zycit100-dttaxbem IS INITIAL.

                      itab_zycit036-vlmov = v_valor *

                                          itab_zycit100-dttaxbem.

                      itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                    ELSE.

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

                     PERFORM retorna_decimais USING itab_zycit036-waers

                                           CHANGING itab_zycit036-netpr.

* << Fim da inclusão

                      PERFORM converter_moeda USING

                                       itab_zycit036-netpr

                                     itab_zycit036-waers

                                /pws/zycbt007-waersb

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

                              CHANGING itab_zycit036-vlmov.

                    PERFORM trata_decimais USING    itab_zycit036-waers

* << Fim da exclusão

                                           CHANGING itab_zycit036-vlmov.

                      itab_zycit036-waers_mov = /pws/zycbt007-waersb.

...

 

...

                                   CHANGING v_val_real.

            itab_zycit036-vldif = v_val_real

                                     - itab_zycit036-vlmov.

            itab_zycit036-waers_dif = itab_zycit036-waers_mov.

          ENDIF.

        ELSEIF itab_zycit036-netpr GT 0              AND

          NOT itab_zycit036-waers IS INITIAL.

          IF v_itemcongela NE 'X'.

            v_valor = itab_zycit036-netpr.

            IF itab_zycit036-origem <> 'FAT'.

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

              PERFORM retorna_decimais USING itab_zycit036-waers

                                    CHANGING v_valor.

* << Fim da inclusão

              IF NOT /pws/zycit085-ukursfob IS INITIAL.

                itab_zycit036-vlmov = v_valor *

                                    /pws/zycit085-ukursfob .

              ELSE.

                READ TABLE itab_zycit100 WITH KEY

                     nrseq = itab_zycit036-nrseq

                     ebeln = itab_zycit036-ebeln

                     ebelp = itab_zycit036-ebelp.

                IF NOT itab_zycit100-dttaxbem IS INITIAL.

                  itab_zycit036-vlmov = v_valor *

                                itab_zycit100-dttaxbem.

                ELSE.

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

                  PERFORM retorna_decimais USING itab_zycit036-waers

                                        CHANGING itab_zycit036-netpr.

* << Fim da inclusão

                  PERFORM converter_moeda USING

                          itab_zycit036-netpr

                          itab_zycit036-waers

                          /pws/zycbt007-waersb

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

                      CHANGING itab_zycit036-vlmov.

                  PERFORM trata_decimais USING    itab_zycit036-waers

* << Fim da exclusão

                                         CHANGING itab_zycit036-vlmov.

                ENDIF.

...

 

...

                                        CHANGING v_valor.

            ELSE.

              PERFORM retorna_decimais USING itab_zycit036-waers_real

                                          CHANGING v_valor.

            ENDIF.

          ENDIF.

          IF itab_zycit036-origem = 'NF'.

            v_val_tot = v_val_tot + v_valor.

          ENDIF.

          IF v_itemcongela NE 'X'.

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

            IF NOT /pws/zycit085-ukursfre IS INITIAL.

* << Fim da exclusão

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

            IF NOT /pws/zycit085-ukursfre IS INITIAL AND

               ( /pws/zycit085-waersfre EQ itab_zycit036-waers_real OR

                 itab_zycit036-waers_real EQ /pws/zycbt007-waersb ).

* << Fim da inclusão

              IF itab_zycit036-origem = 'NF'.

                itab_zycit036-vlmov     = v_valor .

              ELSE.

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

                  READ TABLE itab_zycit006 WITH KEY

                                     nrseq = itab_zycit036-nrseqori.

                  IF sy-subrc EQ 0 AND itab_zycit006-frpagto EQ 'P'.

                    itab_zycit036-vlmov     = v_valor *

                                            /pws/zycit085-ukursfre .

                  ELSE.

...

 

...

                itab_zycit036-vlmov     = v_valor .

              ELSE.

                READ TABLE itab_bkpf WITH KEY

                                  bukrs = itab_zycit006-bukrs

                                  belnr = itab_zycit006-belnr_p

                              gjahr = itab_zycit006-dt_belnrp(04).

               PERFORM busca_fator_moed USING  itab_zycit036-waers_real

                                                   /pws/zycbt007-waersb

                                                     CHANGING v_de

                                                              v_para.

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

                itab_zycit036-vlmov = itab_zycit036-vlreal *

* << Fim da exclusão

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

                itab_zycit036-vlmov = v_valor *

* << Fim da inclusão

                         ( ( itab_bkpf-kursf * v_para ) / v_de ).

              ENDIF.

            ENDIF.

            itab_zycit036-waers_mov = /pws/zycbt007-waersb.

            PERFORM trata_decimais USING    itab_zycit036-waers_mov

                                   CHANGING itab_zycit036-vlmov.

          ELSE.

            READ TABLE itab_zycit036_plan WITH KEY

                                       nrseq  = itab_zycit036-nrseq

                                       ebeln  = itab_zycit036-ebeln

                                       ebelp  = itab_zycit036-ebelp

                                      codigo = itab_zycit036-codigo.

            IF sy-subrc = 0.

              IF itab_zycit036-vlmov = 0 AND

                 itab_zycit036_plan-netpr GT 0 AND NOT

                 itab_zycit036_plan-waers IS INITIAL

                 AND v_itemcongela NE 'X'.

                v_valor = itab_zycit036_plan-netpr.

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

                IF NOT /pws/zycit085-ukursfob IS INITIAL.

* << Fim da exclusão

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

                PERFORM retorna_decimais

                              USING itab_zycit036_plan-waers

                           CHANGING v_valor.

                IF NOT /pws/zycit085-ukursfre IS INITIAL AND

                   /pws/zycit085-waersfre EQ itab_zycit036_plan-waers.

* << Fim da inclusão

                  itab_zycit036-vlmov     = v_valor *

                                           /pws/zycit085-ukursfob .

                  itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                ELSE.

                  READ TABLE itab_zycit100 WITH KEY

                                        nrseq = itab_zycit036-nrseq

                                        ebeln = itab_zycit036-ebeln

                                        ebelp = itab_zycit036-ebelp.

                  IF NOT itab_zycit100-dttaxbem IS INITIAL.

                    itab_zycit036-vlmov     = v_valor *

                                            itab_zycit100-dttaxbem.

                    itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                  ELSE.

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

                    PERFORM retorna_decimais

                                  USING itab_zycit036-waers

                               CHANGING itab_zycit036-netpr.

* << Fim da inclusão

                    PERFORM converter_moeda USING

                                       itab_zycit036-netpr

                                     itab_zycit036-waers

                                      /pws/zycbt007-waersb

                            CHANGING itab_zycit036-vlmov.

                    itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                  ENDIF.

                ENDIF.

              ELSEIF itab_zycit036-origem = 'FAT'

              AND itab_zycit036-waers_mov IS INITIAL.

                itab_zycit036-waers_mov = /pws/zycbt007-waersb.

              ENDIF.

            ELSEIF sy-subrc NE 0 AND itab_zycit036-origem = 'FAT'

            AND itab_zycit036-waers_mov IS INITIAL.

              itab_zycit036-waers_mov = /pws/zycbt007-waersb.

            ELSEIF sy-subrc NE 0 AND itab_zycit036-origem = 'PC'

            AND itab_zycit036-waers_mov IS INITIAL.

              itab_zycit036-waers_mov = /pws/zycbt007-waersb.

            ENDIF.

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

          ENDIF.

* << Fim da inclusão

            IF itab_zycit036-origem NE 'EST'.

              IF v_itemcongela = 'X' AND

                ( itab_zycit036-origem EQ 'NF' OR

                 itab_zycit036-origem EQ 'FAT' ) AND

                 NOT /pws/zycit085-ukursfre IS INITIAL.

                IF ( t001-land1 EQ 'CL' OR

                   t001-land1 EQ 'AR' ) OR

                   itab_zycit036-origem EQ 'FAT'.

                  READ TABLE itab_zycit006 WITH KEY

                                     nrseq = itab_zycit036-nrseqori.

...

 

...

                  ENDIF.

                ENDIF.

                PERFORM trata_decimais USING    itab_zycit036-waers_mov

                                                       CHANGING v_valor.

              ENDIF.

              IF NOT /pws/zycit085-ukursfre IS INITIAL AND

               ( itab_zycit036-origem EQ 'NF'

                OR itab_zycit036-origem EQ 'FAT' ).

                IF itab_zycit036-waers_real <> itab_zycit036-waers_mov

                                             AND v_itemcongela NE 'X'.

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

                  v_valor = v_valor * /pws/zycit085-ukursfre.

* << Fim da exclusão

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

                IF  itab_zycit036-waers_real EQ /pws/zycbt007-waersb

                    OR itab_zycit036-origem EQ 'NF'.

                ELSEIF NOT /pws/zycit085-ukursfre IS INITIAL AND

                   /pws/zycit085-waersfre EQ itab_zycit036-waers_real .

                  READ TABLE itab_zycit006 WITH KEY

                                     nrseq = itab_zycit036-nrseqori.

                  IF sy-subrc EQ 0 AND itab_zycit006-frpagto EQ 'P'.

                    v_valor     = v_valor *

                                      /pws/zycit085-ukursfre .

                  ELSE.

                    READ TABLE itab_bkpf WITH KEY

                                      bukrs = itab_zycit006-bukrs

                                      belnr = itab_zycit006-belnr_p

                                gjahr = itab_zycit006-dt_belnrp(04).

                    PERFORM busca_fator_moed

                                  USING itab_zycit036-waers_real

                                        /pws/zycbt007-waersb

                               CHANGING v_de

                                        v_para.

                    v_valor = v_valor *

                             ( ( itab_bkpf-kursf * v_para ) / v_de ).

                  ENDIF.

                ELSEIF itab_zycit036-origem NE 'FAT'.

                  v_val_real = v_valor.

                  PERFORM converter_moeda

                              USING v_val_real

                                    itab_zycit036-waers_real

                                   /pws/zycbt007-waersb

                              CHANGING v_valor.

                  CLEAR:v_val_real.

                ELSE.

                  READ TABLE itab_zycit006 WITH KEY

                                      nrseq = itab_zycit036-nrseqori.

                  IF sy-subrc EQ 0 AND itab_zycit006-frpagto EQ 'P'.

                  ELSE.

                    READ TABLE itab_bkpf WITH KEY

                                      bukrs = itab_zycit006-bukrs

                                      belnr = itab_zycit006-belnr_p

                                  gjahr = itab_zycit006-dt_belnrp(04).

                    PERFORM busca_fator_moed

                                  USING itab_zycit036-waers_real

                                        /pws/zycbt007-waersb

                               CHANGING v_de

                                        v_para.

                    v_valor = v_valor *

                          ( ( itab_bkpf-kursf * v_para ) / v_de ).

                  ENDIF.

* << Fim da inclusão

                ENDIF.

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

              ENDIF.

* << Fim da inclusão

                itab_zycit036-vldif = v_valor

                             - itab_zycit036-vlmov.

                itab_zycit036-waers_dif = /pws/zycbt007-waersb.

              ELSE.

                IF itab_zycit036-waers_real <> itab_zycit036-waers_mov

                                          AND itab_zycit036-vlmov <> 0.

                  v_valor = v_valor / /pws/zycit085-ukursfre.

                ENDIF.

                itab_zycit036-vldif = v_valor - itab_zycit036-vlmov.

                itab_zycit036-waers_dif = /pws/zycbt007-waersb.

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

              ENDIF.

* << Fim da exclusão

            ENDIF.

          ENDIF.

        ELSEIF itab_zycit036-netpr GT 0              AND

          NOT itab_zycit036-waers IS INITIAL.

          IF v_itemcongela NE 'X'.

            v_valor = itab_zycit036-netpr.

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

            IF NOT /pws/zycit085-ukursfre IS INITIAL.

* << Fim da exclusão

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

            PERFORM retorna_decimais

                          USING itab_zycit036_plan-waers

                       CHANGING v_valor.

            IF NOT /pws/zycit085-ukursfre IS INITIAL AND

               ( /pws/zycit085-waersfre EQ itab_zycit036-waers OR

                 itab_zycit036-waers    EQ /pws/zycbt007-waersb ).

* << Fim da inclusão

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

                itab_zycit036-vlmov     = v_valor *

                  /pws/zycit085-ukursfre .

              ELSE.

                itab_zycit036-vlmov     = v_valor .

              ENDIF.

            ELSE.

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

              PERFORM retorna_decimais USING itab_zycit036-waers

                                    CHANGING itab_zycit036-netpr.

* << Fim da inclusão

           PERFORM converter_moeda USING itab_zycit036-netpr

                                         itab_zycit036-waers

                                           /pws/zycbt007-waersb

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

                                           CHANGING itab_zycit036-vlmov.

              PERFORM trata_decimais USING    itab_zycit036-waers

* << Fim da exclusão

                                     CHANGING itab_zycit036-vlmov.

              itab_zycit036-waers_mov = /pws/zycbt007-waersb.

            ENDIF.

...

 

...

            READ TABLE itab_zycit036_plan WITH KEY

                                     nrseq  = itab_zycit036-nrseq

                                     ebeln  = itab_zycit036-ebeln

                                     ebelp  = itab_zycit036-ebelp

                                     codigo = itab_zycit036-codigo.

            IF sy-subrc = 0.

              IF itab_zycit036-vlmov = 0 AND

                 itab_zycit036_plan-netpr GT 0 AND NOT

                 itab_zycit036_plan-waers IS INITIAL

                 AND v_itemcongela NE 'X'.

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

                PERFORM retorna_decimais

                              USING itab_zycit036_plan-waers

                           CHANGING itab_zycit036_plan-netpr.

* << Fim da inclusão

                v_valor = itab_zycit036_plan-netpr.

                IF NOT /pws/zycit085-ukursfob IS INITIAL.

                  itab_zycit036-vlmov     = v_valor *

                                           /pws/zycit085-ukursfob .

                  itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                ELSE.

                  READ TABLE itab_zycit100 WITH KEY

                                        nrseq = itab_zycit036-nrseq

                                        ebeln = itab_zycit036-ebeln

                                        ebelp = itab_zycit036-ebelp.

                  IF NOT itab_zycit100-dttaxbem IS INITIAL.

                    itab_zycit036-vlmov     = v_valor *

                                            itab_zycit100-dttaxbem.

                    itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                  ELSE.

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

                    PERFORM retorna_decimais

                                  USING itab_zycit036-waers

                               CHANGING itab_zycit036-netpr.

* << Fim da inclusão

                    PERFORM converter_moeda USING

                                    itab_zycit036-netpr

                                     itab_zycit036-waers

                                    /pws/zycbt007-waersb

                            CHANGING itab_zycit036-vlmov.

                    itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                  ENDIF.

                ENDIF.

              ENDIF.

            ENDIF.

...

 

...

                  v_valor = v_valor / /pws/zycit085-ukursseg.

                ENDIF.

                itab_zycit036-vldif = v_valor - itab_zycit036-vlmov.

                itab_zycit036-waers_dif = /pws/zycbt007-waersb.

              ENDIF.

            ENDIF.

          ENDIF.

        ELSEIF itab_zycit036-netpr GT 0              AND

          NOT itab_zycit036-waers IS INITIAL.

          IF v_itemcongela NE 'X'.

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

            PERFORM retorna_decimais

                          USING itab_zycit036-waers

                       CHANGING itab_zycit036-netpr.

* << Fim da inclusão

            v_valor = itab_zycit036-netpr.

            IF NOT /pws/zycit085-ukursseg IS INITIAL

               AND /pws/zycit085-waersseg EQ itab_zycit036-waers.

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

                itab_zycit036-vlmov = v_valor * /pws/zycit085-ukursseg

                                            .

              ELSE.

                itab_zycit036-vlmov     = v_valor .

              ENDIF.

            ELSE.

             PERFORM converter_moeda USING itab_zycit036-netpr

                                         itab_zycit036-waers

                                           /pws/zycbt007-waersb

                                           CHANGING itab_zycit036-vlmov.

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

              PERFORM trata_decimais USING    itab_zycit036-waers

                                     CHANGING itab_zycit036-vlmov.

* << Fim da exclusão

              itab_zycit036-waers_mov = /pws/zycbt007-waersb.

            ENDIF.

            itab_zycit036-waers_mov = /pws/zycbt007-waersb.

          ENDIF.

          itab_zycit036-vldif     = 0 - itab_zycit036-vlmov.

          itab_zycit036-waers_dif = /pws/zycbt007-waersb.

        ENDIF.

        IF itab_zycit036-vlmov IS INITIAL.

          CLEAR itab_zycit036-waers_mov.

        ELSEIF itab_zycit036-vldif IS INITIAL.

...

 

...

            READ TABLE itab_zycit036_plan WITH KEY

                                     nrseq  = itab_zycit036-nrseq

                                     ebeln  = itab_zycit036-ebeln

                                     ebelp  = itab_zycit036-ebelp

                                     codigo = itab_zycit036-codigo.

            IF sy-subrc = 0.

              IF itab_zycit036-vlmov = 0 AND

                 itab_zycit036_plan-netpr GT 0 AND NOT

                 itab_zycit036_plan-waers IS INITIAL

                 AND v_itemcongela NE 'X'.

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

                PERFORM retorna_decimais

                              USING itab_zycit036_plan-waers

                           CHANGING itab_zycit036_plan-netpr.

* << Fim da inclusão

                v_valor = itab_zycit036_plan-netpr.

                IF NOT /pws/zycit085-ukursfob IS INITIAL.

                  itab_zycit036-vlmov     = v_valor *

                                           /pws/zycit085-ukursfob .

                  itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                ELSE.

                  READ TABLE itab_zycit100 WITH KEY

                                        nrseq = itab_zycit036-nrseq

                                        ebeln = itab_zycit036-ebeln

                                        ebelp = itab_zycit036-ebelp.

                  IF NOT itab_zycit100-dttaxbem IS INITIAL.

                    itab_zycit036-vlmov     = v_valor *

                                            itab_zycit100-dttaxbem.

                    itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                  ELSE.

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

                    PERFORM retorna_decimais

                                  USING itab_zycit036-waers

                               CHANGING itab_zycit036-netpr.

* << Fim da inclusão

                    PERFORM converter_moeda USING

                                   itab_zycit036-netpr

                                   itab_zycit036-waers

                                   /pws/zycbt007-waersb

                            CHANGING itab_zycit036-vlmov.

                    itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                  ENDIF.

                ENDIF.

              ENDIF.

            ENDIF.

...

 

...

          IF itab_zycit036-origem NE 'EST'.

            itab_zycit036-vldif = itab_zycit036-vlreal -

                                  itab_zycit036-vlmov.

            itab_zycit036-waers_dif = /pws/zycbt007-waersb.

          ENDIF.

        ELSEIF itab_zycit036-netpr GT 0   AND

          NOT itab_zycit036-waers IS INITIAL

            OR ( itab_zycit036-origem EQ   'NF' AND

                 itab_zycit036-nrseqori EQ '0000000000' ) .

          IF v_itemcongela NE 'X'.

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

            PERFORM retorna_decimais USING itab_zycit036-waers

                                  CHANGING itab_zycit036-netpr.

* << Fim da inclusão

           PERFORM converter_moeda USING itab_zycit036-netpr

                                         itab_zycit036-waers

                                           /pws/zycbt007-waersb

                                           CHANGING itab_zycit036-vlmov.

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

            PERFORM trata_decimais USING    itab_zycit036-waers

                                   CHANGING itab_zycit036-vlmov.

* << Fim da exclusão

            itab_zycit036-waers_mov = /pws/zycbt007-waersb.

          ENDIF.

...

 

...

              READ TABLE itab_zycit036_plan WITH KEY

                                       nrseq  = itab_zycit036-nrseq

                                       ebeln  = itab_zycit036-ebeln

                                       ebelp  = itab_zycit036-ebelp

                                      codigo = itab_zycit036-codigo.

              IF sy-subrc = 0.

                IF itab_zycit036-vlmov = 0 AND NOT

                   itab_zycit036_plan-netpr = 0 AND NOT

                   itab_zycit036_plan-waers IS INITIAL AND

                   v_itemcongela NE 'X'.

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

                  PERFORM retorna_decimais

                                USING itab_zycit036_plan-waers

                             CHANGING itab_zycit036_plan-netpr.

* << Fim da inclusão

                  v_valor = itab_zycit036_plan-netpr.

                  IF /pws/zycit000-flag_desp = 'X'.

                    IF NOT /pws/zycit085-ukursfob IS INITIAL.

                      itab_zycit036-vlmov     = v_valor *

                                            /pws/zycit085-ukursfob .

                      itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                    ELSE.

                      READ TABLE itab_zycit100 WITH KEY

                                        nrseq = itab_zycit036-nrseq

                                        ebeln = itab_zycit036-ebeln

                                        ebelp = itab_zycit036-ebelp.

                      IF NOT itab_zycit100-dttaxbem IS INITIAL.

                        itab_zycit036-vlmov     = v_valor *

                                             itab_zycit100-dttaxbem.

                        itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                      ENDIF.

                    ENDIF.

                  ELSE.

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

                    PERFORM retorna_decimais

                                  USING itab_zycit036-waers

                               CHANGING itab_zycit036-netpr.

* << Fim da inclusão

                    PERFORM converter_moeda USING

                                      itab_zycit036-netpr

                                      itab_zycit036-waers

                                    /pws/zycbt007-waersb

                            CHANGING itab_zycit036-vlmov.

                    itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                  ENDIF.

                ENDIF.

              ENDIF.

            ENDIF.

            IF itab_zycit036-origem NE 'EST'.

              itab_zycit036-vldif = v_real_brl - itab_zycit036-vlmov.

              itab_zycit036-waers_dif = /pws/zycbt007-waersb.

            ENDIF.

          ELSEIF itab_zycit036-netpr GT 0   AND

            NOT itab_zycit036-waers IS INITIAL

            OR ( itab_zycit036-origem EQ   'NF' AND

                 itab_zycit036-nrseqori EQ '0000000000' ) .

            IF v_itemcongela NE 'X'.

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

              PERFORM retorna_decimais USING itab_zycit036-waers

                                    CHANGING itab_zycit036-netpr.

* << Fim da inclusão

           PERFORM converter_moeda USING itab_zycit036-netpr

                                         itab_zycit036-waers

                                            /pws/zycbt007-waersb

                                           CHANGING itab_zycit036-vlmov.

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

              PERFORM trata_decimais USING    itab_zycit036-waers

                                     CHANGING itab_zycit036-vlmov.

* << Fim da exclusão

              itab_zycit036-waers_mov = /pws/zycbt007-waersb.

            ENDIF.

...

 

...

              READ TABLE itab_zycit036_plan WITH KEY

                                       nrseq  = itab_zycit036-nrseq

                                       ebeln  = itab_zycit036-ebeln

                                       ebelp  = itab_zycit036-ebelp

                                      codigo = itab_zycit036-codigo.

              IF sy-subrc = 0.

                IF itab_zycit036-vlmov = 0 AND NOT

                   itab_zycit036_plan-netpr = 0 AND NOT

                   itab_zycit036_plan-waers IS INITIAL AND

                   v_itemcongela NE 'X'.

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

                  PERFORM retorna_decimais

                                USING itab_zycit036_plan-waers

                             CHANGING itab_zycit036_plan-netpr.

* << Fim da inclusão

                  v_valor = itab_zycit036_plan-netpr.

                  IF /pws/zycit000-flag_desp = 'X'.

                    IF NOT /pws/zycit085-ukursfob IS INITIAL.

                      itab_zycit036-vlmov     = v_valor *

                                            /pws/zycit085-ukursfob .

                      itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                    ELSE.

                      READ TABLE itab_zycit100 WITH KEY

                                        nrseq = itab_zycit036-nrseq

                                        ebeln = itab_zycit036-ebeln

...

 

...

            ENDIF.

            IF itab_zycit036-origem NE 'EST'.

              itab_zycit036-vldif = v_real_brl - itab_zycit036-vlmov.

              itab_zycit036-waers_dif = /pws/zycbt007-waersb.

            ENDIF.

          ELSEIF itab_zycit036-netpr GT 0   AND

          NOT itab_zycit036-waers IS INITIAL

            OR ( itab_zycit036-origem EQ   'NF' AND

                 itab_zycit036-nrseqori EQ '0000000000' ) .

            IF v_itemcongela NE 'X'.

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

              PERFORM retorna_decimais USING itab_zycit036-waers

                                    CHANGING itab_zycit036-netpr.

* << Fim da inclusão

           PERFORM converter_moeda USING itab_zycit036-netpr

                                         itab_zycit036-waers

                                            /pws/zycbt007-waersb

                                           CHANGING itab_zycit036-vlmov.

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

              PERFORM trata_decimais USING    itab_zycit036-waers

                                     CHANGING itab_zycit036-vlmov.

* << Fim da exclusão

              itab_zycit036-waers_mov = /pws/zycbt007-waersb.

            ENDIF.

...

 

...

             i_demoeda_nao_encontrado   = 1

             i_paramoeda_nao_encontrado = 2

             fator_nao_encontrado       = 3

             i_ctmoeda_nao_encontrado   = 4

             i_dtbase_nao_encontrada    = 5

             taxa_nao_encontrada        = 6

             i_montante_nao_encontrado  = 7.

    IF sy-subrc NE 0.

      MESSAGE i061 WITH text-013 p_meorig 'para' p_medest.

      v_erro_tax = 'X'.

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

    ENDIF.

* << Fim da exclusão

  ENDIF.

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

  IF p_meorig = 'JPY'.

    p_vldest = p_vldest * v_dfact.

* << Fim da exclusão

  ENDIF.

  IF v_erro_tax IS INITIAL.

    itab_taxob08-waerso = p_meorig.

    itab_taxob08-waersd = p_medest.

    IF p_vlorig <> 0.

...