Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 08/09/2006 00:00:00
Data/Hora Última Alteração: 20/06/2011 13:32:27
Descrição da Nota: RATEIO DE ICMS NA NF INCORRETO, NÃO CONSIDERANDO SUSPENSÃO DE IMPOSTOS.
Sintoma
A DI não está respeitando o parâmetro de base cheia da tabela /pws/ZYCIT062, para icm diferido.
Solução
Atualização do programa da DI para que nos casos de ICMS Diferido o sistema respeite o flegue da
tabela ZYCIT062 no momento de efetuar o cálculo da Base de ICMS.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02067 Data: 08/09/2006 Hora: 10:29:53
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02067
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00024
Agrupamento : 00129
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01520 - 00002 - 6.0 - 00023 - INCLUSÃO DA NOVA TELA PIS/COFINS NA DI
02034 - 00001 - 6.0 - 00024 - CRIAÇÃO DE UMA DI,IMPORTAÇÃO É SUSPENSO,PIS E O COFINS ESTÃO ZERA
----------------------------------------------------------------------------------------------------
RATEIO DE ICMS NA NF INCORRETO, NÃO CONSIDERANDO SUSPENSÃO DE IMPOSTOS.
----------------------------------------------------------------------------------------------------
Palavras Chave:
RATEIO DE DESPESAS - SUSPENSÃO DE IMPOSTOS - VALORES ERRADOS
NOTA FISCAL - VALORES DE II E IPI - DESPESAS DI
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI016F01
REPS /PWS/MZYCI023F04
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
APPEND it_zycee007.
CLEAR it_zycee007.
ENDFORM.
FORM visualiza_rateio.
DATA: v_programa LIKE /pws/zycit036-origem VALUE 'NF'.
* >> Início da exclusão: FORM VISUALIZA_RATEIO
DATA: v_vlpis LIKE /pws/zycit100-vlpis ,
v_vlcofins LIKE /pws/zycit100-vlcofins,
v_vlii LIKE /pws/zycit100-vlii,
v_vlipi LIKE /pws/zycit100-vlipi,
v_vlicms LIKE /pws/zycit100-vlicms.
CLEAR itab_zycit049_a.
LOOP AT itab_zycit042.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp .
IF sy-subrc EQ 0.
v_vlpis = v_vlpis + itab_zycit100-vlpis.
v_vlcofins = v_vlcofins + itab_zycit100-vlcofins.
v_vlii = v_vlii + itab_zycit100-vlii.
v_vlipi = v_vlipi + itab_zycit100-vlipi.
v_vlicms = v_vlicms + itab_zycit100-vlicms.
ENDIF.
ENDLOOP.
itab_zycit049_a-nrseq = itab_zycit100-nrseqdi.
itab_zycit049_a-tpdesp = '004'.
itab_zycit049_a-descr = 'PIS'.
itab_zycit049_a-waers = itab_zycit042-waersb.
itab_zycit049_a-vlreal = v_vlpis.
IF NOT itab_zycit049_a-vlreal IS INITIAL.
APPEND itab_zycit049_a.
ENDIF.
CLEAR itab_zycit049_a.
itab_zycit049_a-nrseq = itab_zycit100-nrseqdi.
itab_zycit049_a-tpdesp = '005'.
itab_zycit049_a-descr = 'COFINS'.
itab_zycit049_a-waers = itab_zycit042-waersb.
itab_zycit049_a-vlreal = v_vlcofins.
IF NOT itab_zycit049_a-vlreal IS INITIAL.
APPEND itab_zycit049_a.
ENDIF.
CLEAR itab_zycit049_a.
itab_zycit049_a-nrseq = itab_zycit100-nrseqdi.
itab_zycit049_a-tpdesp = '003'.
itab_zycit049_a-descr = 'II'.
itab_zycit049_a-waers = itab_zycit042-waersb.
itab_zycit049_a-vlreal = v_vlii.
IF NOT itab_zycit049_a-vlreal IS INITIAL.
APPEND itab_zycit049_a.
ENDIF.
CLEAR itab_zycit049_a.
itab_zycit049_a-nrseq = itab_zycit100-nrseqdi.
itab_zycit049_a-tpdesp = '001'.
itab_zycit049_a-descr = 'IPI'.
itab_zycit049_a-waers = itab_zycit042-waersb.
itab_zycit049_a-vlreal = v_vlipi.
IF NOT itab_zycit049_a-vlreal IS INITIAL.
APPEND itab_zycit049_a.
ENDIF.
CLEAR itab_zycit049_a.
itab_zycit049_a-nrseq = itab_zycit100-nrseqdi.
itab_zycit049_a-tpdesp = '002'.
itab_zycit049_a-descr = 'ICMS'.
itab_zycit049_a-waers = itab_zycit042-waersb.
itab_zycit049_a-vlreal = v_vlicms.
IF NOT itab_zycit049_a-vlreal IS INITIAL.
APPEND itab_zycit049_a.
ENDIF.
CLEAR itab_zycit049_a.
CLEAR itab_desp_funcao.
REFRESH itab_desp_funcao.
LOOP AT itab_zycit049_a.
MOVE: itab_zycit049_a-tpdesp TO itab_desp_funcao-tpdesp,
itab_zycit049_a-vlreal TO itab_desp_funcao-netpr,
itab_zycit049_a-waers TO itab_desp_funcao-waers.
READ TABLE itab_zycit100 WITH KEY nrseqdi = itab_zycit049-nrseq.
MOVE: itab_zycit100-nrseq TO itab_desp_funcao-nrseq,
itab_zycit100-ebeln TO itab_desp_funcao-ebeln,
itab_zycit100-ebelp TO itab_desp_funcao-ebelp.
APPEND itab_desp_funcao.
ENDLOOP.
* << Fim da exclusão
IF sy-dynnr = '0200'.
v_visualiza = 'N'.
CALL FUNCTION '/PWS/ZYCI_RATEIO_CUSTO'
EXPORTING
v_programa = v_programa
...
...
itab_despesa = itab_desp_funcao
itab_zycit003 = itab_zycit003
itab_zycit100 = itab_zycit100aux
itab_zycit036_plan = itab_zycit036_plan.
ENDIF.
* >> Início da exclusão: FORM VISUALIZA_RATEIO
LOOP AT itab_zycit049_a.
DELETE itab_zycit049_a WHERE mandt IS initial.
ENDLOOP.
* << Fim da exclusão
ENDFORM.
FORM ver_rateio.
DATA: v_programa LIKE /pws/zycit036-origem VALUE 'NF'.
SELECT * FROM /pws/zycit100
INTO TABLE itab_zycit100aux
...
...
AND ebelp = itab_zycit100aux-ebelp
AND origem = 'FAT'
AND ( codigo = 'FOB' OR
codigo = 'CIF' OR
codigo = 'C&F' ).
* >> Início da exclusão: FORM VER_RATEIO
ENDIF.
DATA: v_vlpis LIKE /pws/zycit100-vlpis ,
v_vlcofins LIKE /pws/zycit100-vlcofins,
v_vlii LIKE /pws/zycit100-vlii,
v_vlipi LIKE /pws/zycit100-vlipi,
v_vlicms LIKE /pws/zycit100-vlicms.
CLEAR itab_zycit049_a.
LOOP AT itab_zycit042.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp .
IF sy-subrc EQ 0.
v_vlpis = v_vlpis + itab_zycit100-vlpis.
v_vlcofins = v_vlcofins + itab_zycit100-vlcofins.
v_vlii = v_vlii + itab_zycit100-vlii.
v_vlipi = v_vlipi + itab_zycit100-vlipi.
v_vlicms = v_vlicms + itab_zycit100-vlicms.
ENDIF.
ENDLOOP.
itab_zycit049_a-nrseq = itab_zycit100-nrseqdi.
itab_zycit049_a-tpdesp = '004'.
itab_zycit049_a-descr = 'PIS'.
itab_zycit049_a-waers = itab_zycit042-waersb.
itab_zycit049_a-vlreal = v_vlpis.
IF NOT itab_zycit049_a-vlreal IS INITIAL.
APPEND itab_zycit049_a.
ENDIF.
CLEAR itab_zycit049_a.
itab_zycit049_a-nrseq = itab_zycit100-nrseqdi.
itab_zycit049_a-tpdesp = '005'.
itab_zycit049_a-descr = 'COFINS'.
itab_zycit049_a-waers = itab_zycit042-waersb.
itab_zycit049_a-vlreal = v_vlcofins.
IF NOT itab_zycit049_a-vlreal IS INITIAL.
APPEND itab_zycit049_a.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM VER_RATEIO
CLEAR itab_zycit049_a.
itab_zycit049_a-nrseq = itab_zycit100-nrseqdi.
itab_zycit049_a-tpdesp = '003'.
itab_zycit049_a-descr = 'II'.
itab_zycit049_a-waers = itab_zycit042-waersb.
itab_zycit049_a-vlreal = v_vlii.
IF NOT itab_zycit049_a-vlreal IS INITIAL.
APPEND itab_zycit049_a.
ENDIF.
CLEAR itab_zycit049_a.
itab_zycit049_a-nrseq = itab_zycit100-nrseqdi.
itab_zycit049_a-tpdesp = '001'.
itab_zycit049_a-descr = 'IPI'.
itab_zycit049_a-waers = itab_zycit042-waersb.
itab_zycit049_a-vlreal = v_vlipi.
IF NOT itab_zycit049_a-vlreal IS INITIAL.
APPEND itab_zycit049_a.
ENDIF.
CLEAR itab_zycit049_a.
itab_zycit049_a-nrseq = itab_zycit100-nrseqdi.
itab_zycit049_a-tpdesp = '002'.
itab_zycit049_a-descr = 'ICMS'.
itab_zycit049_a-waers = itab_zycit042-waersb.
itab_zycit049_a-vlreal = v_vlicms.
IF NOT itab_zycit049_a-vlreal IS INITIAL.
APPEND itab_zycit049_a.
ENDIF.
CLEAR itab_zycit049_a.
CLEAR itab_desp_funcao.
REFRESH itab_desp_funcao.
LOOP AT itab_zycit049_a.
MOVE: itab_zycit049_a-tpdesp TO itab_desp_funcao-tpdesp,
itab_zycit049_a-vlreal TO itab_desp_funcao-netpr,
itab_zycit049_a-waers TO itab_desp_funcao-waers.
READ TABLE itab_zycit100 WITH KEY nrseqdi = itab_zycit049-nrseq.
MOVE: itab_zycit100-nrseq TO itab_desp_funcao-nrseq,
itab_zycit100-ebeln TO itab_desp_funcao-ebeln,
itab_zycit100-ebelp TO itab_desp_funcao-ebelp.
APPEND itab_desp_funcao.
ENDLOOP.
* << Fim da exclusão
CALL FUNCTION '/PWS/ZYCI_RATEIO_CUSTO'
EXPORTING
v_programa = v_programa
v_visualiza = v_visualiza
v_bukrs = /pws/zycit085-bukrs
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F04
...
a_cofcalc, a_cofredu, a_cofdevi, a_cofrec.
CASE /pws/zycie100a-codregtripiscofi.
WHEN '3' OR '5'.
IF /pws/zycie100a-aliqpis IS INITIAL.
a_pisdevi = a_piscalc =
* >> Início da exclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-advalpis / 100 ) * t_pisbs ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-advalpis / 100 ) * /pws/zycie100a-basepis ).
* << Fim da inclusão
ELSE.
a_pisdevi = a_piscalc =
* >> Início da exclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-aliqpis / 100 ) * t_pisbs ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-aliqpis / 100 ) * /pws/zycie100a-aliqpis ).
* << Fim da inclusão
ENDIF.
IF /pws/zycie100a-aliqcof IS INITIAL.
a_cofdevi = a_cofcalc =
( ( /pws/zycie100a-advalcofins / 100 )
* >> Início da exclusão: FORM CALC_PISCOFINS
* t_cofinsbs ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_PISCOFINS
* /pws/zycie100a-basecofins ) .
* << Fim da inclusão
ELSE.
a_cofdevi = a_cofcalc =
* >> Início da exclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-aliqcof / 100 ) * t_cofinsbs ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-aliqcof / 100 )
* /pws/zycie100a-basecofins ) .
* << Fim da inclusão
ENDIF.
CLEAR : t_pis, a_pisredu , t_cofins , a_cofredu.
WHEN '4'.
IF /pws/zycie100a-basredpis IS INITIAL.
IF /pws/zycie100a-aliqpis IS INITIAL.
a_piscalc =
* >> Início da exclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-advalpis / 100 ) * t_pisbs ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-advalpis / 100 )
* /pws/zycie100a-basepis ) .
* << Fim da inclusão
ELSE.
a_piscalc =
* >> Início da exclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-aliqpis / 100 ) * t_pisbs ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-aliqpis / 100 )
* /pws/zycie100a-basepis ) .
* << Fim da inclusão
ENDIF.
ELSE.
a_piscalc =
* >> Início da exclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-basredpis / 100 ) * t_pisbs ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-basredpis / 100 )
* /pws/zycie100a-basepis ) .
* << Fim da inclusão
ENDIF.
IF /pws/zycie100a-basredcof IS INITIAL.
IF /pws/zycie100a-aliqcof IS INITIAL.
a_cofcalc =
* >> Início da exclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-advalcofins / 100 ) * t_cofinsbs ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-advalcofins / 100 )
* /pws/zycie100a-basecofins ) .
* << Fim da inclusão
ELSE.
a_cofcalc =
* >> Início da exclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-aliqcof / 100 ) * t_cofinsbs ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-aliqcof / 100 )
* /pws/zycie100a-basecofins ) .
* << Fim da inclusão
ENDIF.
ELSE.
a_cofcalc =
* >> Início da exclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-basredcof / 100 ) * t_cofinsbs ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-basredcof / 100 )
* /pws/zycie100a-basecofins ) .
* << Fim da inclusão
ENDIF.
t_pis = a_pisdevi = a_pisredu =
( /pws/zycie100a-basepis / 100 ) * /pws/zycie100a-basredpis .
t_cofins = a_cofdevi = a_cofredu =
( /pws/zycie100a-basecofins / 100 ) * /pws/zycie100a-basredcof.
WHEN OTHERS.
IF /pws/zycie100a-aliqpis IS INITIAL.
t_pis = a_pisredu = a_pisdevi = a_piscalc =
* >> Início da exclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-advalpis / 100 ) * t_pisbs ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-advalpis / 100 )
* /pws/zycie100a-basepis ) .
* << Fim da inclusão
ELSE.
t_pis = a_pisredu = a_pisdevi = a_piscalc =
* >> Início da exclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-aliqpis / 100 ) * t_pisbs ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-aliqpis / 100 )
* /pws/zycie100a-basepis ) .
* << Fim da inclusão
ENDIF.
IF /pws/zycie100a-aliqcof IS INITIAL.
t_cofins = a_cofredu = a_cofdevi = a_cofcalc =
( ( /pws/zycie100a-advalcofins / 100 )
* >> Início da exclusão: FORM CALC_PISCOFINS
* t_cofinsbs ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_PISCOFINS
* /pws/zycie100a-basecofins ) .
* << Fim da inclusão
ELSE.
t_cofins = a_cofredu = a_cofdevi = a_cofcalc =
* >> Início da exclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-aliqcof / 100 ) * t_cofinsbs ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_PISCOFINS
( ( /pws/zycie100a-aliqcof / 100 )
* /pws/zycie100a-basecofins ) .
* << Fim da inclusão
ENDIF.
ENDCASE.
* >> Início da exclusão: FORM CALC_PISCOFINS
/pws/zycie100a-codfunlegpiscofi = '16'.
* << Fim da exclusão
itab_it-pis_calculado = a_piscalc.
itab_it-pis_reduzido = a_pisredu.
itab_it-pis_devido = a_pisdevi.
...