CE PLUS - Nota 002101

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Liquidação de Fatura

Data/Hora da Publicação: 14/09/2006 00:00:00

Data/Hora Última Alteração: 22/02/2011 11:56:32

Descrição da Nota: LIQUIDAÇÃO DE FATURAS - ARBITRAGEM - CASAS DECIMAIS

Sintoma

Ao efetuar uma liquidação com arbitragem, Contrato USD x Fatura EUR, o valor na tela esta incorreto,

exemplo, em vez de 5.000,00 esta 500.000,00. Os valores da diferença em reais, na quarta f-30 estão

incorretos, gerando erro. Ao ocorrer o erro, o sistema estorna todos documentos corretamente, mas

grava uma nova data no campo /PWS/ZYCBT030-BUDAT, gerando erro na próxima liquidação. Se a

liquidação for correta, ao efetaur o estorno com arbitragem, na transação F22 esta lançando valor em

moeda interna incorreto.

 

 

Solução

Retirar o tratamento onde multiplica o valor ME por 100, assim o valor fica correto. Deixar apenas o

tratamento para moedas sem casas decimais. No estorno, atualizar o campo BUDAT da tabela interna

itab_zycbt030 com a atual data da tabela transparente.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

LIQUIDAÇÃO COM ARBITRAGEM DE MOEDA

LIQUIDAÇÃO COM ARBITRAGEM - CALCULO PROVISÃO JUROS

Informações Complementares

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

Nota Número 02101 Data: 14/09/2006 Hora: 11:29:06

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

 

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

Nota Número              : 02101

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00025

Agrupamento              : 00131

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

Referência às notas relacionadas:

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

 

01946  - 00001 - 6.0    - 00024  - LIQUIDAÇÃO COM ARBITRAGEM DE MOEDA

02011  - 00002 - 6.0    - 00024  - LIQUIDAÇÃO COM ARBITRAGEM - CALCULO PROVISÃO JUROS

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

LIQUIDAÇÃO DE FATURAS - ARBITRAGEM - CASAS DECIMAIS

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

Palavras Chave:

LIQUIDAÇÃO DE FATURAS ARBITRAGEM CASAS DECIMAIS

VLME /PWS/ZYCBT030-BUDAT

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

Objetos da nota:

REPS /PWS/MZYCB004F01

REPS /PWS/MZYCB004F02

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F01

 

...

      ENDIF.

    ENDIF.

    LOOP AT itab_zycbt005.

      itab_zycbt005-vlme  = itab_zycbt005-slpagar.

      IF itab_zycbt005-waers NE itab_zycbt005-waers_c.

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

        itab_zycbt005-vlme =

        ( itab_zycbt005-vlme / itab_zycbt005-parid ) * 100.

* << Fim da exclusão

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

        itab_zycbt005-vlme = itab_zycbt005-vlme / itab_zycbt005-parid.

* << Fim da inclusão

        PERFORM verifica_casas_decimais

          USING

            itab_zycbt005-vlme

            itab_zycbt005-waers

            itab_zycbt005-waers_c

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F02

 

...

    SELECT SINGLE kursf FROM bkpf

                 INTO bkpf-kursf

                 WHERE belnr EQ itab_zycbt006-belnr5

                   AND bukrs EQ itab_zycbt006-bukrs

                   AND gjahr EQ v_year.

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

    IF tcurx-currdec = 2.

      v_reais_c = ( itab_zycbt006-vlme * itab_paridade-v_parid ) / 100.

    ELSE.

* << Fim da exclusão

      v_reais_c = ( itab_paridade-v_vlme_c  )

                  / ( 10 ** ( tcurx-currdec - 2 ) ).

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

    ENDIF.

* << Fim da exclusão

    v_reais_c = ( ( bkpf-kursf / v_defator )

                           * v_parafator ) * v_reais_c.

    CLEAR bkpf.

    READ TABLE itab_zycbt209

         WITH KEY nrinvoic = itab_zycbt006-nrinvoic

...

 

...

                                          cpochv = v_cpochv

                                          tpmsg  = 'S'.

        IF sy-subrc EQ 0.

          CLEAR: itab_zycbt030-belnr_d,

                 itab_zycbt030-status_d.

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

          MODIFY itab_zycbt030 TRANSPORTING belnr_d status_d

* << Fim da exclusão

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

          SELECT SINGLE budat

                        FROM /pws/zycbt030

                        INTO itab_zycbt030-budat

                        WHERE nrinvoic = itab_zycbt030-nrinvoic

                          AND vbeln    = itab_zycbt030-vbeln

                          AND gsberf   = itab_zycbt030-gsberf

                          AND nrparcf  = itab_zycbt030-nrparcf.

          MODIFY itab_zycbt030 TRANSPORTING budat belnr_d status_d

* << Fim da inclusão

                 WHERE nrinvoic = itab_zycbt030-nrinvoic

                   AND vbeln    = itab_zycbt030-vbeln

                   AND gsberf   = itab_zycbt030-gsberf

                   AND nrparcf  = itab_zycbt030-nrparcf.

          itab_contabil-nrinvoic = itab_zycbt030-nrinvoic.

...

 

...

    SELECT SINGLE kursf FROM bkpf

                 INTO bkpf-kursf

                 WHERE belnr EQ itab_zycbt006-belnr_d

                   AND bukrs EQ itab_zycbt006-bukrs

                   AND gjahr EQ v_year.

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

    IF tcurx-currdec = 2.

      v_reais_c = ( itab_zycbt006-vlme * itab_zycbt005-parid ) / 100.

    ELSE.

* << Fim da exclusão

      v_reais_c = ( itab_zycbt006-vlme * itab_zycbt005-parid )

                  / ( 10 ** ( tcurx-currdec - 2 ) ).

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

    ENDIF.

* << Fim da exclusão

    v_reais_c = ( ( bkpf-kursf / v_defator )

                           * v_parafator ) * v_reais_c.

    CLEAR bkpf.

    CLEAR v_year.

    CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

...