Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Despesas
Data/Hora da Publicação: 27/08/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 15:48:23
Descrição da Nota: AJUSTE PARA REALIZAR O RATEIO DE IMPOSTOS DE ACORDO COM A ANA
Sintoma
Ajuste na fatura para permitir o lançamento de Impostos na fatura de despesas e realizar o rateio
dos valores de acordo com o realizado na ANA.
Solução
Ajuste na fatura para permitir o lançamento de Impostos na fatura de despesas e realizar o rateio
dos valores de acordo com o realizado na ANA.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04525 Data: 27/08/2007 Hora: 09:45:57
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04525
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00009
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04362 - 00001 - 7.0 - 00002 - AJUSTES NO LANÇAMENTO DAS DESPESAS NA MIRO
----------------------------------------------------------------------------------------------------
AJUSTE PARA REALIZAR O RATEIO DE IMPOSTOS DE ACORDO COM A ANA
----------------------------------------------------------------------------------------------------
Palavras Chave:
IMPOSTOS - RATEIO - FATURA - DESPESAS - ANA
/PWS/SAPMZYCI003
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI003F02
REPT /PWS/SAPMZYCI003
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
* >> Início da inclusão: FORM MIRO_AM_LA
DATA: itab_zycit399 TYPE /pws/zycit399 OCCURS 0 WITH HEADER LINE,
itab_zycit403 TYPE /pws/zycit403 OCCURS 0 WITH HEADER LINE,
itab_zycit403a TYPE /pws/zycit403 OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
...
...
INTO TABLE itab_fat
WHERE nrseqce EQ /pws/zycie006-nrseqce
AND eliminado EQ space
AND tpfatura EQ /pws/zycie006-tpfatura
AND nrseq NE /pws/zycie006-nrseq.
IF /pws/zycie006-tpfatura EQ '04' AND sy-subrc EQ 0.
SELECT * FROM /pws/zycit047 INTO TABLE itab_zycit047a
FOR ALL ENTRIES IN itab_fat
WHERE nrseq EQ itab_fat-nrseq.
ENDIF.
* >> Início da exclusão: FORM MIRO_AM_LA
IF /pws/zycie006-tpfatura EQ '04'.
* << Fim da exclusão
REFRESH itab_zycit003a.
itab_zycit003a[] = itab_zycit003[].
SORT itab_zycit003a BY ebeln.
DELETE ADJACENT DUPLICATES FROM itab_zycit003a COMPARING ebeln.
IF NOT itab_zycit003a[] IS INITIAL.
SELECT ebeln knumv FROM ekko INTO TABLE itab_ekko_a
FOR ALL ENTRIES IN itab_zycit003a
WHERE ebeln EQ itab_zycit003a-ebeln.
IF sy-subrc EQ 0.
SELECT * FROM konv INTO TABLE itab_konv
FOR ALL ENTRIES IN itab_ekko_a
WHERE knumv EQ itab_ekko_a-knumv.
DELETE itab_konv WHERE kntyp NE 'B'
OR kbetr EQ space.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM MIRO_AM_LA
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM MIRO_AM_LA
SELECT * FROM /pws/zycit399 INTO TABLE itab_zycit399
WHERE pais EQ t001-land1.
READ TABLE itab_zycit003 INDEX 1.
SELECT SINGLE nrseqdi FROM /pws/zycit100 INTO /pws/zycit085-nrseqdi
WHERE nrseq EQ itab_zycit003-nrseq.
SELECT * FROM /pws/zycit403 INTO TABLE itab_zycit403
WHERE nrseqdi EQ /pws/zycit085-nrseqdi.
* << Fim da inclusão
ELSE.
SELECT ebeln ebelp mwskz FROM ekpo
INTO TABLE itab_ivaped
FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
ENDIF.
READ TABLE itab_zycit003 INDEX 1.
READ TABLE itab_zycbe033_aux INDEX 1.
IF /pws/zycie006-tpfatura EQ '02' AND
...
...
PERFORM retorna_decimais USING /pws/zycie006-waers
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 .
* >> Início da exclusão: FORM MIRO_AM_LA
CLEAR: v_vlaux.
* << Fim da exclusão
LOOP AT itab_zycit047 WHERE vldp > 0.
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 / /pws/zycie006-vltotal ).
v_vlaux = v_vlaux + itab_zycit031-wrbtr.
* >> Início da inclusão: FORM MIRO_AM_LA
READ TABLE itab_zycit399 WITH KEY codigo = itab_zycit019-codigo.
IF sy-subrc EQ 0.
CONTINUE.
ENDIF.
* << Fim da inclusão
CLEAR: itab_zycit031-sernp.
READ TABLE itab_zycit047a WITH KEY
tpdesp = itab_zycit047-tpdesp.
IF sy-subrc EQ 0.
itab_zycit031-sernp = 'X'.
ENDIF.
CLEAR: itab_ekko_a.
READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.
v_ebelp+1(5) = itab_zycit003-ebelp.
READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv
...
...
MODIFY itab_zycit031 TRANSPORTING wrbtr
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
AND lgort EQ itab_zycit031-lgort.
itab_zycit031-menge = itab_zycit003-qtd_iten.
MODIFY itab_zycit031 TRANSPORTING menge
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
itab_zycie033-waers = /pws/zycie006-waers.
itab_zycie033-rmwwr = itab_contas_aux-wrbtr + itab_zycie033-rmwwr.
* >> Início da inclusão: FORM MIRO_AM_LA
ENDLOOP.
CLEAR: itab_zycit399.
LOOP AT itab_zycit047 WHERE vldp > 0.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit047-tpdesp.
READ TABLE itab_zycit399 WITH KEY codigo = itab_zycit019-codigo.
IF sy-subrc EQ 0.
EXIT.
ENDIF.
ENDLOOP.
SORT itab_zycit403 BY ebeln ebelp.
IF NOT itab_zycit399-codigo IS INITIAL.
IF itab_zycit403[] IS INITIAL.
MESSAGE i015 WITH text-176.
ENDIF.
DELETE itab_zycit403 WHERE valorrec EQ space.
LOOP AT itab_zycit403.
itab_zycit403a-codigo = itab_zycit403-codigo.
itab_zycit403a-valorrec = itab_zycit403-valorrec.
COLLECT itab_zycit403a.
ENDLOOP.
CLEAR: v_erro.
LOOP AT itab_zycit047 WHERE vldp > 0.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit047-tpdesp.
READ TABLE itab_zycit399 WITH KEY codigo = itab_zycit019-codigo.
IF sy-subrc EQ 0.
READ TABLE itab_zycit403a WITH KEY
codigo = itab_zycit019-codigo.
IF sy-subrc NE 0.
MESSAGE i015 WITH text-177 itab_zycit047-descr.
v_erro = 'X'.
EXIT.
ENDIF.
ELSE.
CONTINUE.
ENDIF.
CLEAR: v_vlaux.
LOOP AT itab_zycit403 WHERE codigo = itab_zycit019-codigo.
READ TABLE itab_zycit003
WITH KEY ebeln = itab_zycit403-ebeln
ebelp = itab_zycit403-ebelp.
PERFORM retorna_decimais USING /pws/zycie006-waers
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 .
itab_zycit031-menge = itab_zycit003-qtd_iten.
itab_zycit031-wrbtr = itab_zycit047-vldp *
( itab_zycit403-valorrec / itab_zycit403a-valorrec ).
v_vlaux = v_vlaux + itab_zycit031-wrbtr.
CLEAR: itab_zycit030.
READ TABLE itab_zycit030 WITH KEY
codigo = itab_zycit019-codigo.
itab_zycit031-lgort = itab_zycit030-kschl.
READ TABLE itab_zycit047a WITH KEY
tpdesp = itab_zycit047-tpdesp.
IF sy-subrc EQ 0.
itab_zycit031-sernp = 'X'.
ENDIF.
CLEAR: itab_ekko_a.
READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.
v_ebelp+1(5) = itab_zycit003-ebelp.
READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv
kposn = v_ebelp
kschl = itab_zycit031-lgort.
IF sy-subrc NE 0.
CLEAR: itab_zycit031-lgort.
itab_zycit031-sernp = 'X'.
LOOP AT itab_zycit030 WHERE codigo = itab_zycit019-codigo.
READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv
kposn = v_ebelp
kschl = itab_zycit030-kschl.
IF sy-subrc EQ 0.
itab_zycit031-lgort = itab_zycit030-kschl.
CLEAR: itab_zycit031-sernp.
ENDIF.
ENDLOOP.
ENDIF.
COLLECT itab_zycit031.
IF itab_zycit031-lgort IS INITIAL.
itab_zycit031-menge = itab_zycit003-qtd_iten.
MODIFY itab_zycit031 TRANSPORTING menge
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
ENDIF.
ENDLOOP.
v_vlaux = itab_zycit047-vldp - v_vlaux.
itab_zycit031-wrbtr = itab_zycit031-wrbtr + v_vlaux.
MODIFY itab_zycit031 TRANSPORTING wrbtr
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
AND lgort EQ itab_zycit031-lgort.
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM MIRO_AM_LA
IF v_erro EQ 'X'.
EXIT.
ENDIF.
ENDIF.
* << Fim da inclusão
ELSEIF /pws/zycie006-tpfatura EQ '02'.
READ TABLE itab_zycit030 WITH KEY codigo = 'FRETEI'.
LOOP AT itab_zycit003.
...
...
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-menge = itab_zycit003-qtd_iten.
itab_zycit031-meins = itab_zycit003-meins .
itab_zycit031-mwskz = itab_zycie033-mwskz .
itab_zycit031-wrbtr = itab_contas_aux-wrbtr .
* >> Início da exclusão: FORM MIRO_AM_LA
READ TABLE itab_zycit030 WITH KEY
codigo = 'FRETEI'.
* << Fim da exclusão
* >> Início da inclusão: FORM MIRO_AM_LA
CLEAR: itab_ekko_a.
READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.
v_ebelp+1(5) = itab_zycit003-ebelp.
LOOP AT itab_zycit030 WHERE codigo = 'FRETEI'.
READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv
kposn = v_ebelp
kschl = itab_zycit030-kschl.
IF sy-subrc EQ 0.
* << Fim da inclusão
itab_zycit031-lgort = itab_zycit030-kschl.
* >> Início da inclusão: FORM MIRO_AM_LA
EXIT.
ENDIF.
ENDLOOP.
* << Fim da inclusão
IF NOT itab_fat[] IS INITIAL.
itab_zycit031-sernp = 'X'.
ELSE.
LOOP AT itab_zycit263 WHERE ebeln EQ itab_zycit003-ebeln
...
...
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-menge = itab_zycit003-qtd_iten.
itab_zycit031-meins = itab_zycit003-meins .
itab_zycit031-mwskz = itab_zycie033-mwskz .
itab_zycit031-wrbtr = itab_contas_aux-wrbtr .
* >> Início da exclusão: FORM MIRO_AM_LA
READ TABLE itab_zycit030 WITH KEY
codigo = 'SEGURO'.
* << Fim da exclusão
* >> Início da inclusão: FORM MIRO_AM_LA
CLEAR: itab_ekko_a.
READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.
v_ebelp+1(5) = itab_zycit003-ebelp.
LOOP AT itab_zycit030 WHERE codigo = 'SEGURO'.
READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv
kposn = v_ebelp
kschl = itab_zycit030-kschl.
IF sy-subrc EQ 0.
* << Fim da inclusão
itab_zycit031-lgort = itab_zycit030-kschl.
* >> Início da inclusão: FORM MIRO_AM_LA
EXIT.
ENDIF.
ENDLOOP.
* << Fim da inclusão
IF NOT itab_fat[] IS INITIAL.
itab_zycit031-sernp = 'X'.
ELSE.
LOOP AT itab_zycit263 WHERE ebeln EQ itab_zycit003-ebeln
...
...
itab_zycit031-wrbtr = itab_zycit031-wrbtr - v_vlfr.
IF /pws/zycit031-inco1_ci EQ 'CIF'.
itab_zycit031-wrbtr = itab_zycit031-wrbtr - v_vlsg.
ENDIF.
itab_zycit031-menge = itab_zycit003-toinv.
itab_zycit031-meins = itab_zycit003-meins.
itab_zycit031-mwskz = itab_ivaped-mwskz.
APPEND itab_zycit031.
itab_zycie033-waers = /pws/zycie006-waers.
IF NOT v_vlfr IS INITIAL.
* >> Início da exclusão: FORM MIRO_AM_LA
READ TABLE itab_zycit030 WITH KEY codigo = 'FRETEI'.
* << Fim da exclusão
* >> Início da inclusão: FORM MIRO_AM_LA
CLEAR: itab_ekko_a.
READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.
v_ebelp+1(5) = itab_zycit003-ebelp.
LOOP AT itab_zycit030 WHERE codigo = 'FRETEI'.
READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv
kposn = v_ebelp
kschl = itab_zycit030-kschl.
IF sy-subrc EQ 0.
itab_zycit031-lgort = itab_zycit030-kschl.
EXIT.
ENDIF.
ENDLOOP.
* << Fim da inclusão
itab_zycit031-wrbtr = v_vlfr.
* >> Início da exclusão: FORM MIRO_AM_LA
itab_zycit031-lgort = itab_zycit030-kschl.
* << Fim da exclusão
APPEND itab_zycit031.
ENDIF.
IF NOT v_vlsg IS INITIAL AND /pws/zycit031-inco1_ci EQ 'CIF'.
* >> Início da exclusão: FORM MIRO_AM_LA
READ TABLE itab_zycit030 WITH KEY codigo = 'SEGURO'.
* << Fim da exclusão
* >> Início da inclusão: FORM MIRO_AM_LA
CLEAR: itab_ekko_a.
READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.
v_ebelp+1(5) = itab_zycit003-ebelp.
LOOP AT itab_zycit030 WHERE codigo = 'SEGURO'.
READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv
kposn = v_ebelp
kschl = itab_zycit030-kschl.
IF sy-subrc EQ 0.
itab_zycit031-lgort = itab_zycit030-kschl.
EXIT.
ENDIF.
ENDLOOP.
* << Fim da inclusão
itab_zycit031-wrbtr = v_vlsg.
* >> Início da exclusão: FORM MIRO_AM_LA
itab_zycit031-lgort = itab_zycit030-kschl.
* << Fim da exclusão
APPEND itab_zycit031.
ENDIF.
ENDLOOP.
ENDIF.
APPEND itab_zycie033.
IF NOT itab_zycit031[] IS INITIAL.
...
...
marv-vmgja EQ /pws/zycie006-dt_mr1m+0(4) ) OR
( marv-lfmon EQ /pws/zycie006-dt_mr1m+04(02) AND
marv-lfgja EQ /pws/zycie006-dt_mr1m+0(4) ).
itab_zycie033-budat = /pws/zycie006-dt_mr1m.
itab_zycie033-stgrd = /pws/zycbt007-percorr.
ELSE.
itab_zycie033-budat = /pws/zycie006-dt_mr1m.
itab_zycie033-stgrd = /pws/zycbt007-perencer .
ENDIF.
APPEND itab_zycie033.
* >> Início da inclusão: FORM ESTORN_MIRO_LA
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_MR8M' .
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
IF e_subrc EQ 0.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_MR8M'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = itab_zycie033
t_campo = itab_zycit034
t_zycit032 = itab_zycit032
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
...
...
MESSAGE i030 WITH v_belnr_ant.
IF v_parcela = 'X'.
CLEAR: itab_zycit132.
MODIFY itab_zycit132 TRANSPORTING miro status
WHERE belnr_mr1m EQ /pws/zycie006-belnr_mr1m.
ENDIF.
PERFORM clear_date_batch.
CLEAR v_mr1m_ok.
ELSE.
v_erro = 'X'.
* >> Início da inclusão: FORM ESTORN_MIRO_LA
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM ESTORN_MIRO_LA
ELSEIF e_subrc EQ '8'.
EXIT.
ELSE.
v_erro = 'X'.
* << Fim da inclusão
ENDIF.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI003
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 176
Texto: (46 caracteres)
"É necessario criar a ANA para lançar impostos!"
Comprimento máximo: 46
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 176
Texto: (41 caracteres)
"Es necesario crear ANA para lanzar tasas!"
Comprimento máximo: 46
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 177
Texto: (41 caracteres)
"Não é possivel ratear o valor do imposto:"
Comprimento máximo: 41
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 177
Texto: (39 caracteres)
"No es posible ratear el valor del tasa:"
Comprimento máximo: 41