CE PLUS - Nota 002635

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal Complementar

Data/Hora da Publicação: 07/12/2006 00:00:00

Data/Hora Última Alteração: 23/02/2011 09:12:46

Descrição da Nota: NF COMPLEMENTAR VALOR PIS COFINS E ICMS ERRADO

Sintoma

1) Ao gerar a NF Complementar no valor de R$ 1.000,00 - o valor de pis cofins e icms está sendo

gerado incorretamente - o sistema deverá realizar os calculos conforme a NF Global, ou seja:

utilizar as mesmas alíquotas de pis cofins e icms da DI. Segue planilha utilizada para conferencia

dos calculos.

2) Verificado parâmetro na tabela zycit398 e o Pis e o Cofins não estão sendo destacados na NF

Complementar.

 

 

Solução

Atualização do programa de nota fiscal complementar para fazer tratamento igual a nota fiscal

global.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

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

Informações Complementares

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

Nota Número 02635 Data: 07/12/2006 Hora: 16:37:15

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

 

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

Nota Número              : 02635

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00025

Agrupamento              : 00142

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

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.

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

NF COMPLEMENTAR VALOR PIS COFINS E ICMS ERRADO

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

Palavras Chave:

NFC - PIS - COFINS - ICMS

 

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

Objetos da nota:

REPS /PWS/MZYCI029F01

REPS /PWS/MZYCI029TOP

 

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

Modificações efetuadas em REPS /PWS/MZYCI029F01

 

...

  ENDLOOP.

ENDFORM.

FORM collect_despesas.

  DATA: v_soma1 LIKE /pws/zycit053-vlreal,

        v_soma2 LIKE /pws/zycit053-vlreal,

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

        v_fator_y TYPE p DECIMALS 9.

* << Fim da exclusão

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

        v_fator_y TYPE p DECIMALS 9,

        v_nova TYPE c.

* << Fim da inclusão

  CLEAR:   itab_zycit053_b, itab_zycit036_b, itab_zycit053_c,

           itab_zycit036_c, itab_zycit036_d, itab_zycit053_d,

           itab_zycit053_e, itab_zycit053r, itab_zycit265_c.

  REFRESH: itab_zycit053_b, itab_zycit036_b, itab_zycit053_c,

           itab_zycit036_c, itab_zycit036_d, itab_zycit053_d,

...

 

