CE PLUS - Nota 000444

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Rotina Mensal

Data/Hora da Publicação: 13/12/2005 00:00:00

Data/Hora Última Alteração: 18/02/2011 14:53:35

Descrição da Nota: VALORES DE MOEDAS SEM CASAS DECIMAIS INCORRETOS PARA TRANSFERÊNCIA LP/CP

Sintoma

Ao executar a rotina de estorno mensal, os valores a serem transferidos de longo para curto prazo de

moedas sem casas decimais são exibidos de forma incorreta no relatório contábil e também o valor

contabilizado está incorreto.

Também está sendo exibindo uma totalização incorreta (está exibindo somente os valores e não os

dados contábeis).

 

 

Solução

O programa passou a levar em consideração o fator de conversão ao converter valores de moeda

estrangeira para moeda interna e também foi eliminada a totalização que exibia somente valores sem

dados contábeis.

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 00444 Data: 13/12/2005 Hora: 06:52:04

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

 

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

Nota Número              : 00444

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00021

Agrupamento              : 00091

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

VALORES DE MOEDAS SEM CASAS DECIMAIS INCORRETOS PARA TRANSFERÊNCIA LP/CP

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

Palavras Chave:

ROTINA ESTORNO MENSAL TRANSFERÊNCIA LP/CP JPY CASAS DECIMAIS

 

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

Objetos da nota:

REPS /PWS/ZYCBI003

REPS /PWS/ZYCBR003

 

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

Modificações efetuadas em REPS /PWS/ZYCBI003

 

...

ENDFORM.

FORM preenche_contas_transferencia.

  CLEAR itab_zycbt011.

  CONCATENATE '008' itab_relat-tpcontr INTO v_codeven.

  READ TABLE itab_zycbt011 WITH KEY codeven = v_codeven.

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

  PERFORM montante_converte.

* << Fim da exclusão

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

  IF /pws/zyglt009-tx_transf_lpcp NE 'M'.

    itab_relat-txc = itab_zycbt001-txcneg.

  ENDIF.

  PERFORM montante_converte

    USING

      itab_zycbt011-ctmoed

      itab_relat-waers

      itab_relat-vlmetransf

      itab_relat-txc

    CHANGING

      itab_relat-vlmitransf.

* << Fim da inclusão

  itab_relat-blart   = itab_zycbt011-blart.

  itab_relat-d_sgtxt = itab_zycbt011-txtdesc.

  itab_relat-c_sgtxt = itab_zycbt011-txtdesc.

  DATA: v_codaux1   LIKE /pws/zyglt316-codaux1.

  DATA: BEGIN OF itab_contas OCCURS 0.

...

 

...

            rules_not_found = 2

            OTHERS          = 3.

  READ TABLE itab_contas INDEX 1.

  itab_relat-c_newko = itab_contas-konth.

ENDFORM.

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

FORM montante_converte.

  DATA: v_moeda LIKE /pws/zycbt011-ctmoed.

  IF /pws/zyglt009-tx_transf_lpcp EQ 'M'.

    SELECT SINGLE kurst

           FROM /pws/zycbt009

           INTO v_moeda

           WHERE codpadr = itab_zycbt011-ctmoed.

    CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

         EXPORTING

              i_montante                 = itab_relat-vlmetransf

              i_demoeda                  = itab_relat-waers

              i_paramoeda                = wa_zycbt007-waersb

              i_ctmoeda                  = v_moeda

              i_dtbase                   = s_dtentr

         IMPORTING

              e_montante                 = itab_relat-vlmitransf

              e_txc                      = itab_relat-txc

         EXCEPTIONS

              i_demoeda_nao_encontrado   = 1

              i_paramoeda_nao_encontrado = 2

              i_ctmoeda_nao_encontrado   = 3

              i_dtbase_nao_encontrada    = 4

              taxa_nao_encontrada        = 5

              fator_nao_encontrado       = 6

              i_montante_nao_encontrado  = 7

              OTHERS                     = 8.

  ELSE.

    itab_relat-txc        = itab_zycbt001-txcneg.

    itab_relat-vlmitransf = itab_relat-vlmetransf * itab_relat-txc.

  ENDIF.

