CE PLUS - Nota 005067

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal Complementar

Data/Hora da Publicação: 24/10/2007 00:00:00

Data/Hora Última Alteração: 23/02/2011 09:15:32

Descrição da Nota: NOTA FISCAL COMPLEMENTAR ESTA INCORRETA QUANDO SE REFERE A LINHA DO ICMS

Sintoma

Não estava verificando o regime tributário corretamente para realizar o calculo do Valor do Imposto

e Base de Calculo na Nf complementar.

 

 

Solução

Verificar o regime tributário corretamente para realizar o calculo do Valor do Imposto e Base de

Calculo

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

DI NAO CALCULA CORRETAMENTE ICMS QUANDO REDUZIDO

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

Informações Complementares

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

Nota Número 05067 Data: 24/10/2007 Hora: 11:24:41

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

 

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

Nota Número              : 05067

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00018

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

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.

04922  - 00002 - 7.0    - 00003  - DI NAO CALCULA CORRETAMENTE ICMS QUANDO REDUZIDO

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

NOTA FISCAL COMPLEMENTAR ESTA INCORRETA QUANDO SE REFERE A LINHA DO ICMS

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

Palavras Chave:

LINHA ICMS - NF COMPL - MONTANTE BASE - MONTANTE BASE EXCLUIDO

BASE DE CALCULO

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

Objetos da nota:

REPS /PWS/MZYCI029F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI029F01

 

...

     ebeln  = itab_zycit265_c2-ebeln

     ebelp  = itab_zycit265_c2-ebelp.

  if itab_zycit100-icms_dif = 'X'.

    itab_zycit003-basred = '100'.

  endif.

 it_zycee007-rate   = itab_zycit003-advalicms.

  it_zycee007-taxtyp = itab_zycit033-taxtyp.

  CLEAR it_zycee007-taxval.

  CASE itab_zycit033-tribicms.

    WHEN 1.

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

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

        IF itab_zycit100-icms_dif NE 'X'.

* << Fim da exclusão

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

          IF ( /pws/zycit062-susp_nf EQ 'S' AND

          itab_zycit100-codregtriICMS EQ '5' ) or

             /pws/zycit062-flag_icms NE 'X' or

             ( /pws/zycit062-BS_CHEIA_DIF NE 'X' and

             itab_zycit100-icms_dif EQ 'X' ) or

             itab_zycit100-codregtriICMS EQ '3' .

