CE PLUS - Nota 003916

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 14/06/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 13:42:14

Descrição da Nota: PROBLEMA COM O RATEIO DA DESPESA DE ARMAZENAGEM

Sintoma

Existe algum problema com o rateio da despesa de ARMAZENAGEM. Houve uma divergência para a Base de

IPI com relação à planilha anexa que utilizamos para validação dos processos de homologação.

Ao retirar a despesa de ARMAZENAGEM os valores do processo ficam corretos.

 

 

Solução

Atualização do rateio da DI para despesas com base de II

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

PROBLEMAS COM O VALOR DO RATEIO

VISUALIZAÇÃO DO RATEIO DE DESPESAS DA DI ESTÁ INCORRETO

Informações Complementares

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

Nota Número 03916 Data: 14/06/2007 Hora: 09:47:33

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

 

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

Nota Número              : 03916

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00170

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

Referência às notas relacionadas:

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

 

00759  - 00001 - 6.0    - 00022  - PROBLEMAS COM O VALOR DO RATEIO

01227  - 00002 - 6.0    - 00023  - VISUALIZAÇÃO DO RATEIO DE DESPESAS DA DI ESTÁ INCORRETO

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

PROBLEMA COM O RATEIO DA DESPESA DE ARMAZENAGEM

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

Palavras Chave:

FORM LOAD_ITAX, ITAB_ZYCIT003_RATEIO, FORM CALC_INIT, ITAB_IT[]

V_TOT_REAL

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

Objetos da nota:

REPS /PWS/MZYCI023F01

REPS /PWS/MZYCI023F03

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F01

 

...

      t_ivseg = itab_it-vlseg = ( v_cif_fat / v_tcif_fat ) *

                s_stvr.

      v_tot_seg = ( v_cif_fat / v_tcif_fat ) * v_sgtofat.

    ENDIF.

  ELSE.

    IF NOT v_tcfr IS INITIAL.

      t_ivseg = itab_it-vlseg = ( v_cfr / ( v_tcfr ) ) * s_stvr.

      v_tot_seg = ( v_cfr / ( v_tcfr ) ) * v_sgtofat.

    ENDIF.

  ENDIF.

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

  READ TABLE itab_zycit003_rateio

                        WITH KEY nrseq = itab_it-nrseq

                                 ebeln = itab_it-ebeln

                                 ebelp = itab_it-ebelp.

* << Fim da inclusão

  CLEAR: t_ivdesp.

  LOOP AT itab_zycit049 WHERE baseii EQ 'X' AND NOT vlreal IS initial.

    IF v_idx EQ v_ipt AND v_ipt NE 1.

      IF itab_zycit049-divabs  = 'X'.

        t_ivdes2 = ( 1 / v_ipt ) * itab_zycit049-vlreal.

      ELSEIF itab_zycit049-peso = 'X'.

        t_ivdes2 = ( wa_it-ntgew / v_tntgew )  *

                       itab_zycit049-vlreal.

      ELSEIF itab_zycit049-proporplan = 'X'.

        t_ivdes2 = ( v_it_plan / v_tot_plan  ) * itab_zycit049-vlreal.

...

 

...

      ENDIF.

    ELSE.

      IF itab_zycit049-divabs  = 'X'.

        t_ivdes2 = ( 1 / v_ipt ) * itab_zycit049-vlreal.

      ELSEIF itab_zycit049-peso = 'X'.

        t_ivdes2 = ( wa_it-ntgew / v_tntgew )  *

                       itab_zycit049-vlreal.

      ELSEIF itab_zycit049-proporplan = 'X'.

        t_ivdes2 = ( v_it_plan / v_tot_plan  ) * itab_zycit049-vlreal.

      ELSE.

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

        t_ivdes2 = ( v_it_plan / v_tot_plan  ) * itab_zycit049-vlreal.

* << Fim da exclusão

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

              IF NOT v_tot_real IS INITIAL.

                t_ivdes2 =  ( itab_zycit003_rateio-vlreal *

                   itab_zycit003_rateio-qtd_iten

                   / v_tot_real  ) * itab_zycit049-vlreal.

              ENDIF.

* << Fim da inclusão

      ENDIF.

      IF p_tipo = 'I'.

        itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.

        MODIFY itab_zycit049 INDEX sy-tabix TRANSPORTING vldp_aux.

      ENDIF.

    ENDIF.

    IF itab_zycit049-divabs  = 'X'.

      t_ivdes3 = ( 1 / v_ipt ) * itab_zycit049-vldp.

    ELSEIF itab_zycit049-peso = 'X'.

      t_ivdes3 = ( wa_it-ntgew / v_tntgew )  * itab_zycit049-vldp.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F03

 