ENDFORM.

* << Fim da exclusão

FORM processa_periodo_jc USING value(p_vlme)

                               value(p_dtinicio) TYPE d

                               value(p_dtfim) TYPE d.

  DATA: v_liq,

        v_dtde  LIKE /pws/zycbt002-dtinicio,

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCBR003

 

...

        CONTINUE.

      ENDIF.

    ENDIF.

    CHECK itab_relat-f_encerrado <> 'C'.

    CHECK itab_relat-f_encerrado <> 'E'.

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

    IF NOT wa_zycbt007-fprovisao IS INITIAL.

* << Fim da inclusão

    IF v_tabix NE 1.

      IF ( v_bukrs   NE itab_relat-bukrs   ) OR

         ( v_waers   NE itab_relat-waers   ) OR

         ( v_gsber   NE itab_relat-gsber   ) OR

         ( v_tpcontr NE itab_relat-tpcontr ) OR

...

 

...

           v_nrparcj           NE itab_relat-nrparcj ).

        PERFORM processa_subtotal_waers USING v_vlprov v_vlprovir ' '.

        CLEAR: v_vlprov, v_vlprovir, v_nrseq.

      ENDIF.

    ENDIF.

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

    IF wa_zycbt007-fprovisao IS INITIAL.

* << Fim da exclusão

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

    ELSE.

* << Fim da inclusão

      ON CHANGE OF itab_relat-bukrs.

        PERFORM processa_subtotal_waers USING v_vlmej_w v_vlmeir_w ' '.

      ENDON.

      ON CHANGE OF itab_relat-waers.

        PERFORM processa_subtotal_waers USING v_vlmej_w v_vlmeir_w ' '.

...

 

...

  ELSE.

    v_vlmeaux = p_vlmej.

  ENDIF.

  p_vlmij = ( ( p_txc / v_defator ) * v_parafator ) * v_vlmeaux.

ENDFORM.

* >> Início da inclusão:

FORM montante_converte

  USING

   value(p_ctmoed) LIKE /pws/zycbt011-ctmoed

   value(p_waers)  LIKE tcurx-currkey

   value(p_vlme)   LIKE /pws/zycbt001-vlme

   value(p_taxa)   LIKE tcurr-ukurs

 CHANGING

   p_vlmi          LIKE /pws/zycbt001-vlme.

  READ TABLE itab_zycbt009

    WITH KEY codpadr = p_ctmoed TRANSPORTING kurst.

  IF sy-subrc NE 0 OR

     itab_zycbt009-kurst IS INITIAL.

    itab_zycbt009-kurst = 'M'.

  ENDIF.

  CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

       EXPORTING

            i_montante                 = p_vlme

            i_demoeda                  = p_waers

            i_paramoeda                = wa_zycbt007-waersb

            i_ctmoeda                  = itab_zycbt009-kurst

            i_dtbase                   = s_dtentr

       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

            taxa_nao_encontrada        = 5

            fator_nao_encontrado       = 6

            i_montante_nao_encontrado  = 7

            OTHERS                     = 8.

  IF sy-subrc NE 0.

    v_defator   = 1.

    v_parafator = 1.

  ENDIF.

  READ TABLE itab_tcurx WITH KEY currkey = p_waers TRANSPORTING currdec.

  IF sy-subrc           EQ 0 AND

     itab_tcurx-currdec EQ 0.

    v_vlmeaux = p_vlme / ( 10 ** ( itab_tcurx-currdec - 2 ) ).

  ELSE.

    v_vlmeaux = p_vlme.

  ENDIF.

  p_vlmi = ( ( p_taxa / v_defator ) * v_parafator ) * v_vlmeaux.

ENDFORM.

* << Fim da inclusão