Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 22/11/2012 00:00:00
Data/Hora Última Alteração: 04/04/2013 13:32:24
Descrição da Nota: VALOR DA MERCADORIA INCORRETO NO DETALHE DO ITEM (ANA)
Sintoma
O valor da mercadoria em USD está incorreto no detalhe do item.
A despesa "Ajuste" apesar de parametrizada não está sendo somada a base dos impostos.
O programa exibe mensagem informando ausencia de taxa de conversão mesmo possuindo a taxa de
conversão e estando preenchida na ANA.
Solução
Atualizado calculo do valor em USD para exibição no detalhe do item, corrido tratamento da despesa
"Ajuste" e ajustado programa para não chamar a rotina de conversão de moedas sem informar uma moeda.
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 12684 Data: 22/11/2012 Hora: 15:05:25
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 12684
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 9.0
Pacote : 00002
Agrupamento : 00138
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
12607 - 00001 - 9.0 - 00002 - AJUSTE NO CALCULO DAS BASES DOS IMPOSTOS
----------------------------------------------------------------------------------------------------
VALOR DA MERCADORIA INCORRETO NO DETALHE DO ITEM (ANA)
----------------------------------------------------------------------------------------------------
Palavras Chave:
ANA - VALOR - MERCADORIA - DETALHE - ITEM - AJUSTE - BASE - IMPOSTO
/PWS/SAPMZYCI059 -
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI059I01
REPS /PWS/MZYCI059F03
REPS /PWS/MZYCI059F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059I01
...
ENDIF.
IF itab_zycit404_aux-codigo EQ 'FOB'.
IF NOT v_usd IS INITIAL.
v_valtot = v_valtot + itab_it-vlfob .
ENDIF.
ELSEIF itab_zycit404_aux-codigo EQ 'FRETEC' OR
itab_zycit404_aux-codigo EQ 'FRETEI'.
v_valtot = v_valtot + itab_it-vlfre.
ELSEIF itab_zycit404_aux-codigo EQ 'SEGURO'.
v_valtot = v_valtot + itab_it-vlseg.
* >> Início da exclusão: MODULE REAPURA_IMP
ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'.
* << Fim da exclusão
* >> Início da inclusão: MODULE REAPURA_IMP
ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'
AND t001-land1 NE wa_zycit477-land.
* << Fim da inclusão
IF itab_zycit404_aux-somatoria NE 'X'.
ADD 1 TO v_ate.
CONTINUE.
ENDIF.
v_valtot = v_valtot + itab_it-ajuste.
ELSEIF itab_zycit404_aux-codigo EQ itab_zycit019-codigo AND
NOT itab_zycit049-vldp IS INITIAL AND
itab_zycit404_aux-nivelde eq space AND
NOT itab_zycit019-codigo = 'SISC'.
IF itab_zycit404_aux-somatoria NE 'X'.
ADD 1 TO v_ate.
CONTINUE.
ENDIF.
READ TABLE itab_zycit036 WITH KEY
ebeln = /pws/zycie100a-ebeln
ebelp = /pws/zycie100a-ebelp
codigo = itab_zycit404_aux-codigo.
* >> Início da inclusão: MODULE REAPURA_IMP
IF sy-subrc NE 0 OR itab_zycit036-vlreal IS INITIAL.
v_ate = v_ate + 1.
CONTINUE.
ENDIF.
* << Fim da inclusão
PERFORM trata_decimais USING itab_zycit036-waers_real
CHANGING itab_zycit036-vlreal.
IF itab_zycit036-waers_real NE /pws/zycbt007-waersa.
IF v_mudou NE 'X'.
v_mudou = 'X'.
v_alt = 'X'.
ENDIF.
PERFORM taxa_converte USING itab_zycit036-waers_real
/pws/zycie085-dttax
CHANGING s_tax.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059F03
...
FORM valor_cfr USING p_tipo.
CLEAR: v_tcfr.
IF NOT v_usd IS INITIAL.
* >> Início da exclusão: FORM VALOR_CFR
s_fbvr_s_d = /pws/zycie085-vlfob.
* << Fim da exclusão
* >> Início da inclusão: FORM VALOR_CFR
s_fbvr_s_d = /pws/zycie085-vlfob *
/pws/zycie085-ukursfob / v_usd.
* << Fim da inclusão
ENDIF.
IF s_inco1_ci EQ 'CIF'.
IF NOT v_usd IS INITIAL.
* >> Início da exclusão: FORM VALOR_CFR
v_tcfr = /pws/zycie085-vlfob +
* << Fim da exclusão
* >> Início da inclusão: FORM VALOR_CFR
v_tcfr = s_fbvr_s_d +
* << Fim da inclusão
( v_bltofat * /pws/zycie085-ukursfre / v_usd ) +
( v_sgtofat * /pws/zycie085-ukursseg / v_usd ) .
ENDIF.
v_cfr = t_vmle .
v_cfr = t_vmle .
ELSEIF s_inco1_ci EQ 'C&F'.
IF NOT v_usd IS INITIAL.
* >> Início da exclusão: FORM VALOR_CFR
v_tcfr = /pws/zycie085-vlfob +
* << Fim da exclusão
* >> Início da inclusão: FORM VALOR_CFR
v_tcfr = s_fbvr_s_d +
* << Fim da inclusão
( v_bltofat * /pws/zycie085-ukursfre / v_usd ).
ENDIF.
v_cfr = t_vmle .
ELSE.
v_tcfr = s_fbvr_s_d .
v_cfr = t_ivmle .
ENDIF.
ENDFORM.
...
...
IF itab_zycit404_aux-codigo EQ 'FOB'.
IF NOT v_usd IS INITIAL.
v_valtot = v_valtot +
itab_it-vlfob .
ENDIF.
ELSEIF itab_zycit404_aux-codigo EQ 'FRETEC' OR
itab_zycit404_aux-codigo EQ 'FRETEI'.
v_valtot = v_valtot + itab_it-vlfre.
ELSEIF itab_zycit404_aux-codigo EQ 'SEGURO'.
v_valtot = v_valtot + itab_it-vlseg.
* >> Início da exclusão: FORM CARREGA_TRIBUTOS
ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_TRIBUTOS
ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'
AND t001-land1 NE wa_zycit477-land.
* << Fim da inclusão
IF itab_zycit404_aux-somatoria NE 'X'.
CONTINUE.
ENDIF.
v_valtot = v_valtot + itab_it-ajuste.
ELSEIF itab_zycit404_aux-codigo EQ itab_zycit019-codigo AND
NOT itab_zycit049-vldp IS INITIAL AND
itab_zycit404_aux-nivelde eq space AND
NOT itab_zycit019-codigo = 'SISC'.
IF itab_zycit404_aux-somatoria NE 'X'.
CONTINUE.
ENDIF.
READ TABLE itab_zycit036 WITH KEY
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp
codigo = itab_zycit404_aux-codigo.
* >> Início da inclusão: FORM CARREGA_TRIBUTOS
IF sy-subrc NE 0 OR itab_zycit036-vlreal IS INITIAL.
v_ate = v_ate + 1.
CONTINUE.
ENDIF.
* << Fim da inclusão
PERFORM trata_decimais USING itab_zycit036-waers_real
CHANGING itab_zycit036-vlreal.
IF itab_zycit036-waers_real NE /pws/zycbt007-waersa.
IF v_mudou NE 'X'.
v_mudou = 'X'.
v_alt = 'X'.
ENDIF.
PERFORM taxa_converte USING itab_zycit036-waers_real
/pws/zycie085-dttax
CHANGING s_tax.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059F01
...
APPEND t_zycit049 .
CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'
EXPORTING
nrseq = itab_it-nrseq
/pws/zycie085 = /pws/zycie085
TABLES
t_zycit049 = t_zycit049
t_itens = t_itens.
t_ivseg = itab_it-vlseg = t_itens-vldp.
ENDIF.
* >> Início da exclusão: FORM LOAD_ITAX
t_ivmle = itab_it-vlfob.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
IF NOT v_usd IS INITIAL.
t_ivmle = itab_it-vlfob * itab_it-dttaxbem / v_usd.
ENDIF.
* << Fim da inclusão
CASE s_inco1_ci.
WHEN 'FOB'.
t_ivadu = t_ivmle + t_ivseg + t_ivfre + t_ivdesp.
WHEN 'C&F'.
IF p_tipo EQ 'A'.
t_ivmle_d2 = t_ivmle = t_ivmle + t_ivfre.
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre.
t_ivadu = t_ivmle + wa_it-vlseg + t_ivdesp.
ELSE.
t_ivmle_d2 = t_ivmle = t_ivmle + t_ivfre + v_desp_fren.
...
...
IF itab_it-vlfre > itab_it-vlfob.
v_msg = 'S'.
ENDIF.
ENDLOOP.
READ TABLE itab_it WITH KEY mark = 'X'.
v_ip = sy-tabix.
IF v_msg = 'S'.
MESSAGE i015 WITH text-219.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM CALL_ITEM
v_visualiza = 'N'.
PERFORM visualiza_rateio.
* << Fim da inclusão
LOOP AT itab_zycit403.
CHECK itab_zycit403-ebeln = itab_it-ebeln AND
itab_zycit403-ebelp = itab_it-ebelp.
CLEAR itab_zycit404.
READ TABLE itab_zycit404 WITH KEY
codigo = itab_zycit403-codigo.
CHECK itab_zycit404-exibir EQ 'X'.
MOVE itab_zycit403 TO itab_zycit403_i.
APPEND itab_zycit403_i.
ENDLOOP.
...