* << Fim da inclusão

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

          it_zycee007-taxval = ( itab_zycit265_c2-vldp_dif_icms +

* << Fim da exclusão

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

          it_zycee007-base = ( itab_zycit265_c2-vldp_dif_icms +

           itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins ).

          else.

          it_zycee007-base = ( itab_zycit265_c2-vldp_dif_icms +

* << Fim da inclusão

           itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )

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

        ENDIF.

        IF NOT /pws/zycit062-bcnfc IS INITIAL AND

          (  NOT itab_zycit003-basred IS INITIAL AND

             NOT itab_zycit003-basred EQ '100' ).

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

          it_zycee007-base   = it_zycee007-taxval *

* << Fim da exclusão

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

          it_zycee007-base   = it_zycee007-base *

* << Fim da inclusão

                ( itab_zycit003-basred / 100 )  .

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

          it_zycee007-taxval   = it_zycee007-base *

                ( itab_zycit003-advalicms / 100 ).

          it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -

                               ( itab_zycit265_c2-vldp_dif

                                 *     ( itab_zycit003-basred / 100 ) ).

        ELSE.

          it_zycee007-taxval   = it_zycee007-taxval *

                  ( itab_zycit003-advalicms / 100 ).

          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.

            it_zycee007-base     = itab_zycit265_c2-vldp_dif_icms +

                                  it_zycee007-taxval           +

                                  itab_zycit265_c2-vldp_pis    +

                                  itab_zycit265_c2-vldp_cofins .

          ENDIF.

          it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -

                               itab_zycit265_c2-vldp_dif_icms.

* << Fim da exclusão

        ENDIF.

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

      ELSE.

        IF NOT /pws/zycit062-bcnfc IS INITIAL AND

          (  NOT itab_zycit003-basred IS INITIAL AND

             NOT itab_zycit003-basred EQ '100' ).

          it_zycee007-base   = ( itab_zycit265_c2-vldp_dif_icms     +

             itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )

                      *  ( itab_zycit003-basred / 100 )  .

* << Fim da exclusão

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

        IF itab_zycit100-icms_dif NE 'X' and

          itab_zycit100-codregtriICMS NE '3' and

          itab_zycit100-codregtriICMS NE '5'.

* << Fim da inclusão

          it_zycee007-taxval   = it_zycee007-base *

                ( itab_zycit003-advalicms / 100 ).

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

        endif.

* << Fim da inclusão

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

          IF ( /pws/zycit062-susp_nf EQ 'S' AND

          itab_zycit100-codregtriICMS EQ '5' ) or

             /pws/zycit062-flag_icms NE 'X' or

             ( /pws/zycit062-BS_CHEIA_DIF NE 'X' and

             itab_zycit100-icms_dif EQ 'X' ) or

             itab_zycit100-codregtriICMS EQ '3' .

* << Fim da inclusão

          it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -

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

                               ( itab_zycit265_c2-vldp_dif

                                 *     ( itab_zycit003-basred / 100 ) ).

* << Fim da exclusão

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

                            it_zycee007-base.

          ELSE.

            it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -

           ( itab_zycit265_c2-vldp_dif * ( itab_zycit003-basred / 100 ) ).

          ENDIF.

* << Fim da inclusão

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

        ELSE.

          it_zycee007-base     = itab_zycit265_c2-vldp_dif_icms     +

                                itab_zycit265_c2-vldp_pis    +

                                itab_zycit265_c2-vldp_cofins .

          IF itab_zycit100-icms_dif NE 'X'.

            it_zycee007-taxval   = ( itab_zycit265_c2-vldp_dif_icms +

           itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )

                        / 100 * itab_zycit003-advalicms.

          ENDIF.

          it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -

                               itab_zycit265_c2-vldp_dif_icms.

        ENDIF.

      ENDIF.

* << Fim da exclusão

    WHEN 2.

      IF NOT /pws/zycit062-bcnfc IS INITIAL AND

        (  NOT itab_zycit003-basred IS INITIAL AND

           NOT itab_zycit003-basred EQ '100' ).

        it_zycee007-c_excbas  = itab_zycit265_c2-vldp_dif  -

          ( ( itab_zycit265_c2-vldp_dif_icms     +

           itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )

           *  ( itab_zycit003-basred / 100 )  ) .

      ELSE.

        it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif.

      ENDIF.

    WHEN 3.

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

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

        IF itab_zycit100-icms_dif NE 'X'.

* << Fim da exclusão

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

          IF ( /pws/zycit062-susp_nf EQ 'S' AND

          itab_zycit100-codregtriICMS EQ '5' ) or

             /pws/zycit062-flag_icms NE 'X' or

             ( /pws/zycit062-BS_CHEIA_DIF NE 'X' and

             itab_zycit100-icms_dif EQ 'X' ) or

             itab_zycit100-codregtriICMS EQ '3' .

          it_zycee007-othbas = ( itab_zycit265_c2-vldp_dif_icms +

           itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins ).

          else.

* << Fim da inclusão

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

          it_zycee007-taxval   = ( itab_zycit265_c2-vldp_dif_icms +

* << Fim da exclusão

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

          it_zycee007-othbas = ( itab_zycit265_c2-vldp_dif_icms +

* << Fim da inclusão

           itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )

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

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

* << Fim da exclusão

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

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

* << Fim da inclusão

        ENDIF.

        IF NOT /pws/zycit062-bcnfc IS INITIAL AND

          (  NOT itab_zycit003-basred IS INITIAL AND

             NOT itab_zycit003-basred EQ '100' ).

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

          it_zycee007-taxval   = ( it_zycee007-taxval *

             ( itab_zycit003-basred / 100 )  ) *

               ( itab_zycit003-advalicms / 100 ).

* << Fim da exclusão

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

          it_zycee007-othbas   = it_zycee007-othbas *

* << Fim da inclusão

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

         it_zycee007-othbas   =  ( itab_zycit265_c2-vldp_dif_icms     +

             itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )

                                    *  ( itab_zycit003-basred / 100 )  .

* << Fim da exclusão

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

                ( itab_zycit003-basred / 100 )  .

        ENDIF.

* << Fim da inclusão

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

          it_zycee007-c_excbas  = itab_zycit265_c2-vldp_dif  -

           ( ( itab_zycit265_c2-vldp_dif_icms     +

            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.

          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 ).

            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 )  .

            ENDIF.

          ENDIF.

          it_zycee007-taxval   =  it_zycee007-taxval *

* << Fim da exclusão

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

        IF itab_zycit100-icms_dif NE 'X' and

          itab_zycit100-codregtriICMS NE '3' and

          itab_zycit100-codregtriICMS NE '5'.

            it_zycee007-taxval   = it_zycee007-othbas *

* << Fim da inclusão

                   ( itab_zycit003-advalicms / 100 ).

        ENDIF.

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

      ELSE.

        IF itab_zycit100-icms_dif NE 'X'.

          IF NOT /pws/zycit062-bcnfc IS INITIAL AND

            (  NOT itab_zycit003-basred IS INITIAL AND

               NOT itab_zycit003-basred EQ '100' ).

            it_zycee007-taxval   = ( ( itab_zycit265_c2-vldp_dif_icms +

            itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )

             *  ( itab_zycit003-basred / 100 ) )

              *  ( itab_zycit003-advalicms / 100 )  .

            it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif  -

            ( ( itab_zycit265_c2-vldp_dif_icms     +

             itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )

             *  ( itab_zycit003-basred / 100 )  ) .

            it_zycee007-othbas   = itab_zycit265_c2-vldp_dif_icms

                         *  ( itab_zycit003-basred / 100 ) .

          ELSE.

            it_zycee007-taxval   = ( itab_zycit265_c2-vldp_dif_icms +

            itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )

                     / 100 * itab_zycit003-advalicms.

* << Fim da exclusão

 

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

          IF ( /pws/zycit062-susp_nf EQ 'S' AND

          itab_zycit100-codregtriICMS EQ '5' ) or

             /pws/zycit062-flag_icms NE 'X' or

             ( /pws/zycit062-BS_CHEIA_DIF NE 'X' and

             itab_zycit100-icms_dif EQ 'X' ) or

             itab_zycit100-codregtriICMS EQ '3' .

* >> Fim da inclusão: FORM ITENS_NFC

            it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -

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

                             itab_zycit265_c2-vldp_dif_icms.

            it_zycee007-othbas   = itab_zycit265_c2-vldp_dif_icms.

* << Fim da exclusão

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

                            it_zycee007-othbas.

          ELSE.

             it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif  -

             ( ( itab_zycit265_c2-vldp_dif_icms     +

              itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )

              *  ( itab_zycit003-basred / 100 )  ) .

 

          ENDIF.

* << Fim da inclusão

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

          ENDIF.

        ENDIF.

      ENDIF.

* << Fim da exclusão

  ENDCASE.

  IF itab_zycit100-codregtri = '3' OR

     itab_zycit100-codregtri = '5'.

    CLEAR it_zycee007-taxval.

  ENDIF.

  CASE itab_zycit033-tribipi.

    WHEN 1.

      it_zycee007-base2   = itab_zycit265_c2-vldp_dif.

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

          itab_zycit100-icms_dif NE 'X'.

...