...

        READ TABLE itab_zycit019 WITH KEY

             codigo = itab_zycit053_c-codigo.

        CLEAR: v_pis, v_cofins, v_fator_y.

        IF NOT itab_zycit100-codregtripiscofi EQ '5' AND

           /pws/zycit062-susp_nf NE 'S'.

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

          IF /pws/zycie085-nrseqdi IS INITIAL.

            SELECT SINGLE * FROM /pws/zycit085

                  INTO /pws/zycie085

                  WHERE nrseqdi EQ itab_zycit100-nrseqdi.

          ENDIF.

          IF itab_zycit438[] IS INITIAL.

            SELECT  * FROM /pws/zycit438 INTO TABLE itab_zycit438

               WHERE regio = v_regio

               AND   lei = 'MP252'.

            IF sy-subrc NE 0.

              SELECT  * FROM /pws/zycit438 INTO TABLE itab_zycit438

                 WHERE regio = ' '

                 AND   lei = 'MP252'.

            ENDIF.

            SELECT  * FROM /pws/zycit438 APPENDING TABLE itab_zycit438

                WHERE regio = v_regio

                AND   lei = 'MP255'.

            IF sy-subrc NE 0.

             SELECT  * FROM /pws/zycit438 APPENDING TABLE itab_zycit438

                          WHERE regio = ' '

                          AND   lei = 'MP255'.

            ENDIF.

          ENDIF.

          IF NOT itab_zycit438[] IS INITIAL.

            IF NOT /pws/zycie085-dtreg IS INITIAL.

              READ TABLE itab_zycit438 WITH KEY lei = 'MP252'.

              IF sy-subrc EQ 0.

               IF itab_zycit438-vigencia     <= /pws/zycie085-dtreg AND

                  itab_zycit438-vigencia_ate >= /pws/zycie085-dtreg AND

                            NOT itab_zycit438-vigencia IS INITIAL.

                  v_nova = 'X'.

                ELSE.

                  READ TABLE itab_zycit438 WITH KEY lei = 'MP255'.

                  IF sy-subrc EQ 0.

               IF itab_zycit438-vigencia     <= /pws/zycie085-dtreg AND

                  itab_zycit438-vigencia_ate >= /pws/zycie085-dtreg AND

                                  NOT itab_zycit438-vigencia IS INITIAL.

                      v_nova = 'X'.

                    ENDIF.

                  ENDIF.

                ENDIF.

              ELSE.

                READ TABLE itab_zycit438 WITH KEY lei = 'MP255'.

                IF sy-subrc EQ 0.

               IF itab_zycit438-vigencia     <= /pws/zycie085-dtreg AND

                  itab_zycit438-vigencia_ate >= /pws/zycie085-dtreg AND

                                  NOT itab_zycit438-vigencia IS INITIAL.

                    v_nova = 'X'.

                  ENDIF.

                ENDIF.

              ENDIF.

            ELSE.

              READ TABLE itab_zycit438 WITH KEY lei = 'MP252'.

              IF sy-subrc EQ 0.

             IF itab_zycit438-vigencia     <= /pws/zycie085-dtuserc AND

                itab_zycit438-vigencia_ate >= /pws/zycie085-dtuserc AND

                                  NOT itab_zycit438-vigencia IS INITIAL.

                  v_nova = 'X'.

                ELSE.

                  READ TABLE itab_zycit438 WITH KEY lei = 'MP255'.

                  IF sy-subrc EQ 0.

             IF itab_zycit438-vigencia     <= /pws/zycie085-dtuserc AND

                itab_zycit438-vigencia_ate >= /pws/zycie085-dtuserc AND

                                  NOT itab_zycit438-vigencia IS INITIAL.

                      v_nova = 'X'.

                    ENDIF.

                  ENDIF.

                ENDIF.

              ELSE.

                READ TABLE itab_zycit438 WITH KEY lei = 'MP255'.

                IF sy-subrc EQ 0.

             IF itab_zycit438-vigencia     <= /pws/zycie085-dtuserc AND

                itab_zycit438-vigencia_ate >= /pws/zycie085-dtuserc AND

                                  NOT itab_zycit438-vigencia IS INITIAL.

                    v_nova = 'X'.

                  ENDIF.

                ENDIF.

              ENDIF.

            ENDIF.

          ELSE.

            CLEAR v_nova.

          ENDIF.

          IF NOT v_nova IS INITIAL.

            PERFORM mp_nova.

            IF /pws/zycit000-flagpiscof EQ 'X'.

              itab_zycit265_c-vldp_pis = itab_zycit265_c-vldp_pis +

                ( itab_zycit100-advalpis  / 100 ) *

                                itab_zycit100-basepis.

              itab_zycit265_c-vldp_cofins =

                      itab_zycit265_c-vldp_cofins +

                            ( itab_zycit100-advalcofins / 100 ) *

                                             itab_zycit100-basecofins.

            ENDIF.

          ELSE.

* << Fim da inclusão

          v_fator_y = ( itab_zycit003-advalicms / 100 ) /

                 ( ( 100 - itab_zycit003-advalicms -

                  itab_zycit100-advalpis - itab_zycit100-advalcofins )

                  / 100 ).

          v_pis = v_cofins = itab_zycit053_c-vlcompl * v_fator_y.

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

          IF itab_zycit020-baseicms EQ 'X' AND

             /pws/zycit000-flagpiscof EQ 'X'.

* << Fim da exclusão

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

            IF /pws/zycit000-flagpiscof EQ 'X'.

* << Fim da inclusão

            itab_zycit265_c-vldp_pis = itab_zycit265_c-vldp_pis +

              ( itab_zycit100-advalpis  / 100 ) * v_pis.

          ENDIF.

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

          IF itab_zycit020-baseicms EQ 'X' AND

             /pws/zycit000-flagpiscof EQ 'X'.

