CE PLUS - Nota 002922

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal

Data/Hora da Publicação: 18/01/2007 00:00:00

Data/Hora Última Alteração: 11/09/2013 09:59:47

Descrição da Nota: CRIADO PARAMETRO PARA LEVAR ICMS REDUZ NO TOTAL DA NF

Sintoma

Criado parametro para indicar se deve ser levado para a nota o valor de ICMS cheio ou o valor

reduzido.

 

 

Solução

Atualização do programa de Nota Fiscal para que seja criado um parametro para indicar se deve ser

levado para a nota o valor de ICMS cheio ou o valor reduzido.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

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

NA NF REMESSA A LINHA DO IPI NÃO ESTÁ PREENCHIDA COM A BASE DE CÁLCULO.

NA CRIAÇÃO DA NF DE REMESSA, O IPI NÃO OBDECE PARÂMETRO DA /PWS/ZYCIT033

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 02922 Data: 18/01/2007 Hora: 15:20:48

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 02922

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00026

Agrupamento              : 00149

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

02112  - 00003 - 6.0    - 00024  - NA CRIAÇÃO DA NF DE REMESSA, O IPI NÃO OBDECE PARÂMETRO DA /PWS/Z

02340  - 00001 - 6.0    - 00025  - TRATAR SUSPENSÃO DE REGIME TRIBUTÁRIO NAS NOTAS FISCAIS.

02863  - 00002 - 6.0    - 00026  - NA NF REMESSA A LINHA DO IPI NÃO ESTÁ PREENCHIDA COM A BASE DE CÁ

----------------------------------------------------------------------------------------------------

CRIADO PARAMETRO PARA LEVAR ICMS REDUZ NO TOTAL DA NF

----------------------------------------------------------------------------------------------------

Palavras Chave:

ICMS - TOTAL - NOTA - FISCAL - NF - GLOBAL - REMESSA

/PWS/SAPMZYCI016

----------------------------------------------------------------------------------------------------

Objetos da nota:

DTEL /PWS/ZYCIL847

REPS /PWS/MZYCI016F01

TABD /PWS/ZYCIT062

TOBJ /PWS/ZYCIT062S

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em DTEL /PWS/ZYCIL847

 

------------------------------------------------------------------------

Elemento de dados incluído: /PWS/ZYCIL847

Classe de desenvolvimento: /PWS/ZYGL

Idioma original: PT

Descrição breve incluída: (22 caracteres), idioma: PT

"GL - Total Reduzido NF"

Categoria de dados: Domínio

Domínio: XFIELD

ID parâmetro:

Nome componente default:

Documentar modificações: NÃO

Nome da ajuda de pesquisa:

Parâmetro da ajuda de pesquisa:

Comprimento máximo do denominador breve: 10

Denominador breve incluído (6 caracteres), idioma: PT

"Red.NF"

Comprimento máximo do denominador médio: 15

Denominador médio incluído (10 caracteres), idioma: PT

"Tot.Red.NF"

Comprimento máximo do denominador longo: 20

Denominador longo incluído (17 caracteres), idioma: PT

"Total Reduzido NF"

Comprimento máximo do título: 22

Título incluído (22 caracteres), idioma: PT

"GL - Total Reduzido NF"

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI016F01

 

...

    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.

  IF NOT /pws/zycit100-vlicms IS INITIAL AND

     NOT /pws/zycit100-icms_dif = 'X'.

* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO

    IF /pws/zycit062-tred IS INITIAL.

* << Fim da inclusão

    itab_zycit042-netpr = itab_zycit042-netpr + ( (

        /pws/zycit100-vlicms / itab_zycit042-qtd_iten )

        * 100 ) / itab_zycit003-basred.

* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO

    ELSE.

      itab_zycit042-netpr = itab_zycit042-netpr +

      ( /pws/zycit100-vlicms / itab_zycit042-qtd_iten ).

    ENDIF.

* << Fim da inclusão

  ENDIF.

...

 

...

    IF itab_zycit100-baseicms LT 0.

      CLEAR itab_zycit100-baseicms.

    ENDIF.

  ENDIF.

  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.

* >> Início da inclusão: FORM ITENS_NFNEW

      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

                                nrseq = itab_zycit042-nrseq

                                ebeln = itab_zycit042-ebeln

                                ebelp = itab_zycit042-ebelp.

        v_excbas    =  v_excbas *

                    ( 1 - ( itab_zycit003-advalicms / 100 ) ).

      ENDIF.

