CE PLUS - Nota 007511

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal

Data/Hora da Publicação: 31/10/2008 00:00:00

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

Descrição da Nota: DESPESA DUPLICADA NA BASE DE IPI E ICMS NA NOTA FISCAL(FUNDAP)

Sintoma

Na nota fiscal(fundap) existem despesas que estão sendo duplicadas no montante base de IPI e ICMS.

 

 

Solução

Atualização do programa de Nota Fiscal para que o sistema efetue o cálculo da Nota Fiscal de

Transfência (FUNDAP) corretamente nos casos de despesas que sejam Base de II.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

OPERAÇÃO FUNDAP (PARTE II)

Informações Complementares

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

Nota Número 07511 Data: 31/10/2008 Hora: 09:04:36

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

 

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

Nota Número              : 07511

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00007

Agrupamento              : 00071

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

Referência às notas relacionadas:

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

 

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

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

DESPESA DUPLICADA NA BASE DE IPI E ICMS NA NOTA FISCAL(FUNDAP)

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

Palavras Chave:

DESPESA - NOTA - FISCAL - FUNDAP - BASE - IPI - ICMS

/PWS/SAPMZYCI016

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

Objetos da nota:

REPS /PWS/MZYCI016F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI016F01

 

...

    SELECT SINGLE embarca FROM /pws/zycit001

                  INTO v_embarca

                  WHERE nrseq EQ /pws/zycie042-nrseq.

    IF v_embarca EQ /pws/zycie001-embarca.

      UPDATE /pws/zycit042 SET embarca = /pws/zycie042-embarca

                      WHERE nrseq = /pws/zycie042-nrseq."#EC CI_NOFIRST

    ENDIF.

  ENDIF.

ENDFORM.

FORM seleciona_itens_nfg.

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

  DATA: v_vldpb LIKE /pws/zycit049-vldp,

        v_vlrealb TYPE /pws/zycit053-vlreal.

* << Fim da inclusão

  DATA: v_nolin TYPE i VALUE IS INITIAL,

        wa_zycit042 LIKE /pws/zycit042 ,

        v_ternacion LIKE /pws/zycit042-netpr,

        v_ntgew_tot LIKE itab_zycit003-ntgew.

  DATA: BEGIN OF itab_zycit049_fndp OCCURS 0.

          INCLUDE STRUCTURE /pws/zycit049.

  DATA: END OF itab_zycit049_fndp .

  DATA v_vlsisco LIKE v_vldp.

  IF t001 IS INITIAL OR /pws/zycit000 IS INITIAL.

    SELECT SINGLE * FROM t001 WHERE bukrs = /pws/zycie041-bukrs.

...

 

...

          ENDIF .

          SELECT * FROM /pws/zycit049

          INTO TABLE itab_zycit049_fndp

          WHERE nrseq EQ /pws/zycie085-nrseqdi

          AND vldp > 0.

          IF /pws/zycbt007 IS INITIAL.

            SELECT SINGLE * FROM /pws/zycbt007

            WHERE bukrs EQ /pws/zycie085-bukrs.

          ENDIF.

        ENDIF.

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

        CLEAR:   itab_zycit019, itab_zycit020.

        REFRESH: itab_zycit019, itab_zycit020.

        IF t001 IS INITIAL.

          SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie041-bukrs.

        ENDIF.

        SELECT * FROM /pws/zycit020 INTO TABLE itab_zycit020

               WHERE regio = adrc-region

                 AND baseii = 'X'

                 AND land1 = t001-land1.

        IF sy-subrc NE 0.

          SELECT * FROM /pws/zycit020 INTO TABLE itab_zycit020

                WHERE regio = space

                  AND baseii = 'X'

                  AND land1 = t001-land1.

        ENDIF.

        IF NOT itab_zycit020[] IS INITIAL.

          SELECT * FROM /pws/zycit019 INTO TABLE itab_zycit019

               FOR ALL ENTRIES IN itab_zycit020

                WHERE regio = itab_zycit020-regio

                 AND codigo = itab_zycit020-codigo

                 AND  land1 = t001-land1.

        ENDIF.

* << Fim da inclusão

        LOOP AT itab_zycit049_fndp

          WHERE tpdesp NE /pws/zycit000-cod_sisc.

          IF itab_zycit049_fndp-waers EQ /pws/zycie085-waersfob .

            v_vlreal = v_vlreal + itab_zycit049_fndp-vldp .

          ELSE.

            PERFORM trata_decimais USING itab_zycit049_fndp-waers

                           CHANGING  itab_zycit049_fndp-vldp.

            PERFORM taxa_converte USING itab_zycit049_fndp-waers

                                         /pws/zycie085-dttax

                                CHANGING v_taxa_desp.

            v_vlreal = v_vlreal + ( itab_zycit049_fndp-vldp *

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

                                    v_taxa_desp ) .

            CLEAR: itab_zycit019, itab_zycit020.

            READ TABLE itab_zycit019 WITH KEY

                        tpdesp = itab_zycit049_fndp-tpdesp.

            IF sy-subrc EQ 0 .

              READ TABLE itab_zycit020 WITH KEY

                          codigo = itab_zycit019-codigo.

            ENDIF.

            IF itab_zycit020-baseii NE 'X'.

              v_vlrealb = v_vlrealb + ( itab_zycit049_fndp-vldp *

* << Fim da inclusão

                                    v_taxa_desp ) .

          ENDIF.

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

          ENDIF.

