Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 11/09/2007 00:00:00
Data/Hora Última Alteração: 23/02/2011 09:14:48
Descrição da Nota: NA NF NÃO LEVA VALOR DE ICMS, DIFERENÇA NA LINHA DO IPI
Sintoma
Nas NF criadas, o valor do ICMS está zerado sendo que na DI, para os três itens, existe valor de
ICMS. Isso causa diferença na linha do IPI
Solução
calcular valor do icms
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04673 Data: 11/09/2007 Hora: 10:48:36
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04673
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00013
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01848 - 00001 - 6.0 - 00024 - NA NOTA FISCAL TEXTO MENSAGEM NÃO ESTÁ LEVANDO A TAXA SISCOMEX E
02295 - 00002 - 6.0 - 00025 - AJUSTE PARA LEVAR O VALOR DE II NAS MENSAGENS DA NOTA FISCAL
02504 - 00003 - 6.0 - 00025 - FRETE E SEGURO NÃO ESTÃO DESTACADOS NA NF REMESSA DE ITENS DE SER
03302 - 00004 - 7.0 - 00001 - NA NOTA FISCAL VERIFICAR TABELA ZYCIT062 PARA NÃO INCIDÊNCIA DA D
----------------------------------------------------------------------------------------------------
NA NF NÃO LEVA VALOR DE ICMS, DIFERENÇA NA LINHA DO IPI
----------------------------------------------------------------------------------------------------
Palavras Chave:
NF - VALOR DE ICMS - DIFERENÇA - LINHA DO IPI
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_RATEIO_CUSTO
MERG F6DK951494 20070911 104239 PWSCI
MERG F6DK951597 20070911 104243 PWSCI
MERG F6DK951599 20070911 104248 PWSCI
REPS /PWS/MZYCI016F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO
...
LOOP AT itab_zycit036_aux WHERE codigo = 'FRETEI' AND
origem = v_ori.
v_tfrete = v_tfrete + itab_zycit036_aux-vlreal.
ENDLOOP.
ENDIF.
LOOP AT itab_zycit003 .
IF ( v_vinserv IS INITIAL AND
itab_zycit003-servico IS INITIAL ) OR
( v_vinserv EQ 'X' AND itab_zycit003-servico EQ 'X' ) .
v_vlfrete = v_tfrete * ( itab_zycit003-ntgew / v_tpeso ).
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM taxa_converte USING itab_zycit003-waers
/pws/zycie085-dttax
t001-land1
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL.
itab_zycit003-vlreal = itab_zycit003-vlreal * v_taxa.
itab_zycit003-netpr = itab_zycit003-netpr * v_taxa.
ENDIF.
PERFORM taxa_converte USING /pws/zycie085-waersfob
/pws/zycie085-dttax
t001-land1
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL .
itab_zycit003-vlreal = itab_zycit003-vlreal / v_taxa.
itab_zycit003-netpr = itab_zycit003-netpr / v_taxa.
ENDIF.
ENDIF.
* << Fim da inclusão
v_tot = v_tot + ( itab_zycit003-netpr * itab_zycit003-qtd_iten ).
v_tot_vlreal = v_tot_vlreal + ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ).
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
modify itab_zycit003.
* << Fim da inclusão
ENDLOOP.
if /pws/zycit001-regime = '04' and /pws/zycit001-tpdecl = 'DI'.
LOOP AT itab_zycit443.
...
...
( itab_zycit003-vlreal * itab_zycit003-qtd_iten
/ v_tot_vlreal ) * itab_despesa-netpr .
ENDIF.
ELSE.
itab_zycit036_aux-vlreal =
( itab_zycit003-vlreal * itab_zycit003-qtd_iten
/ v_tot_vlreal ) * itab_despesa-netpr .
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_itend / v_tot ) *
itab_despesa-netpr.
ELSE.
* << Fim da exclusão
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_iten / v_tot ) *
itab_despesa-netpr.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da exclusão
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
ENDIF.
IF NOT itab_despesa-waers IS INITIAL.
...
...
( itab_zycit003-vlreal * itab_zycit003-qtd_iten
/ v_tot_vlreal ) * itab_despesa-netpr .
ENDIF.
ELSE.
itab_zycit036_aux-vlreal =
( itab_zycit003-vlreal * itab_zycit003-qtd_iten
/ v_tot_vlreal ) * itab_despesa-netpr .
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_itend / v_tot ) *
itab_despesa-netpr.
ELSE.
* << Fim da exclusão
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_iten / v_tot ) *
itab_despesa-netpr.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da exclusão
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
ENDIF.
IF NOT itab_despesa-waers IS INITIAL.
...
...
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.
DESCRIBE TABLE itab_zycit003 LINES v_line_rateio.
FREE it_desp.
LOOP AT itab_zycit003
WHERE servico IS initial.
v_line_ac = sy-tabix.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
CLEAR it_desp.
* << Fim da inclusão
READ TABLE itab_zycit100a WITH KEY nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF v_line_ac <> v_line_rateio.
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.
MOVE v_vlseg TO it_desp-vlseg.
SELECT SINGLE * FROM tcurx
...
...
vltot_ipi = vltot_ipi + vl_imp.
vl_ipi = vl_ipi + itab_zycit100a-vlipi.
IF itab_zycit100a-icms_dif IS INITIAL.
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_imp = itab_zycit100a-vlicms.
vltot_icms = vltot_icms + vl_imp.
vl_icms = vl_icms + itab_zycit100a-vlicms.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
MOVE: itab_zycit100a-vlicms TO it_desp-vlicms.
* << Fim da inclusão
ENDIF.
ENDIF.
vl_imp = itab_zycit100a-vlpis.
vltot_pis = vltot_pis + vl_imp.
vl_pis = vl_pis + itab_zycit100a-vlpis.
vl_imp = itab_zycit100a-vlcofins.
vltot_cofins = vltot_cofins + vl_imp.
vl_cofins = vl_cofins + itab_zycit100a-vlcofins.
ELSE.
IF sy-subrc = 0.
...
...
ENDIF.
ELSE.
v_tfre = /pws/zycie085-vlfre.
ENDIF.
v_vtot = /pws/zycie085-vlfob + v_tfre + v_tseg.
IF NOT v_vtot IS INITIAL.
itab_zycit036_aux-vlreal = itab_despesa-netpr *
( ( v_vfob + v_vfre + v_vseg ) / v_vtot ) .
ENDIF.
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ELSE.
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_itend / v_tot ) *
itab_despesa-netpr.
* << Fim da exclusão
ELSE.
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_iten / v_tot ) *
itab_despesa-netpr.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da exclusão
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ELSE.
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_itend / v_tot ) *
itab_despesa-netpr.
* << Fim da exclusão
ELSE.
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_iten / v_tot ) *
itab_despesa-netpr.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da exclusão
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em MERG F6DK951494 20070911 104239 PWSCI
----------------------------------------------------------------------------------------------------
Modificações efetuadas em MERG F6DK951597 20070911 104243 PWSCI
----------------------------------------------------------------------------------------------------
Modificações efetuadas em MERG F6DK951599 20070911 104248 PWSCI
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
ENDIF.
ENDIF.
v_tamanho = '.............................................'.
v_ind = v_cont + 1.
CLEAR:v_valor_r.
LOOP AT itab_zycit042_mark.
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.
* << Fim da exclusão
* >> Início da inclusão: FORM MENSAGENS_NF
IF sy-subrc EQ 0 and itab_zycit100-codregtri ne '3' and
itab_zycit100-codregtri ne '5'.
* << Fim da inclusão
v_valor_r = v_valor_r + itab_zycit100-vlii.
ENDIF.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_zycit042_mark-nrseq
ebeln = itab_zycit042_mark-ebeln
ebelp = itab_zycit042_mark-ebelp.
MOVE itab_zycit003 TO itab_zycit003_mark.
APPEND itab_zycit003_mark.
ENDLOOP.
v_tamanho = '................'.
CLEAR v_vldp_x.
...
...
v_tot_real = v_tot_real +
( itab_zycit003-vlreal * itab_zycit003-qtd_iten ).
ENDLOOP.
DESCRIBE TABLE itab_zycit042 LINES v_lines.
DESCRIBE TABLE itab_zycit003 LINES v_lin.
LOOP AT itab_zycit049_aux_r WHERE nrseq = v_nrseq AND
vldp NE 0.
it_zycee006-indice = v_ind.
IF itab_zycit049_aux_r-tpdesp EQ /pws/zycit000-cod_sisc.
IF itab_zycit049_aux_r-waers NE /pws/zycbt007-waersb.
* >> Início da inclusão: FORM MENSAGENS_NF
PERFORM trata_decimais USING itab_zycit049_aux_r-waers
itab_zycit049_aux_r-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049_aux_r-waers
itab_zycit085-dttax CHANGING v_taxa_desp.
v_vldp = itab_zycit049_aux_r-vldp *
v_taxa_desp.
ELSE.
v_vldp = itab_zycit049_aux_r-vldp .
ENDIF.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit049_aux_r-tpdesp.
READ TABLE itab_zycit020 WITH KEY codigo = itab_zycit019-codigo
regio = itab_zycit019-regio.
ELSE.
IF itab_zycit049_aux_r-waers NE /pws/zycbt007-waersb.
* >> Início da inclusão: FORM MENSAGENS_NF
PERFORM trata_decimais USING itab_zycit049_aux_r-waers
itab_zycit049_aux_r-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049_aux_r-waers
/pws/zycit085-dttax
CHANGING v_taxa_desp.
itab_zycit049_aux_r-vldp = itab_zycit049_aux_r-vldp *
v_taxa_desp.
ENDIF.
v_vldp_aux = itab_zycit049_aux_r-vldp.
LOOP AT itab_zycit003_mark.
v_idx = sy-tabix.
CLEAR: itab_zycit039, itab_zycit020.
...
...
CLEAR: itab_zycit039, itab_zycit020, itab_zycit019.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit049-tpdesp.
IF itab_zycit019-tipo EQ 'A' OR
itab_zycit019-tipo IS INITIAL.
READ TABLE itab_zycit020 WITH KEY
codigo = itab_zycit019-codigo.
READ TABLE itab_zycit039 WITH KEY
codigo = itab_zycit020-codigo.
IF itab_zycit049-waers NE /pws/zycbt007-waersb.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
PERFORM trata_decimais USING itab_zycit049-waers
itab_zycit049-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049-waers
/pws/zycit085-dttax
CHANGING v_taxa_desp.
itab_zycit049-vldp = itab_zycit049-vldp *
v_taxa_desp.
itab_zycit049-waers = /pws/zycbt007-waersb.
ENDIF.
IF v_lines = v_tabix.
v_vldp = itab_zycit049-vldp - v_tot_vldp.
itab_zycit042-vldp = itab_zycit042-vldp + v_vldp.
...
...
CLEAR: itab_zycit039, itab_zycit020, itab_zycit019.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit049-tpdesp.
IF itab_zycit019-tipo EQ 'A' OR
itab_zycit019-tipo IS INITIAL.
READ TABLE itab_zycit020 WITH KEY
codigo = itab_zycit019-codigo.
READ TABLE itab_zycit039 WITH KEY
codigo = itab_zycit020-codigo.
IF itab_zycit049-waers NE /pws/zycbt007-waersb.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
PERFORM trata_decimais USING itab_zycit049-waers
itab_zycit049-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049-waers
/pws/zycit085-dttax
CHANGING v_taxa_desp.
itab_zycit049-vldp = itab_zycit049-vldp *
v_taxa_desp.
itab_zycit049-waers = /pws/zycbt007-waersb.
ENDIF.
IF v_lines = v_tabix.
v_vldp = itab_zycit049-vldp - v_tot_vldp.
itab_zycit042_d-vldpii = itab_zycit042_d-vldpii + v_vldp.
...