CE PLUS - Nota 007667

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal Complementar

Data/Hora da Publicação: 28/11/2008 00:00:00

Data/Hora Última Alteração: 23/02/2011 09:18:10

Descrição da Nota: AJUSTES PARA REALIZAR O LANÇAMENTO DE PIS E COFINS NA NF COMPL.

Sintoma

Ajustes para lançar os valores de PIS e COFINS na pasta impostos da nota fiscal complementar.

 

 

Solução

Ajustes para lançar os valores de PIS e COFINS na pasta impostos da nota fiscal complementar.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

OPERAÇÃO FUNDAP (PARTE II)

NA NF COMPLEMENTAR ESTÁ LEVANDO VALOR DE PIS E COFINS ISENTO

Informações Complementares

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

Nota Número 07667 Data: 28/11/2008 Hora: 09:58:07

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

 

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

Nota Número              : 07667

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00007

Agrupamento              : 00075

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

Referência às notas relacionadas:

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

 

03255  - 00001 - 6.0    - 00026  - NA NF COMPLEMENTAR ESTÁ LEVANDO VALOR DE PIS E COFINS ISENTO

05719  - 00002 - 7.0    - 00004  - OPERAÇÃO FUNDAP (PARTE II)

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

AJUSTES PARA REALIZAR O LANÇAMENTO DE PIS E COFINS NA NF COMPL.

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

Palavras Chave:

NOTA - FISCAL - COMPLEMENTAR - PIS - COFINS - IMPOSTOS - DESENVOLVIMENTO

/PWS/SAPMZYCI029 - /PWS/SAPMZYCI079

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

Objetos da nota:

REPS /PWS/MZYCI029F01

REPS /PWS/MZYCI029X01

REPS /PWS/MZYCI079F01

REPS /PWS/MZYCI079X01

 

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

Modificações efetuadas em REPS /PWS/MZYCI029F01

 

...

        READ TABLE itab_zycit100 WITH KEY

             ebeln = itab_zycit053_e-ebeln

             ebelp = itab_zycit053_e-ebelp.

        READ TABLE itab_zycit265_c WITH KEY

             nrseq = itab_zycit053_e-nrseq

             ebeln = itab_zycit053_e-ebeln

             ebelp = itab_zycit053_e-ebelp.

        READ TABLE itab_zycit019 WITH KEY

             codigo = itab_zycit053_c-codigo.

        CLEAR: v_pis, v_cofins, v_fator_y.

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

        IF NOT itab_zycit100-codregtripiscofi EQ '5' AND

           /pws/zycit062-susp_nf NE 'S'.

          IF /pws/zycie085-nrseqdi IS INITIAL.

* << Fim da exclusão

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

        IF /pws/zycie085-nrseqdi IS INITIAL OR

           /pws/zycie085-dtuserc IS INITIAL.

* << Fim da inclusão

            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

...

 

...

                  ENDIF.

                ENDIF.

              ENDIF.

            ENDIF.

          ELSE.

            CLEAR v_nova.

          ENDIF.

          IF NOT v_nova IS INITIAL.

            PERFORM mp_nova.

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

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

            itab_zycit265_c-basepis_cof =

                itab_zycit265_c-basepis_cof + itab_zycit100-basecofins.

* << Fim da inclusão

              IF NOT '35' CA itab_zycit100-codregtripiscofi.

                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.

            ENDIF.

          ELSE.

            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 inclusão: FORM COLLECT_DESPESAS

          itab_zycit265_c-basepis_cof = itab_zycit265_c-basepis_cof +

                                                                v_pis.

* << Fim da inclusão

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

              IF NOT '35' CA itab_zycit100-codregtripiscofi.

                itab_zycit265_c-vldp_pis = itab_zycit265_c-vldp_pis +

                  ( itab_zycit100-advalpis  / 100 ) * v_pis.

            itab_zycit265_c-vldp_cofins = itab_zycit265_c-vldp_cofins +

                         ( itab_zycit100-advalcofins / 100 ) * v_cofins.

              ENDIF.

            ENDIF.

          ENDIF.

          MODIFY itab_zycit265_c TRANSPORTING vldp_pis vldp_cofins

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

                                            basepis_cof

* << Fim da inclusão

              WHERE nrseq = itab_zycit053_e-nrseq

                AND ebeln = itab_zycit053_e-ebeln

                AND ebelp = itab_zycit053_e-ebelp.

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

        ENDIF.

* << Fim da exclusão

        IF itab_zycit020-baseicms = 'X' OR itab_zycit020-baseii = 'X'.

          itab_zycit053_c-contabiliza = 'X'.

        ELSE.

          CLEAR itab_zycit053_c-contabiliza.

