Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 27/02/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 13:40:07
Descrição da Nota: DI E DA COM PARAMETRO DA 062
Sintoma
Para os processos com suspensão de impostos, o cliente poderá optar se a base de ICMS deverá ser por
dentro ou não, ou seja, o valor do ICMS suspenso poderá ser somado na base de cálculo de ICMS.
Poderá ser utilizado o parâmetro /PWS/ZYCIT062 para o ajuste.
Este desenvolvimento valerá para a DI e DA.
Solução
Atualizado o programa da DI e da DA para olhar a tabela /pws/zycit062
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03158 Data: 27/02/2007 Hora: 15:11:26
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03158
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00026
Agrupamento : 00154
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01323 - 00001 - 6.0 - 00023 - DECLARAÇÃO DE ADMISSÃO PARA ENTREPOSTO ADUANEIRO
02325 - 00002 - 6.0 - 00025 - TRATAMENTO PARA SUSPENSÃO DE ICMS NA DI POR REGIÃO
02340 - 00003 - 6.0 - 00025 - TRATAR SUSPENSÃO DE REGIME TRIBUTÁRIO NAS NOTAS FISCAIS.
02962 - 00004 - 6.0 - 00026 - DA PARA ESTORNAR PAGAMENTO ANTECIPADO NA FATURA
03113 - 00005 - 6.0 - 00026 - EM DI VINCULADA COM DRAWBACK LEVA O VALOR A RECOLHER DO ICMS PARA
03146 - 00006 - 6.0 - 00026 - CRIAÇÃO DE TRATAMENTO PARA REG. TIB. NÃO INCIDENCIA
----------------------------------------------------------------------------------------------------
DI E DA COM PARAMETRO DA 062
----------------------------------------------------------------------------------------------------
Palavras Chave:
DI - DA - REG.SUSP.NF - ZYCIT062
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI016F01
REPS /PWS/MZYCI023F03
REPS /PWS/MZYCI070F03
----------------------------------------------------------------------------------------------------
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 exclusã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-codregtri EQ '6'.
itab_zycit100-baseicms =
itab_zycit100-baseicms - itab_zycit100-vlicms.
ENDIF.
IF itab_zycit100-baseicms LT 0.
CLEAR itab_zycit100-baseicms.
ENDIF.
ENDIF.
* << Fim da exclusã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 NOT /pws/zycit062-tred IS INITIAL AND
NOT /pws/zycit062-flag_icms IS INITIAL AND
v_basred < 100.
READ TABLE itab_zycit003 WITH KEY
...
...
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 exclusã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 exclusão
CASE itab_zycit033-tribicms.
WHEN 1.
it_zycee007-base = v_total.
it_zycee007-base =
( it_zycee007-base * itab_zycit003-basred / 100 ).
IF itab_zycit003-basred NE 100.
it_zycee007-c_excbas = v_total - it_zycee007-base.
IF NOT /pws/zycit062-tred IS INITIAL AND
NOT /pws/zycit062-flag_icms IS INITIAL.
it_zycee007-c_excbas = it_zycee007-c_excbas *
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
...
ELSE.
t_icmsbs_d2 = t_icmsbs = ( t_ivadu + v_vliirec + v_vlipirec +
v_sisco3 + t_ivdesp + v_vlpisrec + v_vlcofrec ) *
( /pws/zycie003-basred / 100 ).
ENDIF.
IF NOT /pws/zycit062-flag_icms IS INITIAL AND
/pws/zycie100a-icms_dif NE 'X'.
t_icmsx = ( 100 - /pws/zycie003-advalicms ) / 100.
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *
( t_icmsbs / t_icmsx ) .
* >> Início da exclusão: FORM LOAD_IICMS
IF '35' CA /pws/zycie100a-codregtriicms .
CLEAR: t_icmsx, t_icms_d2, t_icms.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
itab_it-vlicms = t_icms.
t_icmsbs_d2 = t_icmsbs = t_icmsbs + t_icms.
itab_it-vlicms = t_icms.
IF /pws/zycit062-susp_nf EQ 'S'.
IF /pws/zycie100a-codregtri EQ '5'.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - a_iicalc.
ENDIF.
IF /pws/zycie100a-codregtriipi EQ '5'.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - a_ipidevi.
ENDIF.
IF /pws/zycie100a-codregtripiscofi EQ '5'.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - a_piscalc - a_cofcalc.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM LOAD_IICMS
IF /pws/zycie100a-codregtriicms EQ '5'.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_icms.
ENDIF.
IF /pws/zycie100a-baseicms LT 0.
CLEAR itab_zycit100-baseicms.
ENDIF.
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM LOAD_IICMS
t_icmsbs_d2 = t_icmsbs = t_icmsbs + t_icms.
* << Fim da exclusão
IF /pws/zycie100a-codregtriicms EQ '5'.
CLEAR: t_icmsx, t_icms_d2, t_icms.
ENDIF.
ELSE.
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *
t_icmsbs.
IF /pws/zycie100a-codregtriicms EQ '5'.
CLEAR: t_icmsx, t_icms_d2, t_icms.
ENDIF.
ENDIF.
...
...
ELSE.
ENDIF.
ELSEIF /pws/zycie003-nrseqd IS INITIAL.
ENDIF.
s_wicreco = s_wicreco + t_icms .
ELSEIF p_tipo = 'A'.
a_icdevi = a_icdevi + t_icms.
a_icreco = a_icreco + a_icdevi.
ENDIF.
itab_it-baseicms = t_icmsbs.
* >> Início da exclusão: FORM LOAD_IICMS
itab_it-vlicms = t_icms.
* << Fim da exclusão
itab_it-vlpis = v_vlpisrec .
itab_it-vlcofins = v_vlcofrec.
t_pisbs = itab_it-basepis.
t_cofinsbs = itab_it-basecofins.
v_vlpisrec = t_pis .
v_vlcofrec = t_cofins.
IF /pws/zycie100a-codregtriicms EQ '6'.
CLEAR t_icms.
ENDIF.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI070F03
...
v_nratoc IS INITIAL.
IF v_embimp EQ 'X'.
t_icmsx = ( 100 - /pws/zycie003-advalicms ) / 100.
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *
( t_icmsbs / t_icmsx ) .
ELSE.
t_icmsx = ( 100 - /pws/zycie443a-advalicms ) / 100.
t_icms_d2 = t_icms = ( /pws/zycie443a-advalicms / 100 ) *
( t_icmsbs / t_icmsx ) .
ENDIF.
* >> Início da exclusão: FORM LOAD_IICMS
IF itab_it-codregtri EQ '5'.
CLEAR: t_icmsx, t_icms_d2, t_icms, t_pis, t_cofins.
ENDIF.
* << Fim da exclusão
ELSE.
IF itab_it-codregtri EQ '5'.
* >> Início da exclusão: FORM LOAD_IICMS
CLEAR: t_icmsx, t_icms_d2, t_icms, t_pis, t_cofins.
* << Fim da exclusão
ELSE.
IF v_embimp EQ 'X'.
t_icmsx = ( 100 - /pws/zycie003-advalicms ) / 100.
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *
( t_icmsbs / t_icmsx ) .
ELSE.
t_icmsx = ( 100 - /pws/zycie443a-advalicms ) / 100.
t_icms_d2 = t_icms = ( /pws/zycie443a-advalicms / 100 ) *
( t_icmsbs / t_icmsx ) .
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit001-regime EQ '04' AND
itab_zycit001-tpdecl EQ 'DI'.
CLEAR: t_icms.
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
IF /pws/zycit062-susp_nf EQ 'S'.
IF /PWS/ZYCIE443A-codregtri EQ '5'
and /PWS/ZYCIE443A-codregtriipi EQ '5'.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - a_iicalc.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - a_ipidevi.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_cofins - t_pis.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_icms.
ENDIF.
IF /PWS/ZYCIE443A-baseicms LT 0.
CLEAR itab_zycit100-baseicms.
ENDIF.
* << Fim da inclusão
ENDIF.
t_icmsbs_d2 = t_icmsbs = t_icmsbs + t_icms.
* >> Início da inclusão: FORM LOAD_IICMS
IF itab_it-codregtri EQ '5'.
CLEAR: t_icmsx, t_icms_d2, t_icms, t_pis, t_cofins.
ENDIF.
* << Fim da inclusão
ELSE.
IF itab_it-nrseqd IS INITIAL
AND v_nratoc IS INITIAL.
...
*************************
*************************
Esta nota foi atualizada, aplicar na ordem em que aparece, ou seja, primeiro a parte de cima e
depois a parte de baixa(atualizada) mesmo pq essa parte de baixo mexe na parte de cima!!!!
*************************
*************************
...
t_cofins = ( itab_it-basecofins * ( itab_it-advalcofins / 100 ) ).
ELSE.
t_pis = ( itab_it-basepis * ( itab_it-advalpis / 100 ) ).
t_cofins = ( itab_it-basecofins *
( itab_it-advalcofins / 100 ) ).
ENDIF.
IF itab_zycit001-regime EQ '04' AND
itab_zycit001-tpdecl EQ 'DI'.
CLEAR: t_pis, t_cofins.
ENDIF.
* >> Início da exclusão: FORM LOAD_IICMS
v_vliirec = t_iirec.
v_vlipirec = t_ipirec.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
v_vliirec = a_iicalc.
v_vlipirec = a_ipidevi.
* << Fim da inclusão
IF v_nr_itens GT 1.
IF v_embimp EQ 'X'.
t_icmsbs_d2 =
t_icmsbs = ( t_ivadu + v_vliirec + v_vlipirec +
t_ivdesp + v_desp + t_pis + t_cofins ) *
( /pws/zycie003-basred / 100 ).
ELSE.
t_icmsbs_d2 =
t_icmsbs = ( t_ivadu + v_vliirec + v_vlipirec +
t_ivdesp + v_desp + t_pis + t_cofins ) *
...
...
t_icmsx = ( 100 - /pws/zycie443a-advalicms ) / 100.
t_icms_d2 = t_icms = ( /pws/zycie443a-advalicms / 100 ) *
( t_icmsbs / t_icmsx ) .
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit001-regime EQ '04' AND
itab_zycit001-tpdecl EQ 'DI'.
CLEAR: t_icms.
ENDIF.
* >> Início da inclusão: FORM LOAD_IICMS
t_icmsbs_d2 = t_icmsbs = t_icmsbs + t_icms.
* << Fim da inclusão
IF /pws/zycit062-susp_nf EQ 'S'.
IF /PWS/ZYCIE443A-codregtri EQ '5'
and /PWS/ZYCIE443A-codregtriipi EQ '5'.
* >> Início da inclusão: FORM LOAD_IICMS
IF NOT /pws/zycie443a-advalii IS INITIAL.
* << Fim da inclusão
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - a_iicalc.
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
IF NOT /pws/zycie443a-advalipi IS INITIAL.
* << Fim da inclusão
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - a_ipidevi.
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
IF NOT /pws/zycie443a-advalpis IS INITIAL.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_pis.
ENDIF.
IF NOT /pws/zycie443a-advalcofins IS INITIAL.
* << Fim da inclusão
t_icmsbs_d2 = t_icmsbs =
* >> Início da exclusão: FORM LOAD_IICMS
t_icmsbs - t_cofins - t_pis.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
t_icmsbs - t_cofins.
ENDIF.
IF NOT /pws/zycie443a-advalicms IS INITIAL.
* << Fim da inclusão
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_icms.
ENDIF.
IF /PWS/ZYCIE443A-baseicms LT 0.
CLEAR itab_zycit100-baseicms.
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
* >> Início da exclusão: FORM LOAD_IICMS
t_icmsbs_d2 = t_icmsbs = t_icmsbs + t_icms.
* << Fim da exclusão
IF itab_it-codregtri EQ '5'.
CLEAR: t_icmsx, t_icms_d2, t_icms, t_pis, t_cofins.
ENDIF.
ELSE.
IF itab_it-nrseqd IS INITIAL
...