Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 27/10/2006 00:00:00
Data/Hora Última Alteração: 20/06/2011 13:20:12
Descrição da Nota: TRATAR SUSPENSÃO DE REGIME TRIBUTÁRIO NAS NOTAS FISCAIS.
Sintoma
1) Ao gerar a NF Complementar no valor de R$ 1.000,00 - o valor de pis cofins e icms está sendo
gerado incorretamente - o sistema deverá realizar os calculos conforme a NF Global, ou seja:
utilizar as mesmas alíquotas de pis cofins e icms da DI. Segue planilha utilizada para conferencia
dos calculos.
2) Verificado parâmetro na tabela zycit398 e o Pis e o Cofins não estão sendo destacados na NF
Complementar.
Solução
Atualização do programa de nota fiscal complementar para fazer tratamento igual a nota fiscal
global.
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02340 Data: 27/10/2006 Hora: 17:58:08
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02340
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00025
Agrupamento : 00137
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
00680 - 00001 - 6.0 - 00022 - REDUÇÃO DA BASE DE CÁLCULO DE ICMS NA NF COMPLEMENTAR
01242 - 00005 - 6.0 - 00023 - ERRO AO CRIAR A DSI
01288 - 00002 - 6.0 - 00023 - NA CRIAÇÃO DA NOTA FISCAL COMPLEMENTAR A BASE DE CÁLCULO DO ICMS
01345 - 00004 - 6.0 - 00023 - AJUSTES PARA BASE DE ICMS REDUZIDA NA NF COMPLEMENTAR
02067 - 00009 - 6.0 - 00024 - RATEIO DE ICMS NA NF INCORRETO, NÃO CONSIDERANDO SUSPENSÃO DE IMP
02115 - 00003 - 6.0 - 00024 - A LINHA DO IPI NA NF COMPLEMENTAR NÃO BATE COM O TOTAL DA NF.
02120 - 00006 - 6.0 - 00024 - NÃO ESTÁ BATENDO A LINHA DO IPI COM O TOTAL DA NF.
02225 - 00007 - 6.0 - 00025 - VALOR TOTAL DA NOTA INCORRETO
02325 - 00008 - 6.0 - 00025 - TRATAMENTO PARA SUSPENSÃO DE ICMS NA DI POR REGIÃO
----------------------------------------------------------------------------------------------------
TRATAR SUSPENSÃO DE REGIME TRIBUTÁRIO NAS NOTAS FISCAIS.
----------------------------------------------------------------------------------------------------
Palavras Chave:
REGIME TRIBUTARIO - SUSPENSAO - NOTA FISCAL - NF GLOBAL
NF REMESSA
----------------------------------------------------------------------------------------------------
Objetos da nota:
DTEL /PWS/ZYCIL844
FUGR /PWS/ZYCIGF1
REPS /PWS/MZYCI016F01
REPS /PWS/MZYCI023F03
REPS /PWS/MZYCI029F01
REPS /PWS/MZYCI029O01
TABD /PWS/ZYCIT062
TABU TDDAT
TABU TVDIR
TOBJ /PWS/ZYCIT062S
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYCIL844
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYCIL844
MODIFICAR ELEMENTO DE DADOS: /PWS/ZYCIL844
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
DESCRIÇÃO BREVE: GL - Suspensão na NF
DEFINIÇÃO
CATEGORIA DE DADOS:
(X) - CATEGORIA ELEMENTAR
(X) - DOMÍNIO /PWS/ZYCID139
DENOM. DE CAMPO:
BREVE : 10 RegSusp.NF
MÉDIO : 16 Reg.Suspensão NF
LONGA : 20 Reg.Suspensão NF
TÍTULO: 16 Reg.Suspensão NF
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
IF NOT itab_zycit100-vlicms IS INITIAL.
it_zycee007-taxval = itab_zycit036-vlreal.
ELSE.
CLEAR it_zycee007-taxval.
ENDIF.
ENDIF.
IF NOT it_zycee007-taxval IS INITIAL.
it_zycee007-rate = itab_zycit003-advalicms.
ENDIF.
it_zycee007-taxtyp = itab_zycit033-taxtyp.
* >> Início da inclusão: FORM ITENS_NFNEW
IF /pws/zycit062-susp_nf EQ 'S'.
IF itab_zycit100-codregtri EQ '5'.
itab_zycit100-baseicms =
itab_zycit100-baseicms - itab_zycit100-vlii.
ENDIF.
IF itab_zycit100-codregtriipi EQ '5'.
itab_zycit100-baseicms =
itab_zycit100-baseicms - itab_zycit100-vlipi.
ENDIF.
IF itab_zycit100-codregtripiscofi EQ '5'.
itab_zycit100-baseicms =
itab_zycit100-baseicms -
itab_zycit100-vlpis - itab_zycit100-vlcofins.
ENDIF.
IF itab_zycit100-baseicms LT 0.
CLEAR itab_zycit100-baseicms.
ENDIF.
ENDIF.
* << Fim da inclusão
CASE itab_zycit033-tribicms.
WHEN 1.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-baseicms.
v_base = v_montante1.
v_excbas = ( v_montante1 / v_basred * 100 ) - v_base.
IF itab_zycit100-icms_dif = 'X'.
IF /pws/zycit062-flag_icms = 'X'.
DATA: v_base2 LIKE j_1bdytax-base.
CLEAR v_base2.
...
...
it_zycee007-ownpro2 = 'X'.
ENDIF.
PERFORM valores_r.
SELECT SINGLE * FROM /pws/zycit062
WHERE regio = adrc-region.
READ TABLE itab_zycit100 WITH KEY ebeln = itab_zycit044-ebeln
ebelp = itab_zycit044-ebelp.
v_total = ( itab_zycit100-baseicms /
( itab_zycit044-menge / itab_zycit044-qtd_item ) * 100 )
/ itab_zycit003-basred.
* >> Início da inclusão: FORM ITENS_NFRNEW
IF /pws/zycit062-susp_nf EQ 'S'.
IF itab_zycit100-codregtri EQ '5'.
v_total = v_total - ( itab_zycit100-vlii /
itab_zycit044-menge * itab_zycit044-qtd_item ).
ENDIF.
IF itab_zycit100-codregtriipi EQ '5'.
v_total = v_total - ( itab_zycit100-vlipi /
itab_zycit044-menge * itab_zycit044-qtd_item ).
ENDIF.
IF itab_zycit100-codregtripiscofi EQ '5'.
v_total = v_total - ( itab_zycit100-vlpis /
itab_zycit044-menge * itab_zycit044-qtd_item ).
v_total = v_total - ( itab_zycit100-vlcofins /
itab_zycit044-menge * itab_zycit044-qtd_item ).
ENDIF.
IF v_total LT 0.
CLEAR v_total .
ENDIF.
ENDIF.
* << Fim da inclusão
CASE itab_zycit033-tribicms.
WHEN 1.
* >> Início da exclusão: FORM ITENS_NFRNEW
IF /pws/zycit062-flag_icms = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFRNEW
IF /pws/zycit062-flag_icms = 'X' .
IF /pws/zycit062-susp_nf EQ 'S' and
itab_zycit100-codregtri EQ '5'.
it_zycee007-base = v_total .
else.
* << Fim da inclusão
it_zycee007-base = ( v_total - v_icms ) /
( ( 100 - itab_zycit003-advalicms ) / 100 ).
* >> Início da inclusão: FORM ITENS_NFRNEW
endif.
* << Fim da inclusão
ELSE.
it_zycee007-base = v_total.
ENDIF.
it_zycee007-base =
( it_zycee007-base * itab_zycit003-basred / 100 ).
...
...
IF /pws/zycit062-flag_icms = 'X'.
it_zycee007-c_excbas = it_zycee007-c_excbas - v_icms.
ENDIF.
v_icms_dif = v_icms_dif + v_icms.
v_base_dif = v_base_dif + v_total.
ELSE.
it_zycee007-taxval = v_icms.
ENDIF.
WHEN 3.
IF /pws/zycit062-flag_icms = 'X'.
* >> Início da inclusão: FORM ITENS_NFRNEW
IF /pws/zycit062-susp_nf EQ 'S' and
itab_zycit100-codregtri EQ '5'.
it_zycee007-othbas = v_total.
else.
* << Fim da inclusão
it_zycee007-othbas = ( v_total - v_icms ) /
( ( 100 - itab_zycit003-advalicms ) / 100 ).
* >> Início da inclusão: FORM ITENS_NFRNEW
endif.
* << Fim da inclusão
ELSE.
it_zycee007-othbas = v_total.
ENDIF.
IF itab_zycit003-basred NE 100.
it_zycee007-othbas =
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
...
a_icdevi = a_icdevi + t_icms.
a_icreco = a_icdevi.
ENDIF.
itab_it-baseicms = t_icmsbs.
itab_it-vlicms = t_icms.
* >> Início da exclusão: FORM LOAD_IICMS
itab_it-vlpis = t_pis .
itab_it-vlcofins = t_cofins.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
itab_it-vlpis = v_vlpisrec .
itab_it-vlcofins = v_vlcofrec.
* << Fim da inclusão
t_pisbs = itab_it-basepis.
t_cofinsbs = itab_it-basecofins.
* >> Início da inclusão: FORM LOAD_IICMS
v_vlpisrec = t_pis .
v_vlcofrec = t_cofins.
* << Fim da inclusão
ENDFORM.
FORM data_sort.
SORT itab_it BY
j_1bnbm fabric lifnrfabr lifnr advalii
advalipi naladi naladincca codregtri codregtriipi
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI029F01
...
ebeln = itab_zycit053_e-ebeln
ebelp = itab_zycit053_e-ebelp.
READ TABLE itab_zycit019 WITH KEY
codigo = itab_zycit053_c-codigo.
CLEAR: v_pis, v_cofins, v_fator_y.
* >> Início da inclusão: FORM COLLECT_DESPESAS
IF NOT itab_zycit100-codregtripiscofi EQ '5' AND
/pws/zycit062-susp_nf NE 'S'.
* << Fim da inclusão
v_fator_y = ( itab_zycit003-advalicms / 100 ) /
( ( 100 - itab_zycit003-advalicms -
itab_zycit100-advalpis - itab_zycit100-advalcofins )
/ 100 ).
v_pis = v_cofins = itab_zycit053_c-vlcompl * v_fator_y.
...
...
ENDIF.
MODIFY itab_zycit265_c TRANSPORTING vldp_pis vldp_cofins
WHERE nrseq = itab_zycit053_e-nrseq
AND ebeln = itab_zycit053_e-ebeln
AND ebelp = itab_zycit053_e-ebelp.
* >> Início da inclusão: FORM COLLECT_DESPESAS
ENDIF.
* << Fim da inclusão
IF itab_zycit020-baseicms = 'X' OR itab_zycit020-baseii = 'X'.
itab_zycit053_c-contabiliza = 'X'.
ELSE.
CLEAR itab_zycit053_c-contabiliza.
ENDIF.
...
...
it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -
it_zycee007-base.
ELSE.
it_zycee007-taxval = it_zycee007-taxval *
( itab_zycit003-advalicms / 100 ).
* >> Início da inclusão: FORM ITENS_NFC
IF /pws/zycit062-susp_nf EQ 'S' AND
itab_zycit100-codregtri EQ '5'.
it_zycee007-base = itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis +
itab_zycit265_c2-vldp_cofins .
ELSE.
* << Fim da inclusão
it_zycee007-base = itab_zycit265_c2-vldp_dif_icms +
it_zycee007-taxval +
itab_zycit265_c2-vldp_pis +
itab_zycit265_c2-vldp_cofins .
* >> Início da inclusão: FORM ITENS_NFC
ENDIF.
* << Fim da inclusão
it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -
itab_zycit265_c2-vldp_dif_icms.
ENDIF.
ELSE.
IF NOT /pws/zycit062-bcnfc IS INITIAL AND
...
...
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )
* ( itab_zycit003-basred / 100 ) ) .
ELSE.
IF itab_zycit100-icms_dif = 'X'.
it_zycee007-othbas = itab_zycit265_c2-vldp_dif_icms.
* >> Início da inclusão: FORM ITENS_NFC
ELSE.
IF /pws/zycit062-susp_nf EQ 'S' AND
itab_zycit100-codregtri EQ '5'.
it_zycee007-othbas = ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins ).
* << Fim da inclusão
ELSE.
it_zycee007-othbas = ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )
/ ( ( 100 - itab_zycit003-advalicms ) / 100 ) .
* >> Início da inclusão: FORM ITENS_NFC
ENDIF.
* << Fim da inclusão
ENDIF.
it_zycee007-taxval = it_zycee007-taxval *
( itab_zycit003-advalicms / 100 ).
ENDIF.
ELSE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI029O01
...
( /pws/zycit000-flagpiscof NE 'X' OR
NOT /pws/zycie265-docnum IS INITIAL ).
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
* >> Início da inclusão: MODULE SET_SCREEN_TC_NFC
IF screen-name EQ '/PWS/ZYCIE265-VLDP_PIS' OR
screen-name EQ '/PWS/ZYCIE265-VLDP_COFINS'.
IF /pws/zycit062-susp_nf EQ 'S'.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit265_c-nrseq
ebeln = itab_zycit265_c-ebeln
ebelp = itab_zycit265_c-ebelp.
IF sy-subrc EQ 0.
IF itab_zycit100-codregtripiscofi EQ '5'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* << Fim da inclusão
ENDLOOP.
ENDMODULE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT062
*OS SEGUINTES CAMPOS FORAM CRIADOS:
MANDT MANDT
REGIO REGIO
FLAG_ICMS /PWS/ZYCIL361
BASE J_1BTXRATE
BS_PIS_COF /PWS/ZYCIL802
BCNFC /PWS/ZYCIL827
BS_RAT_ICMS /PWS/ZYCIL830
*<<Inicio inclusao
SUSP_NF /PWS/ZYCIL844
*<<Fim inclusao
USERNAMEC SYUNAME
DTUSERC SYDATUM
HRUSERC SYSTTIMLO
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TOBJ /PWS/ZYCIT062S
*Visão de atualização de tabela /PWS/ZYCIT062 gerada novamente