...

 

...

    it_zycee005-pstdat = sy-datum.

  ENDIF.

ENDFORM.

FORM itens_nfc.

  DATA:

    v_material   LIKE j_1bnflin-maktx     ,

    v_tabix_exit LIKE sy-tabix            ,

    v_vlpis      LIKE /pws/zycit100-vlpis ,

    v_vlcofins   LIKE /pws/zycit100-vlcofins.

  DATA: itab_zycit398 LIKE /pws/zycit398 OCCURS 0 WITH HEADER LINE.

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

  DATA:       v_montante1   LIKE j_1bdytax-base.

* << Fim da inclusão

  IF /pws/zycbt007-waersb IS INITIAL.

    SELECT SINGLE * FROM /pws/zycbt007

                    WHERE bukrs EQ /pws/zycie264-bukrs.

  ENDIF.

  SELECT * FROM /pws/zycit398

   INTO TABLE itab_zycit398

    WHERE bukrs EQ /pws/zycie264-bukrs

      AND clnf  EQ itab_zycit033-clnf

      AND tpnf  EQ itab_zycit033-tpnf

      AND ( tributos EQ 'PIS' OR

...

 

...

  CLEAR: itab_zycit001, itab_zycit480.

  READ TABLE itab_zycit001 WITH KEY

                   nrseq = itab_zycit265_c2-nrseq.

  IF itab_zycit001-modalidade EQ '05'.

    READ TABLE itab_zycit480 WITH KEY

                   nrseq = itab_zycit265_c2-nrseq

                   ebeln = itab_zycit265_c2-ebeln

                   ebelp = itab_zycit265_c2-ebelp.

    IF sy-subrc EQ 0.

      itab_zycit003-advalicms = itab_zycit480-vl_aliqicms.

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

    ENDIF.

  ENDIF.

  READ TABLE itab_zycit265_c WITH KEY

                   nrseq = itab_zycit265_c2-nrseq

                   ebeln = itab_zycit265_c2-ebeln

                   ebelp = itab_zycit265_c2-ebelp

                   nrseqc = itab_zycit265_c2-nrseqc.

  READ TABLE itab_zycit398 WITH KEY tributos = 'PIS'.

  IF sy-subrc EQ 0.

    it_zycee007-leipis = itab_zycit398-leipis.

    it_zycee007-taxtyp_pis = itab_zycit398-taxtyp.

  ELSE.

    CLEAR it_zycee007-taxtyp_pis.

  ENDIF.

  IF NOT itab_zycit100-vlpis IS INITIAL.

    it_zycee007-taxval_pis = itab_zycit265_c2-vldp_pis.

  ELSE.

    CLEAR it_zycee007-taxval_pis .

  ENDIF.

  IF NOT it_zycee007-taxval_pis IS INITIAL.

    it_zycee007-rate_pis   = itab_zycit100-advalpis.

  ENDIF.

  CASE itab_zycit398-tribpiscof.

    WHEN 1.

      it_zycee007-base_pis = itab_zycit265_c-basepis_cof.

    WHEN 2.

      it_zycee007-pis_excbas = itab_zycit265_c-basepis_cof.

      CLEAR: it_zycee007-taxval_pis, it_zycee007-rate_pis.

    WHEN 3.

      it_zycee007-othbas_pis = itab_zycit265_c-basepis_cof.

  ENDCASE.

  READ TABLE itab_zycit398 WITH KEY tributos = 'COFINS'.

  IF sy-subrc EQ 0.

    it_zycee007-leicofins = itab_zycit398-leicofins.

    it_zycee007-taxtyp_cof = itab_zycit398-taxtyp.

  ELSE.

    CLEAR it_zycee007-taxtyp_cof.

* << Fim da inclusão

    ENDIF.

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

  IF NOT itab_zycit100-vlcofins IS INITIAL.

    it_zycee007-taxval_cof = itab_zycit265_c2-vldp_cofins.

  ELSE .

    CLEAR it_zycee007-taxval_cof .

* << Fim da inclusão

  ENDIF.

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

  IF NOT it_zycee007-taxval_cof IS INITIAL.

    it_zycee007-rate_cof   = itab_zycit100-advalcofins.

  ENDIF.

  CASE itab_zycit398-tribpiscof.

    WHEN 1.

      it_zycee007-base_cof = itab_zycit265_c-basepis_cof.

    WHEN 2.

      it_zycee007-cof_excbas = itab_zycit265_c-basepis_cof.

      CLEAR: it_zycee007-taxval_cof, it_zycee007-rate_cof.

    WHEN 3.

      it_zycee007-othbas_cof = itab_zycit265_c-basepis_cof.

  ENDCASE.

* << Fim da inclusão

  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.

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

      itab_zycit100-codregtriicms EQ '5' ) OR

