CE PLUS - Nota 002011

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Liquidação de Fatura

Data/Hora da Publicação: 30/08/2006 00:00:00

Data/Hora Última Alteração: 18/02/2011 15:19:22

Descrição da Nota: LIQUIDAÇÃO COM ARBITRAGEM - CALCULO PROVISÃO JUROS

Sintoma

Nos calculos de Juros dos contratos de ACC de Arbitragem - Ao concluir a liquidação de uma captação

de JPY, cujo a liquidação é feita com faturas em USD o programa está calculando e provisionando

errado o valor dos juros considerando casas decimais e aumentando algarismos no número inteiro.

 

 

Solução

Verifica na tabela tcurx as casas decimais da moeda e fazer o calculo que corrige os zeros a mais ou

a menos, assim calcua corretamente a provisão de juros. Alterar os campos da tela referente a este

juros, para exibir corretamente de acordo com a moeda.

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 02011 Data: 30/08/2006 Hora: 14:58:56

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

 

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

Nota Número              : 02011

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00024

Agrupamento              : 00129

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

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

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

Palavras Chave:

LIQUIDAÇÃO COM ARBITRAGEM CALCULO PROVISÃO JUROS

JPY

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

Objetos da nota:

DYNP /PWS/SAPMZYCB004                        0100

REPS /PWS/MZYCB004F01

REPS /PWS/MZYCB004F02

REPS /PWS/MZYCB004F03

REPS /PWS/MZYCB004I01

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB004                        0100

 

MODIFICAR CAMPO da table control TC_FATURAS: /PWS/ZYCBE006-VLJUR_ACC

 

NOME :    DE: /PWS/ZYCBE006-VLJUR_ACC     PARA: V_VLJUR_ACC

CPO. REF. DE: /PWS/ZYCBE006-WAERS         PARA: V_WAERS_C

 

 

 

MODIFICAR CAMPO da table control TC_FATURAS: /PWS/ZYCBE006-VLJUR_ACE

 

NOME :    DE: /PWS/ZYCBE006-VLJUR_ACE     PARA: V_VLJUR_ACE

CPO. REF. DE: /PWS/ZYCBE006-WAERS         PARA: V_WAERS_C

 

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

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.

* << Fim da exclusão

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

        itab_zycbt005-vlme =

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

* << Fim da inclusão

        PERFORM verifica_casas_decimais

          USING

            itab_zycbt005-vlme

            itab_zycbt005-waers

            itab_zycbt005-waers_c

...

 

...

  IF sy-tcode EQ c_transacao_c.

    IF wa_zycbt007-fltxt = 'X'.

      v_ftxt = 'X'.

    ENDIF.

  ENDIF.

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

  MOVE:  itab_zycbt005-vljur_acc TO /pws/zycbe006-vljur_acc,

         itab_zycbt005-vljur_ace TO /pws/zycbe006-vljur_ace.

* << Fim da exclusão

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

  MOVE:  itab_zycbt005-vljur_acc TO v_vljur_acc,

         itab_zycbt005-vljur_ace TO v_vljur_ace.

* << Fim da inclusão

  PERFORM move_zycbe006.

  /pws/zycbe006-nrinvoic = itab_zycbt005-nrinvoic.

  /pws/zycbe006-nrparcf  = itab_zycbt005-nrparcf.

  /pws/zycbe006-gsberf   = itab_zycbt005-gsberf.

  /pws/zycbe006-dtvencto = itab_zycbt005-dtvencto.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F02

 

...

    v_index = sy-tabix.

    IF itab_zycbt005_t-waers EQ itab_zycbt005_t-waers_c.

      v_calc_jur = itab_zycbt005_t-vlme.

    ELSE.

      v_calc_jur = itab_zycbt005_t-vlme * itab_zycbt005_t-parid.

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

     SELECT SINGLE * FROM tcurx WHERE currkey = itab_zycbt005_t-waers_c.

      IF sy-subrc <> 0.

        tcurx-currdec = 2.

      ENDIF.

      v_calc_jur = v_calc_jur * ( 10 ** ( tcurx-currdec - 2 ) ).

* << Fim da inclusão

    ENDIF.

    PERFORM seta_data_juros.

    IF v_dt_pgt = 'X'.

      v_dtcalcjur = /pws/zycbe006-dtpagext.

    ELSEIF v_dtliq = 'X'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F03

 

...

    v_decimais_c = 2.

  ENDIF.

  CHECK v_decimais NE v_decimais_c.

  IF v_decimais EQ 0.

    p_valor_aj = p_valor / 100.

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

  ELSE.

* << Fim da exclusão

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

  ELSEIF v_decimais NE 2.

* << Fim da inclusão

    p_valor_aj = p_valor * 100.

  ENDIF.

ENDFORM.

FORM executa_exit_p

  USING value(p_exit) LIKE /pws/zyglt100-zexit.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004I01

 

...

        ENDCASE.

      ENDIF.

      CLEAR itab_zycbt005-v_vljur.

      CLEAR v_zycbe005.

      MOVE-CORRESPONDING itab_zycbt005 TO v_zycbe005.

* >> Início da inclusão: MODULE CALCULA_JUROS

      SELECT SINGLE * FROM tcurx WHERE currkey = itab_zycbt005-waers_c.

      IF sy-subrc <> 0.

        tcurx-currdec = 2.

      ENDIF.

      v_calc_jur           = v_calc_jur *

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

* << Fim da inclusão

      IF NOT /pws/zycbe001-ffrcalc IS INITIAL.

        CALL FUNCTION '/PWS/ZYCB_CALCULA_JUROS'

             EXPORTING

                  zycbe005          = v_zycbe005

                  data_fim          = v_dtcalcjur

...

 

...

            WHEN 2.

              MESSAGE i015 WITH text-168.

          ENDCASE.

        ENDIF.

      ENDIF.

* >> Início da exclusão: MODULE CALCULA_JUROS

      SELECT SINGLE * FROM tcurx WHERE currkey = itab_zycbt005-waers.

* << Fim da exclusão

* >> Início da inclusão: MODULE CALCULA_JUROS

      SELECT SINGLE * FROM tcurx WHERE currkey = itab_zycbt005-waers_c.

* << Fim da inclusão

      IF sy-subrc <> 0.

        tcurx-currdec = 2.

      ENDIF.

      itab_zycbt005-v_vljur = itab_zycbt005-v_vljur *

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

...