Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 04/01/2012 15:10:37
Data/Hora Última Alteração: 04/01/2012 15:10:37
Descrição da Nota: DIFERENÇA DE CENTAVOS ENTRE A BASE DE ICMS E O TOTAL DA NOTA FISCAL
Sintoma
Ao criar a Nota Fiscal está apresentando diferença de centavos entre a base de ICMS e o total da
Nota Fiscal mesmo estando parametrizado o tratamento de arredondamento.
Solução
Ajustada DI para efetuar o rateio de despesas utilizando campo com 2 casas decimais conforme
realizado na Nota fiscal.
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11808 Data: 26/12/2011 Hora: 14:46:35
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11808
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00010
Agrupamento : 00099
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
08231 - 00001 - 7.0 - 00009 - AJUSTE NO CALCULO DO VALOR DA MERCADORIA PARA CONFORME FEITO NA F
11617 - 00002 - 8.0 - 00009 - TRAT. PARA ARRED. VALOR DA NOTA E PREENCH. LINHA II NA NOTA DE RE
----------------------------------------------------------------------------------------------------
DIFERENÇA DE CENTAVOS ENTRE A BASE DE ICMS E O TOTAL DA NOTA FISCAL
----------------------------------------------------------------------------------------------------
Palavras Chave:
NOTA - FISCAL - DIFERENÇA - BASE - ICMS - DI - ARREDONDAMENTO - DESPESA
/PWS/SAPMZYCI023 - /PWS/ZYCI_AJUSTE_IMP_NF
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_AJUSTE_IMP_NF
REPS /PWS/MZYCI023F01
REPS /PWS/MZYCI023F03
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_AJUSTE_IMP_NF
...
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
DATA: v_valor_i TYPE /pws/zycee007-othbas,
v_valor_i2 TYPE /pws/zycee007-othbas,
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
DATA: v_valor_i TYPE /pws/zycit085-vlfob,
v_valor_i2 TYPE /pws/zycit085-vlfob,
v_valor_i3 TYPE /pws/zycee007-othbas,
* << Fim da inclusão
...
...
CLEAR v_ternacion.
ELSE.
v_ternacion = ( v_ternacion * zycit003-ntgew
/ v_ntgew_tot ).
ENDIF.
ENDIF.
v_valor_i = v_valor_i - v_ternacion .
ENDIF.
ENDIF.
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
IF NOT zycit003-qtd_itend IS INITIAL.
v_valor_i = v_valor_i *
( zycee007-menge / zycit003-qtd_itend ).
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_valor_i2 = v_valor_i *
( zycee007-menge / wa_zycit003-qtd_iten ).
IF zycit062-flag_icms = 'X'.
IF zycit100-icms_dif = 'X' OR
zycit003-basred IS INITIAL.
v_basred = 100.
ENDIF.
CLEAR v_advicms.
IF NOT zycit003-advalicms IS INITIAL.
IF NOT zycit003-basred IS INITIAL OR
NOT zycit003-basred EQ '100'.
v_advicms = ( ( zycit003-advalicms / 100 ) *
( zycit003-basred / 100 ) ) .
ELSE.
v_advicms = ( zycit003-advalicms / 100 ).
ENDIF.
v_basred = ( v_advicms * 10000 / zycit003-advalicms ).
ELSE.
v_basred = zycit003-basred.
ENDIF.
IF NOT zycit100-vlicms IS INITIAL AND
NOT zycit100-icms_dif = 'X'.
IF ( zycit085-tpdi EQ 'N' AND
NOT ' 36' CA zycit100-codregtriicms ) OR
( zycit085-tpdi EQ 'S' AND
NOT '56' CA zycit100-codregtri ) .
IF ( zycit100-codregtriicms EQ '5' AND
' N' CA zycit062-susp_nf ) OR
zycit100-codregtriicms NE '5' .
IF NOT zycit062-tred IS INITIAL.
v_valor_i = v_valor_i +
( zycit100-vlicms * 100 ) / v_basred.
v_valor_i2 = v_valor_i2 +
( zycee007-taxval * 100 ) / v_basred.
ELSE.
ADD zycit100-vlicms TO v_valor_i.
ADD zycee007-taxval TO v_valor_i2.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF tpdecl EQ 'DSI'
AND zycit100-codregtri EQ '4'.
IF NOT zycit062-tred IS INITIAL.
v_valor_i = v_valor_i + ( zycit100-vlicms * 100 ) / v_basred.
v_valor_i2 = v_valor_i2 +
( zycee007-taxval * 100 ) / v_basred.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_valor_i = v_valor_i *
( zycee007-menge / zycit003-qtd_iten ).
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
ADD zycit100-vlicms TO v_valor_i.
ADD zycee007-taxval TO v_valor_i2.
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
IF zycit062-flag_icms = 'X'.
ADD zycee007-taxval TO v_valor_i.
* << Fim da exclusão
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_valor_i = v_valor_i *
( zycee007-menge / wa_zycit003-qtd_iten ).
* << Fim da inclusão
v_tot_nf = zycee007-netpr * zycee007-menge.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_valor_i3 = v_valor_i.
* << Fim da inclusão
v_vlverif1 = v_tot_nf.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_vlverif = v_valor_i.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_vlverif = v_valor_i3.
* << Fim da inclusão
IF NOT zycee007-base IS INITIAL.
zycee007-base = zycee007-base +
( v_vlverif1 - v_vlverif ).
ELSEIF NOT zycee007-othbas IS INITIAL.
zycee007-othbas =
zycee007-othbas +
( v_vlverif1 - v_vlverif ).
ELSEIF NOT zycee007-c_excbas IS INITIAL.
zycee007-c_excbas =
zycee007-c_excbas +
( v_vlverif1 - v_vlverif ).
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_valor_i3 = v_valor_i2.
v_vlverif = v_valor_i3.
* << Fim da inclusão
IF NOT zycee007-base2 IS INITIAL.
zycee007-base2 = zycee007-base2 -
( v_vlverif - v_vlverif1 ) .
ELSEIF NOT zycee007-othbas2 IS INITIAL.
zycee007-othbas2 = zycee007-othbas2 -
( v_vlverif - v_vlverif1 ) .
ELSEIF NOT zycee007-p_excbas IS INITIAL.
zycee007-p_excbas = zycee007-p_excbas -
( v_vlverif - v_vlverif1 ) .
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_tot_nf = v_vlverif1 + zycee007-taxval2.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_tot_nf = v_vlverif1 + zycee007-taxval2
+ zycee007-taxval_ii + zycee007-netfre +
zycee007-netins + zycee007-netoth.
* << Fim da inclusão
v_tot_line = zycee007-base + zycee007-othbas + zycee007-c_excbas.
v_vlverif = v_tot_nf - v_tot_line.
v_vlverif2 = abs( v_vlverif ).
IF cent => v_vlverif2.
IF NOT zycee007-base IS INITIAL.
zycee007-base = zycee007-base + v_vlverif.
ELSEIF NOT zycee007-othbas IS INITIAL.
zycee007-othbas = zycee007-othbas + v_vlverif.
ELSEIF NOT zycee007-c_excbas IS INITIAL.
zycee007-c_excbas = zycee007-c_excbas + v_vlverif.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
CHANGING itab_zycit003-vlreal.
ENDIF.
IF NOT v_tot_real IS INITIAL.
t_ivdes2 = ( itab_zycit003-vlreal *
itab_zycit003-qtd_itenc3
/ v_tot_real ) * itab_zycit049-vlreal.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM LOAD_ITAX
IF /pws/zycit062-arbase EQ 'X'.
v_casasd = t_ivdes2.
t_ivdes2 = v_casasd.
ENDIF.
* << Fim da inclusão
IF p_tipo = 'I'.
itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.
MODIFY itab_zycit049 TRANSPORTING vldp_aux.
ENDIF.
IF t_ivdes2 > 0.
t_ivdesp = t_ivdesp + t_ivdes2.
ENDIF.
ENDIF.
ENDLOOP.
itab_memoria-despii = t_ivdesp .
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
...
/pws/zycie085-waersfob
CHANGING itab_zycit003-vlreal.
ENDIF.
t_ivdes2 = ( itab_zycit003-vlreal *
itab_zycit003-qtd_itenc3
/ v_tot_real ) * itab_zycit049-vlreal.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM LOAD_IICMS
IF /pws/zycit062-arbase EQ 'X'.
v_casasd = t_ivdes2.
t_ivdes2 = v_casasd.
ENDIF.
* << Fim da inclusão
IF p_tipo = 'I'.
itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.
MODIFY itab_zycit049 TRANSPORTING vldp_aux.
ENDIF.
ENDIF.
IF itab_zycit049-tpdesp = wa_it000-cod_sisc.
v_sisc_adicao = t_ivdes2.
ENDIF.
t_ivdesp = t_ivdesp + t_ivdes2.
ENDIF.
...