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.
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