CE PLUS - Nota 003219

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.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

CRIADO PARAMETRO PARA LEVAR ICMS REDUZ NO TOTAL DA NF

DI E DA COM PARAMETRO DA 062

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

AJUSTE NOTA FISCAL REMESSA VALOR DO ICMS REDUZIDO

NECESSÁRIO FAZER TRATAMENTO DA DSI E NF GLOBAL COM REGIME SUSPENSO.

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

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.

...