Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Recebimento
Data/Hora da Publicação: 16/07/2007 00:00:00
Data/Hora Última Alteração: 09/03/2010 10:06:24
Descrição da Nota: CONVERSÃO DE MOEDAS UTILIZANDO A SIGLA /PWS/ZYCBT007
Sintoma
O programa não esta convertendo corretamente os valores
Solução
Atualização do programa de recebimento para considerar a siglas das moedas paramterizadas nas
tabelas do módulo de cambio.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04184 Data: 16/07/2007 Hora: 11:03:36
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04184
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00003
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
CONVERSÃO DE MOEDAS UTILIZANDO A SIGLA /PWS/ZYCBT007
----------------------------------------------------------------------------------------------------
Palavras Chave:
CONVERSÃO MOEDA /PWS/ZYCBT007 WAERSA WAERSB SIGLA
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI017F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017F02
...
itab_zycit279-i_txii = itab_zycit003-advalii.
itab_zycit279-i_txipi = itab_zycit003-advalipi.
itab_zycit279-i_txicms = itab_zycit003-advalicms.
itab_zycit279-pis = itab_zycit100-advalpis.
itab_zycit279-cofins = itab_zycit100-advalcofins.
itab_zycit279-baseii = itab_zycit100-baseii.
itab_zycit279-baseipi = itab_zycit100-baseipi.
itab_zycit279-basecofins = itab_zycit100-basecofins.
itab_zycit279-basepis = itab_zycit100-basepis.
itab_zycit279-baseicms = itab_zycit100-baseicms.
* >> Início da inclusão: FORM ADICIONA_SALDO_ATO
PERFORM taxa_converte USING /pws/zycbt007-waersa
* << Fim da inclusão
* >> Início da exclusão: FORM ADICIONA_SALDO_ATO
PERFORM taxa_converte USING 'USD'
* << Fim da exclusão
/pws/zycit085-dttax
CHANGING v_taxa.
itab_zycit279-i_txmoeda = v_taxa.
itab_zycit279-qtd_iten = itab_zycit279-menge.
itab_zycit279-um_base = itab_zycit279-meins.
PERFORM converte_um_base USING itab_zycit279-matnr
CHANGING itab_zycit279-um_base
itab_zycit279-qtd_iten.
itab_zycit279-vltot = itab_zycit100-vlfob.
itab_zycit279-vlfrete = itab_zycit100-vlfre .
itab_zycit279-vlseg = itab_zycit100-vlseg .
PERFORM valor_converte USING /pws/zycit085-waersfob
* >> Início da exclusão: FORM ADICIONA_SALDO_ATO
'USD'
* << Fim da exclusão
* >> Início da inclusão: FORM ADICIONA_SALDO_ATO
/pws/zycbt007-waersa
* << Fim da inclusão
/pws/zycit085-dttax
CHANGING itab_zycit279-vltot.
PERFORM valor_converte USING /pws/zycbt007-waersb
* >> Início da exclusão: FORM ADICIONA_SALDO_ATO
'USD'
* << Fim da exclusão
* >> Início da inclusão: FORM ADICIONA_SALDO_ATO
/pws/zycbt007-waersa
* << Fim da inclusão
/pws/zycit085-dttax
CHANGING itab_zycit279-vlfrete.
PERFORM valor_converte USING /pws/zycbt007-waersb
* >> Início da exclusão: FORM ADICIONA_SALDO_ATO
'USD'
* << Fim da exclusão
* >> Início da inclusão: FORM ADICIONA_SALDO_ATO
/pws/zycbt007-waersa
* << Fim da inclusão
/pws/zycit085-dttax
CHANGING itab_zycit279-vlseg.
READ TABLE itab_zycit376 WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
READ TABLE itab_zycit245 WITH KEY nrseqd = itab_zycit376-nrseqd
nritem = itab_zycit376-nritem.
CLEAR: v_variacfob.
IF NOT itab_zycit279-menge IS INITIAL
AND NOT itab_zycit376-qtd_apro IS INITIAL.
v_variacfob = itab_zycit279-menge *
...
...
SELECT SINGLE awkey
FROM bkpf
INTO itab_zycbt036-awkey
WHERE belnr = v_belnr AND
bukrs = wa_nf-bukrs AND
gjahr = wa_nf-dt_mr1m+0(4).
itab_zycbt036-belnr = v_belnr.
APPEND itab_zycbt036.
ENDFORM.
FORM verifica_taxa_dolar.
* >> Início da inclusão: FORM VERIFICA_TAXA_DOLAR
IF /pws/zycbt007 IS INITIAL.
SELECT SINGLE *
FROM /pws/zycbt007
WHERE bukrs EQ wa_nf-bukrs.
ENDIF.
* << Fim da inclusão
LOOP AT itab_zycit003 WHERE nrseqd NE space.
ENDLOOP.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM /pws/zycit100
WHERE nrseq = itab_zycit003-nrseq.
SELECT SINGLE * FROM /pws/zycit085
WHERE nrseqdi = /pws/zycit100-nrseqdi.
* >> Início da exclusão: FORM VERIFICA_TAXA_DOLAR
IF itab_zycit003-waers_real NE 'USD'.
PERFORM taxa_converte USING 'USD'
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_TAXA_DOLAR
IF itab_zycit003-waers_real NE /pws/zycbt007-waersa.
PERFORM taxa_converte USING /pws/zycbt007-waersa
* << Fim da inclusão
/pws/zycit085-dttax
CHANGING v_taxa.
IF v_taxa IS INITIAL.
v_lock = 'X'.
MESSAGE i015 WITH text-061.
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
FORM reclassificacao_ia.
...
...
mode_lfb1 = 'E'
lifnr = v_lifnr
bukrs = wa_nf-bukrs.
ENDFORM.
FORM trata_taxa USING p_moeda
p_dtbase
CHANGING p_kursf
p_valor.
DATA: v_defator LIKE tcurr-ffact,
v_parafator LIKE tcurr-ffact.
* >> Início da inclusão: FORM TRATA_TAXA
IF /pws/zycbt007 IS INITIAL.
SELECT SINGLE *
FROM /pws/zycbt007
WHERE bukrs EQ wa_nf-bukrs.
ENDIF.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'
EXPORTING
i_montante = p_valor
i_demoeda = p_moeda
* >> Início da exclusão: FORM TRATA_TAXA
i_paramoeda = 'BRL'
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_TAXA
i_paramoeda = /pws/zycbt007-waersb
* << Fim da inclusão
i_ctmoeda = 'M'
i_dtbase = p_dtbase
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
...
...
.
IF sy-subrc <> 0.
ENDIF.
IF NOT v_defator IS INITIAL.
p_kursf = ( p_kursf * 100 ) / v_defator.
ELSE.
CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'
EXPORTING
i_montante = p_valor
i_demoeda = p_moeda
* >> Início da exclusão: FORM TRATA_TAXA
i_paramoeda = 'BRL'
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_TAXA
i_paramoeda = /pws/zycbt007-waersb
* << Fim da inclusão
i_ctmoeda = 'M'
i_dtbase = sy-datlo
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
...