Módulo: CÂMBIO FINANCEIRO
Funcionalidade: Remessa
Data/Hora da Publicação: 03/07/2007 00:00:00
Data/Hora Última Alteração: 18/02/2011 13:47:34
Descrição da Nota: REMESSA - CALCULO DE ALIQUOTA DE ISS PARA PIS E COFINS.
Sintoma
Na Remessa Financeira quando temos tributos de PIS e/ou COFINS. A composição da base de cálculo
desses tributos utiliza a alíquota do ISS, caso o ISS não seja cadastrado na table control da
remessa, o sistema deverá buscar a alíquota do ISS na tabela /PWS/ZYCAT024.
Solução
Ajuste efetuado, onde os valores de PIS e COFINS para que considerem o ISS da tabela ZYCAT024 caso
não seja preenchido na Table Control.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04083 Data: 03/07/2007 Hora: 09:29:24
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04083
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00002
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01231 - 00001 - 6.0 - 00023 - REMESSA - IMPOSTOS NOVOS
----------------------------------------------------------------------------------------------------
REMESSA - CALCULO DE ALIQUOTA DE ISS PARA PIS E COFINS.
----------------------------------------------------------------------------------------------------
Palavras Chave:
REMESSA - CALCULO DE ALIQUOTA DE ISS PARA PIS E COFINS.
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCA109I01
REPS /PWS/MZYCA109TOP
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCA109I01
...
PERFORM atualiza_itab_rateio
TABLES itab_zycbt141_p
USING tc_principal-current_line.
WHEN '0106'.
PERFORM atualiza_itab_rateio
TABLES itab_zycbt141_i
USING tc_imposto-current_line.
ENDCASE.
ENDMODULE.
MODULE consiste_valores INPUT.
* >> Início da inclusão: MODULE CONSISTE_VALORES
DATA: v_aliq TYPE /pws/zycat024-aliq.
* << Fim da inclusão
CHECK NOT /pws/zycae025-tpimp IS INITIAL AND
v_status_s NE 0.
READ TABLE itab_zycat024 WITH KEY bukrs = /pws/zycbe124-bukrs
tpimp = /pws/zycae025-tpimp.
CHECK sy-subrc = 0.
IF /pws/zycae025-aliqgera IS INITIAL OR
sy-tcode EQ '/PWS/ZYCB109_C'.
/pws/zycae025-aliqgera = itab_zycat024-aliq.
ENDIF.
IF ( ( /pws/zycbe124-dtvencto NE v_dtvencto_ant AND
...
...
MESSAGE i061 WITH /pws/zycae025-tpimp text-173 text-174.
ELSEIF itab_zycat024-altera_base IS INITIAL OR
/pws/zycae025-basecalc IS INITIAL.
CLEAR itab_zycat025-advalorem.
v_advalorem = 100.
v_advalorem2 = 100.
READ TABLE itab_zycat025 WITH KEY tpimp(3) = 'ISS'.
IF sy-subrc = 0.
v_advalorem = v_advalorem + itab_zycat025-advalorem.
ELSE.
* >> Início da exclusão: MODULE CONSISTE_VALORES
v_advalorem = v_advalorem + /pws/zycbe124-aliqiss.
* << Fim da exclusão
* >> Início da inclusão: MODULE CONSISTE_VALORES
SELECT SINGLE aliq FROM /pws/zycat024
INTO v_aliq
WHERE bukrs = /pws/zycbe124-bukrs
AND tpimp = 'ISS'.
v_advalorem = v_advalorem + v_aliq.
* << Fim da inclusão
ENDIF.
v_advalorem2 = v_advalorem2 - /pws/zycae025-advalorem.
READ TABLE itab_zycat025 WITH KEY tpimp(6) = 'COFINS'.
IF sy-subrc = 0.
v_advalorem2 = v_advalorem2 - itab_zycat025-advalorem.
ENDIF.
/pws/zycae025-basecalc = /pws/zycbe124-vlme *
( v_advalorem / v_advalorem2 ).
v_basecalc_pis = /pws/zycae025-basecalc.
ENDIF.
...
...
MESSAGE i061 WITH /pws/zycae025-tpimp text-173 text-174.
ELSEIF itab_zycat024-altera_base IS INITIAL OR
/pws/zycae025-basecalc IS INITIAL.
CLEAR itab_zycat025-advalorem.
v_advalorem = 100.
v_advalorem2 = 100.
READ TABLE itab_zycat025 WITH KEY tpimp(3) = 'ISS'.
IF sy-subrc = 0.
v_advalorem = v_advalorem + itab_zycat025-advalorem.
ELSE.
* >> Início da exclusão: MODULE CONSISTE_VALORES
v_advalorem = v_advalorem + /pws/zycbe124-aliqiss.
* << Fim da exclusão
* >> Início da inclusão: MODULE CONSISTE_VALORES
SELECT SINGLE aliq FROM /pws/zycat024
INTO v_aliq
WHERE bukrs = /pws/zycbe124-bukrs
AND tpimp = 'ISS'.
v_advalorem = v_advalorem + v_aliq.
* << Fim da inclusão
ENDIF.
v_advalorem2 = v_advalorem2 - /pws/zycae025-advalorem.
READ TABLE itab_zycat025 WITH KEY tpimp(3) = 'PIS'.
IF sy-subrc = 0.
v_advalorem2 = v_advalorem2 - itab_zycat025-advalorem.
ENDIF.
/pws/zycae025-basecalc = /pws/zycbe124-vlme *
( v_advalorem / v_advalorem2 ).
v_basecalc_cofins = /pws/zycae025-basecalc.
ENDIF.
...
...
itab_zycat025-basecalc IS INITIAL ) OR
( v_control_pi EQ 1 AND
sy-tcode EQ '/PWS/ZYCB109_C' ) ).
CLEAR itab_zycat025_aux2-advalorem.
v_advalorem = 100.
v_advalorem2 = 100.
READ TABLE itab_zycat025_aux2 WITH KEY tpimp(3) = 'ISS'.
IF sy-subrc = 0.
v_advalorem = v_advalorem + itab_zycat025_aux2-advalorem.
ELSE.
* >> Início da exclusão: MODULE CONTROLA_IMPOSTOS
v_advalorem = v_advalorem + /pws/zycbe124-aliqiss.
* << Fim da exclusão
* >> Início da inclusão: MODULE CONTROLA_IMPOSTOS
SELECT SINGLE aliq FROM /pws/zycat024
INTO v_aliq
WHERE bukrs = /pws/zycbe124-bukrs
AND tpimp = 'ISS'.
v_advalorem = v_advalorem + v_aliq.
* << Fim da inclusão
ENDIF.
v_advalorem2 = v_advalorem2 - itab_zycat025-advalorem.
READ TABLE itab_zycat025_aux2 WITH KEY tpimp(6) = 'COFINS'.
IF sy-subrc = 0.
v_advalorem2 = v_advalorem2 - itab_zycat025_aux2-advalorem.
ENDIF.
itab_zycat025-basecalc = /pws/zycbe124-vlme *
( v_advalorem / v_advalorem2 ).
ENDIF.
v_basecalc_pis = itab_zycat025-basecalc.
...
...
itab_zycat025-basecalc IS INITIAL ) OR
( v_control_co EQ 1 AND
sy-tcode EQ '/PWS/ZYCB109_C' ) ).
CLEAR itab_zycat025_aux2-advalorem.
v_advalorem = 100.
v_advalorem2 = 100.
READ TABLE itab_zycat025_aux2 WITH KEY tpimp(3) = 'ISS'.
IF sy-subrc = 0.
v_advalorem = v_advalorem + itab_zycat025_aux2-advalorem.
ELSE.
* >> Início da exclusão: MODULE CONTROLA_IMPOSTOS
v_advalorem = v_advalorem + /pws/zycbe124-aliqiss.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: MODULE CONTROLA_IMPOSTOS
SELECT SINGLE aliq FROM /pws/zycat024
INTO v_aliq
WHERE bukrs = /pws/zycbe124-bukrs
AND tpimp = 'ISS'.
v_advalorem = v_advalorem + v_aliq.
ENDIF..
* << Fim da inclusão
v_advalorem2 = v_advalorem2 - itab_zycat025-advalorem.
READ TABLE itab_zycat025_aux2 WITH KEY tpimp(3) = 'PIS'.
IF sy-subrc = 0.
v_advalorem2 = v_advalorem2 - itab_zycat025_aux2-advalorem.
ENDIF.
itab_zycat025-basecalc = /pws/zycbe124-vlme *
( v_advalorem / v_advalorem2 ).
ENDIF.
v_basecalc_cofins = itab_zycat025-basecalc.
itab_zycat025-vlimpme =
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCA109TOP
...
/pws/zyglt343,
/pws/zyglt340,
/pws/zyglt377,
/pws/zyglt321,
rm06b,
t16fe,
j_1bbranch,
adrc,
tcurx,
afko,
* >> Início da exclusão:
afvc.
* << Fim da exclusão
* >> Início da inclusão:
afvc,
/pws/zycat024.
* << Fim da inclusão
DATA:
wa_zycbt031a LIKE /pws/zycbe031,
wa_vbfa LIKE vbfa,
wa_bkpf LIKE bkpf,
wa_rbkp LIKE rbkp.
DATA: BEGIN OF itab_bseg OCCURS 0.
INCLUDE STRUCTURE bseg.
DATA : END OF itab_bseg.
DATA: BEGIN OF itab_bseg_aux OCCURS 0.
INCLUDE STRUCTURE bseg.
...