...

          itab_zycit049-vlreal = itab_zycit049-vldp * s_tax.

          PERFORM trata_decimais USING itab_zycit049-waers

                                    itab_zycit049-vlreal.

        ENDIF.

      ENDIF.

      CLEAR itab_zycit049-vldp_aux.

      MODIFY itab_zycit049 INDEX v_tabix TRANSPORTING vlreal vldp_aux.

    ENDLOOP.

  ENDIF.

  DESCRIBE TABLE itab_it LINES v_ipt.

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

  IF NOT itab_it[] IS INITIAL.

    SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_rateio

      FOR ALL ENTRIES IN itab_it

      WHERE nrseq = itab_it-nrseq AND

            ebeln = itab_it-ebeln AND

            ebelp = itab_it-ebelp.

  ENDIF.

  CLEAR v_tot_real.

  LOOP AT itab_zycit003_rateio.

    v_tot_real = v_tot_real +

    ( itab_zycit003_rateio-vlreal * itab_zycit003_rateio-qtd_iten ).

  ENDLOOP.

* << Fim da inclusão

  LOOP AT itab_it.

    IF /pws/zycie085-waersfob NE itab_it-waers.

      PERFORM: calc_conv_moeda USING    itab_it-waers

                                        /pws/zycie085-waersfob

                               CHANGING itab_it-vlfre_fat.

      v_tfrefat = v_tfrefat + itab_it-vlfre_fat.

    ELSE.

      v_tfrefat = v_tfrefat + itab_it-vlfre_fat.

    ENDIF.

  ENDLOOP.

...

 

...

     AND   lei = 'MP255'.

  IF sy-subrc NE 0.

    SELECT  * FROM /pws/zycit438 APPENDING TABLE itab_zycit438

       WHERE regio = ' '

       AND   lei = 'MP255'.

  ENDIF.

  CLEAR v_nova.

  IF /pws/zycie085-dtuserc IS INITIAL.

    /pws/zycie085-dtuserc = sy-datlo.

  ENDIF.

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

  IF NOT itab_it[] IS INITIAL.

    SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_rateio

      FOR ALL ENTRIES IN itab_it

      WHERE nrseq = itab_it-nrseq AND

            ebeln = itab_it-ebeln AND

            ebelp = itab_it-ebelp.

  ENDIF.

  CLEAR v_tot_real.

  LOOP AT itab_zycit003_rateio.

    v_tot_real = v_tot_real +

    ( itab_zycit003_rateio-vlreal * itab_zycit003_rateio-qtd_iten ).

  ENDLOOP.

* << Fim da exclusão

  READ TABLE itab_zycit003_rateio

                        WITH KEY nrseq = itab_it-nrseq

                                 ebeln = itab_it-ebeln

                                 ebelp = itab_it-ebelp.

  CLEAR : v_fatx, v_xa , v_xb , v_xc, v_faty, v_fatpc.

  LOOP AT itab_zycit049 WHERE baseicms EQ 'X' AND NOT vlreal IS initial.

    IF /pws/zycit000-flag_txsisc IS INITIAL OR v_dit NE 'N' OR

       wa_it000-cod_sisc NE itab_zycit049-tpdesp.

      IF NOT itab_zycit049-tipo EQ 'D'.

        IF v_idx EQ v_ipt AND v_ipt NE 1.

...

 

...

           t_ivdes2 = ( wa_it-ntgew / v_tntgew ) * itab_zycit049-vlreal.

          ELSEIF itab_zycit049-proporplan EQ 'X'.

            t_ivdes2 = ( v_it_plan / v_tot_plan  ) *

                       itab_zycit049-vlreal.

          ELSE.

            IF /pws/zycit062-bs_rat_icms EQ 'CIF'.

              t_ivdes2 = ( itab_zycit049-vlreal *

              ( itab_it-vlfob + v_tot_fre + v_tot_seg ) )

               / ( /pws/zycie085-vlfob  + v_bltofat + v_sgtofat ) .

            ELSE.

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

              IF NOT v_tot_real IS INITIAL.

* << Fim da inclusão

              t_ivdes2 =  ( itab_zycit003_rateio-vlreal *

                 itab_zycit003_rateio-qtd_iten

                 / v_tot_real  ) * itab_zycit049-vlreal.

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

              ENDIF.

* << Fim da inclusão

            ENDIF.

          ENDIF.

          IF p_tipo = 'I'.

            itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.

...