CE PLUS - Nota 005044

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 22/10/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 13:50:51

Descrição da Nota: AJUSTE NO TRATAMENTO DE ITENS COM MOEDAS DIFERENTES NA ANA.

Sintoma

A ANA não está tratando corretamente os valores dos itens quando a ANA possue itens com moedas

diferentes.

 

 

Solução

Corrigir o rateio dos valores dos itens.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTES NOS CALCULOS DE IMPOSTOS E NO RATEIO DOS VALORES DA ANA

AJUSTE PARA PERMITIR A ALTERAÇÃO DA TAXA DE CONVERSÃO DAS MOEDAS

Informações Complementares

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

Nota Número 05044 Data: 22/10/2007 Hora: 15:24:41

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

 

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

Nota Número              : 05044

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00017

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

Referência às notas relacionadas:

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

 

04399  - 00001 - 7.0    - 00002  - AJUSTES NOS CALCULOS DE IMPOSTOS E NO RATEIO DOS VALORES DA ANA

04523  - 00002 - 7.0    - 00002  - AJUSTE PARA PERMITIR A ALTERAÇÃO DA TAXA DE CONVERSÃO DAS MOEDAS

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

AJUSTE NO TRATAMENTO DE ITENS COM MOEDAS DIFERENTES NA ANA.

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

Palavras Chave:

ITENS - MOEDAS - DIFERENTES - ANA - VALORES

/PWS/SAPMZYCI059

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

Objetos da nota:

REPS /PWS/MZYCI059F01

REPS /PWS/MZYCI059F03

REPS /PWS/MZYCI059O01

 

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

Modificações efetuadas em REPS /PWS/MZYCI059F01

 

...

        MESSAGE i015 WITH text-119 text-125.

        LEAVE  PROGRAM.

      ELSE.

        MESSAGE i015 WITH text-021 s_msg1 text-119 text-125.

        LEAVE  PROGRAM.

      ENDIF.

    ENDIF.

  ELSE.

    v_rateio_t  = v_tval.

    /pws/zycie085-vlfobr = s_fbvr = v_tmle.

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

    PERFORM: taxa_converte USING /pws/zycbt007-waersa

                                 /pws/zycie085-dttax

                           CHANGING v_usd,

                            load_fbvl2.

* << Fim da inclusão

    CLEAR: v_tval2.

  ENDIF.

  CLEAR: v_desp_acr, v_desp_brl.

  LOOP AT itab_zycit049 WHERE tipo = 'A' AND

          vldp > 0.

    IF itab_zycit049-waers = /pws/zycbt007-waersb.

      s_fbvr = s_fbvr + itab_zycit049-vldp.

      v_desp_brl = v_desp_brl + itab_zycit049-vldp.

    ELSE.

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

...

 

...

                        CHANGING itab_zycit049-vldp.

        v_tval2 = v_tval2 + itab_zycit049-vldp.

      ELSE.

        v_tval2 = v_tval2 + itab_zycit049-vldp.

      ENDIF.

      v_desp_acr = v_desp_acr + itab_zycit049-vldp.

      s_fbvr = v_tval2 * /pws/zycie085-ukursfob.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_it.

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

    IF itab_it-waersbem EQ /pws/zycie085-waers.

* << Fim da inclusão

    MOVE  /pws/zycie085-ukursfob TO itab_it-dttaxbem.

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

    ENDIF.

* << Fim da inclusão

    v_idx = sy-tabix.

    MODIFY itab_it INDEX v_idx TRANSPORTING dttaxbem.

    IF v_idx EQ v_ipt AND v_ipt NE 1.

      itab_it-vlfob = v_tval - v_aux_rateio.

    ELSE.

      IF s_inco1_ci NE 'FOB' AND itab_it-vlfre_fat IS INITIAL.

        IF NOT /pws/zycie085-ukursfre IS INITIAL.

          IF s_inco1_ci = 'C&F'.

            IF NOT v_tval3 IS INITIAL.

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

              itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )

* << Fim da exclusão

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

              itab_it-vlfob =

                        ( ( ( ( itab_it-qtd_iten * itab_it-vlreal )

                        * itab_it-dttaxbem ) / /pws/zycie085-ukursfob )

* << Fim da inclusão

                            / v_rateio_t ) * v_tval.

            ENDIF.

          ELSE.

            IF NOT v_tval3 IS INITIAL OR

               NOT /pws/zycie085-ukursseg IS INITIAL.

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

              itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )

* << Fim da exclusão

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

              itab_it-vlfob =

                        ( ( ( ( itab_it-qtd_iten * itab_it-vlreal )

                        * itab_it-dttaxbem ) / /pws/zycie085-ukursfob )

* << Fim da inclusão

                            / v_rateio_t ) * v_tval.

            ENDIF.

          ENDIF.

        ENDIF.

      ELSE.

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

        itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )

