Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Custo Efetivo
Data/Hora da Publicação: 15/04/2008 00:00:00
Data/Hora Última Alteração: 22/02/2011 14:31:39
Descrição da Nota: ESTÁ INCORRETA A CONVERSÃO DE MOEDAS P/ NOVO TIPO DE MOEDA PARAMETRIZADA
Sintoma
Está incorreta a conversão de moedas p/ novo tipo de moeda parametrizada
Solução
Atualização do programa do custo efetivo para tratar casas decimais para qualquer tipo de moeda e
fatura tipo P.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 06389 Data: 15/04/2008 Hora: 09:21:49
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 06389
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00005
Agrupamento : 00043
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03391 - 00001 - 7.0 - 00001 - NRSEQORI DUPLICADO GERA VALORES DUPLICADOS NO CUSTO
05395 - 00002 - 7.0 - 00003 - TRATAMENTO PARA PARAMETR. DE FATOR DE MOEDA PARA TAXA CONVERSÃO N
05466 - 00003 - 7.0 - 00003 - O VALOR DO PLANEJADO ESTA DIFERENDO DO REALIZADO NA ALTERAÇÃO DE
----------------------------------------------------------------------------------------------------
ESTÁ INCORRETA A CONVERSÃO DE MOEDAS P/ NOVO TIPO DE MOEDA PARAMETRIZADA
----------------------------------------------------------------------------------------------------
Palavras Chave:
CONVERSÃO DE MOEDAS - JPY - JPZ - FATURA TIPO P
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI010F01
REPS /PWS/MZYCI010F03
REPS /PWS/ZYCIR006
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010F01
...
itab_zycit036a-vldif = itab_zycit036_aux2-vldif.
IF itab_zycit036a-vldif NE 0.
IF itab_zycit036_aux2-origem EQ 'PED'.
PERFORM retorna_decimais USING itab_zycit036a-waers_mov
CHANGING itab_zycit036a-vldif.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit036_aux2-codigo EQ 'FRETEI' .
IF itab_zycit036_aux2-vlreal EQ space AND
* >> Início da inclusão: FORM CUSTEANDO_DESPESAS_EMBARQUE
itab_zycit036_aux2-origem NE 'PED' AND
* << Fim da inclusão
itab_zycit036_aux2-congelamov NE 'X'.
CONTINUE.
ENDIF.
IF v_frete > 1.
IF itab_zycit036a-waers_real = 'JPY' AND
/pws/zycit000-fretepres NE 'X'.
PERFORM retorna_decimais USING itab_zycit036_aux2-waers_real
CHANGING itab_zycit036_aux2-vlreal.
IF NOT /pws/zycit085-ukursfre IS INITIAL.
itab_zycit036_aux2-vlreal = itab_zycit036_aux2-vlreal *
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010F03
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR006
...
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
IF sy-subrc = 0.
IF itab_zycit036-vlmov = 0 AND
itab_zycit036_plan-netpr GT 0 AND NOT
itab_zycit036_plan-waers IS INITIAL
AND v_itemcongela NE 'X'.
v_valor = itab_zycit036_plan-netpr.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais
USING itab_zycit036_plan-waers
CHANGING v_valor.
* << Fim da inclusão
IF itab_zycit036-origem <> 'FAT'.
IF NOT /pws/zycit085-ukursfob IS INITIAL.
itab_zycit036-vlmov = v_valor *
/pws/zycit085-ukursfob .
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
PERFORM busca_fator_moed USING itab_zycit036-waers_real
/pws/zycbt007-waersb
CHANGING v_de
v_para.
...
...
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF itab_zycit036-origem <> 'FAT'.
IF NOT itab_zycit100-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit100-dttaxbem.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-netpr.
* << Fim da inclusão
PERFORM converter_moeda USING
itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
* << Fim da exclusão
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
...
...
CHANGING v_val_real.
itab_zycit036-vldif = v_val_real
- itab_zycit036-vlmov.
itab_zycit036-waers_dif = itab_zycit036-waers_mov.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
NOT itab_zycit036-waers IS INITIAL.
IF v_itemcongela NE 'X'.
v_valor = itab_zycit036-netpr.
IF itab_zycit036-origem <> 'FAT'.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais USING itab_zycit036-waers
CHANGING v_valor.
* << Fim da inclusão
IF NOT /pws/zycit085-ukursfob IS INITIAL.
itab_zycit036-vlmov = v_valor *
/pws/zycit085-ukursfob .
ELSE.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF NOT itab_zycit100-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit100-dttaxbem.
ELSE.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-netpr.
* << Fim da inclusão
PERFORM converter_moeda USING
itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
* << Fim da exclusão
CHANGING itab_zycit036-vlmov.
ENDIF.
...
...
CHANGING v_valor.
ELSE.
PERFORM retorna_decimais USING itab_zycit036-waers_real
CHANGING v_valor.
ENDIF.
ENDIF.
IF itab_zycit036-origem = 'NF'.
v_val_tot = v_val_tot + v_valor.
ENDIF.
IF v_itemcongela NE 'X'.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
IF NOT /pws/zycit085-ukursfre IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
IF NOT /pws/zycit085-ukursfre IS INITIAL AND
( /pws/zycit085-waersfre EQ itab_zycit036-waers_real OR
itab_zycit036-waers_real EQ /pws/zycbt007-waersb ).
* << Fim da inclusão
IF itab_zycit036-origem = 'NF'.
itab_zycit036-vlmov = v_valor .
ELSE.
IF itab_zycit036-waers_real NE /pws/zycbt007-waersb.
READ TABLE itab_zycit006 WITH KEY
nrseq = itab_zycit036-nrseqori.
IF sy-subrc EQ 0 AND itab_zycit006-frpagto EQ 'P'.
itab_zycit036-vlmov = v_valor *
/pws/zycit085-ukursfre .
ELSE.
...
...
itab_zycit036-vlmov = v_valor .
ELSE.
READ TABLE itab_bkpf WITH KEY
bukrs = itab_zycit006-bukrs
belnr = itab_zycit006-belnr_p
gjahr = itab_zycit006-dt_belnrp(04).
PERFORM busca_fator_moed USING itab_zycit036-waers_real
/pws/zycbt007-waersb
CHANGING v_de
v_para.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
itab_zycit036-vlmov = itab_zycit036-vlreal *
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
itab_zycit036-vlmov = v_valor *
* << Fim da inclusão
( ( itab_bkpf-kursf * v_para ) / v_de ).
ENDIF.
ENDIF.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
PERFORM trata_decimais USING itab_zycit036-waers_mov
CHANGING itab_zycit036-vlmov.
ELSE.
READ TABLE itab_zycit036_plan WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
IF sy-subrc = 0.
IF itab_zycit036-vlmov = 0 AND
itab_zycit036_plan-netpr GT 0 AND NOT
itab_zycit036_plan-waers IS INITIAL
AND v_itemcongela NE 'X'.
v_valor = itab_zycit036_plan-netpr.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
IF NOT /pws/zycit085-ukursfob IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais
USING itab_zycit036_plan-waers
CHANGING v_valor.
IF NOT /pws/zycit085-ukursfre IS INITIAL AND
/pws/zycit085-waersfre EQ itab_zycit036_plan-waers.
* << Fim da inclusão
itab_zycit036-vlmov = v_valor *
/pws/zycit085-ukursfob .
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF NOT itab_zycit100-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit100-dttaxbem.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais
USING itab_zycit036-waers
CHANGING itab_zycit036-netpr.
* << Fim da inclusão
PERFORM converter_moeda USING
itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ELSEIF itab_zycit036-origem = 'FAT'
AND itab_zycit036-waers_mov IS INITIAL.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ELSEIF sy-subrc NE 0 AND itab_zycit036-origem = 'FAT'
AND itab_zycit036-waers_mov IS INITIAL.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSEIF sy-subrc NE 0 AND itab_zycit036-origem = 'PC'
AND itab_zycit036-waers_mov IS INITIAL.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
ENDIF.
* << Fim da inclusão
IF itab_zycit036-origem NE 'EST'.
IF v_itemcongela = 'X' AND
( itab_zycit036-origem EQ 'NF' OR
itab_zycit036-origem EQ 'FAT' ) AND
NOT /pws/zycit085-ukursfre IS INITIAL.
IF ( t001-land1 EQ 'CL' OR
t001-land1 EQ 'AR' ) OR
itab_zycit036-origem EQ 'FAT'.
READ TABLE itab_zycit006 WITH KEY
nrseq = itab_zycit036-nrseqori.
...
...
ENDIF.
ENDIF.
PERFORM trata_decimais USING itab_zycit036-waers_mov
CHANGING v_valor.
ENDIF.
IF NOT /pws/zycit085-ukursfre IS INITIAL AND
( itab_zycit036-origem EQ 'NF'
OR itab_zycit036-origem EQ 'FAT' ).
IF itab_zycit036-waers_real <> itab_zycit036-waers_mov
AND v_itemcongela NE 'X'.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
v_valor = v_valor * /pws/zycit085-ukursfre.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
IF itab_zycit036-waers_real EQ /pws/zycbt007-waersb
OR itab_zycit036-origem EQ 'NF'.
ELSEIF NOT /pws/zycit085-ukursfre IS INITIAL AND
/pws/zycit085-waersfre EQ itab_zycit036-waers_real .
READ TABLE itab_zycit006 WITH KEY
nrseq = itab_zycit036-nrseqori.
IF sy-subrc EQ 0 AND itab_zycit006-frpagto EQ 'P'.
v_valor = v_valor *
/pws/zycit085-ukursfre .
ELSE.
READ TABLE itab_bkpf WITH KEY
bukrs = itab_zycit006-bukrs
belnr = itab_zycit006-belnr_p
gjahr = itab_zycit006-dt_belnrp(04).
PERFORM busca_fator_moed
USING itab_zycit036-waers_real
/pws/zycbt007-waersb
CHANGING v_de
v_para.
v_valor = v_valor *
( ( itab_bkpf-kursf * v_para ) / v_de ).
ENDIF.
ELSEIF itab_zycit036-origem NE 'FAT'.
v_val_real = v_valor.
PERFORM converter_moeda
USING v_val_real
itab_zycit036-waers_real
/pws/zycbt007-waersb
CHANGING v_valor.
CLEAR:v_val_real.
ELSE.
READ TABLE itab_zycit006 WITH KEY
nrseq = itab_zycit036-nrseqori.
IF sy-subrc EQ 0 AND itab_zycit006-frpagto EQ 'P'.
ELSE.
READ TABLE itab_bkpf WITH KEY
bukrs = itab_zycit006-bukrs
belnr = itab_zycit006-belnr_p
gjahr = itab_zycit006-dt_belnrp(04).
PERFORM busca_fator_moed
USING itab_zycit036-waers_real
/pws/zycbt007-waersb
CHANGING v_de
v_para.
v_valor = v_valor *
( ( itab_bkpf-kursf * v_para ) / v_de ).
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
ENDIF.
* << Fim da inclusão
itab_zycit036-vldif = v_valor
- itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ELSE.
IF itab_zycit036-waers_real <> itab_zycit036-waers_mov
AND itab_zycit036-vlmov <> 0.
v_valor = v_valor / /pws/zycit085-ukursfre.
ENDIF.
itab_zycit036-vldif = v_valor - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
ENDIF.
* << Fim da exclusão
ENDIF.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
NOT itab_zycit036-waers IS INITIAL.
IF v_itemcongela NE 'X'.
v_valor = itab_zycit036-netpr.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
IF NOT /pws/zycit085-ukursfre IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais
USING itab_zycit036_plan-waers
CHANGING v_valor.
IF NOT /pws/zycit085-ukursfre IS INITIAL AND
( /pws/zycit085-waersfre EQ itab_zycit036-waers OR
itab_zycit036-waers EQ /pws/zycbt007-waersb ).
* << Fim da inclusão
IF itab_zycit036-waers NE /pws/zycbt007-waersb.
itab_zycit036-vlmov = v_valor *
/pws/zycit085-ukursfre .
ELSE.
itab_zycit036-vlmov = v_valor .
ENDIF.
ELSE.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-netpr.
* << Fim da inclusão
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
* << Fim da exclusão
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
...
...
READ TABLE itab_zycit036_plan WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
IF sy-subrc = 0.
IF itab_zycit036-vlmov = 0 AND
itab_zycit036_plan-netpr GT 0 AND NOT
itab_zycit036_plan-waers IS INITIAL
AND v_itemcongela NE 'X'.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais
USING itab_zycit036_plan-waers
CHANGING itab_zycit036_plan-netpr.
* << Fim da inclusão
v_valor = itab_zycit036_plan-netpr.
IF NOT /pws/zycit085-ukursfob IS INITIAL.
itab_zycit036-vlmov = v_valor *
/pws/zycit085-ukursfob .
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF NOT itab_zycit100-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit100-dttaxbem.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais
USING itab_zycit036-waers
CHANGING itab_zycit036-netpr.
* << Fim da inclusão
PERFORM converter_moeda USING
itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
...
...
v_valor = v_valor / /pws/zycit085-ukursseg.
ENDIF.
itab_zycit036-vldif = v_valor - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
NOT itab_zycit036-waers IS INITIAL.
IF v_itemcongela NE 'X'.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais
USING itab_zycit036-waers
CHANGING itab_zycit036-netpr.
* << Fim da inclusão
v_valor = itab_zycit036-netpr.
IF NOT /pws/zycit085-ukursseg IS INITIAL
AND /pws/zycit085-waersseg EQ itab_zycit036-waers.
IF itab_zycit036-waers NE /pws/zycbt007-waersb.
itab_zycit036-vlmov = v_valor * /pws/zycit085-ukursseg
.
ELSE.
itab_zycit036-vlmov = v_valor .
ENDIF.
ELSE.
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
* << Fim da exclusão
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-vldif = 0 - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
IF itab_zycit036-vlmov IS INITIAL.
CLEAR itab_zycit036-waers_mov.
ELSEIF itab_zycit036-vldif IS INITIAL.
...
...
READ TABLE itab_zycit036_plan WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
IF sy-subrc = 0.
IF itab_zycit036-vlmov = 0 AND
itab_zycit036_plan-netpr GT 0 AND NOT
itab_zycit036_plan-waers IS INITIAL
AND v_itemcongela NE 'X'.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais
USING itab_zycit036_plan-waers
CHANGING itab_zycit036_plan-netpr.
* << Fim da inclusão
v_valor = itab_zycit036_plan-netpr.
IF NOT /pws/zycit085-ukursfob IS INITIAL.
itab_zycit036-vlmov = v_valor *
/pws/zycit085-ukursfob .
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF NOT itab_zycit100-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit100-dttaxbem.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais
USING itab_zycit036-waers
CHANGING itab_zycit036-netpr.
* << Fim da inclusão
PERFORM converter_moeda USING
itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
...
...
IF itab_zycit036-origem NE 'EST'.
itab_zycit036-vldif = itab_zycit036-vlreal -
itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
NOT itab_zycit036-waers IS INITIAL
OR ( itab_zycit036-origem EQ 'NF' AND
itab_zycit036-nrseqori EQ '0000000000' ) .
IF v_itemcongela NE 'X'.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-netpr.
* << Fim da inclusão
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
* << Fim da exclusão
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
...
...
READ TABLE itab_zycit036_plan WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
IF sy-subrc = 0.
IF itab_zycit036-vlmov = 0 AND NOT
itab_zycit036_plan-netpr = 0 AND NOT
itab_zycit036_plan-waers IS INITIAL AND
v_itemcongela NE 'X'.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais
USING itab_zycit036_plan-waers
CHANGING itab_zycit036_plan-netpr.
* << Fim da inclusão
v_valor = itab_zycit036_plan-netpr.
IF /pws/zycit000-flag_desp = 'X'.
IF NOT /pws/zycit085-ukursfob IS INITIAL.
itab_zycit036-vlmov = v_valor *
/pws/zycit085-ukursfob .
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF NOT itab_zycit100-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit100-dttaxbem.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ELSE.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais
USING itab_zycit036-waers
CHANGING itab_zycit036-netpr.
* << Fim da inclusão
PERFORM converter_moeda USING
itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit036-origem NE 'EST'.
itab_zycit036-vldif = v_real_brl - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
NOT itab_zycit036-waers IS INITIAL
OR ( itab_zycit036-origem EQ 'NF' AND
itab_zycit036-nrseqori EQ '0000000000' ) .
IF v_itemcongela NE 'X'.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-netpr.
* << Fim da inclusão
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
* << Fim da exclusão
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
...
...
READ TABLE itab_zycit036_plan WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
IF sy-subrc = 0.
IF itab_zycit036-vlmov = 0 AND NOT
itab_zycit036_plan-netpr = 0 AND NOT
itab_zycit036_plan-waers IS INITIAL AND
v_itemcongela NE 'X'.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais
USING itab_zycit036_plan-waers
CHANGING itab_zycit036_plan-netpr.
* << Fim da inclusão
v_valor = itab_zycit036_plan-netpr.
IF /pws/zycit000-flag_desp = 'X'.
IF NOT /pws/zycit085-ukursfob IS INITIAL.
itab_zycit036-vlmov = v_valor *
/pws/zycit085-ukursfob .
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
...
...
ENDIF.
IF itab_zycit036-origem NE 'EST'.
itab_zycit036-vldif = v_real_brl - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
NOT itab_zycit036-waers IS INITIAL
OR ( itab_zycit036-origem EQ 'NF' AND
itab_zycit036-nrseqori EQ '0000000000' ) .
IF v_itemcongela NE 'X'.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM retorna_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-netpr.
* << Fim da inclusão
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
* << Fim da exclusão
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
...
...
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.
IF sy-subrc NE 0.
MESSAGE i061 WITH text-013 p_meorig 'para' p_medest.
v_erro_tax = 'X'.
* >> Início da exclusão: FORM CONVERTER_MOEDA
ENDIF.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM CONVERTER_MOEDA
IF p_meorig = 'JPY'.
p_vldest = p_vldest * v_dfact.
* << Fim da exclusão
ENDIF.
IF v_erro_tax IS INITIAL.
itab_taxob08-waerso = p_meorig.
itab_taxob08-waersd = p_medest.
IF p_vlorig <> 0.
...