Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 22/10/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 13:50:51
Descrição da Nota: AJUSTE NO TRATAMENTO DE ITENS COM MOEDAS DIFERENTES NA ANA.
Sintoma
A ANA não está tratando corretamente os valores dos itens quando a ANA possue itens com moedas
diferentes.
Solução
Corrigir o rateio dos valores dos itens.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05044 Data: 22/10/2007 Hora: 15:24:41
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05044
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00017
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04399 - 00001 - 7.0 - 00002 - AJUSTES NOS CALCULOS DE IMPOSTOS E NO RATEIO DOS VALORES DA ANA
04523 - 00002 - 7.0 - 00002 - AJUSTE PARA PERMITIR A ALTERAÇÃO DA TAXA DE CONVERSÃO DAS MOEDAS
----------------------------------------------------------------------------------------------------
AJUSTE NO TRATAMENTO DE ITENS COM MOEDAS DIFERENTES NA ANA.
----------------------------------------------------------------------------------------------------
Palavras Chave:
ITENS - MOEDAS - DIFERENTES - ANA - VALORES
/PWS/SAPMZYCI059
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI059F01
REPS /PWS/MZYCI059F03
REPS /PWS/MZYCI059O01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059F01
...
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.
v_rateio_t = v_tval.
/pws/zycie085-vlfobr = s_fbvr = v_tmle.
* >> Início da inclusão: FORM CALC_ITAB
PERFORM: taxa_converte USING /pws/zycbt007-waersa
/pws/zycie085-dttax
CHANGING v_usd,
load_fbvl2.
* << Fim da inclusão
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.
IF itab_zycit049-waers NE /pws/zycie085-waersfob.
...
...
CHANGING itab_zycit049-vldp.
v_tval2 = v_tval2 + itab_zycit049-vldp.
ELSE.
v_tval2 = v_tval2 + itab_zycit049-vldp.
ENDIF.
v_desp_acr = v_desp_acr + itab_zycit049-vldp.
s_fbvr = v_tval2 * /pws/zycie085-ukursfob.
ENDIF.
ENDLOOP.
LOOP AT itab_it.
* >> Início da inclusão: FORM CALC_ITAB
IF itab_it-waersbem EQ /pws/zycie085-waers.
* << Fim da inclusão
MOVE /pws/zycie085-ukursfob TO itab_it-dttaxbem.
* >> Início da inclusão: FORM CALC_ITAB
ENDIF.
* << Fim da inclusão
v_idx = sy-tabix.
MODIFY itab_it INDEX v_idx TRANSPORTING dttaxbem.
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'.
IF NOT v_tval3 IS INITIAL.
* >> Início da exclusão: FORM CALC_ITAB
itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_ITAB
itab_it-vlfob =
( ( ( ( itab_it-qtd_iten * itab_it-vlreal )
* itab_it-dttaxbem ) / /pws/zycie085-ukursfob )
* << Fim da inclusão
/ v_rateio_t ) * v_tval.
ENDIF.
ELSE.
IF NOT v_tval3 IS INITIAL OR
NOT /pws/zycie085-ukursseg IS INITIAL.
* >> Início da exclusão: FORM CALC_ITAB
itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_ITAB
itab_it-vlfob =
( ( ( ( itab_it-qtd_iten * itab_it-vlreal )
* itab_it-dttaxbem ) / /pws/zycie085-ukursfob )
* << Fim da inclusão
/ v_rateio_t ) * v_tval.
ENDIF.
ENDIF.
ENDIF.
ELSE.
* >> Início da exclusão: FORM CALC_ITAB
itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_ITAB
itab_it-vlfob =
( ( ( ( itab_it-qtd_iten * itab_it-vlreal )
* itab_it-dttaxbem ) / /pws/zycie085-ukursfob )
* << Fim da inclusão
/ v_rateio_t ) * v_tval.
ENDIF.
v_aux_rateio = v_aux_rateio + itab_it-vlfob.
ENDIF.
MOVE itab_it TO wa_it.
MOVE-CORRESPONDING: itab_it TO /pws/zycie100a,
itab_it TO /pws/zycie003.
IF /pws/zycie085-mdadicao = 'N'.
/pws/zycie085-vlfob = v_tval2 = v_tval.
ENDIF.
...
...
MODIFY itab_it INDEX sy-tabix TRANSPORTING dttaxbem waersbem.
ENDLOOP.
IF /pws/zycie085-vlseg IS INITIAL AND sy-tcode = '/PWS/ZYCI059_C'.
/pws/zycie085-vlseg = v_tsegfat.
READ TABLE itab_zycit006 WITH KEY tpfatura = '01'.
IF sy-subrc EQ 0.
/pws/zycie085-waersseg = itab_zycit006-waers.
ENDIF.
ENDIF.
ELSE.
* >> Início da exclusão: FORM FILL_ITABIT
CLEAR: /pws/zycie085-waersfob, /pws/zycie085-vlfob,
/pws/zycie085-ukursfob.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
CLEAR: /pws/zycie085-waersfob, /pws/zycie085-vlfob.
IF /pws/zycbt007-waersa IS INITIAL AND
NOT /pws/zycie085-bukrs IS INITIAL.
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ /pws/zycie085-bukrs.
ENDIF.
* << Fim da inclusão
/pws/zycie085-waersfob = /pws/zycbt007-waersa.
ENDIF.
READ TABLE itab_zycit001 INDEX 1.
s_inco1 = itab_zycit001-inco1.
/pws/zycie085-codreg = itab_zycit001-regime.
IF /pws/zycie085-j_1bbranch IS INITIAL.
/pws/zycie085-j_1bbranch = itab_zycit001-j_1bbranch.
ENDIF.
CLEAR: v_icms_especial, v_base_esp.
SELECT SINGLE * FROM j_1bbranch
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059F03
...
v_tsegfat = v_tsegfat + itab_it-vlseg_fat.
v_rsegfat = v_rsegfat + ( itab_it-vlseg_fat * itab_it-dttaxbem ).
IF p_tipo = 'I'.
itab_it-seq = sy-tabix.
MODIFY itab_it INDEX sy-tabix TRANSPORTING seq vlreal.
ENDIF.
IF /pws/zycie085-mdadicao = 'N'.
IF itab_it-waersbem EQ /pws/zycie085-waersfob.
v_tval = v_tval + ( v_qtd_iten * itab_it-vlreal ).
ELSE.
* >> Início da inclusão: FORM CALC_INIT
CLEAR: v_taxa.
* << Fim da inclusão
PERFORM taxa_converte USING itab_it-waersbem
/pws/zycie085-dttax
CHANGING v_taxa.
* >> Início da inclusão: FORM CALC_INIT
IF v_taxa EQ 0 .
v_taxa = itab_it-dttaxbem.
ENDIF.
* << Fim da inclusão
v_tvaln = v_tvaln + ( v_qtd_iten * itab_it-vlreal ).
v_tvaln = v_tvaln * v_taxa.
* >> Início da inclusão: FORM CALC_INIT
CLEAR: v_taxa.
* << Fim da inclusão
PERFORM taxa_converte USING /pws/zycie085-waersfob
/pws/zycie085-dttax
CHANGING v_taxa.
* >> Início da inclusão: FORM CALC_INIT
IF v_taxa EQ 0 .
v_taxa = /pws/zycie085-ukursfob.
ENDIF.
* << Fim da inclusão
v_tvaln = v_tvaln / v_taxa.
v_tval = v_tval + v_tvaln.
* >> Início da exclusão: FORM CALC_INIT
/pws/zycie085-ukursfob = v_taxa.
* << Fim da exclusão
ENDIF.
ELSE.
v_tval = v_tval + ( v_qtd_iten * itab_it-vlreal ).
ENDIF.
ENDLOOP.
CASE s_inco1_ci.
WHEN 'C&F' OR 'CIF'.
READ TABLE itab_zycit049 WITH KEY
tpdesp = /pws/zycit000-flagfreten.
IF sy-subrc = 0 AND NOT itab_zycit049-vldp IS INITIAL.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059O01
...
if sy-dynnr eq '0400'.
perform fill_desc.
perform read_text_blitem changing /pws/zycie100a-especificacao.
else.
perform read_text_blitem changing t_espec.
endif.
endif.
if itab_it-waersbem ne /pws/zycie085-waersfob.
move /pws/zycie085-waersfob to wa_it-waersbem.
move /pws/zycie085-waersfob to /pws/zycie100a-waersbem.
* >> Início da inclusão: MODULE LOAD_DATA_BLITEM
/pws/zycie100a-dttaxbem = /pws/zycie085-ukursfob.
* << Fim da inclusão
perform load_itwa using /pws/zycie100a-waersbem.
endif.
endmodule.
module status0109 output.
case sy-dynnr.
when '0440'.
set titlebar '0440'.
set pf-status '0109'.
when '0181'.
set titlebar '0181'.
...