Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 03/09/2009 00:00:00
Data/Hora Última Alteração: 23/02/2011 09:20:23
Descrição da Nota: TRAMENTO PARA DIFERENÇA DE CENTAVOS DEVIDO RATEIO DE DESPESAS
Sintoma
Ao criar a nota fiscal com está ocorrendo difença de centavos entre o total da nota a base de ICMS e
a linha do IPI.
Solução
Ajustado programa de nota fiscal para caso esteja parametrizado para tratar arredondamento da base
(campo ARBASE da tabela /PWS/ZYCIT062) o programa utilize os valores rateados conforme a DI(sem
aplicar a diferença entre o total rateado e o total da despesa no ultimo item).
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08953 Data: 03/09/2009 Hora: 13:51:20
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08953
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00001
Agrupamento : 00001
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
06176 - 00001 - 7.0 - 00004 - AJUSTES PARA TRATAMENTOS DE IPI ISENÇÃO, COURIER E GRANEL NA DI E
07407 - 00002 - 7.0 - 00007 - AO CRIAR NF NÃO CONSIDERA IPI OU ICMS É ISENTO PARA LANÇAR ALÍQUO
08318 - 00003 - 7.0 - 00009 - DESENVOLVIMENTO NACIONALIZAÇÃO DE ADMISSÃO TEMPORÁRIA
08899 - 00004 - 7.0 - 00010 - DIFERENÇA ENTRE BASE DE ICMS E O TOTAL DA NOTA FISCAL
----------------------------------------------------------------------------------------------------
TRAMENTO PARA DIFERENÇA DE CENTAVOS DEVIDO RATEIO DE DESPESAS
----------------------------------------------------------------------------------------------------
Palavras Chave:
PARAMETRO - ARREDONDAMENTO - DIFERENÇA - CENTAVOS - TOTAL - NOTA - IPI
ICMS - FISCAL - /PWS/SAPMZYCI016
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI016F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
FORM valores.
DATA: v_vldp_042 LIKE /pws/zycit042-vldp,
v_vlseg LIKE itab_zycit036_di-vlmov.
CLEAR: v_vldp_042, v_impostos.
* >> Início da inclusão: FORM VALORES
IF /pws/zycit062-arbase EQ 'X'.
CLEAR: itab_zycit100.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
ENDIF.
* << Fim da inclusão
CLEAR v_despesas.
LOOP AT itab_zycit036
WHERE nrseq = itab_zycit042-nrseq
AND ebeln = itab_zycit042-ebeln
AND ebelp = itab_zycit042-ebelp.
READ TABLE itab_zycit036_di WITH KEY nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
IF /pws/zycit001-regime EQ '13'.
itab_zycit036_di-vlmov = itab_zycit036_di-vldif.
ENDIF.
IF itab_zycit036-codigo = 'FRETEI'.
* >> Início da inclusão: FORM VALORES
IF /pws/zycit062-arbase EQ 'X' AND
NOT itab_zycit036_di-vlmov IS INITIAL.
it_zycee007-netfre = itab_zycit100-vlfre.
ELSE.
* << Fim da inclusão
it_zycee007-netfre = itab_zycit036_di-vlmov.
* >> Início da inclusão: FORM VALORES
ENDIF.
* << Fim da inclusão
ELSEIF itab_zycit036-codigo = 'SEGURO'.
* >> Início da inclusão: FORM VALORES
IF /pws/zycit062-arbase EQ 'X' AND
NOT itab_zycit036_di-vlmov IS INITIAL.
it_zycee007-netins = itab_zycit100-vlseg.
ELSE.
* << Fim da inclusão
CLEAR: v_vlseg.
v_vlseg = itab_zycit036_di-vlmov.
PERFORM trata_decimais USING itab_zycit036_di-waers_mov
CHANGING v_vlseg.
it_zycee007-netins = v_vlseg.
* >> Início da inclusão: FORM VALORES
ENDIF.
* << Fim da inclusão
ELSEIF itab_zycit036-codigo = 'II'.
* >> Início da inclusão: FORM VALORES
IF /pws/zycit062-arbase EQ 'X' AND
NOT itab_zycit036_di-vlreal IS INITIAL.
v_despesas = itab_zycit100-vlii.
ELSE.
* << Fim da inclusão
v_despesas = itab_zycit036-vlreal.
* >> Início da inclusão: FORM VALORES
ENDIF.
* << Fim da inclusão
ENDIF.
ENDLOOP.
READ TABLE itab_zycit042_d WITH KEY
nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
...
...
IF itab_zycit049_a-waers NE /pws/zycbt007-waersb.
PERFORM trata_decimais USING itab_zycit049_a-waers
CHANGING itab_zycit049_a-vldp.
PERFORM taxa_converte USING itab_zycit049_a-waers
/pws/zycit085-dttax
CHANGING v_taxa_desp.
itab_zycit049_a-vldp = itab_zycit049_a-vldp *
v_taxa_desp.
itab_zycit049_a-waers = /pws/zycbt007-waersb.
ENDIF.
* >> Início da exclusão: FORM SELECIONA_DESPESAS
IF v_lines = v_tabix.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DESPESAS
IF v_lines = v_tabix AND /pws/zycit062-arbase NE 'X'.
* << Fim da inclusão
v_vldp = itab_zycit049_a-vldp - v_tot_vldp.
itab_zycit042_d-vldp = itab_zycit042_d-vldp + v_vldp.
CLEAR v_vldp.
ELSE.
IF itab_zycit039-divabs = 'X'.
v_vldp = itab_zycit049_a-vldp / v_lines.
ELSEIF itab_zycit039-peso = 'X'.
IF NOT v_tot_ntgew IS INITIAL.
IF NOT itab_zycit003-ntgewd IS INITIAL.
v_vldp = itab_zycit049_a-vldp * itab_zycit003-ntgewd /
...
...
/pws/zycit000-txsis_fix ) / v_line.
v_sisco2 = /pws/zycit000-txsis_fix / v_line.
v_sisco3 = v_sisco1 + v_sisco2.
ENDIF.
IF NOT itab_zycit116[] IS INITIAL.
LOOP AT itab_zycit116.
CLEAR: v_line, v_sisco_tot.
v_sisco_item = v_sisco3 / itab_zycit116-nr_itens.
LOOP AT itab_zycit100 WHERE adicao = itab_zycit116-adicao.
v_line = v_line + 1.
* >> Início da exclusão: FORM SELECIONA_DESPESAS
IF v_line = itab_zycit116-nr_itens.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DESPESAS
IF v_line = itab_zycit116-nr_itens AND
/pws/zycit062-arbase NE 'X'.
* << Fim da inclusão
itab_zycit100-vl_sisco = v_sisco3 - v_sisco_tot.
ELSE.
itab_zycit100-vl_sisco = v_sisco_item.
v_sisco_tot = v_sisco_tot + v_sisco_item.
ENDIF.
MODIFY itab_zycit100.
ENDLOOP.
ENDLOOP.
ENDIF.
ENDLOOP.
...
...
WHERE regio = adrc-region.
CLEAR itab_zycit036.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp
codigo = 'ICMS'.
IF itab_zycit100-icms_dif = 'X'.
v_icms_dif = v_icms_dif + itab_zycit100-vlicms.
ELSE.
IF NOT itab_zycit100-vlicms IS INITIAL.
* >> Início da inclusão: FORM ITENS_NFNEW
IF /pws/zycit062-arbase EQ 'X' AND
NOT itab_zycit036-vlreal IS INITIAL.
it_zycee007-taxval = itab_zycit100-vlicms.
ELSE.
* << Fim da inclusão
it_zycee007-taxval = itab_zycit036-vlreal.
* >> Início da inclusão: FORM ITENS_NFNEW
ENDIF.
* << Fim da inclusão
ELSE.
CLEAR it_zycee007-taxval.
ENDIF.
ENDIF.
IF NOT it_zycee007-taxval IS INITIAL.
it_zycee007-rate = itab_zycit003-advalicms.
...
...
CLEAR: v_base, v_othbas.
CLEAR itab_zycit036.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp
codigo = 'IPI'.
IF ' 156' NA itab_zycit100-codregtriipi.
it_zycee007-rate2 = itab_zycit003-advalipi.
ENDIF.
IF NOT itab_zycit100-vlipi IS INITIAL.
* >> Início da inclusão: FORM ITENS_NFNEW
IF /pws/zycit062-arbase EQ 'X' AND
NOT itab_zycit036-vlreal IS INITIAL.
it_zycee007-taxval2 = itab_zycit100-vlipi.
ELSE.
* << Fim da inclusão
it_zycee007-taxval2 = itab_zycit036-vlreal.
* >> Início da inclusão: FORM ITENS_NFNEW
ENDIF.
* << Fim da inclusão
ELSE.
CLEAR it_zycee007-taxval2.
ENDIF.
it_zycee007-taxtyp2 = itab_zycit033-taxtyp2.
CASE itab_zycit033-tribipi.
WHEN 1.
...