Módulo: DRAWBACK
Funcionalidade: Vinculação de Importação
Data/Hora da Publicação: 05/03/2010 00:00:00
Data/Hora Última Alteração: 12/08/2011 11:43:54
Descrição da Nota: CONVERSÃO DE MOEDAS (CONVERTER PRIMEIRAMENTE PARA MOEDA LOCAL)
Sintoma
O programa exige o cadastramento de uma taxa de conversão da moeda da importação para USD.
Solução
O programa foi ajustado para converter primeiramente para a moeda local e depois para a moeda forte
(USD).
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 09906 Data: 05/03/2010 Hora: 10:58:41
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 09906
Categoria : Melhoria
Prioridade : Baixa
Versão PW.CE : 8.0
Pacote : 00002
Agrupamento : 00011
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
09195 - 00001 - 8.0 - 00001 - CRIADO PARAMETRO PARA CATEGORIA DE CAMBIO
09722 - 00002 - 8.0 - 00002 - MENSAGENS DE ERRO
----------------------------------------------------------------------------------------------------
CONVERSÃO DE MOEDAS (CONVERTER PRIMEIRAMENTE PARA MOEDA LOCAL)
----------------------------------------------------------------------------------------------------
Palavras Chave:
CONVERSÃO DE MOEDAS LOCAL DRAWBACK LI RECEBIMENTO VINCULAÇÃO DE PEDIDOS
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI017F02
REPS /PWS/MZYCI020F02
REPS /PWS/MZYCI068F01
REPS /PWS/MZYCI068X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017F02
...
FORM converter_moeda USING p_devlme
p_deme
p_parame
p_data
CHANGING p_paravlme.
DATA: v_ctmoeda LIKE tcurr-kurst VALUE 'G',
v_devlme LIKE bsak-wrbtr,
v_paravlme LIKE bsak-wrbtr.
v_devlme = p_devlme .
* >> Início da inclusão: FORM CONVERTER_MOEDA
IF p_deme NE p_parame.
* << Fim da inclusão
IF p_devlme NE 0.
IF NOT /pws/zycit321-kurst IS INITIAL.
v_ctmoeda = /pws/zycit321-kurst.
ENDIF.
CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'
EXPORTING
i_montante = v_devlme
i_demoeda = p_deme
* >> Início da exclusão: FORM CONVERTER_MOEDA
i_paramoeda = p_parame
* << Fim da exclusão
* >> Início da inclusão: FORM CONVERTER_MOEDA
i_paramoeda = /pws/zycbt007-waersb
* << Fim da inclusão
i_ctmoeda = v_ctmoeda
i_dtbase = p_data
IMPORTING
e_montante = v_paravlme
EXCEPTIONS
i_demoeda_nao_encontrado = 1
i_paramoeda_nao_encontrado = 2
fator_nao_encontrado = 3
i_ctmoeda_nao_encontrado = 4
i_dtbase_nao_encontrada = 5
taxa_nao_encontrada = 6
i_montante_nao_encontrado = 7.
* >> Início da inclusão: FORM CONVERTER_MOEDA
IF sy-subrc EQ 0.
CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'
EXPORTING
i_montante = v_paravlme
i_demoeda = /pws/zycbt007-waersb
i_paramoeda = /pws/zycbt007-waersa
i_ctmoeda = v_ctmoeda
i_dtbase = p_data
IMPORTING
e_montante = v_paravlme
EXCEPTIONS
i_demoeda_nao_encontrado = 1
i_paramoeda_nao_encontrado = 2
fator_nao_encontrado = 3
i_ctmoeda_nao_encontrado = 4
i_dtbase_nao_encontrada = 5
taxa_nao_encontrada = 6
i_montante_nao_encontrado = 7.
ENDIF.
* << Fim da inclusão
p_paravlme = v_paravlme.
* >> Início da inclusão: FORM CONVERTER_MOEDA
ENDIF.
ELSE.
p_paravlme = p_devlme.
* << Fim da inclusão
ENDIF.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020F02
...
FORM converter_moeda USING p_devlme
p_deme
p_parame
p_data
CHANGING p_paravlme.
DATA: v_ctmoeda LIKE tcurr-kurst VALUE 'G',
v_devlme LIKE bsak-wrbtr,
v_paravlme LIKE bsak-wrbtr.
v_devlme = p_devlme .
* >> Início da inclusão: FORM CONVERTER_MOEDA
IF p_deme NE p_parame.
* << Fim da inclusão
IF p_devlme NE 0.
IF NOT /pws/zycit321-kurst IS INITIAL.
v_ctmoeda = /pws/zycit321-kurst.
ENDIF.
CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'
EXPORTING
i_montante = v_devlme
i_demoeda = p_deme
* >> Início da exclusão: FORM CONVERTER_MOEDA
i_paramoeda = p_parame
* << Fim da exclusão
* >> Início da inclusão: FORM CONVERTER_MOEDA
i_paramoeda = /pws/zycbt007-waersb
* << Fim da inclusão
i_ctmoeda = v_ctmoeda
i_dtbase = p_data
IMPORTING
e_montante = v_paravlme
EXCEPTIONS
i_demoeda_nao_encontrado = 1
i_paramoeda_nao_encontrado = 2
fator_nao_encontrado = 3
i_ctmoeda_nao_encontrado = 4
i_dtbase_nao_encontrada = 5
taxa_nao_encontrada = 6
i_montante_nao_encontrado = 7.
* >> Início da inclusão: FORM CONVERTER_MOEDA
IF sy-subrc EQ 0.
CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'
EXPORTING
i_montante = v_paravlme
i_demoeda = /pws/zycbt007-waersb
i_paramoeda = /pws/zycbt007-waersa
i_ctmoeda = v_ctmoeda
i_dtbase = p_data
IMPORTING
e_montante = v_paravlme
EXCEPTIONS
i_demoeda_nao_encontrado = 1
i_paramoeda_nao_encontrado = 2
fator_nao_encontrado = 3
i_ctmoeda_nao_encontrado = 4
i_dtbase_nao_encontrada = 5
taxa_nao_encontrada = 6
i_montante_nao_encontrado = 7.
ENDIF.
* << Fim da inclusão
p_paravlme = v_paravlme.
* >> Início da inclusão: FORM CONVERTER_MOEDA
ENDIF.
ELSE.
p_paravlme = p_devlme.
* << Fim da inclusão
ENDIF.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI068F01
...
comm_head_i = wa_komk
general_read = 'X'
TABLES
tkomv = itab_komv
EXCEPTIONS
OTHERS = 1.
ENDIF.
IF t001-bukrs NE itab_ekko-bukrs.
SELECT SINGLE * FROM t001 INTO t001
WHERE bukrs EQ itab_ekko-bukrs.
* >> Início da inclusão: FORM MONTA_376_APR
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ itab_ekko-bukrs.
* << Fim da inclusão
ENDIF.
CLEAR v_ebelp.
CONCATENATE '0' itab_ekpo-ebelp INTO v_ebelp.
READ TABLE itab_zycit030 WITH KEY bukrs = itab_ekko-bukrs.
IF sy-subrc NE 0.
CLEAR itab_ekko-bukrs.
ENDIF.
LOOP AT itab_zycit030 WHERE land1 EQ t001-land1
AND bukrs EQ itab_ekko-bukrs.
IF itab_ekko-bstyp = 'L'.
...
...
kschl = itab_zycit030-kschl.
CLEAR: v_vl_temp, v_vl_temp2.
PERFORM retorna_decimais USING itab_ekko-waers
CHANGING itab_konp-kbetr.
IF NOT itab_konp-kpein IS INITIAL.
v_vl_temp2 = itab_ekpo-ktmng *
( itab_konp-kbetr / itab_konp-kpein ).
ENDIF.
PERFORM converter_moeda USING v_vl_temp2
itab_ekko-waers
* >> Início da exclusão: FORM MONTA_376_APR
'USD'
* << Fim da exclusão
* >> Início da inclusão: FORM MONTA_376_APR
/pws/zycbt007-waersa
* << Fim da inclusão
itab_ekpo-aedat
CHANGING v_vl_temp.
IF itab_zycit030-fator EQ '+'.
itab_zycit376_t-vlfob = itab_zycit376_t-vlfob + v_vl_temp.
ELSE.
itab_zycit376_t-vlfob = itab_zycit376_t-vlfob - v_vl_temp.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT itab_komv
WHERE kposn EQ v_ebelp
AND kschl EQ itab_zycit030-kschl
AND knumv EQ itab_ekko-knumv.
CLEAR: v_vl_temp.
PERFORM retorna_decimais USING itab_ekko-waers
CHANGING itab_komv-kwert.
PERFORM converter_moeda USING itab_komv-kwert
itab_ekko-waers
* >> Início da exclusão: FORM MONTA_376_APR
'USD'
* << Fim da exclusão
* >> Início da inclusão: FORM MONTA_376_APR
/pws/zycbt007-waersa
* << Fim da inclusão
itab_ekpo-aedat
CHANGING v_vl_temp.
IF itab_zycit030-fator EQ '+'.
itab_zycit376_t-vlfob = itab_zycit376_t-vlfob + v_vl_temp.
ELSE.
itab_zycit376_t-vlfob = itab_zycit376_t-vlfob - v_vl_temp.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
...
...
FORM converter_moeda USING p_devlme
p_deme
p_parame
p_data
CHANGING p_paravlme.
DATA: v_ctmoeda LIKE tcurr-kurst VALUE 'G',
v_devlme LIKE bsak-wrbtr,
v_paravlme LIKE bsak-wrbtr.
v_devlme = p_devlme .
* >> Início da inclusão: FORM CONVERTER_MOEDA
IF p_deme NE p_parame.
* << Fim da inclusão
IF p_devlme NE 0.
IF NOT /pws/zycit321-kurst IS INITIAL.
v_ctmoeda = /pws/zycit321-kurst.
ENDIF.
CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'
EXPORTING
i_montante = v_devlme
i_demoeda = p_deme
* >> Início da exclusão: FORM CONVERTER_MOEDA
i_paramoeda = p_parame
* << Fim da exclusão
* >> Início da inclusão: FORM CONVERTER_MOEDA
i_paramoeda = /pws/zycbt007-waersb
* << Fim da inclusão
i_ctmoeda = v_ctmoeda
i_dtbase = p_data
IMPORTING
e_montante = v_paravlme
EXCEPTIONS
i_demoeda_nao_encontrado = 1
i_paramoeda_nao_encontrado = 2
fator_nao_encontrado = 3
i_ctmoeda_nao_encontrado = 4
i_dtbase_nao_encontrada = 5
taxa_nao_encontrada = 6
i_montante_nao_encontrado = 7.
* >> Início da inclusão: FORM CONVERTER_MOEDA
IF sy-subrc EQ 0.
CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'
EXPORTING
i_montante = v_paravlme
i_demoeda = /pws/zycbt007-waersb
i_paramoeda = /pws/zycbt007-waersa
i_ctmoeda = v_ctmoeda
i_dtbase = p_data
IMPORTING
e_montante = v_paravlme
EXCEPTIONS
i_demoeda_nao_encontrado = 1
i_paramoeda_nao_encontrado = 2
fator_nao_encontrado = 3
i_ctmoeda_nao_encontrado = 4
i_dtbase_nao_encontrada = 5
taxa_nao_encontrada = 6
i_montante_nao_encontrado = 7.
ENDIF.
* << Fim da inclusão
p_paravlme = v_paravlme.
IF sy-subrc NE 0.
itab_msg-ebeln = itab_ekpo-ebeln.
itab_msg-ebelp = itab_ekpo-ebelp.
CONCATENATE text-027 p_deme text-028
INTO itab_msg-msg SEPARATED BY space.
APPEND itab_msg.
ENDIF.
* >> Início da inclusão: FORM CONVERTER_MOEDA
ENDIF.
ELSE.
p_paravlme = p_devlme.
* << Fim da inclusão
ENDIF.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI068X01
...
lfa1 ,
t001 ,
tcurx ,
/pws/zycit244,
/pws/zycie244,
/pws/zycit245,
/pws/zycie245,
/pws/zycit100,
/pws/zycie376,
/pws/zycit321,
* >> Início da exclusão:
/pws/zycie100.
* << Fim da exclusão
* >> Início da inclusão:
/pws/zycie100,
/pws/zycbt007.
* << Fim da inclusão
CONTROLS: tc_ped1 TYPE TABLEVIEW USING SCREEN '0100',
tc_atos TYPE TABLEVIEW USING SCREEN '0200',
tc_des TYPE TABLEVIEW USING SCREEN '0300',
tc_msg_erro TYPE TABLEVIEW USING SCREEN '0400'.
DATA: BEGIN OF COMMON PART a.
...