* << Fim da inclusão

      IF itab_zycit100-icms_dif = 'X'.

        IF /pws/zycit062-flag_icms = 'X'.

          DATA: v_base2   LIKE j_1bdytax-base.

          CLEAR v_base2.

          v_base2 = v_base2 + v_base.

        ENDIF.

        v_base_dif  =  v_base_dif + v_base2.

      ENDIF.

      it_zycee007-base   = v_base.

      it_zycee007-c_excbas = v_excbas .

...

 

...

        v_base_dif =  v_base_dif + itab_zycit100-baseicms.

      ENDIF.

      IF /pws/zycit001-meioemba = 'PS'.

        v_base_ps = it_zycee007-c_excbas.

      ENDIF.

    WHEN 3.

      PERFORM verifica_montante.

      v_montante1 = itab_zycit100-baseicms.

      v_othbas    = v_montante1 .

      v_excbas    = ( v_montante1 / v_basred * 100 ) - v_othbas.

* >> Início da inclusão: FORM ITENS_NFNEW

      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

                                nrseq = itab_zycit042-nrseq

                                ebeln = itab_zycit042-ebeln

                                ebelp = itab_zycit042-ebelp.

        v_excbas    =  v_excbas *

                    ( 1 - ( itab_zycit003-advalicms / 100 ) ).

      ENDIF.

* << Fim da inclusão

      IF itab_zycit100-icms_dif = 'X'.

        it_zycee007-othbas = it_zycee007-othbas

                     - itab_zycit100-vlicms.

        v_base_dif = v_base_dif + itab_zycit100-baseicms.

      ENDIF.

      it_zycee007-othbas = v_othbas.

      it_zycee007-c_excbas = v_excbas.

      IF /pws/zycit001-meioemba = 'PS'.

        v_base_ps = it_zycee007-othbas + it_zycee007-c_excbas.

      ENDIF.

...

 

...

      CLEAR v_total .

    ENDIF.

  ENDIF.

  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.

* >> Início da inclusão: FORM ITENS_NFRNEW

        IF NOT /pws/zycit062-tred IS INITIAL AND

           NOT /pws/zycit062-flag_icms IS INITIAL.

          it_zycee007-c_excbas    = it_zycee007-c_excbas *

                      ( 1 - ( itab_zycit003-advalicms / 100 ) ).

* << Fim da inclusão

      ENDIF.

* >> Início da inclusão: FORM ITENS_NFRNEW

      ENDIF.

* << Fim da inclusão

      IF itab_zycit100-icms_dif EQ 'X'.

        IF /pws/zycit062-flag_icms = 'X'.

          it_zycee007-base = it_zycee007-base - v_icms.

        ENDIF.

        v_icms_dif = v_icms_dif + v_icms.

        v_base_dif = v_base_dif + it_zycee007-base.

      ELSE.

        it_zycee007-taxval = v_icms.

      ENDIF.

      v_base = it_zycee007-base.

    WHEN 2.

      it_zycee007-c_excbas = v_total.

      IF itab_zycit100-icms_dif EQ 'X'.

        IF /pws/zycit062-flag_icms = 'X'.

* >> Início da inclusão: FORM ITENS_NFRNEW

          IF /pws/zycit062-tred IS INITIAL OR

             /pws/zycit062-flag_icms IS INITIAL.

* << Fim da inclusão

          it_zycee007-c_excbas = it_zycee007-c_excbas - v_icms.

* >> Início da inclusão: FORM ITENS_NFRNEW

          ENDIF.

* << Fim da inclusão

        ENDIF.

        v_icms_dif = v_icms_dif + v_icms.

        v_base_dif = v_base_dif + v_total.

      ELSE.

        it_zycee007-taxval = v_icms.

      ENDIF.

      v_base = it_zycee007-c_excbas.

    WHEN 3.

      it_zycee007-othbas = v_total.

      IF itab_zycit003-basred NE 100.

        it_zycee007-othbas =

        ( it_zycee007-othbas * itab_zycit003-basred / 100 ).

        it_zycee007-c_excbas = v_total - it_zycee007-othbas.

* >> Início da inclusão: FORM ITENS_NFRNEW

        IF NOT /pws/zycit062-tred IS INITIAL AND

           NOT /pws/zycit062-flag_icms IS INITIAL.

          it_zycee007-c_excbas    = it_zycee007-c_excbas *

                      ( 1 - ( itab_zycit003-advalicms / 100 ) ).

        ENDIF.

* << Fim da inclusão

      ENDIF.

      IF itab_zycit100-icms_dif EQ 'X'.

        IF /pws/zycit062-flag_icms = 'X'.

          it_zycee007-othbas = it_zycee007-othbas - 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.

