CE PLUS - Nota 009906

Módulo: DRAWBACK

Funcionalidade: Vinculação de Importação

Data/Hora da Publicação: 05/03/2010 00:00:00

Data/Hora Última Alteração: 12/08/2011 11:43:54

Descrição da Nota: CONVERSÃO DE MOEDAS (CONVERTER PRIMEIRAMENTE PARA MOEDA LOCAL)

Sintoma

O programa exige o cadastramento de uma taxa de conversão da moeda da importação para USD.

 

 

Solução

O programa foi ajustado para converter primeiramente para a moeda local e depois para a moeda forte

(USD).

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

CRIADO PARAMETRO PARA CATEGORIA DE CAMBIO

MENSAGENS DE ERRO

Informações Complementares

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

Nota Número 09906 Data: 05/03/2010 Hora: 10:58:41

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

 

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

Nota Número              : 09906

Categoria                : Melhoria

Prioridade               : Baixa

Versão PW.CE             : 8.0

Pacote                   : 00002

Agrupamento              : 00011

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

Referência às notas relacionadas:

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

 

09195  - 00001 - 8.0    - 00001  - CRIADO PARAMETRO PARA CATEGORIA DE CAMBIO

09722  - 00002 - 8.0    - 00002  - MENSAGENS DE ERRO

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

CONVERSÃO DE MOEDAS (CONVERTER PRIMEIRAMENTE PARA MOEDA LOCAL)

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

Palavras Chave:

CONVERSÃO DE MOEDAS LOCAL DRAWBACK LI RECEBIMENTO VINCULAÇÃO DE PEDIDOS

 

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

Objetos da nota:

REPS /PWS/MZYCI017F02

REPS /PWS/MZYCI020F02

REPS /PWS/MZYCI068F01

REPS /PWS/MZYCI068X01

 

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

Modificações efetuadas em REPS /PWS/MZYCI017F02

 

...

FORM converter_moeda USING p_devlme

                           p_deme

                           p_parame

                           p_data

                  CHANGING p_paravlme.

  DATA: v_ctmoeda LIKE tcurr-kurst VALUE 'G',

        v_devlme   LIKE bsak-wrbtr,

        v_paravlme LIKE bsak-wrbtr.

  v_devlme = p_devlme .

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

  IF p_deme NE p_parame.

* << Fim da inclusão

  IF p_devlme NE 0.

    IF NOT /pws/zycit321-kurst IS INITIAL.

      v_ctmoeda = /pws/zycit321-kurst.

    ENDIF.

    CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

         EXPORTING

              i_montante                 = v_devlme

              i_demoeda                  = p_deme

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

              i_paramoeda                = p_parame

* << Fim da exclusão

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

                i_paramoeda                = /pws/zycbt007-waersb

* << Fim da inclusão

              i_ctmoeda                  = v_ctmoeda

              i_dtbase                   = p_data

         IMPORTING

              e_montante                 = v_paravlme

         EXCEPTIONS

              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.

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

      IF sy-subrc EQ 0.

        CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

             EXPORTING

                  i_montante                 = v_paravlme

                  i_demoeda                  = /pws/zycbt007-waersb

                  i_paramoeda                = /pws/zycbt007-waersa

                  i_ctmoeda                  = v_ctmoeda

                  i_dtbase                   = p_data

             IMPORTING

                  e_montante                 = v_paravlme

             EXCEPTIONS

                  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.

      ENDIF.

* << Fim da inclusão

    p_paravlme = v_paravlme.

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

    ENDIF.

  ELSE.

    p_paravlme = p_devlme.

* << Fim da inclusão

  ENDIF.

ENDFORM.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI020F02

 

...

FORM converter_moeda USING p_devlme

                           p_deme

                           p_parame

                           p_data

                  CHANGING p_paravlme.

  DATA: v_ctmoeda LIKE tcurr-kurst VALUE 'G',

        v_devlme   LIKE bsak-wrbtr,

        v_paravlme LIKE bsak-wrbtr.

  v_devlme = p_devlme .

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

  IF p_deme NE p_parame.

* << Fim da inclusão

  IF p_devlme NE 0.

    IF NOT /pws/zycit321-kurst IS INITIAL.

      v_ctmoeda = /pws/zycit321-kurst.

    ENDIF.

    CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

         EXPORTING

              i_montante                 = v_devlme

              i_demoeda                  = p_deme

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

              i_paramoeda                = p_parame

* << Fim da exclusão

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

                i_paramoeda                = /pws/zycbt007-waersb

* << Fim da inclusão

              i_ctmoeda                  = v_ctmoeda

              i_dtbase                   = p_data

         IMPORTING

              e_montante                 = v_paravlme

         EXCEPTIONS

              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.

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

      IF sy-subrc EQ 0.

        CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

             EXPORTING

                  i_montante                 = v_paravlme

                  i_demoeda                  = /pws/zycbt007-waersb

                  i_paramoeda                = /pws/zycbt007-waersa

                  i_ctmoeda                  = v_ctmoeda

                  i_dtbase                   = p_data

             IMPORTING

                  e_montante                 = v_paravlme

             EXCEPTIONS

                  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.

      ENDIF.

* << Fim da inclusão

    p_paravlme = v_paravlme.

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

    ENDIF.

  ELSE.

    p_paravlme = p_devlme.

* << Fim da inclusão

  ENDIF.

ENDFORM.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI068F01

 

...

                comm_head_i  = wa_komk

                general_read = 'X'

           TABLES

                tkomv        = itab_komv

           EXCEPTIONS

                OTHERS       = 1.

    ENDIF.

    IF t001-bukrs NE itab_ekko-bukrs.

      SELECT SINGLE * FROM t001 INTO t001

               WHERE bukrs EQ itab_ekko-bukrs.

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

      SELECT SINGLE * FROM /pws/zycbt007

               WHERE bukrs EQ itab_ekko-bukrs.

