CE PLUS - Nota 008953

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal

Data/Hora da Publicação: 03/09/2009 00:00:00

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

Descrição da Nota: TRAMENTO PARA DIFERENÇA DE CENTAVOS DEVIDO RATEIO DE DESPESAS

Sintoma

Ao criar a nota fiscal com está ocorrendo difença de centavos entre o total da nota a base de ICMS e

a linha do IPI.

 

 

Solução

Ajustado programa de nota fiscal para caso esteja parametrizado para tratar arredondamento da base

(campo ARBASE da tabela /PWS/ZYCIT062) o programa utilize os valores rateados conforme a DI(sem

aplicar a diferença entre o total rateado e o total da despesa no ultimo item).

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

AO CRIAR NF NÃO CONSIDERA IPI OU ICMS É ISENTO PARA LANÇAR ALÍQUOTA.

DIFERENÇA ENTRE BASE DE ICMS E O TOTAL DA NOTA FISCAL

AJUSTES PARA TRATAMENTOS DE IPI ISENÇÃO, COURIER E GRANEL NA DI E NF

DESENVOLVIMENTO NACIONALIZAÇÃO DE ADMISSÃO TEMPORÁRIA

Informações Complementares

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

Nota Número 08953 Data: 03/09/2009 Hora: 13:51:20

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

 

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

Nota Número              : 08953

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00001

Agrupamento              : 00001

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

Referência às notas relacionadas:

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

 

06176  - 00001 - 7.0    - 00004  - AJUSTES PARA TRATAMENTOS DE IPI ISENÇÃO, COURIER E GRANEL NA DI E

07407  - 00002 - 7.0    - 00007  - AO CRIAR NF NÃO CONSIDERA IPI OU ICMS É ISENTO PARA LANÇAR ALÍQUO

08318  - 00003 - 7.0    - 00009  - DESENVOLVIMENTO NACIONALIZAÇÃO DE ADMISSÃO TEMPORÁRIA

08899  - 00004 - 7.0    - 00010  - DIFERENÇA ENTRE BASE DE ICMS E O TOTAL DA NOTA FISCAL

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

TRAMENTO PARA DIFERENÇA DE CENTAVOS DEVIDO RATEIO DE DESPESAS

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

Palavras Chave:

PARAMETRO - ARREDONDAMENTO - DIFERENÇA - CENTAVOS - TOTAL - NOTA - IPI

ICMS - FISCAL - /PWS/SAPMZYCI016

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

Objetos da nota:

REPS /PWS/MZYCI016F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI016F01

 

...

FORM valores.

  DATA: v_vldp_042 LIKE /pws/zycit042-vldp,

        v_vlseg    LIKE itab_zycit036_di-vlmov.

  CLEAR: v_vldp_042, v_impostos.

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

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

    CLEAR: itab_zycit100.

    READ TABLE itab_zycit100 WITH KEY

         nrseq = itab_zycit042-nrseq

         ebeln = itab_zycit042-ebeln

         ebelp = itab_zycit042-ebelp.

  ENDIF.

* << Fim da inclusão

  CLEAR v_despesas.

  LOOP AT itab_zycit036

    WHERE nrseq = itab_zycit042-nrseq

      AND ebeln = itab_zycit042-ebeln

      AND ebelp = itab_zycit042-ebelp.

    READ TABLE itab_zycit036_di WITH KEY nrseq  = itab_zycit036-nrseq

                                         ebeln  = itab_zycit036-ebeln

                                         ebelp  = itab_zycit036-ebelp

                                        codigo = itab_zycit036-codigo.

    IF /pws/zycit001-regime EQ '13'.

      itab_zycit036_di-vlmov = itab_zycit036_di-vldif.

    ENDIF.

    IF itab_zycit036-codigo     = 'FRETEI'.

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

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

        NOT itab_zycit036_di-vlmov IS INITIAL.

        it_zycee007-netfre = itab_zycit100-vlfre.

      ELSE.

* << Fim da inclusão

      it_zycee007-netfre = itab_zycit036_di-vlmov.

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

      ENDIF.

* << Fim da inclusão

    ELSEIF itab_zycit036-codigo = 'SEGURO'.

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

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

        NOT itab_zycit036_di-vlmov IS INITIAL.

        it_zycee007-netins = itab_zycit100-vlseg.

      ELSE.

* << Fim da inclusão

      CLEAR: v_vlseg.

      v_vlseg = itab_zycit036_di-vlmov.

      PERFORM trata_decimais USING itab_zycit036_di-waers_mov

                            CHANGING v_vlseg.

      it_zycee007-netins = v_vlseg.

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

      ENDIF.

* << Fim da inclusão

    ELSEIF itab_zycit036-codigo = 'II'.

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

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

        NOT itab_zycit036_di-vlreal IS INITIAL.

        v_despesas         = itab_zycit100-vlii.

      ELSE.

