CE PLUS - Nota 003158

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

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

DA PARA ESTORNAR PAGAMENTO ANTECIPADO NA FATURA

CRIAÇÃO DE TRATAMENTO PARA REG. TIB. NÃO INCIDENCIA

TRATAMENTO PARA SUSPENSÃO DE ICMS NA DI POR REGIÃO

EM DI VINCULADA COM DRAWBACK LEVA O VALOR A RECOLHER DO ICMS PARA A BASE

TRATAR SUSPENSÃO DE REGIME TRIBUTÁRIO NAS NOTAS FISCAIS.

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

...