Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 17/10/2012 14:45:14
Data/Hora Última Alteração: 17/10/2012 14:45:14
Descrição da Nota: AJUSTE NO CALCULO DAS BASES DOS IMPOSTOS
Sintoma
Ajustado tratamento do calculo dos impostos para que sejam exibidos na pasta de impostos apenas
aqueles marcado para exibição e que apenas as despesas e impostos marcado como somatória entrem na
base dos impostos.
Solução
Ajustado tratamento do calculo dos impostos para que sejam exibidos na pasta de impostos apenas
aqueles marcado para exibição e que apenas as despesas e impostos marcado como somatória entrem na
base dos impostos.
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 12607 Data: 15/10/2012 Hora: 14:21:58
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 12607
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 9.0
Pacote : 00002
Agrupamento : 00132
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
12600 - 00001 - 9.0 - 00002 - NÃO ESTÁ CALCULANDO VALORES DE SEGURO DA ANA
----------------------------------------------------------------------------------------------------
AJUSTE NO CALCULO DAS BASES DOS IMPOSTOS
----------------------------------------------------------------------------------------------------
Palavras Chave:
ANA - CALCULO - BASE - IMPOSTOS - PARAMETRO - /PWS/ZYCIT404
/PWS/SAPMZYCI059
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI059O01
REPS /PWS/MZYCI059I01
REPS /PWS/MZYCI059F03
REPS /PWS/MZYCI059F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059O01
...
MODULE load_data OUTPUT.
IF t002-spras IS INITIAL.
t002-spras = 'P'.
ENDIF.
* >> Início da inclusão: MODULE LOAD_DATA
IF itab_zycit404[] IS INITIAL AND
NOT itab_zycit403[] IS INITIAL.
IF NOT itab_it[] IS INITIAL.
SELECT nrseq ebeln ebelp doc FROM /pws/zycit082
INTO TABLE itab_zycit082
FOR ALL ENTRIES IN itab_it WHERE
ebeln = itab_it-ebeln AND
ebelp = itab_it-ebelp AND
nrseq = /pws/zycie001-nrseq.
ENDIF.
IF j_1bbranch-bukrs NE /pws/zycie085-bukrs OR
j_1bbranch-branch NE /pws/zycie085-j_1bbranch.
SELECT SINGLE * FROM j_1bbranch
WHERE bukrs = /pws/zycie085-bukrs
AND branch = /pws/zycie085-j_1bbranch.
SELECT SINGLE * FROM adrc
WHERE addrnumber = j_1bbranch-adrnr.
SELECT SINGLE * FROM /pws/zycit477 INTO wa_zycit477
WHERE land = t001-land1.
ENDIF.
SELECT * FROM /pws/zycit404 INTO TABLE itab_zycit404
WHERE codmod = 'D' AND
regio IN (adrc-region, space) AND
pais = t001-land1.
IF sy-subrc EQ 0.
SELECT * FROM /pws/zycit399 INTO TABLE itab_zycit399
FOR ALL ENTRIES IN itab_zycit404
WHERE codigo = itab_zycit404-codigo AND
codmod = 'D' AND
regio IN (adrc-region, space) AND
pais = t001-land1.
ENDIF.
ENDIF.
* << Fim da inclusão
SORT itab_zycit403 BY codigo.
CLEAR itab_zycit403t.
REFRESH itab_zycit403t.
LOOP AT itab_zycit403.
* >> Início da inclusão: MODULE LOAD_DATA
CLEAR itab_zycit404.
READ TABLE itab_zycit404
WITH KEY codigo = itab_zycit403-codigo.
CHECK itab_zycit404-exibir EQ 'X'.
* << Fim da inclusão
MOVE-CORRESPONDING itab_zycit403 TO itab_zycit403t.
COLLECT itab_zycit403t.
ENDLOOP.
SORT itab_zycit403t BY codigo condicoes.
IF /pws/zycie085-nrseqdi IS INITIAL.
CLEAR /pws/zycie085-ntimp.
IMPORT wa_zycie085 FROM MEMORY ID rimc4.
IF sy-subrc EQ 0.
MOVE wa_zycie085 TO /pws/zycie085.
CLEAR: /pws/zycie085-dtuserc, /pws/zycie085-dtusera,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059I01
...
MODULE carrega_zycit403 INPUT.
READ TABLE itab_zycit403_i INDEX tc_trib-current_line.
IF itab_zycit403_i-percentual NE /pws/zycie403-percentual.
IF /pws/zycie403-percentual IS INITIAL AND
itab_zycit403_i-valorrec NE /pws/zycie403-valorrec.
ELSE.
CLEAR: /pws/zycie403-valorrec.
ENDIF.
ENDIF.
* >> Início da exclusão: MODULE CARREGA_ZYCIT403
MOVE: /pws/zycie403-nrseqdi TO itab_zycit403_i-nrseqdi,
/pws/zycie403-ebeln TO itab_zycit403_i-ebeln,
/pws/zycie403-ebelp TO itab_zycit403_i-ebelp,
* << Fim da exclusão
* >> Início da inclusão: MODULE CARREGA_ZYCIT403
MOVE:
* << Fim da inclusão
/pws/zycie403-codigo TO itab_zycit403_i-codigo,
/pws/zycie403-base TO itab_zycit403_i-base,
/pws/zycie403-basered TO itab_zycit403_i-basered,
/pws/zycie403-advalorem TO itab_zycit403_i-advalorem,
/pws/zycie403-percentual TO itab_zycit403_i-percentual,
/pws/zycie403-valorcalc TO itab_zycit403_i-valorcalc,
/pws/zycie403-valorrec TO itab_zycit403_i-valorrec,
/pws/zycie403-condicoes TO itab_zycit403_i-condicoes,
/pws/zycie403-creditar TO itab_zycit403_i-creditar.
MODIFY itab_zycit403_i INDEX tc_trib-current_line.
...
...
pais = t001-land1.
ENDIF.
ENDIF.
SORT: itab_zycit404 DESCENDING BY regio,
itab_zycit399 DESCENDING BY regio.
READ TABLE: itab_zycit404 INDEX 1,
itab_zycit399 INDEX 1.
DELETE: itab_zycit404 WHERE regio NE itab_zycit404-regio,
itab_zycit399 WHERE regio NE itab_zycit399-regio.
SORT itab_zycit404 BY linha.
* >> Início da exclusão: MODULE REAPURA_IMP
LOOP AT itab_zycit404 WHERE somatoria EQ 'X'.
MOVE itab_zycit404 TO itab_zycit404_aux.
APPEND itab_zycit404_aux.
ENDLOOP.
* << Fim da exclusão
* >> Início da inclusão: MODULE REAPURA_IMP
itab_zycit404_aux[] = itab_zycit404[].
* << Fim da inclusão
READ TABLE itab_it WITH KEY ebeln = /pws/zycie100a-ebeln
ebelp = /pws/zycie100a-ebelp.
READ TABLE itab_zycit003 WITH KEY ebeln = /pws/zycie100a-ebeln
ebelp = /pws/zycie100a-ebelp.
* >> Início da exclusão: MODULE REAPURA_IMP
LOOP AT itab_zycit404 WHERE exibir EQ 'X'.
* << Fim da exclusão
* >> Início da inclusão: MODULE REAPURA_IMP
LOOP AT itab_zycit404 WHERE nivelde NE space.
* << Fim da inclusão
READ TABLE itab_zycit403_i
WITH KEY codigo = itab_zycit404-codigo
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
v_index_imp = sy-tabix.
* >> Início da inclusão: MODULE REAPURA_IMP
IF itab_zycit404-nivelde NE space AND
sy-subrc NE 0.
READ TABLE itab_zycit403 INTO itab_zycit403_i
WITH KEY codigo = itab_zycit404-codigo
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
ENDIF.
* << Fim da inclusão
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.
CLEAR itab_zycit019.
...
...
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.
ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'.
* >> Início da inclusão: MODULE REAPURA_IMP
IF itab_zycit404_aux-somatoria NE 'X'.
ADD 1 TO v_ate.
CONTINUE.
ENDIF.
* << Fim da inclusão
v_valtot = v_valtot + itab_it-ajuste.
ELSEIF itab_zycit404_aux-codigo EQ itab_zycit019-codigo AND
NOT itab_zycit049-vldp IS INITIAL AND
* >> Início da inclusão: MODULE REAPURA_IMP
itab_zycit404_aux-nivelde NE space AND
* << Fim da inclusão
NOT itab_zycit019-codigo = 'SISC'.
* >> Início da inclusão: MODULE REAPURA_IMP
IF itab_zycit404_aux-somatoria NE 'X'.
ADD 1 TO v_ate.
CONTINUE.
ENDIF.
* << Fim da inclusão
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'.
...
...
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.
* >> Início da exclusão: MODULE REAPURA_IMP
ELSEIF sy-subrc EQ 4.
* << Fim da exclusão
* >> Início da inclusão: MODULE REAPURA_IMP
ELSEIF itab_zycit404_aux-nivelde NE space.
IF itab_zycit404_aux-somatoria NE 'X'.
ADD 1 TO v_ate.
CONTINUE.
ENDIF.
* << Fim da inclusão
READ TABLE itab_zycit404 INTO itab_zycit404_aux
WITH KEY linha = v_ate.
CLEAR wa_zycit403.
* >> Início da exclusão: MODULE REAPURA_IMP
READ TABLE itab_zycit403_i INTO wa_zycit403
* << Fim da exclusão
* >> Início da inclusão: MODULE REAPURA_IMP
READ TABLE itab_zycit403 INTO wa_zycit403
* << Fim da inclusão
WITH KEY codigo = itab_zycit404_aux-codigo
...
...
+ itab_it-vlicms.
ENDIF.
ENDIF.
CLEAR v_valtot.
IF itab_zycit404-codigo EQ '000010' OR
itab_zycit404-codigo EQ '000011' OR
itab_zycit404-codigo EQ 'DERECH'.
READ TABLE itab_zycit082 WITH KEY ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0 AND itab_zycit082-doc NE space.
* >> Início da inclusão: MODULE REAPURA_IMP
IF itab_zycit404-exibir EQ 'X'.
* << Fim da inclusão
MODIFY itab_zycit403_i INDEX v_index_imp.
* >> Início da inclusão: MODULE REAPURA_IMP
ENDIF.
* << Fim da inclusão
READ TABLE itab_zycit403 WITH KEY
codigo = itab_zycit404-codigo
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 .
MOVE itab_zycit403_i TO itab_zycit403.
...
...
NOT itab_zycit399-vlmin IS INITIAL.
itab_zycit403_i-valorcalc = itab_zycit399-vlmin.
ENDIF.
IF itab_zycit403_i-valorcalc > itab_zycit399-vlmax AND
NOT itab_zycit399-vlmax IS INITIAL.
itab_zycit403_i-valorcalc = itab_zycit399-vlmax.
ENDIF.
IF itab_zycit403_i-valorrec IS INITIAL.
itab_zycit403_i-valorrec = itab_zycit403_i-valorcalc.
ENDIF.
* >> Início da inclusão: MODULE REAPURA_IMP
IF itab_zycit404-exibir EQ 'X'.
* << Fim da inclusão
MODIFY itab_zycit403_i INDEX v_index_imp.
* >> Início da inclusão: MODULE REAPURA_IMP
ENDIF.
* << Fim da inclusão
READ TABLE itab_zycit403 WITH KEY
codigo = itab_zycit404-codigo
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 .
MOVE itab_zycit403_i TO itab_zycit403.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059F03
...
itab_zycit399 INDEX 1,
itab_zycit400 INDEX 1,
itab_zycit401 INDEX 1,
itab_zycit402 INDEX 1.
DELETE: itab_zycit404 WHERE regio NE itab_zycit404-regio,
itab_zycit399 WHERE regio NE itab_zycit399-regio,
itab_zycit400 WHERE regio NE itab_zycit400-regio,
itab_zycit401 WHERE regio NE itab_zycit401-regio,
itab_zycit402 WHERE regio NE itab_zycit402-regio.
SORT itab_zycit404 BY linha.
* >> Início da exclusão: FORM CARREGA_TRIBUTOS
LOOP AT itab_zycit404 WHERE exibir NE 'X'
OR somatoria EQ space.
MOVE itab_zycit404 TO itab_zycit404_aux.
APPEND itab_zycit404_aux.
ENDLOOP.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_TRIBUTOS
itab_zycit404_aux[] = itab_zycit404[].
* << Fim da inclusão
IF itab_zycit403[] IS INITIAL.
v_first = 0.
LOOP AT itab_it.
READ TABLE itab_zycit003 WITH KEY ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
* >> Início da exclusão: FORM CARREGA_TRIBUTOS
LOOP AT itab_zycit404 WHERE exibir EQ 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_TRIBUTOS
LOOP AT itab_zycit404 WHERE nivelde NE space.
* << Fim da inclusão
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.
CLEAR itab_zycit019.
...
...
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.
ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'.
* >> Início da inclusão: FORM CARREGA_TRIBUTOS
IF itab_zycit404_aux-somatoria NE 'X'.
CONTINUE.
ENDIF.
* << Fim da inclusão
v_valtot = v_valtot + itab_it-ajuste.
ELSEIF itab_zycit404_aux-codigo EQ itab_zycit019-codigo AND
NOT itab_zycit049-vldp IS INITIAL AND
* >> Início da inclusão: FORM CARREGA_TRIBUTOS
itab_zycit404_aux-nivelde NE space AND
* << Fim da inclusão
NOT itab_zycit019-codigo = 'SISC'.
* >> Início da inclusão: FORM CARREGA_TRIBUTOS
IF itab_zycit404_aux-somatoria NE 'X'.
CONTINUE.
ENDIF.
* << Fim da inclusão
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'.
...
...
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.
* >> Início da exclusão: FORM CARREGA_TRIBUTOS
ELSEIF sy-subrc EQ 4.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_TRIBUTOS
ELSEIF itab_zycit404_aux-nivelde NE space.
IF itab_zycit404_aux-somatoria NE 'X'.
CONTINUE.
ENDIF.
* << Fim da inclusão
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.
READ TABLE itab_zycit512 WITH KEY
...
...
itab_zycit403-condicoes TO wa_adic-condicoes.
PERFORM alv_vlint CHANGING wa_adic.
MODIFY itab_adic FROM wa_adic INDEX sy-tabix.
ENDIF.
CLEAR itab_zycit403.
ENDLOOP.
DESCRIBE TABLE itab_zycit403 LINES v_first.
ENDLOOP.
SORT itab_zycit403 BY codigo.
LOOP AT itab_zycit403.
* >> Início da inclusão: FORM CARREGA_TRIBUTOS
CLEAR itab_zycit404.
READ TABLE itab_zycit404
WITH KEY codigo = itab_zycit403-codigo.
CHECK itab_zycit404-exibir EQ 'X'.
* << Fim da inclusão
MOVE-CORRESPONDING itab_zycit403 TO itab_zycit403t.
COLLECT itab_zycit403t.
ENDLOOP.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI059'
'ANA001'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'ANA001' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
ELSE.
SORT itab_zycit403 BY codigo.
CLEAR itab_zycit403t.
REFRESH itab_zycit403t.
LOOP AT itab_zycit403.
* >> Início da inclusão: FORM CARREGA_TRIBUTOS
CLEAR itab_zycit404.
READ TABLE itab_zycit404
WITH KEY codigo = itab_zycit403-codigo.
CHECK itab_zycit404-exibir EQ 'X'.
* << Fim da inclusão
MOVE-CORRESPONDING itab_zycit403 TO itab_zycit403t.
COLLECT itab_zycit403t.
ENDLOOP.
ENDIF.
ENDIF.
SORT itab_zycit403t BY codigo condicoes.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059F01
...
ENDLOOP.
READ TABLE itab_it WITH KEY mark = 'X'.
v_ip = sy-tabix.
IF v_msg = 'S'.
MESSAGE i015 WITH text-219.
ENDIF.
ENDIF.
LOOP AT itab_zycit403.
CHECK itab_zycit403-ebeln = itab_it-ebeln AND
itab_zycit403-ebelp = itab_it-ebelp.
* >> Início da inclusão: FORM CALL_ITEM
CLEAR itab_zycit404.
READ TABLE itab_zycit404 WITH KEY
codigo = itab_zycit403-codigo.
CHECK itab_zycit404-exibir EQ 'X'.
* << Fim da inclusão
MOVE itab_zycit403 TO itab_zycit403_i.
APPEND itab_zycit403_i.
ENDLOOP.
MOVE: itab_it-matnr TO /pws/zycie003-matnr,
itab_it-idnlf TO mepo1319-idnlf.
CALL SCREEN '0400'.
ENDFORM.
...