Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 08/03/2007 00:00:00
Data/Hora Última Alteração: 23/02/2011 09:13:28
Descrição da Nota: NOTA FISCAL COM SUSPENSÃO DE IMPOSTOS
Sintoma
Nota Fiscal com suspensão de impostos - A composição da nota deve considerar a suspensão dos
impostos, como segue: RegSuspNF = Não = Excluído IPI deve carregar II, PIS e COFINS suspensos. Valor
do produto não deve somar ICMS. RegSuspNF = Sim = Valor do produto não deve somar ICMS suspenso.
Segue anexo.
Solução
Atualização do programa de Nota Fiscal para calcular corretamente o valor total da nota fiscal nos
casos de suspensão.
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03219 Data: 08/03/2007 Hora: 17:01:44
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03219
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00026
Agrupamento : 00156
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02340 - 00001 - 6.0 - 00025 - TRATAR SUSPENSÃO DE REGIME TRIBUTÁRIO NAS NOTAS FISCAIS.
02423 - 00002 - 6.0 - 00025 - AJUSTE NOTA FISCAL REMESSA VALOR DO ICMS REDUZIDO
02922 - 00003 - 6.0 - 00026 - CRIADO PARAMETRO PARA LEVAR ICMS REDUZ NO TOTAL DA NF
03146 - 00004 - 6.0 - 00026 - CRIAÇÃO DE TRATAMENTO PARA REG. TIB. NÃO INCIDENCIA
03158 - 00005 - 6.0 - 00026 - DI E DA COM PARAMETRO DA 062
03178 - 00006 - 6.0 - 00026 - NECESSÁRIO FAZER TRATAMENTO DA DSI E NF GLOBAL COM REGIME SUSPENS
----------------------------------------------------------------------------------------------------
NOTA FISCAL COM SUSPENSÃO DE IMPOSTOS
----------------------------------------------------------------------------------------------------
Palavras Chave:
NF - SUSPENSÃO - PARAMETRO 062
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI016F01
REPS /PWS/ZYCIR035
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
IF sy-subrc NE 0.
MESSAGE e120.
ENDIF.
IF /pws/zycit031-inco1_ci EQ 'C&F' OR
/pws/zycit031-inco1_ci EQ 'CIF'.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
IF sy-subrc EQ 0 .
IF NOT /pws/zycit093-ternacion IS INITIAL.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
PERFORM trata_decimais USING /pws/zycit093-waersfre
CHANGING /pws/zycit093-ternacion.
* << Fim da inclusão
v_ternacion = /pws/zycit093-ternacion.
IF /pws/zycie085-dttax IS INITIAL.
/pws/zycie085-dttax = /pws/zycit085-dttax.
ENDIF.
IF sy-subrc = 0 .
IF /pws/zycit093-waersfre = /pws/zycbt007-waersb.
IF NOT v_ntgew_tot IS INITIAL.
v_ternacion = ( v_ternacion * itab_zycit003-ntgew
/ v_ntgew_tot ).
ENDIF.
...
...
CLEAR: itab_zycit039, itab_zycit020, itab_zycit019.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit049_a-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_a-waers NE /pws/zycbt007-waersb.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
perform trata_decimais using itab_zycit049_A-waers
itab_zycit049_a-vldp.
* << Fim da inclusão
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.
IF v_lines = v_tabix.
v_vldp = itab_zycit049_a-vldp - v_tot_vldp.
itab_zycit042_d-vldp = itab_zycit042_d-vldp + v_vldp.
...
...
ELSE.
p_taxa = '1'.
ENDIF.
ENDIF.
ENDFORM.
FORM atualiza_icms_unitario.
SELECT SINGLE * FROM /pws/zycit100
WHERE nrseq = itab_zycit042-nrseq
AND ebeln = itab_zycit042-ebeln
AND ebelp = itab_zycit042-ebelp.
* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO
IF sy-subrc EQ 0.
SELECT * UP TO 1 ROWS FROM /pws/zycit085
WHERE nrseqdi = /pws/zycit100-nrseqdi.
ENDSELECT.
ENDIF.
IF /pws/zycit001-tpdecl IS INITIAL.
SELECT SINGLE *
FROM /pws/zycit001
WHERE nrseq EQ itab_zycit042-nrseq.
ENDIF.
if /pws/zycit085-tpdi eq 'N'.
* << Fim da inclusão
IF NOT /pws/zycit100-vlicms IS INITIAL AND
NOT /pws/zycit100-icms_dif = 'X'
* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO
AND ( NOT /pws/zycit100-codregtriicms EQ '5' OR
NOT /pws/zycit100-codregtriicms EQ ' ' )
AND NOT /pws/zycit100-codregtri EQ '6'
OR ( /pws/zycit100-codregtriicms EQ '4' )
OR ( /pws/zycit100-codregtriicms EQ '4' AND
/pws/zycit085-tpdi EQ 'S' ).
IF /pws/zycit062-tred IS INITIAL.
itab_zycit042-netpr = itab_zycit042-netpr + ( (
/pws/zycit100-vlicms / itab_zycit042-qtd_iten )
* 100 ) / itab_zycit003-basred.
ELSE.
itab_zycit042-netpr = itab_zycit042-netpr +
( /pws/zycit100-vlicms / itab_zycit042-qtd_iten ).
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM ATUALIZA_ICMS_UNITARIO
AND NOT ' 5' ca /pws/zycit100-codregtriicms
AND NOT /pws/zycit100-codregtri EQ '6'.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO
ENDIF.
else.
if /pws/zycit100-codregtri ne '5' and
/pws/zycit100-codregtri ne '6'.
* << Fim da inclusão
IF /pws/zycit062-tred IS INITIAL.
* >> Início da exclusão: FORM ATUALIZA_ICMS_UNITARIO
itab_zycit042-netpr = itab_zycit042-netpr + ( (
/pws/zycit100-vlicms / itab_zycit042-qtd_iten )
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO
itab_zycit042-netpr = itab_zycit042-netpr +
( ( /pws/zycit100-vlicms / itab_zycit042-qtd_iten )
* << Fim da inclusão
* 100 ) / itab_zycit003-basred.
ELSE.
itab_zycit042-netpr = itab_zycit042-netpr +
( /pws/zycit100-vlicms / itab_zycit042-qtd_iten ).
* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO
ENDIF.
endif.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FORM ATUALIZA_ICMS_UNITARIO
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO
IF /pws/zycit001-tpdecl EQ 'DSI'
AND /pws/zycit100-codregtri EQ '4'.
IF /pws/zycit062-tred IS INITIAL.
itab_zycit042-netpr = itab_zycit042-netpr + ( (
/pws/zycit100-vlicms / itab_zycit042-qtd_iten )
* 100 ) / itab_zycit003-basred.
ELSE.
itab_zycit042-netpr = itab_zycit042-netpr +
( /pws/zycit100-vlicms / itab_zycit042-qtd_iten ).
ENDIF.
ENDIF.
* << Fim da inclusão
ENDFORM.
FORM bi_fb08.
CHECK NOT /pws/zycie041a-belnr_f_02_c IS INITIAL.
PERFORM clear_date_batch.
it_zycbe033-tcode = 'FB08'.
it_zycbe033-tabela = text-014.
...
...
it_zycee007-taxval2 = itab_zycit036-vlreal.
ELSE.
CLEAR it_zycee007-taxval2.
ENDIF.
it_zycee007-taxtyp2 = itab_zycit033-taxtyp2.
CASE itab_zycit033-tribipi.
WHEN 1.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-baseipi.
it_zycee007-base2 = v_montante1.
* >> Início da exclusão: FORM ITENS_NFNEW
IF ( /pws/zycit001-tpdecl = 'DSI' AND
/pws/zycit001-regime = '09' ).
it_zycee007-base2 = it_zycee007-base2 - itab_zycit100-vlii.
ENDIF.
* << Fim da exclusão
IF /pws/zycit001-meioemba = 'PS'.
it_zycee007-base2 = it_zycee007-base2 +
it_zycee007-taxval.
ENDIF.
IF itab_zycit100-codregtriicms EQ '3'.
it_zycee007-p_excbas = itab_zycit100-vlicms.
ENDIF.
WHEN 2.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-baseipi.
it_zycee007-p_excbas = v_montante1.
* >> Início da exclusão: FORM ITENS_NFNEW
IF ( /pws/zycit001-tpdecl = 'DSI' AND
/pws/zycit001-regime = '09' ).
it_zycee007-p_excbas = it_zycee007-p_excbas -
itab_zycit100-vlii.
ENDIF.
* << Fim da exclusão
CLEAR it_zycee007-taxval2.
IF /pws/zycit001-meioemba = 'PS'.
it_zycee007-p_excbas = it_zycee007-p_excbas +
it_zycee007-taxval.
IF itab_zycit100-codregtriipi = '1' .
it_zycee007-p_excbas = it_zycee007-p_excbas +
itab_zycit100-vlipi.
ENDIF.
ENDIF.
WHEN 3.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-baseipi.
it_zycee007-othbas2 = v_montante1.
* >> Início da exclusão: FORM ITENS_NFNEW
IF ( /pws/zycit001-tpdecl = 'DSI' AND
/pws/zycit001-regime = '09' ).
it_zycee007-othbas2 = it_zycee007-othbas2 - itab_zycit100-vlii.
ENDIF.
* << Fim da exclusão
IF /pws/zycit001-meioemba = 'PS'.
it_zycee007-othbas2 = it_zycee007-othbas2 +
it_zycee007-taxval.
ENDIF.
IF itab_zycit100-codregtriicms EQ '3'.
it_zycee007-p_excbas = itab_zycit100-vlicms.
ENDIF.
ENDCASE.
DATA: itab_zycit398 LIKE /pws/zycit398 OCCURS 0 WITH HEADER LINE.
SELECT * FROM /pws/zycit398
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR035
...
PERFORM retorna_decimais USING itab_zycit036-waers_real
CHANGING itab_zycit036-vlreal.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
APPEND itab_zycit036.
ENDIF.
IF /pws/zycit100-codregtri NE '3' AND
* >> Início da exclusão: FORM CRIA_DESPESAS
/pws/zycit100-codregtri NE '5' and
* >> Fim da exclusão
* >> Início da inclusão: FORM CRIA_DESPESAS
/pws/zycit100-codregtri NE '5' or
* >> Fim da inclusão
( /pws/zycit100-codregtri NE ' ' and
/pws/zycit100-codregtri EQ '1' ).
PERFORM entra_despesa USING it_desp 'II' it_desp-vlii
/pws/zycbt007-waersb
it_desp-advalii CHANGING wa_036.
MOVE wa_036 TO itab_zycit036.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
APPEND itab_zycit036.
ENDIF.
IF /pws/zycit100-codregtriipi NE '1' AND
* >> Início da exclusão: FORM CRIA_DESPESAS
/pws/zycit100-codregtriipi NE '5' and
* >> Fim da exclusão
* >> Início da inclusão: FORM CRIA_DESPESAS
/pws/zycit100-codregtriipi NE '5' or
* >> Fim da inclusão
( /pws/zycit100-codregtriipi EQ ' ' and
/pws/zycit100-CODREGTRI EQ '1' ).
PERFORM entra_despesa USING it_desp 'IPI' it_desp-vlipi
/pws/zycbt007-waersb
it_desp-advalipi CHANGING wa_036.
MOVE wa_036 TO itab_zycit036.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
APPEND itab_zycit036.
ENDIF.
IF /pws/zycit100-codregtriicms NE '3' AND
/pws/zycit100-codregtriicms NE '5' AND
* >> Início da exclusão: FORM CRIA_DESPESAS
/pws/zycit100-codregtri NE '6' and
* >> Fim da exclusão
* >> Início da inclusão: FORM CRIA_DESPESAS
/pws/zycit100-codregtri NE '6' or
* >> Fim da inclusão
( /pws/zycit100-codregtriicms EQ ' ' and
/pws/zycit100-CODREGTRI EQ '1' ).
PERFORM entra_despesa USING it_desp 'ICMS' it_desp-v
/pws/zycbt007-waersb
it_desp-aliqicms CHANGING wa_036.
MOVE wa_036 TO itab_zycit036.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
APPEND itab_zycit036.
ENDIF.
IF /pws/zycit100-codregtripiscofi NE '3' AND
* >> Início da exclusão: FORM CRIA_DESPESAS
/pws/zycit100-codregtripiscofi NE '5' and
* >> Fim da exclusão
* >> Início da inclusão: FORM CRIA_DESPESAS
/pws/zycit100-codregtripiscofi NE '5' or
* >> Fim da inclusão
( /pws/zycit100-codregtripiscofi NE ' ' and
/pws/zycit100-codregtripiscofi EQ '1' ).
PERFORM entra_despesa USING it_desp 'PIS' it_desp-vlpis
/pws/zycbt007-waersb v_aliq CHANGING wa_036.
MOVE wa_036 TO itab_zycit036. APPEND itab_zycit036.
PERFORM entra_despesa USING it_desp 'COFINS' it_desp-vlcofins
/pws/zycbt007-waersb v_aliq CHANGING wa_036.
MOVE wa_036 TO itab_zycit036. APPEND itab_zycit036.
ENDIF.
ENDLOOP.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI058O01
...
load_compl.
IF v_dit = 'N'.
/pws/zycie085-tpdi = 'N'.
/pws/zycie085-ntimp = '99'.
ELSE.
/pws/zycie085-tpdi = 'S'.
ENDIF.
ELSEIF sy-tcode <> '/PWS/ZYCI058_C'
AND s_cnpj IS INITIAL.
PERFORM: load_init.
* >> Início da inclusão: MODULE LOAD_DATA
perform load_para.
* << Fim da inclusão
v_txtkey = /pws/zycie085-nrseqdi.
PERFORM read_text.
ENDIF.
PERFORM msg_dsi.
ENDMODULE.
MODULE fill_struct86 OUTPUT.
MOVE itab_zycit086 TO /pws/zycie086.
IF NOT /pws/zycie086-tipo IS INITIAL.
PERFORM load_instdesp.
ENDIF.
...