Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DA
Data/Hora da Publicação: 17/04/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 14:40:57
Descrição da Nota: TAXA DE CONVERSÃO PARA MOEDA LOCAL NA DI/DA
Sintoma
Ocorre dump no draft da DI do embarque de RECOF regime 16. E o frete está sendo levado
incorretamente.
Não estava levando os dados do B/L do embarque de regime 04 para o B/L do embarque do regime 16.
ao entrar no B/L para visualização e dar um back, some o número do B/L da tela da DI.
Solução
Ajustar o programa para verificar se a moeda a ser convertida é diferente da moeda local, caso seja
igual move o valor um para a taxa de conversão.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03477 Data: 17/04/2007 Hora: 10:59:19
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03477
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00164
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01357 - 00001 - 6.0 - 00023 - ERRO NA PASTA PAGAMENTO E VALOR DE FRETE DE DI DE NACIONALIZAÇÃO
01757 - 00002 - 6.0 - 00024 - DI COM REGIME 16 CALCULA VALORES ERRADOS AO CRIAR.
----------------------------------------------------------------------------------------------------
TAXA DE CONVERSÃO PARA MOEDA LOCAL NA DI/DA
----------------------------------------------------------------------------------------------------
Palavras Chave:
TAXA - CONVERSÃO - MOEDA - LOCAL - DA - DI
/PWS/SAPMZYCI023 - /PWS/SAPMZYCI070 - /PWS/ZYCIR331 - /PWS/ZYCIR332
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI023F01
REPS /PWS/MZYCI070F01
REPS /PWS/MZYCI001F01
REPS /PWS/ZYCIR331
REPS /PWS/ZYCIR332
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F01
...
WRITE v_tot_ntgew TO v_tot_peso UNIT itab_zycit003-gewei.
MESSAGE ID '/PWS/ZYCIM' TYPE /pws/zyglt217-msgtp NUMBER '128'
WITH v_tot_peso.
ENDIF.
ENDIF.
IF /pws/zycie001-regime = '16' AND okcode = 'DI'
AND NOT itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit455 INTO TABLE itab_zycit455_aux
WHERE nrseq = /pws/zycie001-nrseq.
SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443_aux2
* >> Início da exclusão: FORM GRAVA_TABELAS
FOR ALL ENTRIES IN itab_zycit455_aux
WHERE nrseqda = itab_zycit455_aux-nrseqda AND
ebeln = itab_zycit455_aux-ebeln AND
ebelp = itab_zycit455_aux-ebelp.
* << Fim da exclusão
* >> Início da inclusão: FORM GRAVA_TABELAS
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseqda = itab_zycit003-nrseqda AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp.
* << Fim da inclusão
SELECT SINGLE * FROM /pws/zycit094
WHERE nrseq = /pws/zycie001-nrseq.
IF sy-subrc NE 0.
/pws/zycit093-bukrs = /pws/zycie093-bukrs = /pws/zycie001-bukrs.
PERFORM busca_sequencial_bl.
INSERT INTO /pws/zycit093 VALUES /pws/zycie093.
WHILE sy-subrc NE 0.
PERFORM busca_sequencial_bl.
INSERT INTO /pws/zycit093 VALUES /pws/zycie093.
ENDWHILE.
/pws/zycit093 = /pws/zycie093.
/pws/zycit094-nrseq = /pws/zycie001-nrseq.
/pws/zycit094-nrseqce = /pws/zycit093-nrseqce.
INSERT INTO /pws/zycit094 VALUES /pws/zycit094.
ELSE.
SELECT SINGLE * FROM /pws/zycit093
WHERE nrseqce = /pws/zycit094-nrseqce.
ENDIF.
* >> Início da inclusão: FORM GRAVA_TABELAS
READ TABLE itab_zycit443_aux2 INDEX 1.
SELECT SINGLE *
FROM /pws/zycit442 WHERE nrseqda = itab_zycit443_aux2-nrseqda.
* << Fim da inclusão
* >> Início da exclusão: FORM GRAVA_TABELAS
CLEAR: /pws/zycit093-collect, /pws/zycit093-brgew.
* << Fim da exclusão
* >> Início da inclusão: FORM GRAVA_TABELAS
MOVE-CORRESPONDING /pws/zycit442 TO /pws/zycit093.
CLEAR: /pws/zycit093-collect, /pws/zycit093-prepaid,
/pws/zycit093-ternacion, /pws/zycit093-brgew.
* << Fim da inclusão
LOOP AT itab_zycit443_aux2.
READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycit443_aux2-ebeln
ebelp = itab_zycit443_aux2-ebelp.
* >> Início da inclusão: FORM GRAVA_TABELAS
IF /pws/zycit442-prepaid IS INITIAL.
IF /pws/zycit093-waersfre EQ /pws/zycbt007-waersb.
/pws/zycit093-collect = /pws/zycit093-collect +
( itab_zycit443_aux2-vlfre / itab_zycit443_aux2-qtd_iten
* itab_zycit003-qtd_iten ) .
ELSEIF NOT /pws/zycit442-ukursfre IS INITIAL.
* << Fim da inclusão
/pws/zycit093-collect = /pws/zycit093-collect +
* >> Início da inclusão: FORM GRAVA_TABELAS
( ( itab_zycit443_aux2-vlfre / itab_zycit443_aux2-qtd_iten
* itab_zycit003-qtd_iten ) / /pws/zycit442-ukursfre ) .
ENDIF.
ELSE.
IF /pws/zycit093-waersfre EQ /pws/zycbt007-waersb.
/pws/zycit093-prepaid = /pws/zycit093-prepaid +
* << Fim da inclusão
( itab_zycit443_aux2-vlfre / itab_zycit443_aux2-qtd_iten
* >> Início da exclusão: FORM GRAVA_TABELAS
* itab_zycit003-qtd_iten ).
* << Fim da exclusão
* >> Início da inclusão: FORM GRAVA_TABELAS
* itab_zycit003-qtd_iten ) .
ELSEIF NOT /pws/zycit442-ukursfre IS INITIAL.
/pws/zycit093-prepaid = /pws/zycit093-prepaid +
( ( itab_zycit443_aux2-vlfre / itab_zycit443_aux2-qtd_iten
* itab_zycit003-qtd_iten ) / /pws/zycit442-ukursfre ) .
ENDIF.
ENDIF.
* << Fim da inclusão
/pws/zycit093-brgew = /pws/zycit093-brgew + itab_zycit003-ntgew.
* >> Início da exclusão: FORM GRAVA_TABELAS
/pws/zycit093-waersfre = 'BRL'.
* << Fim da exclusão
ENDLOOP.
MODIFY /pws/zycit093.
LOOP AT itab_zycit003.
READ TABLE itab_zycit443_aux2 WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
itab_zycit003-vlreal = itab_zycit443_aux2-vlreal.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
MODIFY itab_it INDEX v_ip.
ENDIF.
DELETE itab_zycit115 WHERE
nrseq = wa_it-nrseq AND
ebeln = wa_it-ebeln AND
ebelp = wa_it-ebelp.
LOOP AT itab_zycit115b.
MOVE itab_zycit115b TO itab_zycit115.
APPEND itab_zycit115.
ENDLOOP.
* >> Início da inclusão: FORM SAVE_DATA_ITEM
CONCATENATE /pws/zycie085-nrseqdi
itab_it-nrseq
itab_it-ebeln
itab_it-ebelp
INTO v_txtki.
xtheadi-tdobject = '/PWS/CIDDI'.
xtheadi-tdname = v_txtki.
xtheadi-tdid = 'ZDSI'.
xtheadi-tdspras = sy-langu.
xtheadi-tdlinesize = 072.
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
header = xtheadi
insert = 'X'
savemode_direct = 'X'
owner_specified = 'X'
TABLES
lines = rtexti
EXCEPTIONS
id = 1
language = 2
name = 3
object = 4
OTHERS = 5.
IF sy-subrc NE 0.
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
header = xtheadi
insert = ' '
savemode_direct = 'X'
owner_specified = 'X'
TABLES
lines = rtexti
EXCEPTIONS
id = 1
language = 2
name = 3
object = 4
OTHERS = 5.
ENDIF.
* << Fim da inclusão
ENDFORM.
FORM load_ifre USING p_tipo.
select single qtd_iten from /pws/zycit003 into /pws/zycie003-qtd_iten
where nrseq eq /pws/zycie003-nrseq
and ebeln eq /pws/zycie003-ebeln
and ebelp eq /pws/zycie003-ebelp.
IF NOT /pws/zycie003-qtd_itend IS INITIAL.
t_vmle3 = t_vmle_d2 = t_vmle = /pws/zycie003-vlreal *
/pws/zycie003-qtd_itend.
v_it_plan = /pws/zycie003-netpr * /pws/zycie003-qtd_itend.
...
...
endloop.
perform load_sevl.
LOOP AT itab_it.
v_idx = sy-tabix.
IF v_idx EQ v_ipt AND v_ipt NE 1.
itab_it-vlfob = v_tval - v_aux_rateio.
ELSE.
IF s_inco1_ci NE 'FOB' AND itab_it-vlfre_fat IS INITIAL.
IF NOT /pws/zycie085-ukursfre IS INITIAL.
if s_inco1_ci = 'C&F'.
* >> Início da inclusão: FORM CALC_ITAB
if not v_tval3 is initial.
* << Fim da inclusão
itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )
/ v_tval3 ) * v_tval.
* >> Início da inclusão: FORM CALC_ITAB
endif.
* << Fim da inclusão
else.
* >> Início da inclusão: FORM CALC_ITAB
if not v_tval3 is initial or
not /pws/zycie085-ukursseg is initial.
* << Fim da inclusão
itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )
/ v_tval3 ) * v_tval -
( itab_it-vlseg / /pws/zycie085-ukursseg ).
* >> Início da inclusão: FORM CALC_ITAB
endif.
* << Fim da inclusão
endif.
ENDIF.
ELSE.
itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
FORM load_bl.
IF /pws/zycie085-nrbl IS INITIAL.
CLEAR: itab_it, itab_ita, wa_it, wa_ad, /pws/zycie100a,
" "v_calc,
t_blid, v_tmle, v_tntgew.
REFRESH: itab_it, itab_ita.
ELSE.
* >> Início da inclusão: FORM LOAD_BL
if v_difora eq 'X'.
* << Fim da inclusão
PERFORM verifica_bl CHANGING v_bl1.
IF v_bl1 = '1'.
MESSAGE i015 WITH text-237.
CLEAR /pws/zycie085-nrbl.
EXIT.
ENDIF.
* >> Início da inclusão: FORM LOAD_BL
endif.
* << Fim da inclusão
PERFORM: verify_bl CHANGING v_bl.
IF v_bl = '1'.
PERFORM: load_blid.
MOVE-CORRESPONDING /pws/zycie085 TO wa_zycit085.
MOVE-CORRESPONDING /pws/zycie093 TO /pws/zycie085.
/pws/zycie085-land = /pws/zycie093-paispae.
/pws/zycie085-identify = wa_zycit085-identify.
/pws/zycie085-dtuserc = wa_zycit085-dtuserc.
/pws/zycie085-dtusera = wa_zycit085-dtusera.
/pws/zycie085-usernamec = wa_zycit085-usernamec.
/pws/zycie085-usernamea = wa_zycit085-usernamea.
/pws/zycie085-tpagente = '1'.
IF /pws/zycie093-tpdoccheg EQ '1' OR /pws/zycie093-tpdoccheg EQ
...
REFRESH itab_zycit100_temp.
LOOP AT itab_it.
MOVE-CORRESPONDING itab_it TO itab_zycit100_temp.
APPEND itab_zycit100_temp.
READ TABLE itab_inco WITH KEY ebeln = itab_it-ebeln.
IF sy-subrc EQ 0.
itab_it-inco_item = itab_inco-inco1.
ENDIF.
MODIFY itab_it.
ENDLOOP.
* >> Início da exclusão: FORM FILL_ITABIT
IF itab_zycit001-regime EQ '16'.
/pws/zycie085-ukursfre = '1'.
ENDIF.
* << Fim da exclusão
ENDFORM.
...
...
FORM taxa_converte USING p_waers
p_data
CHANGING p_taxa.
CLEAR: p_taxa, v_msgfre.
DATA: v_moeda LIKE tcurc-/pws/codmo,
v_msgd(10),
v_linhas TYPE i.
* >> Início da inclusão: FORM TAXA_CONVERTE
IF p_waers EQ wa_zycbt007-waersb.
p_taxa = 1.
EXIT.
ENDIF.
* << Fim da inclusão
SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE
waers = p_waers.
IF sy-subrc EQ 0.
REFRESH itab_zycit174.
SELECT * FROM /pws/zycit174 INTO TABLE itab_zycit174 WHERE
codconver = v_moeda AND
vigen_inicio <= p_data AND
vigen_fim >= p_data AND
land1 = t001-land1.
DESCRIBE TABLE itab_zycit174 LINES v_linhas.
...
...
PERFORM: taxa_converte USING itab_it-waersbem
/pws/zycie085-dttax
CHANGING itab_it-dttaxbem.
MODIFY itab_it INDEX v_idx TRANSPORTING dttaxbem.
ENDLOOP.
ENDIF.
IF wa_zycbt007 IS INITIAL.
SELECT SINGLE * FROM /pws/zycbt007 INTO wa_zycbt007
WHERE bukrs EQ /pws/zycie085-bukrs.
ENDIF.
* >> Início da exclusão: FORM REFRESH_ALL
IF NOT /pws/zycie093-waersfre IS INITIAL
AND NOT itab_zycit001-regime EQ '16'.
* << Fim da exclusão
* >> Início da inclusão: FORM REFRESH_ALL
IF NOT /pws/zycie093-waersfre IS INITIAL.
* << Fim da inclusão
PERFORM: taxa_converte USING /pws/zycie093-waersfre
/pws/zycie085-dttax
CHANGING /pws/zycie085-ukursfre,
load_coll.
ENDIF.
IF NOT /pws/zycie085-waersseg IS INITIAL.
PERFORM: taxa_converte USING /pws/zycie085-waersseg
/pws/zycie085-dttax
CHANGING /pws/zycie085-ukursseg,
load_sevl.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI070F01
...
ENDIF.
ENDFORM.
FORM taxa_converte
USING value(p_waers)
value(p_data)
CHANGING value(p_taxa).
CLEAR: p_taxa, v_msgfre.
DATA: v_moeda LIKE tcurc-/pws/codmo,
v_msgd(10),
v_linhas TYPE i.
* >> Início da inclusão: FORM TAXA_CONVERTE
IF p_waers EQ wa_zycbt007-waersb.
p_taxa = 1.
exit.
ENDIF.
* << Fim da inclusão
SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE
waers = p_waers.
IF sy-subrc EQ 0.
REFRESH itab_zycit174.
SELECT * FROM /pws/zycit174 INTO TABLE itab_zycit174 WHERE
codconver = v_moeda AND
vigen_inicio <= p_data AND
vigen_fim >= p_data AND
land1 = t001-land1.
DESCRIBE TABLE itab_zycit174 LINES v_linhas.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR331
...
v_qtdtot = v_qtdtot + itab_zycit003-menge.
v_pesotot = v_pesotot + itab_zycit003-ntgew.
v_valortot = v_valortot + itab_zycit100-vlfob.
v_vlicms = v_vlicms + itab_zycit100-vlicms.
v_vlicms1 = v_vlicms1 + itab_zycit100-baseicms.
v_vlpis1 = v_vlpis1 + itab_zycit100-basepis.
v_vlcofins1 = v_vlcofins1 + itab_zycit100-basecofins.
v_vlipi1 = v_vlipi1 + itab_zycit100-baseipi.
ENDLOOP.
v_vmle = ( v_foba * itab_zycit100-dttaxbem ).
* >> Início da inclusão: FORM PAG3
IF NOT t_zycit085-ukursfre IS INITIAL.
* << Fim da inclusão
v_frete = ( v_fretea / t_zycit085-ukursfre ).
* >> Início da inclusão: FORM PAG3
ENDIF.
IF NOT t_zycit085-ukursseg IS INITIAL.
* << Fim da inclusão
v_seg = ( v_sega / t_zycit085-ukursseg ).
* >> Início da inclusão: FORM PAG3
ENDIF.
* << Fim da inclusão
DATA: v_meinsest(3).
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR332
...
v_qtdtot = v_qtdtot + itab_zycit003-menge.
v_pesotot = v_pesotot + itab_zycit003-ntgew.
v_valortot = v_valortot + itab_zycit443-vlfob.
v_vlicms = v_vlicms + itab_zycit443-vlicms.
v_vlicms1 = v_vlicms1 + itab_zycit443-baseicms.
v_vlpis1 = v_vlpis1 + itab_zycit443-basepis.
v_vlcofins1 = v_vlcofins1 + itab_zycit443-basecofins.
v_vlipi1 = v_vlipi1 + itab_zycit443-baseipi.
ENDLOOP.
v_vmle = ( v_foba * itab_zycit443-dttaxbem ).
* >> Início da inclusão: FORM PAG3
IF NOT t_zycit442-ukursfre IS INITIAL.
* << Fim da inclusão
v_frete = ( v_fretea / t_zycit442-ukursfre ).
* >> Início da inclusão: FORM PAG3
ENDIF.
IF NOT t_zycit442-ukursseg IS INITIAL.
* << Fim da inclusão
v_seg = ( v_sega / t_zycit442-ukursseg ).
* >> Início da inclusão: FORM PAG3
ENDIF.
* << Fim da inclusão
DATA: v_meinsest(3).
MOVE itab_zycit003-meinsest TO v_meinsest.
WRITE: 068 text-101 INTENSIFIED OFF,
120 '|',
/001 '|',
002 text-102 INTENSIFIED OFF,
019 v_qtdeumest,
068 text-103 INTENSIFIED OFF,
085 v_meinsest,
120 '|'.
...