...

 

...

      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-c_excbas = itab_zycit265_c2-vldp_dif -

                       it_zycee007-othbas.

      ELSE.

        it_zycee007-c_excbas = ( itab_zycit265_c2-vldp_dif -

        itab_zycit265_c2-vldp_dif_icms ) +

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

        ( itab_zycit265_c2-vldp_dif_icms  /

* << Fim da exclusão

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

        ( ( itab_zycit265_c2-vldp_dif_icms +

         itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins ) /

* << Fim da inclusão

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

        -  it_zycee007-othbas.

      ENDIF.

  ENDCASE.

  IF itab_zycit100-codregtriicms = '3' OR

     itab_zycit100-codregtriicms = '5'.

    CLEAR it_zycee007-taxval.

  ENDIF.

  CASE itab_zycit033-tribipi.

    WHEN 1.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI029X01

 

...

DATA: BEGIN OF itab_zycit265_c OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit265.

DATA: vldp_dif_icms LIKE /pws/zycit265-vldp_dif,

      processado,

* >> Início da inclusão:

      basepis_cof   TYPE j_1bdytax-base,

* << Fim da inclusão

      END OF itab_zycit265_c.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI079F01

 

...

             ebeln = itab_zycit053_e-ebeln

             ebelp = itab_zycit053_e-ebelp.

        READ TABLE itab_zycit019 WITH KEY

             codigo = itab_zycit053_c-codigo.

        CLEAR: v_pis, v_cofins, v_fator_y.

        v_fator_y = ( itab_zycit003-advalicms / 100 ) /

               ( ( 100 - itab_zycit003-advalicms -

                itab_zycit443-advalpis - itab_zycit443-advalcofins )

                / 100 ).

        v_pis = v_cofins = itab_zycit053_c-vlcompl * v_fator_y.

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

        itab_zycit265_c-basepis_cof = itab_zycit265_c-basepis_cof +

                                                              v_pis.

* << Fim da inclusão

        IF itab_zycit020-baseicms EQ 'X' AND

           /pws/zycit000-flagpiscof EQ 'X'.

          itab_zycit265_c-vldp_pis = itab_zycit265_c-vldp_pis +

            ( itab_zycit443-advalpis  / 100 ) * v_pis.

        ENDIF.

        IF itab_zycit020-baseicms EQ 'X' AND

           /pws/zycit000-flagpiscof EQ 'X'.

          itab_zycit265_c-vldp_cofins = itab_zycit265_c-vldp_cofins +

            ( itab_zycit443-advalcofins / 100 ) * v_cofins.

        ENDIF.

        MODIFY itab_zycit265_c TRANSPORTING vldp_pis vldp_cofins

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

                  basepis_cof

* << Fim da inclusão

            WHERE nrseq = itab_zycit053_e-nrseq

              AND ebeln = itab_zycit053_e-ebeln

              AND ebelp = itab_zycit053_e-ebelp.

        IF itab_zycit020-baseicms = 'X' OR itab_zycit020-baseii = 'X'.

          itab_zycit053_c-contabiliza = 'X'.

        ELSE.

          CLEAR itab_zycit053_c-contabiliza.

        ENDIF.

      ELSEIF  sy-subrc = 0 AND

      ( itab_zycit053_c-codigo = 'FOB' OR

...

 

...

  ELSE.

    it_zycee005-pstdat = sy-datum.

  ENDIF.

ENDFORM.

FORM itens_nfc.

  DATA:

    v_material   LIKE j_1bnflin-maktx     ,

    v_tabix_exit LIKE sy-tabix            ,

    v_vlpis      LIKE /pws/zycit443-vlpis ,

    v_vlcofins   LIKE /pws/zycit443-vlcofins.

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

  DATA: itab_zycit398 LIKE /pws/zycit398 OCCURS 0 WITH HEADER LINE.

* << Fim da inclusão

  IF /pws/zycbt007-waersb IS INITIAL.

    SELECT SINGLE * FROM /pws/zycbt007

                    WHERE bukrs EQ /pws/zycie264-bukrs.

  ENDIF.

  it_zycee007-tcode    = text-003.

  it_zycee007-tabela   = text-004.

  it_zycee007-cpochv   = /pws/zycie264-nrseqc.

  it_zycee007-itmtyp   = itab_zycit033-tpmat.

  READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit265_c2-ebeln

                                ebelp = itab_zycit265_c2-ebelp.

...

 

...

    it_zycee007-ownpro2 = 'X'.

  ENDIF.

  READ TABLE itab_zycit443 WITH KEY

     nrseq  = itab_zycit265_c2-nrseq

     ebeln  = itab_zycit265_c2-ebeln

     ebelp  = itab_zycit265_c2-ebelp.

  READ TABLE itab_zycit003 WITH KEY

     nrseq  = itab_zycit265_c2-nrseq

     ebeln  = itab_zycit265_c2-ebeln

     ebelp  = itab_zycit265_c2-ebelp.

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

  SELECT * FROM /pws/zycit398

   INTO TABLE itab_zycit398

    WHERE bukrs EQ /pws/zycie264-bukrs

      AND clnf  EQ itab_zycit033-clnf

      AND tpnf  EQ itab_zycit033-tpnf

      AND ( tributos EQ 'PIS' OR

            tributos EQ 'COFINS' ).

  READ TABLE itab_zycit265_c WITH KEY

                   nrseq = itab_zycit265_c2-nrseq

                   ebeln = itab_zycit265_c2-ebeln

                   ebelp = itab_zycit265_c2-ebelp

                   nrseqc = itab_zycit265_c2-nrseqc.

  READ TABLE itab_zycit398 WITH KEY tributos = 'PIS'.

  IF sy-subrc EQ 0.

    it_zycee007-leipis = itab_zycit398-leipis.

    it_zycee007-taxtyp_pis = itab_zycit398-taxtyp.

  ELSE.

    CLEAR it_zycee007-taxtyp_pis.

  ENDIF.

  IF NOT itab_zycit443-vlpis IS INITIAL.

    it_zycee007-taxval_pis = itab_zycit265_c2-vldp_pis.

  ELSE.

    CLEAR it_zycee007-taxval_pis .

  ENDIF.

  IF NOT it_zycee007-taxval_pis IS INITIAL.

    it_zycee007-rate_pis   = itab_zycit443-advalpis.

  ENDIF.

  CASE itab_zycit398-tribpiscof.

    WHEN 1.

      it_zycee007-base_pis = itab_zycit265_c-basepis_cof.

    WHEN 2.

      it_zycee007-pis_excbas = itab_zycit265_c-basepis_cof.

      CLEAR: it_zycee007-taxval_pis, it_zycee007-rate_pis.

    WHEN 3.

      it_zycee007-othbas_pis = itab_zycit265_c-basepis_cof.

  ENDCASE.

  READ TABLE itab_zycit398 WITH KEY tributos = 'COFINS'.

  IF sy-subrc EQ 0.

    it_zycee007-leicofins = itab_zycit398-leicofins.

    it_zycee007-taxtyp_cof = itab_zycit398-taxtyp.

  ELSE.

    CLEAR it_zycee007-taxtyp_cof.

  ENDIF.

  IF NOT itab_zycit443-vlcofins IS INITIAL.

    it_zycee007-taxval_cof = itab_zycit265_c2-vldp_cofins.

  ELSE .

    CLEAR it_zycee007-taxval_cof .

  ENDIF.

  IF NOT it_zycee007-taxval_cof IS INITIAL.

    it_zycee007-rate_cof   = itab_zycit443-advalcofins.

  ENDIF.

  CASE itab_zycit398-tribpiscof.

    WHEN 1.

      it_zycee007-base_cof = itab_zycit265_c-basepis_cof.

    WHEN 2.

      it_zycee007-cof_excbas = itab_zycit265_c-basepis_cof.

      CLEAR: it_zycee007-taxval_cof, it_zycee007-rate_cof.

    WHEN 3.

      it_zycee007-othbas_cof = itab_zycit265_c-basepis_cof.

  ENDCASE.

* << Fim da inclusão

 it_zycee007-rate   = itab_zycit003-advalicms.

  it_zycee007-taxtyp = itab_zycit033-taxtyp.

  CLEAR it_zycee007-taxval.

  CASE itab_zycit033-tribicms.

    WHEN 1.

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

        IF itab_zycit443-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 ) / 100 ) .

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI079X01

 

...

  data: begin of itab_zycit265_c occurs 0.

        include structure /pws/zycit265.

  data: vldp_dif_icms like /pws/zycit265-vldp_dif,

        processado,

* >> Início da inclusão:

      basepis_cof   TYPE j_1bdytax-base,

* << Fim da inclusão

        end of itab_zycit265_c.

...