Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 30/04/2014 00:00:00
Data/Hora Última Alteração: 26/05/2014 15:26:38
Descrição da Nota: TRATAMENTO DIFERIMENTO ICMS PARA PARANÁ
Sintoma
Tratamento Diferimento ICMS para Paraná
Solução
Feito tratamento diferenciado de acordo com o regime tributário ICMS = 8
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 13897 Data: 30/04/2014 Hora: 13:46:25
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 13897
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 9.0
Pacote : 00007
Agrupamento : 00170
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02261 - 00001 - 6.0 - 00025 - A NF GLOBAL E COMPLEMENTAR NÃO ESTÁ TRATANDO ICMS DIFERIDO E SUSP
02922 - 00002 - 6.0 - 00026 - CRIADO PARAMETRO PARA LEVAR ICMS REDUZ NO TOTAL DA NF
02972 - 00003 - 6.0 - 00026 - APRESENTAR MENSAGEM NA NOTA FISCAL DE "VALOR ICMS: DIFERIDO"
04644 - 00004 - 7.0 - 00002 - ERRO DI JPY + GRANEL NO VALOR DO SEGURO E VARIAÇÃO DO RODOVIÁRIO
04669 - 00005 - 7.0 - 00003 - DATA DE LANÇAMENTO DO ESTORNO DA NF
04673 - 00006 - 7.0 - 00003 - NA NF NÃO LEVA VALOR DE ICMS, DIFERENÇA NA LINHA DO IPI
04679 - 00007 - 7.0 - 00003 - DI NÃO ESTÁ RESPEITANDO O PARÂMETRO REG_SUSP DA ZYCIT062 P ICMS
04750 - 00008 - 7.0 - 00002 - ERRO RATEIO DESPESAS, VARIAÇÃO CAMBIAL, VLR DO SEGURO, GRANEL DA
04760 - 00009 - 7.0 - 00003 - ACRESCENTAR CAMPOS NA TELA DE REPLICAÇÃO DA DI
04831 - 00010 - 7.0 - 00003 - DESENVOLVER FUNCIONALIDADE FUNDAP NA NF E NA DI
05498 - 00011 - 7.0 - 00004 - NÃO CARREGA BOTÃO FUNDAP
07386 - 00012 - 7.0 - 00007 - PREENCHIMENTO DO MATERIAL NA NOTA FISCAL DE REMESSA
07393 - 00013 - 7.0 - 00007 - ESTÁ LEVANDO VALOR DE ICMS NAS MENSAGENS DA NF MESMO ISENTO
07532 - 00014 - 7.0 - 00007 - MENSAGENS DA NOTA FISCAL ALINHAMENTO DA DESPESA ICMS
07718 - 00015 - 7.0 - 00007 - NOTAS FISCAIS MENSAGENS EM PORTUGUÊS INDEPENDENTE DO IDIOMA LOGAD
08356 - 00016 - 7.0 - 00009 - ADMISSÃO TEMPORÁRIA ARTIGO 373
11528 - 00017 - 8.0 - 00009 - VALOR ICMS COM BASE REDUZIDA FICA INCORRETO
12443 - 00018 - 9.0 - 00001 - INCLUSÃO DO CAMPO ALIQ. REDUZIDA NA PASTA DE ICMS DA DI
13341 - 00019 - 9.0 - 00006 - NÃO CONSIDERA ALIQUOTA REDUZIDA DE ICMS PARA CÁLCULO DE PIS E COF
13570 - 00020 - 9.0 - 00007 - AJUSTE PARA TRATAMENTO DE PROCESSOS DO PARANA LEI N. 14.985/06
----------------------------------------------------------------------------------------------------
TRATAMENTO DIFERIMENTO ICMS PARA PARANÁ
----------------------------------------------------------------------------------------------------
Palavras Chave:
DI - NF - DIFERIMENTO PARCIAL - PARANÁ - LEGISLAÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
TABD /PWS/ZYCIT100
TABD /PWS/ZYCIE100A
REPS /PWS/MZYCI016F01
REPS /PWS/MZYCI023F03
REPS /PWS/MZYCI016X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT100
MODIFICAR TABELA TRANSPARENTE: /PWS/ZYCIT100
*Incluir os seguintes campos ao final da tabela
CAMPOS NOVOS
CAMPOS: TP. CAMPO CH: INI: TAB.VERIF.: TAB.REF.: CPO.RE
BS_ICMS_NF /PWS/ZYCIL307 /PWS/ZYCIE100A WAERSREAL
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE100A
*Incluir os seguintes campos ao final da estrutura
CAMPOS NOVOS
CAMPOS: TP. CAMPO CH: INI: TAB.VERIF.: TAB.REF.: CPO.RE
BS_ICMS_NF /PWS/ZYCIL307 /PWS/ZYCIE100A WAERSREAL
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016X01
...
* >> Início da inclusão:
datA: v_icms_rec type j_1bdytax-base,
v_icms_difp type j_1bdytax-base,
v_bs_icms type j_1bdytax-base,
t_icmsbs type /pws/zycie085-vlfob.
* << Fim da inclusão
DATA: END OF COMMON PART a.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
CONCATENATE 'ICMS ST' v_tamanho v_vldp_x
INTO it_zycee006-msg SEPARATED BY space.
APPEND it_zycee006.
ENDIF.
READ TABLE itab_zycit001 INDEX 1.
IF t615-zolla NE itab_zycit001-padest.
SELECT SINGLE * FROM t615
WHERE land1 EQ t001-land1
AND zolla EQ itab_zycit001-padest.
ENDIF.
* >> Início da inclusão: FORM MENSAGENS_NF
clear: v_icms_rec ,
v_bs_icms ,
v_icms_difp.
* << Fim da inclusão
LOOP AT itab_zycit042_mark.
IF v_fundap NE 'X'.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit042_mark-nrseq
ebeln = itab_zycit042_mark-ebeln
ebelp = itab_zycit042_mark-ebelp .
* >> Início da exclusão: FORM MENSAGENS_NF
IF sy-subrc EQ 0 AND
(
( /pws/zycit085-tpdi EQ 'N' AND
* << Fim da exclusão
* >> Início da inclusão: FORM MENSAGENS_NF
IF sy-subrc EQ 0 .
IF ( ( /pws/zycit085-tpdi EQ 'N' AND
* << Fim da inclusão
NOT '356' CA itab_zycit100-codregtriicms ) OR
( /pws/zycit085-tpdi EQ 'S' AND
* >> Início da exclusão: FORM MENSAGENS_NF
NOT '56' CA itab_zycit100-codregtri )
OR ( '5' EQ itab_zycit100-codregtriicms AND
t615-/pws/estado EQ 'PR' ) ).
* << Fim da exclusão
* >> Início da inclusão: FORM MENSAGENS_NF
NOT '56' CA itab_zycit100-codregtri ) OR
( '5' EQ itab_zycit100-codregtriicms AND
t615-/pws/estado EQ 'PR' ) ).
* << Fim da inclusão
IF itab_zycit100-icms_dif NE 'X'.
v_icms_dif = v_icms_dif + itab_zycit100-vlicms.
ELSE.
v_dif = 'X'.
ENDIF.
* >> Início da inclusão: FORM MENSAGENS_NF
IF itab_zycit100-codregtriicms EQ '8' .
v_icms_rec = v_icms_rec + itab_zycit100-vlicms .
v_bs_icms = v_bs_icms + itab_zycit100-bs_icms_nf.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_zycit042_mark-nrseq
ebeln = itab_zycit042_mark-ebeln
ebelp = itab_zycit042_mark-ebelp .
IF sy-subrc EQ 0.
IF NOT itab_zycit100-aliqicmsr IS INITIAL .
v_icms_difp = v_icms_difp + ( ( itab_zycit100-baseicms *
( itab_zycit003-advalicms / 100 ) ) - itab_zycit100-vlicms ).
ELSEIF itab_zycit003-basred NE '100'.
v_icms_difp = v_icms_difp + ( ( itab_zycit100-bs_icms_nf *
( itab_zycit003-advalicms / 100 ) ) - itab_zycit100-vlicms ).
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM MENSAGENS_NF
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* << Fim da inclusão
ELSE.
READ TABLE itab_zycit480 WITH KEY
nrseq = itab_zycit042_mark-nrseq
ebeln = itab_zycit042_mark-ebeln
ebelp = itab_zycit042_mark-ebelp .
IF sy-subrc EQ 0.
v_icms_dif = v_icms_dif + itab_zycit480-vl_icms.
ENDIF.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM MENSAGENS_NF
IF v_bs_icms NE 0 OR
v_icms_difp NE 0 OR
v_icms_rec NE 0 .
v_ind = v_ind + 1.
WRITE v_bs_icms TO v_dificms CURRENCY itab_zycit049-waers.
v_tamanho = '..........................'.
CONCATENATE 'BC ICMS:' v_tamanho v_dificms
INTO it_zycee006-msg SEPARATED BY space. "#EC NOTEXT
it_zycee006-indice = v_ind.
APPEND it_zycee006.
v_ind = v_ind + 1.
WRITE v_icms_difp TO v_dificms CURRENCY itab_zycit049-waers.
v_tamanho = '....................'.
CONCATENATE 'ICMS Diferido:' v_tamanho v_dificms
INTO it_zycee006-msg SEPARATED BY space. "#EC NOTEXT
it_zycee006-indice = v_ind.
APPEND it_zycee006.
v_ind = v_ind + 1.
WRITE v_icms_rec TO v_dificms CURRENCY itab_zycit049-waers.
v_tamanho = '..................'.
CONCATENATE 'ICMS a Recolher:' v_tamanho v_dificms
INTO it_zycee006-msg SEPARATED BY space. "#EC NOTEXT
it_zycee006-indice = v_ind.
APPEND it_zycee006.
ELSE.
* << Fim da inclusão
IF v_icms_dif NE 0.
v_ind = v_ind + 1.
WRITE v_icms_dif TO v_dificms CURRENCY itab_zycit049-waers.
v_tamanho = '....................'.
CONCATENATE 'Valor do ICMS:' v_tamanho v_dificms
INTO it_zycee006-msg SEPARATED BY space. "#EC NOTEXT
it_zycee006-indice = v_ind.
APPEND it_zycee006.
* >> Início da inclusão: FORM MENSAGENS_NF
ENDIF.
* << Fim da inclusão
ENDIF.
IF v_dif = 'X'.
v_ind = v_ind + 1.
it_zycee006-msg = 'Valor ICMS: Diferido'. "#EC NOTEXT
CLEAR v_dif.
it_zycee006-indice = v_ind.
APPEND it_zycee006.
ENDIF.
IF v_base_dif NE 0.
...
...
IF /pws/zycit001-tpdecl IS INITIAL.
SELECT SINGLE *
FROM /pws/zycit001
WHERE nrseq EQ itab_zycit042-nrseq.
ENDIF.
IF itab_zycit100-icms_dif = 'X' OR
itab_zycit003-basred IS INITIAL.
itab_zycit003-basred = '100'.
v_basred = itab_zycit003-basred.
ENDIF.
* >> Início da exclusão: FORM ATUALIZA_ICMS_UNITARIO
IF NOT /pws/zycit100-aliqicmsr IS INITIAL.
itab_zycit003-advalicms = /pws/zycit100-aliqicmsr.
ENDIF.
* << Fim da exclusão
CLEAR v_advicms.
IF NOT itab_zycit003-advalicms IS INITIAL.
IF NOT itab_zycit003-basred IS INITIAL OR
NOT itab_zycit003-basred EQ '100'.
v_advicms = ( ( itab_zycit003-advalicms / 100 ) *
( itab_zycit003-basred / 100 ) ) .
IF /pws/zycit062-icms_base_red_ar = 'X'.
v_trunc = v_advicms.
v_advicms = v_trunc.
ENDIF.
...
...
it_zycee007-itmtyp = itab_zycit033-tpmat.
READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
READ TABLE itab_zycit100 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
IF NOT itab_zycit100-aliqicmsr IS INITIAL.
* >> Início da inclusão: FORM ITENS_NFNEW
IF itab_zycit100-codregtriicms NE '8' .
* << Fim da inclusão
itab_zycit003-advalicms = itab_zycit100-aliqicmsr.
* >> Início da inclusão: FORM ITENS_NFNEW
ENDIF.
* << Fim da inclusão
ENDIF.
IF t001 IS INITIAL OR /pws/zycit000 IS INITIAL.
SELECT SINGLE * FROM t001 WHERE bukrs = /pws/zycie041-bukrs.
SELECT SINGLE * FROM /pws/zycit000 WHERE land1 EQ t001-land1.
ENDIF.
...
...
IF NOT it_zycee007-taxval IS INITIAL.
it_zycee007-rate = itab_zycit003-advalicms.
ENDIF.
it_zycee007-taxtyp = itab_zycit033-taxtyp.
IF v_fundap EQ 'X' .
PERFORM valores_fundap.
ELSE.
CASE itab_zycit033-tribicms.
WHEN 1.
PERFORM verifica_montante.
* >> Início da inclusão: FORM ITENS_NFNEW
IF itab_zycit100-codregtriicms NE '8'.
* << Fim da inclusão
v_montante1 = itab_zycit100-baseicms.
v_base = v_montante1.
v_excbas = ( v_montante1 / v_basred * 100 ) - v_base.
IF /pws/zycit062-base IS INITIAL AND
v_basred < '100' AND
NOT /pws/zycit062-flag_icms IS INITIAL.
IF /pws/zycit062-tred IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
...
...
ELSE.
IF NOT /pws/zycit062-tred IS INITIAL AND
NOT /pws/zycit062-flag_icms IS INITIAL AND
v_basred < 100.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
v_excbas = v_excbas + ( v_excbas *
( itab_zycit003-advalicms / 100 ) ) .
* >> Início da inclusão: FORM ITENS_NFNEW
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM ITENS_NFNEW
ELSE.
v_montante1 = itab_zycit100-bs_icms_nf.
v_base = v_montante1.
* << Fim da inclusão
ENDIF.
IF itab_zycit100-icms_dif = 'X'.
IF /pws/zycit062-flag_icms = 'X'.
DATA: v_base2 LIKE j_1bdytax-base.
...
...
ENDIF.
v_base_dif = v_base_dif + v_base2.
ENDIF.
it_zycee007-base = v_base.
it_zycee007-c_excbas = v_excbas .
IF /pws/zycit001-meioemba = 'PS'.
v_base_ps = it_zycee007-base + it_zycee007-c_excbas.
ENDIF.
WHEN 2.
PERFORM verifica_montante.
* >> Início da inclusão: FORM ITENS_NFNEW
IF itab_zycit100-codregtriicms NE '8'.
* << Fim da inclusão
v_montante1 = itab_zycit100-baseicms.
* >> Início da inclusão: FORM ITENS_NFNEW
ELSE.
v_montante1 = itab_zycit100-bs_icms_nf.
ENDIF.
* << Fim da inclusão
it_zycee007-c_excbas = v_montante1.
CLEAR: it_zycee007-taxval.
IF itab_zycit100-icms_dif = 'X'.
v_base_dif = v_base_dif + itab_zycit100-baseicms.
ENDIF.
IF /pws/zycit001-meioemba = 'PS'.
v_base_ps = it_zycee007-c_excbas.
ENDIF.
WHEN 3.
PERFORM verifica_montante.
* >> Início da inclusão: FORM ITENS_NFNEW
IF itab_zycit100-codregtriicms NE '8'.
* << Fim da inclusão
v_montante1 = itab_zycit100-baseicms.
* >> Início da inclusão: FORM ITENS_NFNEW
ELSE.
v_montante1 = itab_zycit100-bs_icms_nf.
ENDIF.
* << Fim da inclusão
v_othbas = v_montante1 .
v_excbas = ( v_montante1 / v_basred * 100 ) - v_othbas.
IF /pws/zycit062-base IS INITIAL AND
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
...
FORM load_iicms USING p_tipo.
* >> Início da inclusão: FORM LOAD_IICMS
DATA: v_advdif TYPE /pws/zycie003-advalicms,
v_aliqdif TYPE /pws/zycie003-advalicms.
* << Fim da inclusão
...
...
IF /pws/zycit062-icms_base_red_ar = 'X'.
v_trunc = v_advicms.
v_advicms = v_trunc.
ENDIF.
v_advpis = ( /pws/zycie100a-advalpis / 100 ).
v_advcof = ( /pws/zycie100a-advalcofins / 100 ).
* >> Início da inclusão: FORM LOAD_IICMS
IF /pws/zycie100a-codregtriicms EQ '8'.
v_advdif = /pws/zycie003-advalicms / 100 .
v_aliqdif = /pws/zycie003-advalicms .
ENDIF.
* << Fim da inclusão
IF NOT /pws/zycie100a-aliqicmsr IS INITIAL.
IF /pws/zycit062-bs_pis_cof IS INITIAL.
IF NOT /pws/zycie003-basred IS INITIAL AND
NOT /pws/zycie003-basred EQ '100'.
v_advicms = ( /pws/zycie100a-aliqicmsr / 100 ) *
( /pws/zycie003-basred / 100 ).
IF /pws/zycit062-icms_base_red_ar = 'X'.
v_trunc = v_advicms.
v_advicms = v_trunc.
ENDIF.
...
...
IF /pws/zycie100a-baseicms LT 0.
CLEAR itab_zycit100-baseicms.
ENDIF.
* >> Início da inclusão: FORM LOAD_IICMS
IF /pws/zycie100a-codregtriicms EQ '8'.
itab_it-bs_icms_nf = t_icmsbs .
endif.
* << Fim da inclusão
IF NOT /pws/zycie003-advalicms IS INITIAL AND
NOT /pws/zycie100a-icms_dif EQ 'X'.
IF /pws/zycit062-icms_base_red_ar EQ 'X'.
t_icmsbs_d2 = t_icmsbs = t_icmsbs *
( /pws/zycie003-basred / 100 ).
ELSE.
* >> Início da inclusão: FORM LOAD_IICMS
IF /pws/zycie100a-codregtriicms EQ '8'.
itab_it-bs_icms_nf = itab_it-bs_icms_nf *
( ( v_advdif * 100 ) / v_aliqdif ).
ENDIF.
* << Fim da inclusão
t_icmsbs_d2 = t_icmsbs = t_icmsbs *
( v_advicms * 100 / /pws/zycie003-advalicms ).
ENDIF.
ELSEIF NOT /pws/zycie100a-icms_dif EQ 'X'.
t_icmsbs_d2 = t_icmsbs = t_icmsbs *
( /pws/zycie003-basred / 100 ).
ENDIF.
IF NOT /pws/zycit062-flag_icms IS INITIAL AND
/pws/zycie100a-icms_dif NE 'X'.
IF /pws/zycit062-base IS INITIAL AND
...
...
ENDIF.
IF NOT /pws/zycie003-basred IS INITIAL AND
NOT /pws/zycie003-basred EQ '100'.
IF NOT t_icmsx IS INITIAL.
t_icmsbs = ( t_icmsbs / t_icmsx ).
ENDIF.
ELSE.
IF NOT /pws/zycie100a-codregtriicms EQ '3'.
t_icmsbs_d2 = t_icmsbs = t_icmsbs + t_icms.
ENDIF.
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
IF /pws/zycie100a-codregtriicms EQ '8'.
itab_it-bs_icms_nf = itab_it-bs_icms_nf +
( v_advdif * ( itab_it-bs_icms_nf / ( 1 - v_advdif ) ) ) .
* << Fim da inclusão
ENDIF.
IF /pws/zycit062-susp_nf EQ 'S'.
IF '56' CA /pws/zycie100a-codregtriicms .
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_icms.
ENDIF.
ENDIF.
ELSEIF NOT /pws/zycit062-flag_icms IS INITIAL.
IF /pws/zycit062-bs_cheia_dif EQ 'X'.
t_icmsx = 1 - ( /pws/zycie003-advalicms / 100 ) .
IF NOT t_icmsx IS INITIAL.
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *
( t_icmsbs / t_icmsx ) .
ENDIF.
t_icmsbs_d2 = t_icmsbs = t_icmsbs + t_icms.
* >> Início da inclusão: FORM LOAD_IICMS
IF /pws/zycie100a-codregtriicms EQ '8'.
itab_it-bs_icms_nf = itab_it-bs_icms_nf +
( v_advdif * ( itab_it-bs_icms_nf / ( 1 - v_advdif ) ) ).
ENDIF.
* << Fim da inclusão
ELSE.
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) * t_icmsbs.
ENDIF.
IF /pws/zycit062-susp_nf EQ 'S' AND
NOT /pws/zycit062-flag_icms IS INITIAL.
IF '356' CA /pws/zycie100a-codregtriicms .
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_icms.
ENDIF.
ELSE.
...