* << Fim da exclusão

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

        itab_it-vlfob =

                  ( ( ( ( itab_it-qtd_iten * itab_it-vlreal )

                  * itab_it-dttaxbem ) / /pws/zycie085-ukursfob )

* << Fim da inclusão

                      / v_rateio_t ) * v_tval.

      ENDIF.

      v_aux_rateio = v_aux_rateio + itab_it-vlfob.

    ENDIF.

    MOVE itab_it TO wa_it.

    MOVE-CORRESPONDING: itab_it TO /pws/zycie100a,

                        itab_it TO /pws/zycie003.

    IF /pws/zycie085-mdadicao = 'N'.

      /pws/zycie085-vlfob = v_tval2 = v_tval.

    ENDIF.

...

 

...

      MODIFY itab_it INDEX sy-tabix TRANSPORTING dttaxbem waersbem.

    ENDLOOP.

    IF /pws/zycie085-vlseg IS INITIAL AND sy-tcode = '/PWS/ZYCI059_C'.

      /pws/zycie085-vlseg    = v_tsegfat.

      READ TABLE itab_zycit006 WITH KEY tpfatura = '01'.

      IF sy-subrc EQ 0.

        /pws/zycie085-waersseg = itab_zycit006-waers.

      ENDIF.

    ENDIF.

  ELSE.

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

    CLEAR: /pws/zycie085-waersfob, /pws/zycie085-vlfob,

           /pws/zycie085-ukursfob.

* << Fim da exclusão

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

    CLEAR: /pws/zycie085-waersfob, /pws/zycie085-vlfob.

    IF /pws/zycbt007-waersa IS INITIAL AND

      NOT /pws/zycie085-bukrs IS INITIAL.

      SELECT SINGLE * FROM /pws/zycbt007

                      WHERE bukrs EQ /pws/zycie085-bukrs.

    ENDIF.

* << Fim da inclusão

    /pws/zycie085-waersfob = /pws/zycbt007-waersa.

  ENDIF.

  READ TABLE itab_zycit001 INDEX 1.

  s_inco1 = itab_zycit001-inco1.

  /pws/zycie085-codreg = itab_zycit001-regime.

  IF /pws/zycie085-j_1bbranch IS INITIAL.

    /pws/zycie085-j_1bbranch = itab_zycit001-j_1bbranch.

  ENDIF.

  CLEAR: v_icms_especial, v_base_esp.

  SELECT SINGLE * FROM j_1bbranch

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI059F03

 

...

    v_tsegfat = v_tsegfat + itab_it-vlseg_fat.

    v_rsegfat = v_rsegfat + ( itab_it-vlseg_fat * itab_it-dttaxbem ).

    IF p_tipo = 'I'.

      itab_it-seq = sy-tabix.

      MODIFY itab_it INDEX sy-tabix TRANSPORTING seq vlreal.

    ENDIF.

    IF /pws/zycie085-mdadicao = 'N'.

      IF itab_it-waersbem EQ  /pws/zycie085-waersfob.

        v_tval   = v_tval   + (   v_qtd_iten * itab_it-vlreal ).

      ELSE.

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

        CLEAR: v_taxa.

* << Fim da inclusão

        PERFORM taxa_converte USING  itab_it-waersbem

                                     /pws/zycie085-dttax

                           CHANGING  v_taxa.

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

        IF v_taxa EQ 0 .

          v_taxa = itab_it-dttaxbem.

        ENDIF.

* << Fim da inclusão

        v_tvaln   = v_tvaln + (   v_qtd_iten * itab_it-vlreal ).

        v_tvaln   = v_tvaln * v_taxa.

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

        CLEAR: v_taxa.

* << Fim da inclusão

        PERFORM taxa_converte USING  /pws/zycie085-waersfob

                                    /pws/zycie085-dttax

                            CHANGING  v_taxa.

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

        IF v_taxa EQ 0 .

          v_taxa = /pws/zycie085-ukursfob.

        ENDIF.

* << Fim da inclusão

        v_tvaln   = v_tvaln / v_taxa.

        v_tval = v_tval + v_tvaln.

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

        /pws/zycie085-ukursfob  = v_taxa.

* << Fim da exclusão

      ENDIF.

    ELSE.

      v_tval   = v_tval   + (   v_qtd_iten * itab_it-vlreal ).

    ENDIF.

  ENDLOOP.

  CASE s_inco1_ci.

    WHEN 'C&F' OR 'CIF'.

      READ TABLE itab_zycit049 WITH KEY

            tpdesp = /pws/zycit000-flagfreten.

      IF sy-subrc = 0 AND NOT itab_zycit049-vldp IS INITIAL.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI059O01

 

...

    if  sy-dynnr eq '0400'.

      perform fill_desc.

      perform read_text_blitem changing /pws/zycie100a-especificacao.

    else.

      perform read_text_blitem changing t_espec.

    endif.

  endif.

  if itab_it-waersbem ne  /pws/zycie085-waersfob.

    move /pws/zycie085-waersfob to wa_it-waersbem.

    move /pws/zycie085-waersfob to /pws/zycie100a-waersbem.

* >> Início da inclusão: MODULE LOAD_DATA_BLITEM

    /pws/zycie100a-dttaxbem = /pws/zycie085-ukursfob.

* << Fim da inclusão

    perform load_itwa using /pws/zycie100a-waersbem.

  endif.

endmodule.

module status0109 output.

  case sy-dynnr.

    when '0440'.

      set titlebar '0440'.

      set pf-status '0109'.

    when '0181'.

      set titlebar '0181'.

...