CE PLUS - Nota 014040

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal

Data/Hora da Publicação: 07/07/2014 16:01:54

Data/Hora Última Alteração: 07/07/2014 16:01:54

Descrição da Nota: VALOR DOS IMPOSTO ESTÁ ERRADO NO ULTIMO ITEM DA NOTA FISCAL

Sintoma

Ao gerar a nota fiscal em um processo como muitos itens, o ultimo item fica com os valores dos

impostos errado e a linha de IPI não bate com o total da nota fiscal.

 

 

Solução

Ajustado programa para não efetuar tratamento de arredondamento quando o na tabela de parametros

/pws/zycit062 o arredondamento de base estiver flegado.

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

TRAT. PARA ARRED. VALOR DA NOTA E PREENCH. LINHA II NA NOTA DE REMESSA

Informações Complementares

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

Nota Número 14040 Data: 17/06/2014 Hora: 08:12:00

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

 

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

Nota Número              : 14040

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 9.0

Pacote                   : 00008

Agrupamento              : 00172

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

Referência às notas relacionadas:

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

 

11617  - 00001 - 8.0    - 00009  - TRAT. PARA ARRED. VALOR DA NOTA E PREENCH. LINHA II NA NOTA DE RE

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

VALOR DOS IMPOSTO ESTÁ ERRADO NO ULTIMO ITEM DA NOTA FISCAL

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

Palavras Chave:

NOTA FISCAL IMPOSTO RATEIO

 

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

Objetos da nota:

FUNC /PWS/ZYCI_RATEIO_CUSTO

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO

 

...

                   WHERE bukrs EQ /pws/zycbt007-bukrs.

        SELECT SINGLE * FROM /pws/zycbt007

                        WHERE bukrs EQ v_bukrs.

        READ TABLE itab_zycit100a INDEX 1.

        SELECT SINGLE * FROM /pws/zycit085

               WHERE nrseqdi = itab_zycit100a-nrseqdi.

        SELECT SINGLE * FROM /pws/zycit093

               WHERE nrseqce = /pws/zycit085-nrbl.

        v_vlseg_tot = 0.

        v_vlseg_tottx = 0.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

      SELECT SINGLE * FROM j_1bbranch

         WHERE bukrs = /pws/zycit085-bukrs

          AND branch = /pws/zycit085-j_1bbranch.

      SELECT SINGLE * FROM adrc

       WHERE addrnumber = j_1bbranch-adrnr.

      IF sy-subrc EQ 0.

        CLEAR /pws/zycit062.

        SELECT SINGLE * FROM /pws/zycit062

             WHERE regio = adrc-region.

      ENDIF.

* << Fim da inclusão

        DESCRIBE TABLE itab_zycit003 LINES v_line_rateio.

        FREE it_desp.

        LOOP AT itab_zycit003

        WHERE servico IS initial.

          v_line_ac = sy-tabix.

          CLEAR it_desp.

         READ TABLE itab_zycit100a WITH KEY nrseq = itab_zycit003-nrseq

                                            ebeln = itab_zycit003-ebeln

                                            ebelp = itab_zycit003-ebelp.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

          IF v_line_ac <> v_line_rateio.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

          IF v_line_ac <> v_line_rateio

             AND /pws/zycit062-arbase IS INITIAL.

* << Fim da inclusão

            IF NOT /pws/zycit085-ukursseg IS INITIAL AND

               NOT itab_zycit100a-vlseg IS INITIAL.

              v_vlseg = itab_zycit100a-vlseg * v_taxa_usd

                / /pws/zycit085-ukursseg.

              v_vlseg_tot = v_vlseg_tot + v_vlseg.

              v_vlseg_tottx = /pws/zycit085-vlseg.

              v_vlseg_totdif = v_vlseg_tottx -

                        ( v_vlseg_tot - v_vlseg ).

              IF v_vlseg_tot <= v_vlseg_tottx.

                MOVE v_vlseg TO it_desp-vlseg.

...

 

...

                  UPDATE /pws/zycit093 SET vlfre = /pws/zycit093-vlfre

                    WHERE nrseqce = /pws/zycit093-nrseqce.

                  it_desp-vlfre = /pws/zycit093-vlfre - v_ac_fre.

                ENDIF.

              ENDIF.

            ENDIF.

            vl_ii     = vl_ii     + itab_zycit100a-vlii    .

            vl_ipi    = vl_ipi    + itab_zycit100a-vlipi   .

            vl_pis    = vl_pis    + itab_zycit100a-vlpis   .

            vl_cofins = vl_cofins + itab_zycit100a-vlcofins.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

            IF /pws/zycit062-arbase EQ 'X'.

              itab_zycit100a-vlii     = vl_ii     - vltot_ii    .

              itab_zycit100a-vlipi    = vl_ipi    - vltot_ipi   .

              itab_zycit100a-vlpis    = vl_pis    - vltot_pis   .

              itab_zycit100a-vlcofins = vl_cofins - vltot_cofins.

            ENDIF.

* << Fim da exclusão

          IF itab_zycit100a-icms_dif IS INITIAL.

              IF NOT ( /pws/zycit001-tpdecl = 'DSI' AND

                    /pws/zycit001-regime = '09' ).

                IF ( /pws/zycit085-tpdi EQ 'N' AND

                     NOT '356' CA itab_zycit100a-codregtriicms ) OR

                     ( /pws/zycit085-tpdi EQ 'S' AND

                     NOT '356' CA itab_zycit100a-codregtri ).

               vl_icms = vl_icms + itab_zycit100a-vlicms.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                  itab_zycit100a-vlicms = vl_icms - vltot_icms.

* << Fim da exclusão

                  MOVE: itab_zycit100a-vlicms TO it_desp-vlicms.

                ENDIF.

              ENDIF.

            ENDIF.

            vl_icmsst = vl_icmsst + itab_zycit100a-vlicms_st.

            itab_zycit100a-vlicms_st = vl_icmsst - vltot_icmsst.

            v_ac_fre = 0.

            v_ac_seg = 0.

          ENDIF.

          MOVE: itab_zycit003-nrseq    TO it_desp-nrseq,

...