Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 14/06/2010 00:00:00
Data/Hora Última Alteração: 22/02/2011 14:13:45
Descrição da Nota: AJUSTADO RATEIO DAS DESPESAS PARA INCLUSÃO NA BASE DOS IMPOSTOS
Sintoma
A ANA não está seguindo o parametro da tabela /pws/zycit404 e está somando todas as despesas nas
bases de calculculo dos impostos.
Solução
Ajustado programa para adicionar as despesas na base dos impostos de acordo com o parametrizado na
tabela /pws/zycit404.
Ajustado rateio das despesas para soma na base dos impostos.
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 10276 Data: 14/06/2010 Hora: 11:05:13
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 10276
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00003
Agrupamento : 00026
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
09072 - 00001 - 8.0 - 00001 - VÁRIOS AJUSTES DE TRATAMENTO E VARIAÇÃO DA ANA - DI ARGENTINA
10073 - 00002 - 8.0 - 00003 - AJUSTADO CALCULO DO VALOR A RECOLHER(ANA)
----------------------------------------------------------------------------------------------------
AJUSTADO RATEIO DAS DESPESAS PARA INCLUSÃO NA BASE DOS IMPOSTOS
----------------------------------------------------------------------------------------------------
Palavras Chave:
ANA - DESPESA - BASE - IMPOSTO - PARAMETRO - RATEIO
/PWS/SAPMZYCI059 - /PWS/ZYCIT404
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI059F01
REPS /PWS/MZYCI059F03
REPS /PWS/MZYCI059I01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059F01
...
FORM loading_all.
* >> Início da inclusão: FORM LOADING_ALL
DATA: v_alt TYPE c.
* << Fim da inclusão
...
...
itab_zycit049-baseii = itab_zycit020-baseii.
READ TABLE itab_zycit039 WITH KEY
codigo = itab_zycit020-codigo.
IF sy-subrc EQ 0.
itab_zycit049-divabs = itab_zycit039-divabs.
itab_zycit049-peso = itab_zycit039-peso.
ENDIF.
ENDIF.
IF NOT itab_zycit049-vldp IS INITIAL.
IF itab_zycit049-waers NE /pws/zycbt007-waersb.
* >> Início da inclusão: FORM LOADING_ALL
IF v_mudou NE 'X'.
v_mudou = 'X'.
v_alt = 'X'.
ENDIF.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049-waers
/pws/zycie085-dttax
CHANGING s_tax.
* >> Início da inclusão: FORM LOADING_ALL
IF v_alt = 'X'.
CLEAR v_mudou.
ENDIF.
* << Fim da inclusão
itab_zycit049-vlreal = itab_zycit049-vldp * s_tax.
ELSE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059F03
...
IF sy-ucomm EQ 'VISUA'.
v_visualiza = 'X'.
ENDIF.
FREE: itab_desp_funcao, itab_zycit036.
CLEAR: itab_desp_funcao, itab_zycit036.
LOOP AT itab_zycit049.
MOVE: itab_zycit049-tpdesp TO itab_desp_funcao-tpdesp,
itab_zycit049-vlreal TO itab_desp_funcao-netpr,
/pws/zycbt007-waersb TO itab_desp_funcao-waers.
* >> Início da inclusão: FORM VISUALIZA_RATEIO
PERFORM retorna_decimais USING itab_desp_funcao-waers
CHANGING itab_desp_funcao-netpr.
* << Fim da inclusão
READ TABLE itab_it WITH KEY nrseqdi = itab_zycit049-nrseq.
MOVE: itab_it-nrseq TO itab_desp_funcao-nrseq,
itab_it-ebeln TO itab_desp_funcao-ebeln,
itab_it-ebelp TO itab_desp_funcao-ebelp.
APPEND itab_desp_funcao.
ENDLOOP.
IF itab_zycit100[] IS INITIAL.
LOOP AT itab_it.
MOVE-CORRESPONDING itab_it TO itab_zycit100.
APPEND itab_zycit100.
...
...
/pws/zycie085 = /pws/zycie085
IMPORTING
v_resposta = v_resp
TABLES
itab_zycit036 = itab_zycit036
itab_despesa = itab_desp_funcao
itab_zycit003 = itab_zycit003
itab_zycit100 = itab_zycit100
CHANGING
v_taxa_usd = v_usd.
* >> Início da inclusão: FORM VISUALIZA_RATEIO
IF v_visualiza EQ 'N'.
CLEAR v_visualiza.
EXIT.
ENDIF.
* << Fim da inclusão
IF v_resp EQ 'S'.
LOOP AT itab_zycit036.
UPDATE /pws/zycit375 SET
vldp = itab_zycit036-vlreal
waers = itab_zycit036-waers_real
WHERE nrseq EQ itab_zycit036-nrseq
AND nrseqdi EQ /pws/zycie085-nrseqdi
AND ebeln EQ itab_zycit036-ebeln
AND ebelp EQ itab_zycit036-ebelp
AND codigo EQ itab_zycit036-codigo.
...
...
FORM carrega_tributos.
* >> Início da inclusão: FORM CARREGA_TRIBUTOS
DATA v_alt TYPE c.
* << Fim da inclusão
...
...
regio IN (adrc-region, space) AND
pais = t001-land1 AND
bukrs = /pws/zycie001-bukrs.
SELECT * FROM /pws/zycit402 INTO TABLE itab_zycit402
FOR ALL ENTRIES IN itab_zycit404
WHERE codigo = itab_zycit404-codigo AND
codmod = 'D' AND
regio IN (adrc-region, space) AND
pais = t001-land1 AND
bukrs = /pws/zycie001-bukrs.
* >> Início da inclusão: FORM CARREGA_TRIBUTOS
v_visualiza = 'N'.
PERFORM visualiza_rateio.
* << Fim da inclusão
ENDIF.
SORT: itab_zycit404 DESCENDING BY regio,
itab_zycit399 DESCENDING BY regio,
itab_zycit400 DESCENDING BY regio,
itab_zycit401 DESCENDING BY regio,
itab_zycit402 DESCENDING BY regio.
READ TABLE: itab_zycit404 INDEX 1,
itab_zycit399 INDEX 1,
itab_zycit400 INDEX 1,
itab_zycit401 INDEX 1,
...
...
LOOP AT itab_zycit404 WHERE exibir EQ 'X'.
CLEAR v_ate.
v_index = v_first.
WHILE v_ate <= itab_zycit404-nivelate.
IF v_ate IS INITIAL.
v_ate = itab_zycit404-nivelde.
ENDIF.
CLEAR itab_zycit404_aux.
READ TABLE itab_zycit404_aux WITH KEY linha = v_ate.
v_ate = v_ate + 1.
* >> Início da inclusão: FORM CARREGA_TRIBUTOS
CLEAR itab_zycit019.
CLEAR itab_zycit049.
READ TABLE itab_zycit019 WITH KEY
codigo = itab_zycit404_aux-codigo.
IF sy-subrc = 0.
READ TABLE itab_zycit049 WITH KEY
tpdesp = itab_zycit019-tpdesp .
ENDIF.
* << Fim da inclusão
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'.
v_valtot = v_valtot + itab_it-vlfre.
ELSEIF itab_zycit404_aux-codigo EQ 'SEGURO'.
v_valtot = v_valtot + itab_it-vlseg.
ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'.
v_valtot = v_valtot + itab_it-ajuste.
* >> Início da inclusão: FORM CARREGA_TRIBUTOS
ELSEIF itab_zycit404_aux-codigo EQ itab_zycit019-codigo AND
NOT itab_zycit049-vldp IS INITIAL AND
NOT itab_zycit019-codigo = 'SISC'.
READ TABLE itab_zycit036 WITH KEY
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp
codigo = itab_zycit404_aux-codigo.
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.
IF v_alt = 'X'.
CLEAR v_mudou.
ENDIF.
itab_zycit036-vlreal = itab_zycit036-vlreal * s_tax.
itab_zycit036-vlreal = itab_zycit036-vlreal / v_usd.
ENDIF.
v_valtot = v_valtot + itab_zycit036-vlreal.
* << Fim da inclusão
ELSEIF sy-subrc EQ 4.
MOVE: itab_it-nrseqdi TO itab_zycit403-nrseqdi,
itab_it-ebeln TO itab_zycit403-ebeln,
itab_it-ebelp TO itab_zycit403-ebelp,
itab_zycit404-codigo TO itab_zycit403-codigo.
READ TABLE itab_zycit399 WITH KEY
codigo = itab_zycit403-codigo.
IF sy-subrc EQ 0.
MOVE itab_zycit399-condicoes TO itab_zycit403-condicoes.
ENDIF.
...
...
v_valtot = v_valtot + wa_zycit403-valorrec.
ENDIF.
ENDWHILE.
MOVE: itab_it-nrseqdi TO itab_zycit403-nrseqdi,
itab_it-ebeln TO itab_zycit403-ebeln,
itab_it-ebelp TO itab_zycit403-ebelp,
itab_zycit404-codigo TO itab_zycit403-codigo,
v_valtot TO itab_zycit403-base,
100 TO itab_zycit403-basered.
CLEAR v_valtot.
* >> Início da exclusão: FORM CARREGA_TRIBUTOS
LOOP AT itab_trib WHERE ebeln = itab_it-ebeln AND
ebelp = itab_it-ebelp.
IF NOT v_usd IS INITIAL.
IF itab_trib-waers NE wa_zycbt007-waersb.
itab_trib-t_ivdesp = itab_trib-t_ivdesp / v_usd.
ELSE.
itab_trib-t_ivdesp = itab_trib-t_ivdesp / v_usd.
ENDIF.
ENDIF.
itab_zycit403-base =
itab_zycit403-base + itab_trib-t_ivdesp.
ENDLOOP.
* << Fim da exclusão
IF ( itab_zycit404-codigo EQ '000415' OR
itab_zycit404-codigo EQ '000422' OR
itab_zycit404-codigo EQ '000429' ) AND
t001-land1 EQ 'AR'.
itab_zycit403-base = itab_zycit403-base
+ itab_it-vlicms.
ELSEIF wa_zycit477-land EQ t001-land1.
READ TABLE itab_zycit020
WITH KEY codigo = 'SISC'
baseii = 'X'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059I01
...
v_index_imp = sy-tabix.
IF sy-subrc NE 0 .
CONTINUE.
ENDIF.
CLEAR v_ate.
v_index = v_first.
v_ate = itab_zycit404-nivelde.
WHILE v_ate <= itab_zycit404-nivelate.
CLEAR itab_zycit404_aux.
READ TABLE itab_zycit404_aux WITH KEY linha = v_ate.
* >> Início da inclusão: MODULE REAPURA_IMP
CLEAR itab_zycit019.
CLEAR itab_zycit049.
READ TABLE itab_zycit019 WITH KEY
codigo = itab_zycit404_aux-codigo.
IF sy-subrc = 0.
READ TABLE itab_zycit049 WITH KEY
tpdesp = itab_zycit019-tpdesp .
ENDIF.
* << Fim da inclusão
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'.
v_valtot = v_valtot + itab_it-vlfre.
ELSEIF itab_zycit404_aux-codigo EQ 'SEGURO'.
v_valtot = v_valtot + itab_it-vlseg.
ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'.
v_valtot = v_valtot + itab_it-ajuste.
* >> Início da inclusão: MODULE REAPURA_IMP
ELSEIF itab_zycit404_aux-codigo EQ itab_zycit019-codigo AND
NOT itab_zycit049-vldp IS INITIAL AND
NOT itab_zycit019-codigo = 'SISC'.
READ TABLE itab_zycit036 WITH KEY
ebeln = /pws/zycie100a-ebeln
ebelp = /pws/zycie100a-ebelp
codigo = itab_zycit404_aux-codigo.
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.
IF v_alt = 'X'.
CLEAR v_mudou.
ENDIF.
itab_zycit036-vlreal = itab_zycit036-vlreal * s_tax.
itab_zycit036-vlreal = itab_zycit036-vlreal / v_usd.
ENDIF.
v_valtot = v_valtot + itab_zycit036-vlreal.
* << Fim da inclusão
ELSEIF sy-subrc EQ 4.
READ TABLE itab_zycit404 INTO itab_zycit404_aux
WITH KEY linha = v_ate.
CLEAR wa_zycit403.
READ TABLE itab_zycit403_i INTO wa_zycit403
WITH KEY codigo = itab_zycit404_aux-codigo
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp .
v_valtot = v_valtot + wa_zycit403-valorrec.
ENDIF.
v_ate = v_ate + 1.
ENDWHILE.
MOVE: v_valtot TO itab_zycit403_i-base.
CLEAR v_valtot.
* >> Início da exclusão: MODULE REAPURA_IMP
LOOP AT itab_trib WHERE ebeln = itab_it-ebeln AND
ebelp = itab_it-ebelp.
IF NOT v_usd IS INITIAL.
IF itab_trib-waers NE wa_zycbt007-waersb.
itab_trib-t_ivdesp = itab_trib-t_ivdesp / v_usd.
ELSE.
itab_trib-t_ivdesp = itab_trib-t_ivdesp / v_usd.
ENDIF.
ENDIF.
itab_zycit403_i-base =
itab_zycit403_i-base + itab_trib-t_ivdesp.
ENDLOOP.
* << Fim da exclusão
IF ( itab_zycit404-codigo EQ '000415' OR
itab_zycit404-codigo EQ '000422' OR
itab_zycit404-codigo EQ '000429' ) AND
t001-land1 EQ 'AR'.
itab_zycit403_i-base = itab_zycit403_i-base
+ itab_it-vlicms.
ELSEIF wa_zycit477-land EQ t001-land1.
READ TABLE itab_zycit020
WITH KEY codigo = 'SISC'
baseii = 'X'.
...