* << Fim da inclusão

      v_despesas         = itab_zycit036-vlreal.

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

      ENDIF.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

  READ TABLE itab_zycit042_d WITH KEY

       nrseq = itab_zycit042-nrseq

       ebeln = itab_zycit042-ebeln

       ebelp = itab_zycit042-ebelp.

...

 

...

          IF itab_zycit049_a-waers NE /pws/zycbt007-waersb.

            PERFORM trata_decimais USING itab_zycit049_a-waers

                         CHANGING    itab_zycit049_a-vldp.

            PERFORM taxa_converte USING itab_zycit049_a-waers

                                         /pws/zycit085-dttax

                                CHANGING v_taxa_desp.

            itab_zycit049_a-vldp = itab_zycit049_a-vldp *

                                   v_taxa_desp.

            itab_zycit049_a-waers = /pws/zycbt007-waersb.

          ENDIF.

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

          IF v_lines = v_tabix.

* << Fim da exclusão

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

          IF v_lines = v_tabix AND /pws/zycit062-arbase NE 'X'.

* << Fim da inclusão

            v_vldp = itab_zycit049_a-vldp - v_tot_vldp.

            itab_zycit042_d-vldp = itab_zycit042_d-vldp + v_vldp.

            CLEAR v_vldp.

          ELSE.

            IF itab_zycit039-divabs = 'X'.

              v_vldp = itab_zycit049_a-vldp / v_lines.

            ELSEIF itab_zycit039-peso = 'X'.

              IF NOT v_tot_ntgew IS INITIAL.

                IF NOT itab_zycit003-ntgewd IS INITIAL.

                 v_vldp = itab_zycit049_a-vldp * itab_zycit003-ntgewd /

...

 

...

                     /pws/zycit000-txsis_fix ) / v_line.

        v_sisco2 =   /pws/zycit000-txsis_fix / v_line.

        v_sisco3 = v_sisco1 + v_sisco2.

      ENDIF.

      IF NOT itab_zycit116[] IS INITIAL.

        LOOP AT itab_zycit116.

          CLEAR: v_line, v_sisco_tot.

          v_sisco_item = v_sisco3 / itab_zycit116-nr_itens.

          LOOP AT itab_zycit100 WHERE adicao = itab_zycit116-adicao.

            v_line = v_line + 1.

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

            IF v_line = itab_zycit116-nr_itens.

* << Fim da exclusão

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

            IF v_line = itab_zycit116-nr_itens AND

               /pws/zycit062-arbase NE 'X'.

* << Fim da inclusão

              itab_zycit100-vl_sisco = v_sisco3 - v_sisco_tot.

            ELSE.

              itab_zycit100-vl_sisco = v_sisco_item.

              v_sisco_tot = v_sisco_tot + v_sisco_item.

            ENDIF.

            MODIFY itab_zycit100.

          ENDLOOP.

        ENDLOOP.

      ENDIF.

    ENDLOOP.

...

 

...

    WHERE regio = adrc-region.

  CLEAR itab_zycit036.

  READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit042-nrseq

                                    ebeln = itab_zycit042-ebeln

                                    ebelp = itab_zycit042-ebelp

                                    codigo = 'ICMS'.

  IF itab_zycit100-icms_dif = 'X'.

    v_icms_dif = v_icms_dif + itab_zycit100-vlicms.

  ELSE.

    IF NOT itab_zycit100-vlicms IS INITIAL.

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

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

         NOT itab_zycit036-vlreal IS INITIAL.

        it_zycee007-taxval = itab_zycit100-vlicms.

      ELSE.

* << Fim da inclusão

      it_zycee007-taxval = itab_zycit036-vlreal.

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

      ENDIF.

* << Fim da inclusão

    ELSE.

      CLEAR it_zycee007-taxval.

    ENDIF.

  ENDIF.

  IF NOT it_zycee007-taxval IS INITIAL.

    it_zycee007-rate = itab_zycit003-advalicms.

...

 

...

    CLEAR: v_base, v_othbas.

    CLEAR itab_zycit036.

    READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit042-nrseq

                                      ebeln = itab_zycit042-ebeln

                                      ebelp = itab_zycit042-ebelp

                                      codigo = 'IPI'.

    IF ' 156' NA itab_zycit100-codregtriipi.

      it_zycee007-rate2   = itab_zycit003-advalipi.

    ENDIF.

    IF NOT itab_zycit100-vlipi IS INITIAL.

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

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

        NOT itab_zycit036-vlreal IS INITIAL.

        it_zycee007-taxval2 = itab_zycit100-vlipi.

      ELSE.

* << Fim da inclusão

      it_zycee007-taxval2 = itab_zycit036-vlreal.

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

      ENDIF.

* << Fim da inclusão

    ELSE.

      CLEAR it_zycee007-taxval2.

    ENDIF.

    it_zycee007-taxtyp2 = itab_zycit033-taxtyp2.

    CASE itab_zycit033-tribipi.

      WHEN 1.

...