* << Fim da inclusão

    ENDIF.

    CLEAR v_ebelp.

    CONCATENATE '0' itab_ekpo-ebelp INTO v_ebelp.

    READ TABLE itab_zycit030 WITH KEY bukrs = itab_ekko-bukrs.

    IF sy-subrc NE 0.

      CLEAR itab_ekko-bukrs.

    ENDIF.

    LOOP AT itab_zycit030 WHERE land1 EQ t001-land1

                            AND bukrs EQ itab_ekko-bukrs.

      IF itab_ekko-bstyp = 'L'.

...

 

...

                                kschl = itab_zycit030-kschl.

          CLEAR: v_vl_temp, v_vl_temp2.

          PERFORM retorna_decimais USING  itab_ekko-waers

                           CHANGING itab_konp-kbetr.

          IF NOT itab_konp-kpein IS INITIAL.

            v_vl_temp2 = itab_ekpo-ktmng *

                  ( itab_konp-kbetr / itab_konp-kpein ).

          ENDIF.

          PERFORM converter_moeda USING v_vl_temp2

                                     itab_ekko-waers

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

                                     'USD'

* << Fim da exclusão

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

                                     /pws/zycbt007-waersa

* << Fim da inclusão

                                     itab_ekpo-aedat

                            CHANGING v_vl_temp.

          IF itab_zycit030-fator EQ '+'.

            itab_zycit376_t-vlfob = itab_zycit376_t-vlfob + v_vl_temp.

          ELSE.

            itab_zycit376_t-vlfob = itab_zycit376_t-vlfob - v_vl_temp.

          ENDIF.

        ENDLOOP.

      ELSE.

        LOOP AT itab_komv

          WHERE kposn EQ v_ebelp

            AND kschl EQ itab_zycit030-kschl

            AND knumv EQ itab_ekko-knumv.

          CLEAR: v_vl_temp.

          PERFORM retorna_decimais USING  itab_ekko-waers

                           CHANGING itab_komv-kwert.

          PERFORM converter_moeda USING itab_komv-kwert

                                     itab_ekko-waers

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

                                     'USD'

* << Fim da exclusão

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

                                     /pws/zycbt007-waersa

* << Fim da inclusão

                                     itab_ekpo-aedat

                            CHANGING v_vl_temp.

          IF itab_zycit030-fator EQ '+'.

            itab_zycit376_t-vlfob = itab_zycit376_t-vlfob + v_vl_temp.

          ELSE.

            itab_zycit376_t-vlfob = itab_zycit376_t-vlfob - v_vl_temp.

          ENDIF.

        ENDLOOP.

      ENDIF.

    ENDLOOP.

...

 

...

FORM converter_moeda USING p_devlme

                           p_deme

                           p_parame

                           p_data

                  CHANGING p_paravlme.

  DATA: v_ctmoeda LIKE tcurr-kurst VALUE 'G',

        v_devlme   LIKE bsak-wrbtr,

        v_paravlme LIKE bsak-wrbtr.

  v_devlme = p_devlme .

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

  IF p_deme NE p_parame.

* << Fim da inclusão

  IF p_devlme NE 0.

    IF NOT /pws/zycit321-kurst IS INITIAL.

      v_ctmoeda = /pws/zycit321-kurst.

    ENDIF.

    CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

         EXPORTING

              i_montante                 = v_devlme

              i_demoeda                  = p_deme

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

              i_paramoeda                = p_parame

* << Fim da exclusão

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

                i_paramoeda                = /pws/zycbt007-waersb

* << Fim da inclusão

              i_ctmoeda                  = v_ctmoeda

              i_dtbase                   = p_data

         IMPORTING

              e_montante                 = v_paravlme

         EXCEPTIONS

              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.

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

      IF sy-subrc EQ 0.

        CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

             EXPORTING

                  i_montante                 = v_paravlme

                  i_demoeda                  = /pws/zycbt007-waersb

                  i_paramoeda                = /pws/zycbt007-waersa

                  i_ctmoeda                  = v_ctmoeda

                  i_dtbase                   = p_data

             IMPORTING

                  e_montante                 = v_paravlme

             EXCEPTIONS

                  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.

      ENDIF.

* << Fim da inclusão

    p_paravlme = v_paravlme.

    IF sy-subrc NE 0.

      itab_msg-ebeln = itab_ekpo-ebeln.

      itab_msg-ebelp = itab_ekpo-ebelp.

      CONCATENATE text-027 p_deme text-028

      INTO itab_msg-msg SEPARATED BY space.

      APPEND itab_msg.

    ENDIF.

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

    ENDIF.

  ELSE.

    p_paravlme = p_devlme.

* << Fim da inclusão

  ENDIF.

ENDFORM.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI068X01

 

...

        lfa1         ,

        t001         ,

        tcurx        ,

        /pws/zycit244,

        /pws/zycie244,

        /pws/zycit245,

        /pws/zycie245,

        /pws/zycit100,

        /pws/zycie376,

        /pws/zycit321,

* >> Início da exclusão:

        /pws/zycie100.

* << Fim da exclusão

* >> Início da inclusão:

        /pws/zycie100,

        /pws/zycbt007.

* << Fim da inclusão

CONTROLS: tc_ped1     TYPE TABLEVIEW USING SCREEN '0100',

          tc_atos     TYPE TABLEVIEW USING SCREEN '0200',

          tc_des      TYPE TABLEVIEW USING SCREEN '0300',

          tc_msg_erro TYPE TABLEVIEW USING SCREEN '0400'.

DATA: BEGIN OF COMMON PART a.

...