* << Fim da exclusão

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

            IF /pws/zycit000-flagpiscof EQ 'X'.

* << Fim da inclusão

            itab_zycit265_c-vldp_cofins = itab_zycit265_c-vldp_cofins +

              ( itab_zycit100-advalcofins / 100 ) * v_cofins.

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

            ENDIF.

* << Fim da inclusão

          ENDIF.

          MODIFY itab_zycit265_c TRANSPORTING vldp_pis vldp_cofins

              WHERE nrseq = itab_zycit053_e-nrseq

                AND ebeln = itab_zycit053_e-ebeln

                AND ebelp = itab_zycit053_e-ebelp.

...

 

...

    WHEN '0200'.

      SET PF-STATUS '0200'.

      SET TITLEBAR  '0200'.

  ENDCASE.

ENDFORM.

* >> Início da inclusão:

FORM mp_nova.

  DATA: v_pisred TYPE /pws/zycie085-vlfob,

        v_cofred TYPE /pws/zycie085-vlfob,

        v_calcpc TYPE /pws/zycit100-basepis.

  DATA: v_advii   LIKE /pws/zycie085-vlfob,

        v_advipi  LIKE /pws/zycie085-vlfob,

        v_advicms LIKE /pws/zycie085-vlfob,

        v_advpis  LIKE /pws/zycie085-vlfob,

        v_advcof  LIKE /pws/zycie085-vlfob,

        v_divisor LIKE /pws/zycie085-vlfob,

        v_redpis  LIKE /pws/zycie085-vlfob,

        v_redcof  LIKE /pws/zycie085-vlfob.

  DATA: v_calcpc_ant TYPE /pws/zycit100-basepis.

  CLEAR: itab_zycit100-basecofins ,

         itab_zycit100-basepis    .

  IF itab_zycit100-basredpis  >= '100'.

    itab_zycit100-basredpis = '0'.

  ENDIF.

  IF itab_zycit100-basredcof >= '100'.

    itab_zycit100-basredcof = '0'.

  ENDIF.

  IF /pws/zycit062-bs_pis_cof IS INITIAL.

    IF NOT itab_zycit003-basred IS INITIAL OR

       NOT itab_zycit003-basred EQ '100'.

      v_advicms = ( ( itab_zycit003-advalicms / 100 ) *

       ( itab_zycit003-basred / 100 ) ) .

    ELSE.

      v_advicms = ( itab_zycit003-advalicms / 100 ).

    ENDIF.

  ELSE.

    v_advicms = ( itab_zycit003-advalicms / 100 ).

  ENDIF.

  IF itab_zycit100-codregtri EQ '4'.

    v_advii =  itab_zycit100-reduzida / 100 .

    IF  itab_zycit100-reduzida IS INITIAL.

      v_advii = itab_zycit003-advalii / 100 .

    ENDIF.

  ENDIF.

  IF itab_zycit100-codregtriipi EQ '2'.

    v_advipi =  itab_zycit100-reduzidaipi / 100.

    IF itab_zycit100-reduzidaipi IS INITIAL.

      v_advipi =  itab_zycit003-advalipi / 100.

    ENDIF.

  ELSEIF itab_zycit100-codregtriipi EQ '4' AND

      itab_zycit003-advalipi IS INITIAL.

    v_advipi = itab_zycit100-vlipi / itab_zycit100-baseipi .

  ENDIF.

  CASE itab_zycit100-codregtripiscofi.

    WHEN '4'.

      IF itab_zycit100-basredpis IS INITIAL OR

         itab_zycit100-basredpis GT '100' .

        v_pisred  = ( itab_zycit100-advalpis / 100 ).

      ELSE.

        v_pisred  = ( itab_zycit100-basredpis / 100 ).

      ENDIF.

      IF itab_zycit100-basredcof IS INITIAL OR

         itab_zycit100-basredcof GT '100'.

        v_cofred  = ( itab_zycit100-advalcofins / 100 ).

      ELSE.

        v_cofred  = ( itab_zycit100-basredcof / 100 ).

      ENDIF.

    WHEN '1' OR '3' OR '5'.

      IF itab_zycit100-aliqpis IS INITIAL.

        v_pisred  = ( itab_zycit100-advalpis / 100 ).

      ELSE.

        v_pisred  = ( itab_zycit100-aliqpis / 100 ).

      ENDIF.

      IF itab_zycit100-aliqcof IS INITIAL.

        v_cofred  = ( itab_zycit100-advalcofins / 100 ).

      ELSE.

        v_cofred  = ( itab_zycit100-aliqcof / 100 ).

      ENDIF.

  ENDCASE.

  IF ( NOT v_pisred IS INITIAL ) OR ( NOT v_cofred IS INITIAL ) .

    v_advpis = v_pisred.

    v_advcof = v_cofred.

  ENDIF.

  v_calcpc_ant = v_calcpc.

  v_calcpc = ( itab_zycit053_c-vlcompl *

             ( (  1 + v_advicms *  ( v_advii + v_advipi *

             ( 1 + v_advii ) ) ) / ( ( 1 - v_advpis - v_advcof ) *

             ( 1 - v_advicms ) ) ) ).

  IF v_calcpc LT '0'.

    CLEAR : itab_zycit100-basredpis, itab_zycit100-basredcof,

    v_calcpc.

    MESSAGE s015 WITH text-239 text-240.

    itab_zycit100-basecofins = itab_zycit100-basepis =

   itab_zycit100-basecofins  = itab_zycit100-basepis = v_calcpc_ant.

  ELSE.

    IF NOT itab_zycit100-percreduzpc IS INITIAL.

      v_calcpc =  v_calcpc - ( v_calcpc *

            ( ( 100 - itab_zycit100-percreduzpc ) / 100 ) ).

    ENDIF.

    itab_zycit100-basecofins  = itab_zycit100-basepis = v_calcpc.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

 

