Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 12/08/2014 00:00:00
Data/Hora Última Alteração: 25/08/2014 13:46:24
Descrição da Nota: CORREÇÃO NO CÁLCULO DA NF QUANDO REGIME DO ICMS = DIFERENCIADO
Sintoma
Correção no cálculo da NF quando Regime do ICMS = Diferenciado
Solução
Corrigir lançamento de valores
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 14133 Data: 12/08/2014 Hora: 16:24:58
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 14133
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 9.0
Pacote : 00008
Agrupamento : 00174
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02922 - 00001 - 6.0 - 00026 - CRIADO PARAMETRO PARA LEVAR ICMS REDUZ NO TOTAL DA NF
07994 - 00002 - 7.0 - 00008 - PARAMETRIZADO LEI 102 E SISTEMA LEVA VALOR DE ICMS NO CUSTO.
13584 - 00003 - 9.0 - 00007 - LINHA DO ICMS NÃO BATE COM O TOTAL DA NOTA FISCAL (ICMS COM REDUÇ
13897 - 00004 - 9.0 - 00007 - TRATAMENTO DIFERIMENTO ICMS PARA PARANÁ
----------------------------------------------------------------------------------------------------
CORREÇÃO NO CÁLCULO DA NF QUANDO REGIME DO ICMS = DIFERENCIADO
----------------------------------------------------------------------------------------------------
Palavras Chave:
CÁLCULO - NF - REGIME TRIBUTÁRIO - ICMS - DIFERENCIADO
RETENÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI016F01
REPS /PWS/MZYCI010F03
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
IF NOT itab_zycit003-advalicms IS INITIAL.
IF NOT itab_zycit003-basred IS INITIAL AND
itab_zycit003-basred < 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.
IF NOT /pws/zycit062-flag_icms IS INITIAL.
* >> Início da inclusão: FORM VERIFICA_MONTANTE
IF itab_zycit100-codregtriicms EQ '8' .
v_base = itab_zycit100-bs_icms_nf .
ELSE.
* << Fim da inclusão
v_base = itab_zycit100-baseicms.
v_advicms = 1 - v_advicms.
v_bicms = ( itab_zycit100-baseicms * v_advicms ) /
( itab_zycit003-basred / 100 ).
ADD it_zycee007-taxval TO v_bicms.
v_basred = ( v_base / v_bicms ) * 100.
* >> Início da inclusão: FORM VERIFICA_MONTANTE
ENDIF.
* << Fim da inclusão
ELSE.
...
...
WHEN 3.
PERFORM verifica_montante.
IF itab_zycit100-codregtriicms NE '8'.
v_montante1 = itab_zycit100-baseicms.
ELSE.
v_montante1 = itab_zycit100-bs_icms_nf.
ENDIF.
v_othbas = v_montante1 .
* >> Início da inclusão: FORM ITENS_NFNEW
IF itab_zycit100-codregtriicms NE '8'.
* << Fim da inclusão
v_excbas = ( v_montante1 / v_basred * 100 ) - v_othbas.
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
ebelp = itab_zycit042-ebelp.
v_excbas = v_excbas - ( v_excbas *
...
...
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.
ENDIF.
IF itab_zycit100-icms_dif = 'X'.
it_zycee007-othbas = it_zycee007-othbas
- itab_zycit100-vlicms.
v_base_dif = v_base_dif + itab_zycit100-baseicms.
ENDIF.
it_zycee007-othbas = v_othbas.
it_zycee007-c_excbas = v_excbas.
IF /pws/zycit001-meioemba = 'PS'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010F03
...
ebeln = itab_zycit036_aux-ebeln
ebelp = itab_zycit036_aux-ebelp.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_zycit036_aux-nrseq
ebeln = itab_zycit036_aux-ebeln
ebelp = itab_zycit036_aux-ebelp.
IF itab_zycit036_aux-codigo EQ 'ICMS'.
IF ( itab_zycit033-tribicms EQ '1' ) OR
( itab_zycit033-tribicms EQ '3' AND
( itab_zycit033-lei102 EQ 'X' OR
itab_zycit033-lei102 EQ 'Y' ) ) OR
* >> Início da exclusão: FORM RETIRA_IMPOSTO
itab_zycit100-icms_dif EQ 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM RETIRA_IMPOSTO
itab_zycit100-icms_dif EQ 'X' OR
itab_zycit100-codregtriicms = '08'.
* << Fim da inclusão
itab_zycit036_aux-vlmov = ' '.
itab_zycit036_aux-vldif = ' '.
MODIFY itab_zycit036_aux.
ENDIF.
ELSEIF itab_zycit036_aux-codigo EQ 'IPI'.
IF ( itab_zycit033-tribipi EQ '1' ).
itab_zycit036_aux-vlmov = ' '.
itab_zycit036_aux-vldif = ' '.
MODIFY itab_zycit036_aux.
ENDIF.
...
...
READ TABLE itab_zycit100 WITH KEY nrseq = itab_zycit036_aux-nrseq
ebeln = itab_zycit036_aux-ebeln
ebelp = itab_zycit036_aux-ebelp.
IF itab_zycit036_aux-codigo EQ 'ICMS'.
IF ( itab_zycit033-tribicms EQ '1' ) OR
( itab_zycit033-tribicms EQ '3' AND
( itab_zycit033-lei102 EQ 'X' OR
itab_zycit033-lei102 EQ 'Y' ) ) OR
* >> Início da inclusão: FORM RETIRA_IMPOSTO
itab_zycit100-codregtriicms EQ '08' OR
* << Fim da inclusão
itab_zycit100-icms_dif EQ 'X'.
itab_zycit036_aux-vlmov = ' '.
itab_zycit036_aux-vldif = ' '.
MODIFY itab_zycit036_aux.
ENDIF.
ELSEIF itab_zycit036_aux-codigo EQ 'IPI'.
IF ( itab_zycit033-tribipi EQ '1' ).
itab_zycit036_aux-vlmov = ' '.
itab_zycit036_aux-vldif = ' '.
MODIFY itab_zycit036_aux.
...