...

 

...

        v_montante1 = itab_zycit100-basecofins.

        it_zycee007-cof_excbas = v_montante1.

        CLEAR it_zycee007-taxval_cof.

      WHEN 3.

        PERFORM verifica_montante.

        v_montante1 = itab_zycit100-basecofins.

        it_zycee007-othbas_cof = v_montante1.

    ENDCASE.

  ENDIF.

  IF /pws/zycit062-flag_icms = 'X' AND /pws/zycit001-meioemba NE 'PS'.

* >> Início da inclusão: FORM ITENS_NFNEW

    IF  /pws/zycit062-tred IS INITIAL.

* << Fim da inclusão

    IF NOT v_basred IS INITIAL.

      it_zycee007-p_excbas = it_zycee007-p_excbas +

           itab_zycit042-vldp + ( ( it_zycee007-taxval * 100 ) /

                                    v_basred  ) + v_impostos.

    ELSE.

      v_basred = '100'.

      it_zycee007-p_excbas = it_zycee007-p_excbas +

           itab_zycit042-vldp + ( ( it_zycee007-taxval * 100 ) /

                                    v_basred  ) + v_impostos.

    ENDIF.

* >> Início da inclusão: FORM ITENS_NFNEW

    ELSE.

      it_zycee007-p_excbas = it_zycee007-p_excbas +

       itab_zycit042-vldp + it_zycee007-taxval + v_impostos.

    ENDIF.

* << Fim da inclusão

  ELSEIF  /pws/zycit001-meioemba NE 'PS'.

    it_zycee007-p_excbas = it_zycee007-p_excbas + itab_zycit042-vldp +

            v_impostos.

  ELSE.

    CASE itab_zycit033-tribipi.

      WHEN 1.

        it_zycee007-base2 = it_zycee007-base2 +

        it_zycee007-taxval_pis + it_zycee007-taxval_cof.

      WHEN 2.

        it_zycee007-p_excbas = it_zycee007-p_excbas +

...

 

...

      ELSE.

        it_zycee007-taxval = v_icms.

      ENDIF.

      v_base = it_zycee007-othbas.

  ENDCASE.

  it_zycee007-taxtyp  = itab_zycit033-taxtyp.

  it_zycee007-taxtyp2 = itab_zycit033-taxtyp2.

  CASE itab_zycit033-tribipi.

    WHEN 1.

      it_zycee007-base2   = ( v_total - v_icms - v_ipi - v_outras_ic ).

* >> Início da exclusão: FORM ITENS_NFRNEW

      it_zycee007-p_excbas  =  v_base -

* << Fim da exclusão

* >> Início da inclusão: FORM ITENS_NFRNEW

      it_zycee007-p_excbas = ( v_base + it_zycee007-c_excbas ) -

* << Fim da inclusão

      ( v_total - v_icms - v_ipi - v_outras_ic ).

      CLEAR it_zycee007-taxval2.

    WHEN 2.

      it_zycee007-p_excbas = v_base.

      CLEAR it_zycee007-taxval2.

    WHEN 3.

      it_zycee007-othbas2  = ( v_total - v_icms - v_ipi - v_outras_ic ).

* >> Início da exclusão: FORM ITENS_NFRNEW

      it_zycee007-p_excbas = v_base -

* << Fim da exclusão

* >> Início da inclusão: FORM ITENS_NFRNEW

      it_zycee007-p_excbas = ( v_base + it_zycee007-c_excbas ) -

* << Fim da inclusão

      ( v_total - v_icms - v_ipi - v_outras_ic ).

      CLEAR it_zycee007-taxval2.

  ENDCASE.

  REFRESH itab_zyglt100.

  PERFORM verifica_exit USING 'D'

                      '/PWS/SAPMZYCI016'

                      'NFR001'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY zexit = 'NFR001'.

  IF itab_zyglt100-zexit_ativa NE 'X'.

...

 

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em TABD /PWS/ZYCIT062

 

Nome campo  Chv Elem.dados    Tab.verif. N CtDt Comp. Grupo

 

BS_RAT_ICMS     /PWS/ZYCIL830              CHAR     3

SUSP_NF         /PWS/ZYCIL844              CHAR     1

* >> Início da inclusão:

TRED            /PWS/ZYCIL847              CHAR     1

* << Fim da inclusão

USERNAMEC       SYUNAME                    CHAR    12

DTUSERC         SYDATUM                    DATS     8

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em TOBJ /PWS/ZYCIT062S

 

*Gerar tela de atualização da tabela /PWS/ZYCIT062