CE PLUS - Nota 000534

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Liquidação de Fatura

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

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

Descrição da Nota: CASAS DECIMAIS NA LIQUIDAÇÃO DE CONTRATOS

Sintoma

Foi feito um contrato de USD e vinculamos faturas em EUR, (ARBITRAGEM), o valor das faturas

vinculadas é EUR 100.000,00 usamos a paridade de 1,20 e covertido para Dolar é USD 120.000,00;

porém, no momento em que tentamos liquidar as faturas aparecem com valores maiores, no caso EUR

10.000.000,00. verificamos nas tabelas  TCURX e ZYBCT005 e os valores estão normais.

 

 

Solução

Apenas consistir a quantidade de casas decimais quando a quantidade de casas decimas da moeda do

contrato for diferente da quantidade de casas decimais da moeda da fatura.

 

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

NA LIQUIDAÇÃO COM ARBITRAGEM, O VALOR VINCULADO NÃO ESTÁ CORRETO

Informações Complementares

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

Nota Número 00534 Data: 26/12/2005 Hora: 14:07:45

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

 

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

Nota Número              : 00534

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00022

Agrupamento              : 00093

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

Referência às notas relacionadas:

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

 

00430  - 00001 - 6.0    - 00021  - NA LIQUIDAÇÃO COM ARBITRAGEM, O VALOR VINCULADO NÃO ESTÁ CORRETO

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

CASAS DECIMAIS NA LIQUIDAÇÃO DE CONTRATOS

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

Palavras Chave:

LIQUIDAÇÃO USD EUR ARBITRAGEM

 

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

Objetos da nota:

REPS /PWS/MZYCB004F01

REPS /PWS/MZYCB004F03

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F01

 

Contexto: FORM carrega_itab_zycbt005.

 

  DATA: v_bukrs_fat LIKE /pws/zycbt017-bukrs.

  REFRESH: itab_zycbt005.

  CLEAR:  /pws/zycbe005, /pws/zycbe006.

 

  IF v_trans IS INITIAL.               " Transação de criação

 

...

 

    LOOP AT itab_zycbt005.

      itab_zycbt005-vlme  = itab_zycbt005-slpagar.

      IF itab_zycbt005-waers NE itab_zycbt005-waers_c.

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

* CHAMADO 275543 - 07/12/2005 - INICIO

        PERFORM verifica_casas_decimais

          USING

            itab_zycbt005-vlme

            itab_zycbt005-waers

* >> Início da Inclusão

* Ch. 278297 - 23.12.2005 - Início

            itab_zycbt005-waers_c

* Ch. 278297 - 23.12.2005 - Fim

* << Fim da Inclusão

          CHANGING itab_zycbt005-vlme.

* CHAMADO 275543 - 07/12/2005 - FIM

      ENDIF.

      MODIFY itab_zycbt005.

      MOVE-CORRESPONDING itab_zycbt005 TO itab_paridade.

      MOVE itab_zycbt005-parid TO itab_paridade-v_parid.

      MOVE itab_zycbt005-waers_c TO itab_paridade-v_waers_c.

      APPEND itab_paridade.

    ENDLOOP.

 

    CLEAR: itab_zycbt005-status.

 

    MODIFY itab_zycbt005 TRANSPORTING status

                         WHERE nrseqc = v_nrseqc.

    LOOP AT itab_paridade.

      itab_paridade-v_vlme_c =

              itab_paridade-vlme * itab_paridade-v_parid.

      MODIFY itab_paridade.

    ENDLOOP.

  ELSE.                       " Transação de Alteração / Modificação

 

...

 

  ENDIF.

 

  SELECT * FROM /pws/zycbt001

         INTO TABLE itab_zycbt001

         WHERE nrseqc = v_nrseqc.

 

...

 

ENDFORM.                               " CARREGA_ITAB_ZYCBT005

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F03

 

*----------------------------------------------------------------------*

* Form VERIFICA_CASAS_DECIMAIS

*----------------------------------------------------------------------*

* Objetivo Ajustar as casas decimais de um valor de acordo com a moeda.

*----------------------------------------------------------------------*

* Parâmetros:   ( --> Entrada ) ( <-- Saída ) ( <-> Tabelas )

*----------------------------------------------------------------------*

*----------------------------------------------------------------------*

* Chamado     Data            Descrição

*----------------------------------------------------------------------*

* 2675543     07/12/2005      Codificação inicial

* >> Início da Inclusão

* 278297      23/12/2005      Ajuste para tratamento quando a quantidade

*                             de casas decimais da moeda do contrato for

*                             igual a quantidade de casas decimais da

*                             moeda da fatura.

*                             Ex: Moedas: Contrato USD e Fatura EUR

* << Fim da Inclusão

*----------------------------------------------------------------------*

FORM verifica_casas_decimais

  USING

    value(p_valor)

    value(p_waers)

* >> Início da Inclusão

* Ch. 278297 - 23.12.2005 - Início

    value(p_waers_c)

* Ch. 278297 - 23.12.2005 - Fim

* << Fim da Inclusão

  CHANGING

    p_valor_aj.

 

* >> Início da Inclusão

* Ch. 278297 - 23.12.2005 - Início

* << Fim da Inclusão

* >> Início da Deleção

* DATA v_decimais LIKE tcurx-currdec,

* << Fim da Deleção

* >> Início da Inclusão

  DATA: v_decimais   LIKE tcurx-currdec,

        v_decimais_c LIKE tcurx-currdec.

* Ch. 278297 - 23.12.2005 - Fim

* >> Fim da Inclusão

 

  SELECT SINGLE currdec

    FROM tcurx

    INTO v_decimais

    WHERE currkey EQ p_waers.

  IF sy-subrc NE 0.

    v_decimais = 2.

  ENDIF.

 

* >> Início da Inclusão

* Ch. 278297 - 23.12.2005 - Início

* Verifica a quantidade de casas decimais da moeda do contrato

  SELECT SINGLE currdec

    FROM tcurx

    INTO v_decimais_c

    WHERE currkey EQ p_waers_c.

  IF sy-subrc NE 0.

    v_decimais_c = 2.

  ENDIF.

 

* Apenas continua se a quantidade de casas decimais do contrato e da

* fatura forem diferentes

  CHECK v_decimais NE v_decimais_c.

* Ch. 278297 - 23.12.2005 - Fim

* << Fim da Inclusão

 

  IF v_decimais EQ 0.

    p_valor_aj = p_valor / 100.

  ELSE.

    p_valor_aj = p_valor * 100.

  ENDIF.

ENDFORM.

ENDFORM.

ENDFORM.