CE PLUS - Nota 004184

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Recebimento

Data/Hora da Publicação: 16/07/2007 00:00:00

Data/Hora Última Alteração: 09/03/2010 10:06:24

Descrição da Nota: CONVERSÃO DE MOEDAS UTILIZANDO A SIGLA /PWS/ZYCBT007

Sintoma

 

O programa não esta convertendo corretamente os valores

 

Solução

 

Atualização do programa de recebimento para considerar a siglas das moedas paramterizadas nas

tabelas do módulo de cambio.

Versões Tratadas

7.0

Informações Complementares

 

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

Nota Número 04184 Data: 16/07/2007 Hora: 11:03:36

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

 

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

Nota Número              : 04184

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00003

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

CONVERSÃO DE MOEDAS UTILIZANDO A SIGLA /PWS/ZYCBT007

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

Palavras Chave:

CONVERSÃO MOEDA /PWS/ZYCBT007 WAERSA WAERSB SIGLA

 

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

Objetos da nota:

REPS /PWS/MZYCI017F02

 

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

Modificações efetuadas em REPS /PWS/MZYCI017F02

 

...

      itab_zycit279-i_txii     = itab_zycit003-advalii.

      itab_zycit279-i_txipi    = itab_zycit003-advalipi.

      itab_zycit279-i_txicms   = itab_zycit003-advalicms.

      itab_zycit279-pis        = itab_zycit100-advalpis.

      itab_zycit279-cofins     = itab_zycit100-advalcofins.

      itab_zycit279-baseii     = itab_zycit100-baseii.

      itab_zycit279-baseipi    = itab_zycit100-baseipi.

      itab_zycit279-basecofins = itab_zycit100-basecofins.

      itab_zycit279-basepis    = itab_zycit100-basepis.

      itab_zycit279-baseicms   = itab_zycit100-baseicms.

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

      PERFORM taxa_converte USING    /pws/zycbt007-waersa

* << Fim da inclusão

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

      PERFORM taxa_converte USING    'USD'

* << Fim da exclusão

                                     /pws/zycit085-dttax

                            CHANGING v_taxa.

      itab_zycit279-i_txmoeda = v_taxa.

      itab_zycit279-qtd_iten = itab_zycit279-menge.

      itab_zycit279-um_base = itab_zycit279-meins.

      PERFORM  converte_um_base   USING itab_zycit279-matnr

                               CHANGING itab_zycit279-um_base

                                        itab_zycit279-qtd_iten.

      itab_zycit279-vltot   = itab_zycit100-vlfob.

      itab_zycit279-vlfrete = itab_zycit100-vlfre .

      itab_zycit279-vlseg   = itab_zycit100-vlseg .

      PERFORM valor_converte USING /pws/zycit085-waersfob

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

                                         'USD'

* << Fim da exclusão

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

                                         /pws/zycbt007-waersa

* << Fim da inclusão

                                         /pws/zycit085-dttax

                                CHANGING itab_zycit279-vltot.

      PERFORM valor_converte USING /pws/zycbt007-waersb

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

                                         'USD'

* << Fim da exclusão

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

                                         /pws/zycbt007-waersa

* << Fim da inclusão

                                         /pws/zycit085-dttax

                                CHANGING itab_zycit279-vlfrete.

      PERFORM valor_converte USING /pws/zycbt007-waersb

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

                                         'USD'

* << Fim da exclusão

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

                                         /pws/zycbt007-waersa

* << Fim da inclusão

                                         /pws/zycit085-dttax

                                CHANGING itab_zycit279-vlseg.

      READ TABLE itab_zycit376 WITH KEY ebeln = itab_zycit003-ebeln

                                        ebelp = itab_zycit003-ebelp.

      READ TABLE itab_zycit245 WITH KEY nrseqd = itab_zycit376-nrseqd

                                        nritem = itab_zycit376-nritem.

      CLEAR: v_variacfob.

      IF NOT itab_zycit279-menge  IS INITIAL

     AND NOT itab_zycit376-qtd_apro IS INITIAL.

        v_variacfob = itab_zycit279-menge *

