Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 07/07/2014 16:01:54
Data/Hora Última Alteração: 07/07/2014 16:01:54
Descrição da Nota: VALOR DOS IMPOSTO ESTÁ ERRADO NO ULTIMO ITEM DA NOTA FISCAL
Sintoma
Ao gerar a nota fiscal em um processo como muitos itens, o ultimo item fica com os valores dos
impostos errado e a linha de IPI não bate com o total da nota fiscal.
Solução
Ajustado programa para não efetuar tratamento de arredondamento quando o na tabela de parametros
/pws/zycit062 o arredondamento de base estiver flegado.
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 14040 Data: 17/06/2014 Hora: 08:12:00
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 14040
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 9.0
Pacote : 00008
Agrupamento : 00172
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
11617 - 00001 - 8.0 - 00009 - TRAT. PARA ARRED. VALOR DA NOTA E PREENCH. LINHA II NA NOTA DE RE
----------------------------------------------------------------------------------------------------
VALOR DOS IMPOSTO ESTÁ ERRADO NO ULTIMO ITEM DA NOTA FISCAL
----------------------------------------------------------------------------------------------------
Palavras Chave:
NOTA FISCAL IMPOSTO RATEIO
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_RATEIO_CUSTO
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO
...
WHERE bukrs EQ /pws/zycbt007-bukrs.
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ v_bukrs.
READ TABLE itab_zycit100a INDEX 1.
SELECT SINGLE * FROM /pws/zycit085
WHERE nrseqdi = itab_zycit100a-nrseqdi.
SELECT SINGLE * FROM /pws/zycit093
WHERE nrseqce = /pws/zycit085-nrbl.
v_vlseg_tot = 0.
v_vlseg_tottx = 0.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
SELECT SINGLE * FROM j_1bbranch
WHERE bukrs = /pws/zycit085-bukrs
AND branch = /pws/zycit085-j_1bbranch.
SELECT SINGLE * FROM adrc
WHERE addrnumber = j_1bbranch-adrnr.
IF sy-subrc EQ 0.
CLEAR /pws/zycit062.
SELECT SINGLE * FROM /pws/zycit062
WHERE regio = adrc-region.
ENDIF.
* << Fim da inclusão
DESCRIBE TABLE itab_zycit003 LINES v_line_rateio.
FREE it_desp.
LOOP AT itab_zycit003
WHERE servico IS initial.
v_line_ac = sy-tabix.
CLEAR it_desp.
READ TABLE itab_zycit100a WITH KEY nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF v_line_ac <> v_line_rateio.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF v_line_ac <> v_line_rateio
AND /pws/zycit062-arbase IS INITIAL.
* << Fim da inclusão
IF NOT /pws/zycit085-ukursseg IS INITIAL AND
NOT itab_zycit100a-vlseg IS INITIAL.
v_vlseg = itab_zycit100a-vlseg * v_taxa_usd
/ /pws/zycit085-ukursseg.
v_vlseg_tot = v_vlseg_tot + v_vlseg.
v_vlseg_tottx = /pws/zycit085-vlseg.
v_vlseg_totdif = v_vlseg_tottx -
( v_vlseg_tot - v_vlseg ).
IF v_vlseg_tot <= v_vlseg_tottx.
MOVE v_vlseg TO it_desp-vlseg.
...
...
UPDATE /pws/zycit093 SET vlfre = /pws/zycit093-vlfre
WHERE nrseqce = /pws/zycit093-nrseqce.
it_desp-vlfre = /pws/zycit093-vlfre - v_ac_fre.
ENDIF.
ENDIF.
ENDIF.
vl_ii = vl_ii + itab_zycit100a-vlii .
vl_ipi = vl_ipi + itab_zycit100a-vlipi .
vl_pis = vl_pis + itab_zycit100a-vlpis .
vl_cofins = vl_cofins + itab_zycit100a-vlcofins.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF /pws/zycit062-arbase EQ 'X'.
itab_zycit100a-vlii = vl_ii - vltot_ii .
itab_zycit100a-vlipi = vl_ipi - vltot_ipi .
itab_zycit100a-vlpis = vl_pis - vltot_pis .
itab_zycit100a-vlcofins = vl_cofins - vltot_cofins.
ENDIF.
* << Fim da exclusão
IF itab_zycit100a-icms_dif IS INITIAL.
IF NOT ( /pws/zycit001-tpdecl = 'DSI' AND
/pws/zycit001-regime = '09' ).
IF ( /pws/zycit085-tpdi EQ 'N' AND
NOT '356' CA itab_zycit100a-codregtriicms ) OR
( /pws/zycit085-tpdi EQ 'S' AND
NOT '356' CA itab_zycit100a-codregtri ).
vl_icms = vl_icms + itab_zycit100a-vlicms.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit100a-vlicms = vl_icms - vltot_icms.
* << Fim da exclusão
MOVE: itab_zycit100a-vlicms TO it_desp-vlicms.
ENDIF.
ENDIF.
ENDIF.
vl_icmsst = vl_icmsst + itab_zycit100a-vlicms_st.
itab_zycit100a-vlicms_st = vl_icmsst - vltot_icmsst.
v_ac_fre = 0.
v_ac_seg = 0.
ENDIF.
MOVE: itab_zycit003-nrseq TO it_desp-nrseq,
...