Módulo: CÂMBIO FINANCEIRO
Funcionalidade: Remessa
Data/Hora da Publicação: 17/05/2007 00:00:00
Data/Hora Última Alteração: 18/02/2011 13:47:16
Descrição da Nota: REMESSA - EXIT REM003 - BASE DE CÁLCULO IMPOSTOS
Sintoma
Permitir alterar base de cálculo de todos impostos da Remessa, através da exit REM003.
Solução
Permitir utilizar exit REm003 para todos impostos
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03700 Data: 17/05/2007 Hora: 12:07:45
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03700
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00166
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
00421 - 00001 - 6.0 - 00022 - EXIT NA REMESSA FINANCEIRA DE PAGAMENTO PARA CÁLCULO DO CIDE E IS
00429 - 00002 - 6.0 - 00022 - PASSAGEM DE PARÂMETROS DO INCLUDE PARA A EXECUÇÃO DA EXIT
01231 - 00003 - 6.0 - 00023 - REMESSA - IMPOSTOS NOVOS
----------------------------------------------------------------------------------------------------
REMESSA - EXIT REM003 - BASE DE CÁLCULO IMPOSTOS
----------------------------------------------------------------------------------------------------
Palavras Chave:
REMESSA - EXIT REM003 - BASE DE CÁLCULO IMPOSTOS
IRRF COFINS PIS ISS IOF CIDE
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCA109F01
REPS /PWS/MZYCA109I01
REPS /PWS/MZYCA109TOP
REPS /PWS/MZYCA109X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCA109F01
...
DELETE itab_zycat025.
DELETE itab_zycbt141_i WHERE tpimp = itab_zycat025-tpimp.
IF itab_zycat025-tpimp(4) = 'CIDE'.
CLEAR v_control_ci.
ELSEIF itab_zycat025-tpimp(3) = 'ISS'.
CLEAR v_control_is.
ELSEIF itab_zycat025-tpimp(3) = 'PIS'.
CLEAR v_control_pi.
ELSEIF itab_zycat025-tpimp(6) = 'COFINS'.
CLEAR v_control_co.
* >> Início da inclusão: FORM ELIMINA_ITEM_IMP
ELSEIF itab_zycat025-tpimp(3) = 'IOF'.
CLEAR v_control_io.
ELSEIF itab_zycat025-tpimp(4) = 'IRRF'.
CLEAR v_control_ir.
* << Fim da inclusão
ENDIF.
ENDLOOP.
ENDFORM.
FORM set_mc_rateio_imposto_conta.
TYPES: BEGIN OF shlp_intdescr_t ,
issimple LIKE dd30v-issimple ,
hotkey LIKE dd30v-hotkey ,
selmtype LIKE dd30v-selmtype ,
selmethod LIKE dd30v-selmethod ,
texttab LIKE dd30v-texttab ,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCA109I01
...
( v_control_ci EQ 1 AND
sy-tcode EQ '/PWS/ZYCB109_C' ) ).
READ TABLE itab_zycat025_aux2 WITH KEY tpimp(4) = 'IRRF'.
IF sy-subrc = 0 AND itab_zycat025_aux2-dedfat = 'X' AND
/pws/zycbe124-vlme => itab_zycat025_aux2-vlimpme.
v_valorme = /pws/zycbe124-vlme - itab_zycat025_aux2-vlimpme.
ELSE.
v_valorme = /pws/zycbe124-vlme.
ENDIF.
READ TABLE itab_zyglt100 WITH KEY zexit = 'REM003' BINARY SEARCH.
* >> Início da exclusão: MODULE CONTROLA_IMPOSTOS
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: MODULE CONTROLA_IMPOSTOS
IF sy-subrc EQ 0 AND NOT itab_zyglt100-zexit_ativa IS INITIAL.
* << Fim da inclusão
PERFORM (itab_zyglt100-formulario)
IN PROGRAM (itab_zyglt100-programa).
* >> Início da exclusão: MODULE CONTROLA_IMPOSTOS
ENDIF.
* << Fim da exclusão
ELSE.
IF itab_zycat025-reajbase = 'X'.
itab_zycat025-basecalc = v_valorme /
( ( 100 - itab_zycat025-advalorem ) / 100 ).
ELSE.
...
...
/pws/zycae025-vlimpmi = v_vlme * v_kursf.
ENDIF.
ENDIF.
MODIFY itab_zycat025 TRANSPORTING basecalc vlimpme vlimpmi
WHERE tpimp(4) = 'CIDE'.
ENDIF.
READ TABLE itab_zycat025 WITH KEY tpimp(3) = 'ISS'.
IF sy-subrc = 0.
v_control_is = v_control_is + 1.
READ TABLE itab_zyglt100 WITH KEY zexit = 'REM003' BINARY SEARCH.
* >> Início da exclusão: MODULE CONTROLA_IMPOSTOS
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: MODULE CONTROLA_IMPOSTOS
IF sy-subrc EQ 0 AND NOT itab_zyglt100-zexit_ativa IS INITIAL.
* << Fim da inclusão
PERFORM (itab_zyglt100-formulario)
IN PROGRAM (itab_zyglt100-programa).
* >> Início da exclusão: MODULE CONTROLA_IMPOSTOS
ENDIF.
* << Fim da exclusão
ELSE.
READ TABLE itab_zycat024 WITH KEY bukrs = /pws/zycbe124-bukrs
tpimp = itab_zycat025-tpimp.
IF sy-subrc EQ 0 AND
( ( itab_zycat024-altera_base IS INITIAL OR
...
...
NOT v_parafator IS INITIAL.
itab_zycat025-vlimpmi = ( ( v_kursf / v_defator ) * v_parafator )
* v_vlme.
ELSE.
IF NOT v_kursf IS INITIAL.
/pws/zycae025-vlimpmi = v_vlme * v_kursf.
ENDIF.
ENDIF.
MODIFY itab_zycat025 TRANSPORTING basecalc vlimpme vlimpmi
WHERE tpimp(6) = 'COFINS'.
* >> Início da inclusão: MODULE CONTROLA_IMPOSTOS
ENDIF.
LOOP AT itab_zycat025 WHERE tpimp(4) = 'IRRF'
OR tpimp(3) = 'IOF'
OR tpimp(3) = 'PIS'
OR tpimp(6) = 'COFINS'.
READ TABLE itab_zyglt100 WITH KEY zexit = 'REM003' BINARY SEARCH.
IF sy-subrc EQ 0 AND NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario)
IN PROGRAM (itab_zyglt100-programa).
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: MODULE CONTROLA_IMPOSTOS
ENDLOOP.
* << Fim da inclusão
ENDMODULE.
MODULE set_mc_rateio_imposto_conta INPUT.
PERFORM set_mc_rateio_imposto_conta.
ENDMODULE.
MODULE consiste_tpimp INPUT.
IF NOT /pws/zycbe141-tpimp IS INITIAL AND v_status_s NE 0.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCA109TOP
...
v_ano LIKE t009b-bdatj,
v_monat LIKE t001b-frpe1,
v_lib(1) TYPE c,
okcode LIKE sy-ucomm,
v_totdep LIKE /pws/zyglt342-valorinc,
v_aliqpis LIKE /pws/zycbt124-aliqpis,
v_aliqcofins LIKE /pws/zycbt124-aliqcofins,
v_aliqiss LIKE /pws/zycbt124-aliqiss,
v_kursf LIKE /pws/zycbe124-kursf,
v_branco TYPE c,
* >> Início da exclusão:
v_advalorem LIKE /pws/zycat025-advalorem,
v_advalorem2 LIKE /pws/zycat025-advalorem,
* << Fim da exclusão
v_competencia TYPE c,
v_dif LIKE /pws/zycbt124-vlme,
v_msg(50) TYPE c,
v_estorna TYPE c,
v_reducao LIKE /pws/zycbt124-vlme,
v_dtvencto_ant LIKE /pws/zycbt124-dtvencto,
v_cred_imp LIKE /pws/zycat024-credito_imp,
* >> Início da exclusão:
v_basecalc_irrf LIKE /pws/zycat025-basecalc,
v_basecalc_cide LIKE /pws/zycat025-basecalc,
v_basecalc_iof LIKE /pws/zycat025-basecalc,
v_basecalc_iss LIKE /pws/zycat025-basecalc,
v_basecalc_pis LIKE /pws/zycat025-basecalc,
v_basecalc_cofins LIKE /pws/zycat025-basecalc,
v_defator LIKE tcurr-ffact,
v_parafator LIKE tcurr-ffact,
v_control_ci(10) TYPE n,
v_control_is(10) TYPE n,
v_control_pi(10) TYPE n,
v_control_co(10) TYPE n,
* << Fim da exclusão
v_indice TYPE i.
DATA: v_nome_campo(35) TYPE c,
v_comp(35) TYPE c,
v_cod_grupo LIKE /pws/zyglt320-cod_grupo,
cont TYPE i VALUE 0,
v_tela LIKE sy-ucomm,
wa_zycbe141_aux LIKE /pws/zycbe141,
v_dtlanc(10) TYPE c,
v_vlme_assoc TYPE /pws/zycbt124-vlme,
v_sld_associar TYPE /pws/zycbt124-sld_associar.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCA109X01
...
INCLUDE STRUCTURE /pws/zyglt321.
DATA: END OF itab_zyglt321.
DATA: BEGIN OF itab_zycat025_aux OCCURS 0.
INCLUDE STRUCTURE /pws/zycat025.
DATA: mark(1) TYPE c.
DATA: END OF itab_zycat025_aux.
DATA: BEGIN OF itab_zycat025_aux3 OCCURS 0.
INCLUDE STRUCTURE /pws/zycat025.
DATA: mark(1) TYPE c.
DATA: END OF itab_zycat025_aux3.
* >> Início da inclusão:
data: v_basecalc_irrf TYPE /pws/zycat025-basecalc,
v_basecalc_cide TYPE /pws/zycat025-basecalc,
v_basecalc_iof TYPE /pws/zycat025-basecalc,
v_basecalc_iss TYPE /pws/zycat025-basecalc,
v_basecalc_pis TYPE /pws/zycat025-basecalc,
v_basecalc_cofins TYPE /pws/zycat025-basecalc,
v_defator TYPE tcurr-ffact,
v_parafator TYPE tcurr-ffact,
v_advalorem TYPE /pws/zycat025-advalorem,
v_advalorem2 TYPE /pws/zycat025-advalorem,
v_control_ci(10) TYPE n,
v_control_is(10) TYPE n,
v_control_pi(10) TYPE n,
v_control_co(10) TYPE n,
v_control_ir(10) TYPE n,
v_control_io(10) TYPE n.
* << Fim da inclusão
DATA: END OF COMMON PART.