...

 

...

  SELECT SINGLE awkey

         FROM bkpf

         INTO itab_zycbt036-awkey

         WHERE belnr = v_belnr      AND

               bukrs = wa_nf-bukrs  AND

               gjahr = wa_nf-dt_mr1m+0(4).

  itab_zycbt036-belnr  = v_belnr.

  APPEND itab_zycbt036.

ENDFORM.

FORM verifica_taxa_dolar.

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

  IF /pws/zycbt007 IS INITIAL.

    SELECT SINGLE *

      FROM /pws/zycbt007

      WHERE bukrs EQ wa_nf-bukrs.

  ENDIF.

* << Fim da inclusão

  LOOP AT itab_zycit003 WHERE nrseqd NE space.

  ENDLOOP.

  IF sy-subrc EQ 0.

    SELECT SINGLE * FROM /pws/zycit100

      WHERE nrseq = itab_zycit003-nrseq.

    SELECT SINGLE * FROM /pws/zycit085

      WHERE nrseqdi = /pws/zycit100-nrseqdi.

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

    IF itab_zycit003-waers_real NE 'USD'.

      PERFORM taxa_converte USING  'USD'

* << Fim da exclusão

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

    IF itab_zycit003-waers_real NE /pws/zycbt007-waersa.

      PERFORM taxa_converte USING  /pws/zycbt007-waersa

* << Fim da inclusão

                         /pws/zycit085-dttax

                     CHANGING  v_taxa.

      IF v_taxa IS INITIAL.

        v_lock = 'X'.

        MESSAGE i015 WITH text-061.

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

FORM reclassificacao_ia.

...

 

...

            mode_lfb1 = 'E'

            lifnr     = v_lifnr

            bukrs     = wa_nf-bukrs.

ENDFORM.

FORM trata_taxa USING    p_moeda

                         p_dtbase

                CHANGING p_kursf

                         p_valor.

  DATA: v_defator   LIKE tcurr-ffact,

        v_parafator LIKE tcurr-ffact.

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

  IF /pws/zycbt007 IS INITIAL.

    SELECT SINGLE *

      FROM /pws/zycbt007

      WHERE bukrs EQ wa_nf-bukrs.

  ENDIF.

* << Fim da inclusão

  CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

    EXPORTING

      i_montante                         = p_valor

      i_demoeda                          = p_moeda

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

      i_paramoeda                        = 'BRL'

* << Fim da exclusão

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

      i_paramoeda                        = /pws/zycbt007-waersb

* << Fim da inclusão

      i_ctmoeda                          = 'M'

      i_dtbase                           = p_dtbase

   IMPORTING

     e_defator                          = v_defator

     e_parafator                        = v_parafator

   EXCEPTIONS

     i_demoeda_nao_encontrado           = 1

     i_paramoeda_nao_encontrado         = 2

     i_ctmoeda_nao_encontrado           = 3

     i_dtbase_nao_encontrada            = 4

...

 

...

            .

  IF sy-subrc <> 0.

  ENDIF.

  IF NOT v_defator IS INITIAL.

    p_kursf = ( p_kursf * 100 ) / v_defator.

  ELSE.

    CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

      EXPORTING

        i_montante                         = p_valor

        i_demoeda                          = p_moeda

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

        i_paramoeda                        = 'BRL'

* << Fim da exclusão

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

        i_paramoeda                        = /pws/zycbt007-waersb

* << Fim da inclusão

        i_ctmoeda                          = 'M'

        i_dtbase                           = sy-datlo

     IMPORTING

       e_defator                          = v_defator

       e_parafator                        = v_parafator

     EXCEPTIONS

       i_demoeda_nao_encontrado           = 1

       i_paramoeda_nao_encontrado         = 2

       i_ctmoeda_nao_encontrado           = 3

       i_dtbase_nao_encontrada            = 4

...