...

    CLEAR itab_zyglt100 .

    READ TABLE itab_zyglt100 WITH KEY zexit = 'NFC004'.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

          (itab_zyglt100-programa) IF FOUND.

      IF e_subrc EQ '8'.

        EXIT.

      ENDIF.

    ENDIF.

    IF e_subrc EQ '0'.

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

      CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_02B'

* << Fim da exclusão

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

      CALL FUNCTION '/PWS/ZYCI_TRANSACAO_F_02C'

* << Fim da inclusão

           EXPORTING

                v_modo          = v_modo_bi

           TABLES

                t_dados         = itab_zycbe033

                t_campo         = itab_zycbt034

                t_zycbt032      = itab_zycbt032

                t_contas        = itab_contas

           EXCEPTIONS

                campo_em_branco = 1

                periodo_fechado = 2

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI029TOP

 

...

DATA: BEGIN OF itab_matuse OCCURS 0.

DATA: ebeln      LIKE ekpo-ebeln,

      ebelp      LIKE ekpo-ebelp,

      j_1bmatuse LIKE ekpo-j_1bmatuse.

DATA: END OF itab_matuse .

* >> Início da inclusão:

DATA: BEGIN OF itab_zycit438 OCCURS 0 .

        INCLUDE STRUCTURE /pws/zycit438.

DATA: END OF itab_zycit438.

* << Fim da inclusão

DATA: wa_zycit048 LIKE /pws/zycit048.

DATA: wa_zycit019 LIKE /pws/zycit019.

DATA: wa_zyglt369 LIKE /pws/zyglt369.

DATA: okcode       LIKE   sy-ucomm,

      v_adrnr      LIKE   j_1bbranch-adrnr,

...

 

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 239

 

Texto: (34 caracteres)

"Valor da Base Pis/Cofins negativo."

 

Comprimento máximo: 34

 

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

Incluído símbolo de texto:

Idioma: PT

 

Símbolo: 240

 

Texto: (26 caracteres)

"Favor verificar alíquotas."

 

Comprimento máximo: 26