* << Fim da inclusão

        ENDLOOP.

        LOOP AT itab_zycit003.

          CLEAR :  itab_zycit480,

                   v_vlii, v_vlipi,

                   v_vlpis, v_vlcofins.

...

 

...

            itab_zycit480-vl_basred = itab_zycit003-basred .

            IF itab_zycit100-waersbem NE /pws/zycie085-waersfob.

              PERFORM trata_decimais USING itab_zycit100-waersbem

                            CHANGING itab_zycit100-vlfob.

              PERFORM taxa_converte USING /pws/zycie085-waersfob

                                          /pws/zycie085-dttax

                                  CHANGING v_taxa_desp.

             itab_zycit100-vlfob =  itab_zycit100-vlfob * v_taxa_desp  .

              IF NOT /pws/zycie085-vlfob IS INITIAL.

                v_vldp =  ( v_vlreal * itab_zycit100-vlfob ) /

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

                       /pws/zycie085-vlfob.

                v_vldpb =  ( v_vlrealb * itab_zycit100-vlfob ) /

* << Fim da inclusão

                       /pws/zycie085-vlfob.

              ENDIF.

            ELSE.

              IF NOT /pws/zycie085-vlfob IS INITIAL.

                v_vldp =  ( v_vlreal * itab_zycit100-vlfob ) /

                       /pws/zycie085-vlfob.

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

                v_vldpb =  ( v_vlrealb * itab_zycit100-vlfob ) /

                       /pws/zycie085-vlfob.

* << Fim da inclusão

              ENDIF.

            ENDIF.

            READ TABLE itab_zycit049_fndp WITH KEY

                 tpdesp = /pws/zycit000-cod_sisc .

            IF sy-subrc EQ 0.

              IF itab_zycit049_fndp-waers EQ /pws/zycie085-waersfob .

                IF NOT /pws/zycie085-vlfob IS INITIAL.

                  v_vlsisco =

                  ( itab_zycit049_fndp-vldp * itab_zycit100-vlfob ) /

                   /pws/zycie085-vlfob.

...

 

...

                                               regio = itab_t001w-regio.

                IF itab_zycit033-tribipi EQ '3'   .

                  itab_zycit480-vl_custo_merc = itab_zycit480-vl_nf_ent.

                ELSE.

                  itab_zycit480-vl_custo_merc =

                     itab_zycit480-vl_nf_ent - itab_zycit100-vlipi.

                ENDIF.

              ENDIF.

            ENDIF.

            itab_zycit480-vl_desp_acess =

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

            ( ( v_vldp * itab_zycit480-vl_basred ) / 100 ) /

* << Fim da exclusão

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

            ( ( v_vldpb * itab_zycit480-vl_basred ) / 100 ) /

* << Fim da inclusão

              ( 1 - ( itab_zycit480-vl_aliqicms / 100 ) ).

            itab_zycit480-vl_base_ipi =

              ( ( itab_zycit480-vl_custo_merc *

              ( itab_zycit480-vl_basred / 100 ) ) /

              ( 1 - ( itab_zycit480-vl_aliqicms / 100 ) ) ) +

              itab_zycit480-vl_desp_acess.

            itab_zycit480-vl_ipi = itab_zycit480-vl_base_ipi *

                  ( itab_zycit003-advalipi / 100 ) .

            itab_zycit480-vl_base_icms =

        ( ( ( itab_zycit480-vl_custo_merc * itab_zycit480-vl_basred ) /

...

 

...

                 WHERE lifnr EQ itab_ekpa-lifn2

                   AND op_icms EQ '2'.

              ELSE.

                SELECT SINGLE * FROM /pws/zycit478

                 WHERE lifnr EQ itab_ekpa-lifn2

                   AND op_icms EQ '3'.

              ENDIF.

              itab_zycit480-desconto = itab_zycit480-vl_custo_merc *

                     ( /pws/zycit478-percent / 100 ).

            ENDIF.

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

            itab_zycit480-vl_desp_acess =

            ( ( v_vldp * itab_zycit480-vl_basred ) / 100 ) /

              ( 1 - ( itab_zycit480-vl_aliqicms / 100 ) ).

* << Fim da inclusão

            APPEND itab_zycit480.

          ENDIF.

        ENDLOOP.

      ENDIF.

    ELSE.

      IF NOT itab_zycit003[] IS INITIAL.

        SELECT * FROM /pws/zycit480

        INTO TABLE itab_zycit480

        FOR ALL ENTRIES IN itab_zycit003

        WHERE nrseq EQ itab_zycit003-nrseq

...