Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 27/08/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 13:47:48
Descrição da Nota: AJUSTE PARA PERMITIR A ALTERAÇÃO DA TAXA DE CONVERSÃO DAS MOEDAS
Sintoma
A ANA não mantem alterações realizadas na taxa de conversão de moedas.
Solução
Buscar a taxa da moeda apenas quando a data da taxa é alterada.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04523 Data: 27/08/2007 Hora: 08:47:53
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04523
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00010
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04324 - 00001 - 7.0 - 00002 - CORREÇÃO DO CALCULO DOS VALORES DE FRETE E MERCADORIA NA ANA
----------------------------------------------------------------------------------------------------
AJUSTE PARA PERMITIR A ALTERAÇÃO DA TAXA DE CONVERSÃO DAS MOEDAS
----------------------------------------------------------------------------------------------------
Palavras Chave:
ANA - TAXAO - MOEDA - ALTERAÇÃO
/PWS/SAPMZYCI059
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI059F01
REPS /PWS/MZYCI059F03
REPS /PWS/MZYCI059TOP
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059F01
...
/pws/zycie085-vlipi, /pws/zycie085-vlicms.
CLEAR: /pws/zycie085-vlfob, s_fbvr, s_frvr_aux, s_frvr_aux1,
s_stvr_aux, s_stvr_aux1,
v_tntgew, v_tval, v_tvaln, v_tval2, v_tval3,
v_tmle, v_tdif, v_tdif_aux,
v_tsegfat, v_tfrefat, v_rsegfat, v_rfrefat,
s_wiicalc, s_wiiredu, s_wiidevi, s_wiireco,
s_wipicalc, s_wipiredu, s_wipidevi, s_wipireco,
s_wicdevi, s_wicreco, s_waddevi, s_wadreco, v_aux_rateio,
v_tot_plan.
* >> Início da exclusão: FORM CALC_ITAB
CLEAR: v_alter .
IF v_mudou NE 'X'.
v_alter = 'X'.
ENDIF.
v_mudou = 'X'.
* << Fim da exclusão
PERFORM calc_init USING 'I'.
v_bltofat = /pws/zycie093-prepaid +
/pws/zycie093-collect.
v_sgtofat = /pws/zycie085-vlseg.
IF /pws/zycie085-mdadicao = 'S'.
CASE s_inco1_ci.
WHEN 'C&F'.
IF NOT /pws/zycie085-dttax IS INITIAL.
PERFORM calc_conv_frete CHANGING v_bltofat.
v_tdif = v_tfrefat - v_bltofat.
...
...
IF v_tval2 LT '0'.
IF v_msgfre NE 'N'.
MESSAGE i015 WITH text-119 text-125.
LEAVE PROGRAM.
ELSE.
MESSAGE i015 WITH text-021 s_msg1 text-119 text-125.
LEAVE PROGRAM.
ENDIF.
ENDIF.
ELSE.
* >> Início da inclusão: FORM CALC_ITAB
v_rateio_t = v_tval.
* << Fim da inclusão
/pws/zycie085-vlfobr = s_fbvr = v_tmle.
CLEAR: v_tval2.
ENDIF.
CLEAR: v_desp_acr, v_desp_brl.
LOOP AT itab_zycit049 WHERE tipo = 'A' AND
vldp > 0.
IF itab_zycit049-waers = /pws/zycbt007-waersb.
s_fbvr = s_fbvr + itab_zycit049-vldp.
v_desp_brl = v_desp_brl + itab_zycit049-vldp.
ELSE.
...
...
itab_it-vlfre_me = v_tot_fre.
itab_it-vlseg_me = v_tot_seg.
itab_it-vlfre = t_ivfre.
itab_it-vlseg = t_ivseg.
itab_it-vldiffob = t_vldif.
itab_it-frn = ( /pws/zycie003-ntgew / v_tntgew ) * v_dif_frn.
MODIFY itab_it INDEX v_idx TRANSPORTING
vlseg vlfre vlfob baseii vlii baseipi vlipi baseicms vlicms
vlfre_me vlseg_me vldiffob frn vlmerc_ad.
ENDLOOP.
* >> Início da exclusão: FORM CALC_ITAB
IF v_alter = 'X'.
* << Fim da exclusão
CLEAR v_mudou.
* >> Início da exclusão: FORM CALC_ITAB
ENDIF.
* << Fim da exclusão
/pws/zycie085-vlfob = v_tval2.
/pws/zycie085-vlfobr = s_fbvr.
IF s_inco1_ci EQ 'FOB'.
/pws/zycie085-vlfre = v_bltofat.
ENDIF.
/pws/zycie085-waersfre = /pws/zycie093-waersfre.
...
...
ENDIF.
ELSE.
CONCATENATE p_data+6(2) '/' p_data+4(2) '/' p_data+0(4)
INTO v_msgd.
CONCATENATE p_waers text-022 p_data INTO s_msg1 SEPARATED BY space.
MESSAGE s015 WITH text-021 s_msg1.
ENDIF.
ENDIF.
ENDFORM.
FORM refresh_all.
* >> Início da exclusão: FORM REFRESH_ALL
v_mudou = 'X'.
* << Fim da exclusão
PERFORM conversao_taxas.
* >> Início da inclusão: FORM REFRESH_ALL
IF /pws/zycie085-ukursfob IS INITIAL OR
/pws/zycie085-ukursfre IS INITIAL OR
/pws/zycie085-ukursseg IS INITIAL.
MESSAGE i015 WITH text-220.
exit.
ENDIF.
* << Fim da inclusão
PERFORM calc_itab.
PERFORM carrega_tributos.
PERFORM propoe_banco.
PERFORM recarrega_alv.
* >> Início da exclusão: FORM REFRESH_ALL
CLEAR: v_mudou.
* << Fim da exclusão
ENDFORM.
FORM update_item.
CLEAR: itab_zycit003.
REFRESH: itab_zycit003.
IF NOT itab_it[] IS INITIAL.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003
FOR ALL ENTRIES IN itab_it
WHERE nrseq = itab_it-nrseq AND
ebeln = itab_it-ebeln AND
ebelp = itab_it-ebelp.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059F03
...
IF encont = 0.
MESSAGE w061 WITH text-111.
ENDIF.
ENDFORM.
FORM calc_conv_frete CHANGING p_val.
p_val = /pws/zycie093-prepaid + /pws/zycie093-collect -
/pws/zycie093-ternacion.
PERFORM trata_decimais USING /pws/zycie093-waersfre
CHANGING p_val.
IF /pws/zycie093-waersfre NE /pws/zycie085-waersfob.
* >> Início da inclusão: FORM CALC_CONV_FRETE
IF v_mudou NE 'X'.
IF NOT /pws/zycie085-ukursfob IS INITIAL.
p_val = ( p_val * /pws/zycie085-ukursfre ) /
/pws/zycie085-ukursfob.
ELSE.
CLEAR: p_val.
ENDIF.
ELSE.
* << Fim da inclusão
PERFORM: calc_conv_moeda: USING /pws/zycie093-waersfre
/pws/zycie085-waersfob
CHANGING p_val.
* >> Início da inclusão: FORM CALC_CONV_FRETE
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFORM.
FORM calc_conv_moeda USING p_waersfrom
p_waersto
...
...
ENDIF.
IF NOT v_taxa IS INITIAL AND NOT p_value IS INITIAL.
p_value = p_value / v_taxa.
ENDIF.
ENDIF.
ENDFORM.
FORM calc_conv_seg CHANGING p_val.
PERFORM trata_decimais USING /pws/zycie085-waersseg
CHANGING p_val.
IF /pws/zycie085-waersseg NE /pws/zycie085-waersfob.
* >> Início da inclusão: FORM CALC_CONV_SEG
IF v_mudou NE 'X'.
IF NOT /pws/zycie085-ukursfob IS INITIAL.
p_val = ( p_val * /pws/zycie085-ukursseg ) /
/pws/zycie085-ukursfob.
ELSE.
CLEAR: p_val.
ENDIF.
ELSE.
* << Fim da inclusão
PERFORM: calc_conv_moeda: USING /pws/zycie085-waersseg
/pws/zycie085-waersfob
CHANGING p_val.
ENDIF.
* >> Início da inclusão: FORM CALC_CONV_SEG
ENDIF.
* << Fim da inclusão
ENDFORM.
FORM lock_record.
CHECK sy-tcode = '/PWS/ZYCI059_A' AND
...
...
s_frvr_d2 = s_frvr.
ENDFORM.
FORM load_sevl2.
IF NOT v_usd IS INITIAL.
s_stvr = s_stvr / v_usd.
ENDIF.
s_stvr_d2 = s_stvr.
ENDFORM.
FORM conversao_taxas.
DATA: v_altera TYPE c.
* >> Início da inclusão: FORM CONVERSAO_TAXAS
IF /pws/zycie085-ukursfob IS INITIAL AND
v_mudou IS INITIAL.
v_mudou = v_altera = 'X'.
ENDIF.
* << Fim da inclusão
PERFORM: taxa_converte USING /pws/zycie085-waersfob
/pws/zycie085-dttax
CHANGING /pws/zycie085-ukursfob,
load_fbvl.
* >> Início da inclusão: FORM CONVERSAO_TAXAS
IF v_altera EQ 'X'.
CLEAR: v_mudou, v_altera.
ENDIF.
* << Fim da inclusão
PERFORM: taxa_converte USING /pws/zycbt007-waersa
...
...
load_fbvl2.
LOOP AT itab_it WHERE NOT waersbem IS initial AND
waersbem NE /pws/zycbt007-waersb.
v_idx = sy-tabix.
PERFORM: taxa_converte USING itab_it-waersbem
/pws/zycie085-dttax
CHANGING itab_it-dttaxbem.
MODIFY itab_it INDEX v_idx TRANSPORTING dttaxbem.
ENDLOOP.
IF NOT /pws/zycie093-waersfre IS INITIAL.
* >> Início da inclusão: FORM CONVERSAO_TAXAS
IF /pws/zycie085-ukursfre IS INITIAL AND
v_mudou IS INITIAL.
v_mudou = v_altera = 'X'.
ENDIF.
* << Fim da inclusão
PERFORM: taxa_converte USING /pws/zycie093-waersfre
/pws/zycie085-dttax
CHANGING /pws/zycie085-ukursfre,
load_coll.
* >> Início da inclusão: FORM CONVERSAO_TAXAS
IF v_altera EQ 'X'.
CLEAR: v_mudou, v_altera.
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FORM CONVERSAO_TAXAS
CLEAR: v_altera.
IF v_mudou NE 'X'.
v_altera = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM CONVERSAO_TAXAS
IF NOT /pws/zycie085-waersseg IS INITIAL.
IF /pws/zycie085-ukursseg IS INITIAL AND
v_mudou IS INITIAL.
v_mudou = v_altera = 'X'.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FORM CONVERSAO_TAXAS
v_mudou = 'X'.
IF NOT /pws/zycie085-waersseg IS INITIAL.
* << Fim da exclusão
PERFORM: taxa_converte USING /pws/zycie085-waersseg
/pws/zycie085-dttax
CHANGING /pws/zycie085-ukursseg,
load_sevl.
* >> Início da inclusão: FORM CONVERSAO_TAXAS
IF v_altera EQ 'X'.
CLEAR: v_mudou, v_altera.
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FORM CONVERSAO_TAXAS
IF v_altera = 'X'.
* << Fim da exclusão
CLEAR v_mudou.
* >> Início da exclusão: FORM CONVERSAO_TAXAS
ENDIF.
* << Fim da exclusão
ENDFORM.
FORM atualiza_zycit403.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059TOP
...
v_txini TYPE c,
v_msgfre TYPE c,
v_region LIKE adrc-region,
v_canal LIKE /pws/zycit397-canal,
v_totalusdp TYPE p DECIMALS 2,
v_totalusdg TYPE p DECIMALS 2,
v_totalusda TYPE p DECIMALS 2,
v_totalusdtp TYPE p DECIMALS 2,
v_totalusdtg TYPE p DECIMALS 2,
v_totalusdta TYPE p DECIMALS 2,
* >> Início da exclusão:
v_mudou VALUE 'X',
* << Fim da exclusão
* >> Início da inclusão:
v_mudou ,
* << Fim da inclusão
v_valtot LIKE /pws/zycie085-vlfob,
v_ate TYPE i ,
v_usd LIKE /pws/zycie085-ukursfob.
DATA wa_zycit403 LIKE /pws/zycit403.
DATA v_index LIKE sy-tabix.
DATA: s_frvr_d2 LIKE /pws/zycie006-vlmerc,
s_stvr_d2 LIKE /pws/zycie006-vlmerc,
v_tmle_d2 LIKE /pws/zycie006-vlmerc,
t_vmle_d2 LIKE /pws/zycie006-vlmerc,
v_tot_fre LIKE t_icms,
...
...
v_xblnr LIKE bkpf-xblnr,
v_bktxt LIKE bkpf-bktxt,
v_f05_ok,
v_blart LIKE /pws/zycbt011-blart,
v_belnrf05 LIKE itab_zycbt032-belnr,
v_desp_acr LIKE /pws/zycit049-vldp,
v_desp_brl LIKE /pws/zycit049-vldp,
v_evento LIKE /pws/zyglt321-codeven,
v_matuse LIKE /pws/zycbe035-matuse,
v_salvou TYPE c.
* >> Início da inclusão:
Data: v_tax_temp type /pws/zycit085-ukursfob.
* << Fim da inclusão