Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Prestação de Contas
Data/Hora da Publicação: 02/06/2010 00:00:00
Data/Hora Última Alteração: 23/02/2011 09:34:30
Descrição da Nota: AJUSTE PARA LANÇAMNETO DO IMPOSTO COM BASE NO MONTANTE IVA
Sintoma
O montante base de IRF parametrizado para ter como base o montante IVA, não está sendo preenchido no
documento de contabilização da MIRO.
Solução
Ajustado preenchimento da tabela interna de IRF para a BAPI de criação da MIRO
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 10233 Data: 02/06/2010 Hora: 08:47:52
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 10233
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
05422 - 00001 - 7.0 - 00003 - ERRO DE ARREDONDAMENTO NO CALCULO DOS IMPOSTOS
10176 - 00002 - 8.0 - 00003 - RETENÇÃO DE IMPOSTOS PARA FATURA DE DESPESAS CONTABILIZADA VIA MI
10221 - 00003 - 8.0 - 00003 - PREENCHER BASE DE IRF PARAMENTRIZADO COM BASE NO IVA DA FATURA
----------------------------------------------------------------------------------------------------
AJUSTE PARA LANÇAMNETO DO IMPOSTO COM BASE NO MONTANTE IVA
----------------------------------------------------------------------------------------------------
Palavras Chave:
IMPOSTO - PARAMTRIZADO - BASE - MONTANTE - IVA - PRESTAÇÃO - FATURA
/PWS/SAPMZYCI003 - /PWS/SAPMZYCI004
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI003F02
REPS /PWS/MZYCI004F01
REPS /PWS/MZYCI004F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
CHANGING itab_contas_aux-wrbtr.
CLEAR: itab_zycit031.
itab_zycit031-tcode = itab_zycie033-tcode .
itab_zycit031-tabela = itab_zycie033-tabela .
itab_zycit031-cpochv = itab_zycie033-cpochv .
itab_zycit031-ebeln = itab_zycit003-ebeln .
itab_zycit031-ebelp = itab_zycit003-ebelp .
itab_zycit031-meins = itab_zycit003-meins .
itab_zycit031-mwskz = itab_zycie033-mwskz .
LOOP AT itab_zycit047 WHERE vldp > 0.
* >> Início da inclusão: FORM MIRO_AM_LA
PERFORM retorna_decimais USING /pws/zycie006-waers
CHANGING itab_zycit047-vldp.
* << Fim da inclusão
CLEAR: itab_zycit019, itab_zycit030.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit047-tpdesp.
READ TABLE itab_zycit030 WITH KEY
codigo = itab_zycit019-codigo.
itab_zycit031-lgort = itab_zycit030-kschl.
itab_zycit031-wrbtr = itab_contas_aux-wrbtr *
( itab_zycit047-vldp / v_vltotal ).
v_vlaux = v_vlaux + itab_zycit031-wrbtr.
READ TABLE itab_zycit399 WITH KEY codigo = itab_zycit019-codigo.
...
...
( itab_ftaxp-kbetr / 1000 ) ).
ENDIF.
ENDLOOP.
ENDLOOP.
ENDLOOP.
wa_headerdata-gross_amount = wa_headerdata-gross_amount +
v_gross_amount.
ENDIF.
wa_headerdata-gross_amount = wa_headerdata-gross_amount +
itab_retorno-hwste.
* >> Início da inclusão: FORM MIRO_AM_LA
itab_withtaxdata-wi_tax_base = itab_retorno-hwste.
MODIFY itab_withtaxdata TRANSPORTING wi_tax_base
WHERE wi_tax_base EQ space.
* << Fim da inclusão
e_subrc = '0' .
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI003'
'FAT009'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'FAT009' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
e_estorno = 'REC_MR1M' .
...
...
FORM imposto_d.
* >> Início da inclusão: FORM IMPOSTO_D
DATA: itab_t059p TYPE t059p OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
...
...
regio NE lfa1-regio.
SORT itab_zyglt378 BY codmod ASCENDING
cod_desp ASCENDING
witht ASCENDING
bukrs DESCENDING
land1 DESCENDING
regio DESCENDING.
DELETE ADJACENT DUPLICATES FROM itab_zyglt378 COMPARING codmod
cod_desp
witht.
* >> Início da inclusão: FORM IMPOSTO_D
SELECT * FROM t059p INTO TABLE itab_t059p
FOR ALL ENTRIES IN itab_lfbw
WHERE witht EQ itab_lfbw-witht
AND land1 EQ t001-land1.
DELETE itab_t059p WHERE wt_base NA '35'.
REFRESH itab_withtaxdata. CLEAR itab_withtaxdata.
ADD 1 TO itab_withtaxdata-split_key.
* << Fim da inclusão
LOOP AT itab_zycit047 WHERE vldp > 0.
PERFORM retorna_decimais USING /pws/zycie006-waers
CHANGING itab_zycit047-vldp.
LOOP AT itab_zyglt378
WHERE cod_desp EQ itab_zycit047-tpdesp.
READ TABLE itab_lfbw
WITH KEY witht = itab_zyglt378-witht.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM IMPOSTO_D
READ TABLE itab_t059p
WITH KEY witht = itab_lfbw-witht.
CHECK sy-subrc NE 0.
* << Fim da inclusão
itab_withtaxdata-wi_tax_base = itab_zycit047-vldp.
itab_withtaxdata-wi_tax_type = itab_lfbw-witht.
itab_withtaxdata-wi_tax_code = itab_lfbw-wt_withcd.
COLLECT itab_withtaxdata.
ENDIF.
ENDLOOP.
ENDLOOP.
* >> Início da exclusão: FORM IMPOSTO_D
LOOP AT itab_withtaxdata.
ADD 1 TO itab_withtaxdata-split_key.
MODIFY itab_withtaxdata.
* << Fim da exclusão
* >> Início da inclusão: FORM IMPOSTO_D
CLEAR: itab_withtaxdata-wi_tax_base.
LOOP AT itab_t059p.
READ TABLE itab_lfbw
WITH KEY witht = itab_t059p-witht.
itab_withtaxdata-wi_tax_type = itab_lfbw-witht.
itab_withtaxdata-wi_tax_code = itab_lfbw-wt_withcd.
APPEND itab_withtaxdata.
* << Fim da inclusão
ENDLOOP.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI004F01
...
ENDLOOP.
wa_headerdata-gross_amount = wa_headerdata-gross_amount +
v_gross_amount.
ENDIF.
CLEAR: itab_account.
ADD 1 TO itab_glaccount-invoice_doc_item.
MODIFY itab_glaccount TRANSPORTING invoice_doc_item
WHERE invoice_doc_item NE itab_glaccount-invoice_doc_item.
wa_headerdata-gross_amount = wa_headerdata-gross_amount +
itab_retorno-hwste.
* >> Início da exclusão: FORM MIRO
itab_withtaxdata-wi_tax_base = v_gross_amount + itab_retorno-hwste.
* << Fim da exclusão
* >> Início da inclusão: FORM MIRO
itab_withtaxdata-wi_tax_base = itab_retorno-hwste.
* << Fim da inclusão
MODIFY itab_withtaxdata TRANSPORTING wi_tax_base
WHERE wi_tax_base EQ space.
e_subrc = '0' .
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI004'
'PRT015'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'PRT015' BINARY SEARCH.
IF sy-subrc EQ 0.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI004F02
...
land1 DESCENDING
regio DESCENDING.
DELETE ADJACENT DUPLICATES FROM itab_zyglt378 COMPARING codmod
cod_desp
witht.
SELECT * FROM t059p INTO TABLE itab_t059p
FOR ALL ENTRIES IN itab_lfbw
WHERE witht EQ itab_lfbw-witht
AND land1 EQ t001-land1.
DELETE itab_t059p WHERE wt_base NA '35'.
* >> Início da exclusão: FORM IMPOSTOS
refresh itab_withtaxdata.
* << Fim da exclusão
* >> Início da inclusão: FORM IMPOSTOS
REFRESH itab_withtaxdata. CLEAR itab_withtaxdata.
ADD 1 TO itab_withtaxdata-split_key.
* << Fim da inclusão
LOOP AT it_zycit027_aux WHERE vldp > 0.
PERFORM retorna_decimais USING it_zycit027_aux-waers
CHANGING it_zycit027_aux-vldp.
LOOP AT itab_zyglt378
WHERE cod_desp EQ it_zycit027_aux-tpdesp.
READ TABLE itab_lfbw
WITH KEY witht = itab_zyglt378-witht.
IF sy-subrc EQ 0.
READ TABLE itab_t059p
WITH KEY witht = itab_lfbw-witht.
CHECK sy-subrc NE 0.
itab_withtaxdata-wi_tax_base = it_zycit027_aux-vldp.
itab_withtaxdata-wi_tax_type = itab_lfbw-witht.
itab_withtaxdata-wi_tax_code = itab_lfbw-wt_withcd.
COLLECT itab_withtaxdata.
ENDIF.
* >> Início da exclusão: FORM IMPOSTOS
ENDLOOP.
* << Fim da exclusão
ENDLOOP.
* >> Início da exclusão: FORM IMPOSTOS
LOOP AT itab_withtaxdata.
ADD 1 TO itab_withtaxdata-split_key.
MODIFY itab_withtaxdata.
* << Fim da exclusão
ENDLOOP.
CLEAR: itab_withtaxdata-wi_tax_base.
LOOP AT itab_t059p.
READ TABLE itab_lfbw
WITH KEY witht = itab_t059p-witht.
itab_withtaxdata-wi_tax_type = itab_lfbw-witht.
itab_withtaxdata-wi_tax_code = itab_lfbw-wt_withcd.
* >> Início da exclusão: FORM IMPOSTOS
ADD 1 TO itab_withtaxdata-split_key.
* << Fim da exclusão
APPEND itab_withtaxdata.
ENDLOOP.
ENDFORM.